From 0b442f2044b72ef53e0e98bad3ec228de3742572 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Wed, 22 Oct 2014 23:08:31 -0400 Subject: [PATCH] Closing Issue #319 --- dist/rx.all.compat.js | 42 +- dist/rx.all.compat.map | 2 +- dist/rx.all.compat.min.js | 6 +- dist/rx.all.js | 42 +- dist/rx.all.map | 2 +- dist/rx.all.min.js | 6 +- dist/rx.compat.js | 42 +- dist/rx.compat.map | 2 +- dist/rx.compat.min.js | 4 +- dist/rx.js | 42 +- dist/rx.lite.compat.js | 42 +- dist/rx.lite.compat.map | 2 +- dist/rx.lite.compat.min.js | 4 +- dist/rx.lite.js | 42 +- dist/rx.lite.map | 2 +- dist/rx.lite.min.js | 4 +- dist/rx.map | 2 +- dist/rx.min.js | 4 +- dist/rx.testing.js | 521 ++++++++++++------------ dist/rx.testing.map | 2 +- dist/rx.testing.min.js | 2 +- doc/api/core/operators/concatmap.md | 61 ++- doc/api/core/operators/selectmany.md | 53 ++- src/core/linq/observable/concatmap.js | 2 +- src/core/linq/observable/from.js | 8 +- src/core/linq/observable/selectmany.js | 2 +- src/core/notification.js | 26 +- src/core/testing/hotobservable.js | 75 ++-- src/core/testing/mockpromise.js | 26 ++ src/core/testing/reactivetest.js | 152 ++++--- src/core/testing/testscheduler.js | 280 +++++++------ tests/helpers/mockiterable.js | 0 tests/observable/concatmap.js | 411 +++++++++++++++++-- tests/observable/selectmany.js | 531 +++++++++++++++++++++---- 34 files changed, 1669 insertions(+), 775 deletions(-) create mode 100644 src/core/testing/mockpromise.js create mode 100644 tests/helpers/mockiterable.js diff --git a/dist/rx.all.compat.js b/dist/rx.all.compat.js index 823b2c3cd..7485f0bb1 100644 --- a/dist/rx.all.compat.js +++ b/dist/rx.all.compat.js @@ -1562,14 +1562,14 @@ if (!Array.prototype.forEach) { function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1578,17 +1578,17 @@ if (!Array.prototype.forEach) { */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -2340,7 +2340,13 @@ if (!Array.prototype.forEach) { if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -3632,7 +3638,7 @@ if (!Array.prototype.forEach) { function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3659,7 +3665,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -3957,7 +3963,7 @@ if (!Array.prototype.forEach) { function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3984,7 +3990,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.all.compat.map b/dist/rx.all.compat.map index a6f1e357d..6b398ca64 100644 --- a/dist/rx.all.compat.map +++ b/dist/rx.all.compat.map @@ -1 +1 @@ -{"version":3,"file":"rx.all.compat.min.js","sources":["rx.all.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","extremaBy","keySelector","hasValue","lastKey","list","comparison","ex1","firstOnly","sequenceContainsNoElements","sequenceEqualArray","equal","elementAtOrDefault","hasDefault","defaultValue","argumentOutOfRange","singleOrDefaultAsync","seenValue","firstOrDefaultAsync","lastOrDefaultAsync","findValue","predicate","yieldIndex","shouldRun","toThunk","obj","ctx","objectToThunk","isGeneratorFunction","observableSpawn","isGenerator","isObservable","observableToThunk","promiseToThunk","fnString","done","run","fn","finished","results","pending","err","res","keys","timeoutScheduler","schedule","observable","v","promise","then","name","next","throwString","val","error","fixEvent","event","stopPropagation","cancelBubble","preventDefault","bubbledKeyCode","keyCode","ctrlKey","defaultPrevented","returnValue","modified","target","srcElement","relatedTarget","fromElement","toElement","c","charCode","keyChar","fromCharCode","createListener","element","addEventListener","disposableCreate","removeEventListener","attachEvent","innerHandler","detachEvent","createEventListener","el","eventName","disposables","CompositeDisposable","add","combineLatestSource","subject","values","hasValueAll","every","identity","apply","isDone","n","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBounaries","windowBoundaries","Subject","r","RefCountDisposable","addRef","observableWindowWithClosingSelector","createWindowClose","windowClose","m1","m","take","noop","enumerableWhile","condition","Enumerable","Enumerator","Pattern","patterns","Plan","expression","planCreateObserver","externalSubscriptions","entry","get","JoinObserver","ActivePlan","joinObserverArray","joinObservers","Map","joinObserver","observableTimerDate","dueTime","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","atEnd","newValue","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","not","asArray","arguments","isFn","Symbol","iterator","Set","doneEnumerator","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","sources","prop","xs","getDisposable","Function","that","bound","F","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","fun","split","thisp","filter","t","arg","indexOf","searchElement","Number","Infinity","compareTo","other","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","ScheduledItem","state","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","_next","_iterator","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","fromPromise","AsyncSubject","toPromise","promiseCtor","resolve","reject","arr","createWithDisposable","defer","observableFactory","observableThrow","pow","from","iterable","mapFn","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","iterate","hasResult","observableNever","ofWithScheduler","never","range","observableReturn","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","createWindow","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","found","retValue","distinct","hashSet","groupBy","elementSelector","groupByUntil","durationSelector","handleError","Dictionary","groupDisposable","getValues","fireNewMapEntry","writer","tryGetValue","GroupedObservable","durationGroup","duration","md","expire","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","RangeError","takeWhile","finalValue","aggregate","reduce","some","any","isEmpty","all","contains","fromIndex","sum","prev","curr","minBy","min","maxBy","average","cur","sequenceEqual","donel","doner","ql","qr","subscription1","subscription2","elementAt","single","singleOrDefault","firstOrDefault","last","lastOrDefault","find","findIndex","toSet","toMap","spawn","isGenFun","exit","ret","gen","called","hasCallback","denodify","cb","context","observableToAsync","toAsync","fromCallback","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","startAsync","functionAsync","PausableObservable","conn","connection","pausable","pauser","connect","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","multicast","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","subjectOrSubjectSelector","connectable","ConnectableObservable","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","InnerSubscription","observers","hasObservers","os","createRemovableDisposable","so","_trim","hasError","windowSize","MAX_VALUE","interval","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","isPrime","candidate","num1","sqrt","num2","getPrime","num","primes","stringHashFn","str","hash","character","charCodeAt","numberHashFn","c2","newEntry","hashCode","_initialize","freeCount","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","dictionaryProto","prime","buckets","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","clear","_findEntry","containskey","join","leftDurationSelector","rightDurationSelector","leftDone","rightDone","leftId","rightId","leftMap","rightMap","buffer","windowOpeningsOrClosingSelector","pairwise","hasPrevious","partition","published","letBind","ifThen","thenSource","elseSourceOrScheduler","forIn","observableWhileDo","whileDo","doWhile","switchCase","defaultSourceOrScheduler","expand","forkJoin","allSources","subscriber","hasResults","ix","lastLeft","lastRight","leftStopped","rightStopped","hasLeft","hasRight","manySelect","chain","ChainObservable","g","head","tail","_keys","_values","and","thenDo","activate","deactivate","activePlan","jlen","removeActivePlan","addActivePlan","match","hasValues","firstValues","isCompleted","activePlans","JoinObserverPrototype","when","plans","outObserver","observableinterval","observableTimer","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","windowWithTime","timeShiftOrScheduler","timeShift","createTimer","isSpan","isShift","timerD","nextSpan","nextShift","newTotalTime","ts","totalTime","windowWithTimeOrCount","windowId","newId","newWindow","bufferWithTime","bufferWithTimeOrCount","timeInterval","span","sample","intervalOrSampler","schedulerMethod","myId","original","switched","generateWithAbsoluteTime","timeSelector","generateWithRelativeTime","delaySubscription","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","delays","timeoutWithSelector","firstTimeout","timeoutdurationSelector","setTimer","timerWins","observerWins","throttleWithSelector","throttleDurationSelector","currentid","skipLastWithTime","takeLastWithTime","takeLastBufferWithTime","takeWithTime","skipWithTime","open","skipUntilWithTime","startTime","takeUntilWithTime","endTime","exclusive","hasCurrent","exclusiveMap","transduce","transducer","transformForObserver","init","step","obs","input","xform","VirtualTimeScheduler","notImplemented","localNow","toDateTimeOffset","clock","scheduleAbsoluteWithState","scheduleRelativeWithState","toRelative","initialClock","isEnabled","VirtualTimeSchedulerPrototype","runAt","getNext","stop","advanceTo","dueToClock","advanceBy","sleep","HistoricalScheduler","cmp","HistoricalSchedulerProto","absolute","relative","fixSubscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","underlyingObservable","mergedDisposable","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.all.compat.min.js","sources":["rx.all.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","extremaBy","keySelector","hasValue","lastKey","list","comparison","ex1","firstOnly","sequenceContainsNoElements","sequenceEqualArray","equal","elementAtOrDefault","hasDefault","defaultValue","argumentOutOfRange","singleOrDefaultAsync","seenValue","firstOrDefaultAsync","lastOrDefaultAsync","findValue","predicate","yieldIndex","shouldRun","toThunk","obj","ctx","objectToThunk","isGeneratorFunction","observableSpawn","isGenerator","isObservable","observableToThunk","promiseToThunk","fnString","done","run","fn","finished","results","pending","err","res","keys","timeoutScheduler","schedule","observable","v","promise","then","name","next","throwString","val","error","fixEvent","event","stopPropagation","cancelBubble","preventDefault","bubbledKeyCode","keyCode","ctrlKey","defaultPrevented","returnValue","modified","target","srcElement","relatedTarget","fromElement","toElement","c","charCode","keyChar","fromCharCode","createListener","element","addEventListener","disposableCreate","removeEventListener","attachEvent","innerHandler","detachEvent","createEventListener","el","eventName","disposables","CompositeDisposable","add","combineLatestSource","subject","values","hasValueAll","every","identity","apply","isDone","n","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBounaries","windowBoundaries","Subject","r","RefCountDisposable","addRef","observableWindowWithClosingSelector","createWindowClose","windowClose","m1","m","take","noop","enumerableWhile","condition","Enumerable","Enumerator","Pattern","patterns","Plan","expression","planCreateObserver","externalSubscriptions","entry","get","JoinObserver","ActivePlan","joinObserverArray","joinObservers","Map","joinObserver","observableTimerDate","dueTime","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","atEnd","newValue","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","not","asArray","arguments","isFn","Symbol","iterator","Set","doneEnumerator","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","sources","prop","xs","getDisposable","Function","that","bound","F","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","fun","split","thisp","filter","t","arg","indexOf","searchElement","Number","Infinity","compareTo","other","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","ScheduledItem","state","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","_next","_iterator","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","fromPromise","AsyncSubject","toPromise","promiseCtor","resolve","reject","arr","createWithDisposable","defer","observableFactory","observableThrow","pow","from","iterable","mapFn","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","iterate","hasResult","observableNever","ofWithScheduler","never","range","observableReturn","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","createWindow","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","found","retValue","distinct","hashSet","groupBy","elementSelector","groupByUntil","durationSelector","handleError","Dictionary","groupDisposable","getValues","fireNewMapEntry","writer","tryGetValue","GroupedObservable","durationGroup","duration","md","expire","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","RangeError","takeWhile","finalValue","aggregate","reduce","some","any","isEmpty","all","contains","fromIndex","sum","prev","curr","minBy","min","maxBy","average","cur","sequenceEqual","donel","doner","ql","qr","subscription1","subscription2","elementAt","single","singleOrDefault","firstOrDefault","last","lastOrDefault","find","findIndex","toSet","toMap","spawn","isGenFun","exit","ret","gen","called","hasCallback","denodify","cb","context","observableToAsync","toAsync","fromCallback","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","startAsync","functionAsync","PausableObservable","conn","connection","pausable","pauser","connect","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","multicast","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","subjectOrSubjectSelector","connectable","ConnectableObservable","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","InnerSubscription","observers","hasObservers","os","createRemovableDisposable","so","_trim","hasError","windowSize","MAX_VALUE","interval","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","isPrime","candidate","num1","sqrt","num2","getPrime","num","primes","stringHashFn","str","hash","character","charCodeAt","numberHashFn","c2","newEntry","hashCode","_initialize","freeCount","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","dictionaryProto","prime","buckets","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","clear","_findEntry","containskey","join","leftDurationSelector","rightDurationSelector","leftDone","rightDone","leftId","rightId","leftMap","rightMap","buffer","windowOpeningsOrClosingSelector","pairwise","hasPrevious","partition","published","letBind","ifThen","thenSource","elseSourceOrScheduler","forIn","observableWhileDo","whileDo","doWhile","switchCase","defaultSourceOrScheduler","expand","forkJoin","allSources","subscriber","hasResults","ix","lastLeft","lastRight","leftStopped","rightStopped","hasLeft","hasRight","manySelect","chain","ChainObservable","g","head","tail","_keys","_values","and","thenDo","activate","deactivate","activePlan","jlen","removeActivePlan","addActivePlan","match","hasValues","firstValues","isCompleted","activePlans","JoinObserverPrototype","when","plans","outObserver","observableinterval","observableTimer","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","windowWithTime","timeShiftOrScheduler","timeShift","createTimer","isSpan","isShift","timerD","nextSpan","nextShift","newTotalTime","ts","totalTime","windowWithTimeOrCount","windowId","newId","newWindow","bufferWithTime","bufferWithTimeOrCount","timeInterval","span","sample","intervalOrSampler","schedulerMethod","myId","original","switched","generateWithAbsoluteTime","timeSelector","generateWithRelativeTime","delaySubscription","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","delays","timeoutWithSelector","firstTimeout","timeoutdurationSelector","setTimer","timerWins","observerWins","throttleWithSelector","throttleDurationSelector","currentid","skipLastWithTime","takeLastWithTime","takeLastBufferWithTime","takeWithTime","skipWithTime","open","skipUntilWithTime","startTime","takeUntilWithTime","endTime","exclusive","hasCurrent","exclusiveMap","transduce","transducer","transformForObserver","init","step","obs","input","xform","VirtualTimeScheduler","notImplemented","localNow","toDateTimeOffset","clock","scheduleAbsoluteWithState","scheduleRelativeWithState","toRelative","initialClock","isEnabled","VirtualTimeSchedulerPrototype","runAt","getNext","stop","advanceTo","dueToClock","advanceBy","sleep","HistoricalScheduler","cmp","HistoricalSchedulerProto","absolute","relative","fixSubscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","underlyingObservable","mergedDisposable","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.all.compat.min.js b/dist/rx.all.compat.min.js index 3f06b1168..48a07cfc4 100644 --- a/dist/rx.all.compat.min.js +++ b/dist/rx.all.compat.min.js @@ -1,5 +1,5 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(zb)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;Wb.nonEnumArgs&&a.length&&h(a)&&(a=Yb.call(a));var d=Wb.enumPrototypes&&"function"==typeof a,e=Wb.enumErrorProps&&(a===Qb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(Wb.nonEnumShadows&&a!==Rb){var g=a.constructor,i=-1,j=Ub.length;if(a===(g&&g.prototype))var k=a===stringProto?Mb:a===Qb?Hb:Nb.call(a),l=Vb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Yb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&hb.isFinite(a)}function o(b){return b[Ab]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>Tc?Tc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new zd(function(c){var d=new jc,e=new kc;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}ub(f)&&(f=Qc(f)),d=new jc,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new zd(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e}).mergeObservable()}function y(a,b,c){return new zd(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function z(a){if(0===a.length)throw new Error(xb);return a[0]}function A(a,b,c){return new zd(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function B(a,b,c,d){if(0>b)throw new Error(yb);return new zd(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(yb))})})}function C(a,b,c){return new zd(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(xb))})})}function D(a,b,c){return new zd(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(xb))})})}function E(a,b,c){return new zd(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(xb))})})}function F(b,c,d,e){return new zd(function(f){var g=0;return b.subscribe(function(a){var h;try{h=c.call(d,a,g,b)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:a),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:a),f.onCompleted()})})}function G(a,b){return Array.isArray(a)?H.call(b,a):L(a)?ed(a.call(b)):M(a)?ed(a):K(a)?I(a):ub(a)?J(a):typeof a===cd?a:c(a)||Array.isArray(a)?H.call(b,a):a}function H(a){var b=this;return function(c){function d(a,d){if(!e)try{if(a=G(a,b),typeof a!==cd)return h[d]=a,--g||c(null,h);a.call(b,function(a,b){if(!e){if(a)return e=!0,c(a);h[d]=b,--g||c(null,h)}})}catch(f){e=!0,c(f)}}var e,f=Object.keys(a),g=f.length,h=new a.constructor;if(!g)return void xc.schedule(function(){c(null,h)});for(var i=0,j=f.length;j>i;i++)d(a[f[i]],f[i])}}function I(a){return function(b){var c,d=!1;a.subscribe(function(a){c=a,d=!0},b,function(){d&&b(null,c)})}}function J(a){return function(b){a.then(function(a){b(null,a)},b)}}function K(a){return a&&typeof a.subscribe===cd}function L(a){return a&&a.constructor&&"GeneratorFunction"===a.constructor.name}function M(a){return a&&typeof a.next===cd&&typeof a[dd]===cd}function c(a){return a&&a.constructor===Object}function N(a){a&&xc.schedule(function(){throw a})}function O(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=hb.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function P(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),hc(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(O(a))};return a.attachEvent("on"+b,d),hc(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,hc(function(){a["on"+b]=null})}function Q(a,b,c){var d=new ec;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(Q(a.item(e),b,c));else a&&d.add(P(a,b,c));return d}function R(a,b,c){return new zd(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(pb))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new ec(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}function S(a,b){return a.groupJoin(this,b,Sc,function(a,b){return b})}function T(a){var b=this;return new zd(function(c){var d=new Cd,e=new ec,f=new lc(e);return c.onNext(_b(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),ub(a)&&(a=Qc(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new Cd,c.onNext(_b(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f})}function U(a){var b=this;return new zd(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}ub(b)&&(b=Qc(b));var i=new jc;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(nb,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new Cd,c.onNext(_b(h,g)),d()}))}var e=new kc,f=new ec(e),g=new lc(f),h=new Cd;return c.onNext(_b(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g})}function V(b,c){return new Ec(function(){return new Dc(function(){return b()?{done:!1,value:c}:{done:!0,value:a}})})}function W(a){this.patterns=a}function X(a,b){this.expression=a,this.selector=b}function Y(a,b,c){var d=a.get(b);if(!d){var e=new wd(b,c);return a.set(b,e),e}return d}function Z(a,b,c){this.joinObserverArray=a,this.onNext=b,this.onCompleted=c,this.joinObservers=new vd;for(var d=0,e=this.joinObserverArray.length;e>d;d++){var f=this.joinObserverArray[d];this.joinObservers.set(f,f)}}function $(a,b){return new zd(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function _(a,b,c){return new zd(function(d){var e=0,f=a,g=oc(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function ab(a,b){return new zd(function(c){return b.scheduleWithRelative(oc(a),function(){c.onNext(0),c.onCompleted()})})}function bb(a,b,c){return a===b?new zd(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):Rc(function(){return _(c.now()+a,b,c)})}function db(a,b,c){return new zd(function(d){var e,f=!1,g=new kc,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new jc,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new ec(e,g)})}function eb(a,b,c){return Rc(function(){return db(a,b-c.now(),c)})}function fb(a,b){return new zd(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new ec(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}var gb={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},hb=gb[typeof window]&&window||this,ib=gb[typeof exports]&&exports&&!exports.nodeType&&exports,jb=gb[typeof module]&&module&&!module.nodeType&&module,kb=jb&&jb.exports===ib&&ib,lb=gb[typeof global]&&global;!lb||lb.global!==lb&&lb.window!==lb||(hb=lb);var mb={internals:{},config:{Promise:hb.Promise},helpers:{}},nb=mb.helpers.noop=function(){},ob=(mb.helpers.notDefined=function(a){return"undefined"==typeof a},mb.helpers.isScheduler=function(a){return a instanceof mb.Scheduler}),pb=mb.helpers.identity=function(a){return a},qb=(mb.helpers.pluck=function(a){return function(b){return b[a]}},mb.helpers.just=function(a){return function(){return a}},mb.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),rb=mb.helpers.defaultComparer=function(a,b){return Xb(a,b)},sb=mb.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},tb=(mb.helpers.defaultKeySerializer=function(a){return a.toString()},mb.helpers.defaultError=function(a){throw a}),ub=mb.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},vb=(mb.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},mb.helpers.not=function(a){return!a}),wb=mb.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Nb.call(a)}),a}(),xb="Sequence contains no elements.",yb="Argument out of range",zb="Object has been disposed",Ab="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";hb.Set&&"function"==typeof(new hb.Set)["@@iterator"]&&(Ab="@@iterator");var Bb=mb.doneEnumerator={done:!0,value:a};mb.iterator=Ab;var Cb,Db="[object Arguments]",Eb="[object Array]",Fb="[object Boolean]",Gb="[object Date]",Hb="[object Error]",Ib="[object Function]",Jb="[object Number]",Kb="[object Object]",Lb="[object RegExp]",Mb="[object String]",Nb=Object.prototype.toString,Ob=Object.prototype.hasOwnProperty,Pb=Nb.call(arguments)==Db,Qb=Error.prototype,Rb=Object.prototype,Sb=Rb.propertyIsEnumerable;try{Cb=!(Nb.call(document)==Kb&&!({toString:0}+""))}catch(Tb){Cb=!0}var Ub=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Vb={};Vb[Eb]=Vb[Gb]=Vb[Jb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Vb[Fb]=Vb[Mb]={constructor:!0,toString:!0,valueOf:!0},Vb[Hb]=Vb[Ib]=Vb[Lb]={constructor:!0,toString:!0},Vb[Kb]={constructor:!0};var Wb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Wb.enumErrorProps=Sb.call(Qb,"message")||Sb.call(Qb,"name"),Wb.enumPrototypes=Sb.call(a,"prototype"),Wb.nonEnumArgs=0!=c,Wb.nonEnumShadows=!/valueOf/.test(b)}(1),Pb||(h=function(a){return a&&"object"==typeof a?Ob.call(a,"callee"):!1});var Xb=mb.internals.isEqual=function(a,b){return i(a,b,[],[])},Yb=Array.prototype.slice,Zb=({}.hasOwnProperty,this.inherits=mb.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),$b=mb.internals.addProperties=function(a){for(var b=Yb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},_b=mb.internals.addRef=function(a,b){return new zd(function(c){return new ec(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Yb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Yb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Yb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var ac=Object("a"),bc="a"!=ac[0]||!(0 in ac);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=bc&&{}.toString.call(this)==Mb?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=Ib)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=bc&&{}.toString.call(this)==Mb?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=Ib)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==Eb}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var cc=mb.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},dc=cc.prototype;dc.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},dc.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},dc.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},fc.toArray=function(){return this.disposables.slice(0)};var gc=mb.Disposable=function(a){this.isDisposed=!1,this.action=a||nb};gc.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var hc=gc.create=function(a){return new gc(a)},ic=gc.empty={dispose:nb},jc=mb.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),kc=mb.SerialDisposable=jc,lc=mb.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?ic:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var mc=mb.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||sb,this.disposable=new jc};mc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},mc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},mc.prototype.isCancelled=function(){return this.disposable.isDisposed},mc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var nc=mb.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),ic}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=qb,a.normalize=function(a){return 0>a&&(a=0),a},a}(),oc=nc.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new ec,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),ic});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new ec,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),ic});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(nc.prototype),function(){nc.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},nc.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof hb.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=hb.setInterval(function(){d=c(d)},b);return hc(function(){hb.clearInterval(e)})}}(nc.prototype),function(a){a.catchError=a["catch"]=function(a){return new yc(this,a)}}(nc.prototype);var pc,qc=mb.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new jc;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),rc=nc.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=oc(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new nc(qb,a,b,c)}(),sc=nc.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-nc.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+nc.normalize(c),g=new mc(this,b,d,f);if(e)e.enqueue(g);else{e=new cc(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new nc(qb,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),tc=nb,uc=function(){var a,b=nb;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!hb.setTimeout)throw new Error("No concurrency detected!");a=hb.setTimeout,b=hb.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),vc=uc.setTimeout,wc=uc.clearTimeout;!function(){function a(){if(!hb.postMessage||hb.importScripts)return!1;var a=!1,b=hb.onmessage;return hb.onmessage=function(){a=!0},hb.postMessage("","*"),hb.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(Nb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=lb&&kb&&lb.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=lb&&kb&&lb.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))pc=process.nextTick;else if("function"==typeof d)pc=d,tc=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;hb.addEventListener?hb.addEventListener("message",b,!1):hb.attachEvent("onmessage",b,!1),pc=function(a){var b=h++;g[b]=a,hb.postMessage(f+b,"*")}}else if(hb.MessageChannel){var i=new hb.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},pc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in hb&&"onreadystatechange"in hb.document.createElement("script")?pc=function(a){var b=hb.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},hb.document.documentElement.appendChild(b)}:(pc=function(a){return vc(a,0)},tc=wc)}();var xc=nc.timeout=function(){function a(a,b){var c=this,d=new jc,e=pc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new ec(d,hc(function(){tc(e)}))}function b(a,b,c){var d=this,e=nc.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new jc,g=vc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new ec(f,hc(function(){wc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new nc(qb,a,b,c)}(),yc=function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Zb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return ic}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new jc;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(nc),zc=mb.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return ob(a)||(a=rc),new zd(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ac=zc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new zc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Bc=zc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new zc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Cc=zc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new zc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Dc=mb.internals.Enumerator=function(a){this._next=a};Dc.prototype.next=function(){return this._next()},Dc.prototype[Ab]=function(){return this};var Ec=mb.internals.Enumerable=function(a){this._iterator=a};Ec.prototype[Ab]=function(){return this._iterator()},Ec.prototype.concat=function(){var a=this;return new zd(function(b){var c;try{c=a[Ab]()}catch(d){return void b.onError()}var e,f=new kc,g=rc.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;ub(h)&&(h=Qc(h));var i=new jc;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new ec(f,g,hc(function(){e=!0}))})},Ec.prototype.catchException=function(){var a=this;return new zd(function(b){var c;try{c=a[Ab]()}catch(d){return void b.onError()}var e,f,g=new kc,h=rc.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;ub(i)&&(i=Qc(i));var j=new jc;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new ec(g,h,hc(function(){e=!0}))})};var Fc=Ec.repeat=function(a,b){return null==b&&(b=-1),new Ec(function(){var c=b;return new Dc(function(){return 0===c?Bb:(c>0&&c--,{done:!1,value:a})})})},Gc=Ec.of=function(a,b,c){return b||(b=pb),new Ec(function(){var d=-1;return new Dc(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Kc),Oc=function(a){function b(){a.apply(this,arguments)}return Zb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Nc),Pc=mb.Observable=function(){function a(a){this._subscribe=a}return Jc=a.prototype,Jc.subscribe=Jc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Ic(a,b,c))},Jc.subscribeOnNext=function(a,b){return this._subscribe(Ic(2===arguments.length?function(c){a.call(b,c)}:a))},Jc.subscribeOnError=function(a,b){return this._subscribe(Ic(null,2===arguments.length?function(c){a.call(b,c)}:a))},Jc.subscribeOnCompleted=function(a,b){return this._subscribe(Ic(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Jc.observeOn=function(a){var b=this;return new zd(function(c){return b.subscribe(new Oc(a,c))})},Jc.subscribeOn=function(a){var b=this;return new zd(function(c){var d=new jc,e=new kc;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var Qc=Pc.fromPromise=function(a){return Rc(function(){var b=new mb.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Jc.toPromise=function(a){if(a||(a=mb.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Jc.toArray=function(){var a=this;return new zd(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},Pc.create=Pc.createWithDisposable=function(a){return new zd(a)};var Rc=Pc.defer=function(a){return new zd(function(b){var c;try{c=a()}catch(d){return Yc(d).subscribe(b)}return ub(c)&&(c=Qc(c)),c.subscribe(b)})},Sc=Pc.empty=function(a){return ob(a)||(a=rc),new zd(function(b){return a.schedule(function(){b.onCompleted()})})},Tc=Math.pow(2,53)-1,Uc=Pc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return ob(d)||(d=sc),new zd(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Ab]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},Vc=Pc.fromArray=function(a,b){return ob(b)||(b=sc),new zd(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};Pc.generate=function(a,b,c,d,e){return ob(e)||(e=sc),new zd(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})},Pc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Vc(b)};var Wc=(Pc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return Vc(c,a)},Pc.never=function(){return new zd(function(){return ic})});Pc.range=function(a,b,c){return ob(c)||(c=sc),new zd(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},Pc.repeat=function(a,b,c){return ob(c)||(c=sc),Xc(a,c).repeat(null==b?-1:b)};var Xc=Pc["return"]=Pc.returnValue=Pc.just=function(a,b){return ob(b)||(b=rc),new zd(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},Yc=Pc["throw"]=Pc.throwException=Pc.throwError=function(a,b){return ob(b)||(b=rc),new zd(function(c){return b.schedule(function(){c.onError(a)})})};Pc.using=function(a,b){return new zd(function(c){var d,e,f=ic;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new ec(Yc(g).subscribe(c),f)}return new ec(e.subscribe(c),f)})},Jc.amb=function(a){var b=this;return new zd(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new jc,j=new jc;return ub(a)&&(a=Qc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new ec(i,j)})},Pc.amb=function(){function a(a,b){return a.amb(b)}for(var b=Wc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Jc["catch"]=Jc.catchError=Jc.catchException=function(a){return"function"==typeof a?s(this,a):Zc([this,a])};var Zc=Pc.catchException=Pc.catchError=Pc["catch"]=function(){return Gc(j(arguments,0)).catchException()};Jc.combineLatest=function(){var a=Yb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),$c.apply(this,a)};var $c=Pc.combineLatest=function(){var a=Yb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new zd(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(pb))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(pb)&&c.onCompleted()}function e(a){j[a]=!0,j.every(pb)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new jc;ub(f)&&(f=Qc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new ec(m)})};Jc.concat=function(){var a=Yb.call(arguments,0);return a.unshift(this),_c.apply(this,a)};var _c=Pc.concat=function(){return Gc(j(arguments,0)).concat()};Jc.concatObservable=Jc.concatAll=function(){return this.merge(1)},Jc.merge=function(a){if("number"!=typeof a)return ad(this,a);var b=this;return new zd(function(c){function d(a){var b=new jc;f.add(b),ub(a)&&(a=Qc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new ec,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var ad=Pc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=Yb.call(arguments,1)):(a=rc,b=Yb.call(arguments,0)):(a=rc,b=Yb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),Vc(b,a).mergeObservable()};Jc.mergeObservable=Jc.mergeAll=function(){var a=this;return new zd(function(b){var c=new ec,d=!1,e=new jc;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new jc;c.add(e),ub(a)&&(a=Qc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Jc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return bd([this,a])};var bd=Pc.onErrorResumeNext=function(){var a=j(arguments,0);return new zd(function(b){var c=0,d=new kc,e=rc.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(pb)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new jc;ub(c)&&(c=Qc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new ec(j)})},Pc.zip=function(){var a=Yb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},Pc.zipArray=function(){var a=j(arguments,0);return new zd(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(pb))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(pb)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new jc,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new ec(h);return j.add(hc(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Jc.asObservable=function(){return new zd(this.subscribe.bind(this))},Jc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Jc.dematerialize=function(){var a=this;return new zd(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.distinctUntilChanged=function(a,b){var c=this;return a||(a=pb),b||(b=rb),new zd(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Jc["do"]=Jc.doAction=Jc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new zd(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Jc.doOnNext=Jc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Jc.doOnError=Jc.tapOnError=function(a,b){return this.tap(nb,2===arguments.length?function(c){a.call(b,c)}:a)},Jc.doOnCompleted=Jc.tapOnCompleted=function(a,b){return this.tap(nb,null,2===arguments.length?function(){a.call(b)}:a)},Jc["finally"]=Jc.finallyAction=function(a){var b=this;return new zd(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return hc(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Jc.ignoreElements=function(){var a=this;return new zd(function(b){return a.subscribe(nb,b.onError.bind(b),b.onCompleted.bind(b))})},Jc.materialize=function(){var a=this;return new zd(function(b){return a.subscribe(function(a){b.onNext(Ac(a))},function(a){b.onNext(Bc(a)),b.onCompleted()},function(){b.onNext(Cc()),b.onCompleted()})})},Jc.repeat=function(a){return Fc(this,a).concat()},Jc.retry=function(a){return Fc(this,a).catchException()},Jc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new zd(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Jc.skipLast=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Jc.startWith=function(){var a,b,c=0;return arguments.length&&ob(arguments[0])?(b=arguments[0],c=1):b=rc,a=Yb.call(arguments,c),Gc([Vc(a,b),this]).concat()},Jc.takeLast=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Jc.takeLastBuffer=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Jc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(yb);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(yb);return new zd(function(d){function e(){var a=new Cd;i.push(a),d.onNext(_b(a,g))}var f=new jc,g=new lc(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Jc.selectConcat=Jc.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Jc.concatMapObserver=Jc.selectConcatObserver=function(a,b,c,d){var e=this;return new zd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}ub(a)&&(a=Qc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Jc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new zd(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Jc.distinct=function(a,b){var c=this;return b||(b=rb),new zd(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.groupBy=function(a,b,c){return this.groupByUntil(a,b,Wc,c)},Jc.groupByUntil=function(a,b,c,d){var e=this;return b||(b=pb),d||(d=rb),new zd(function(f){function g(a){return function(b){b.onError(a)}}var h=new sd(0,d),i=new ec,j=new lc(i);return i.add(e.subscribe(function(d){var e;try{e=a(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}var l=!1,m=h.tryGetValue(e);if(m||(m=new Cd,h.set(e,m),l=!0),l){var n=new Bd(e,m,j),o=new Bd(e,m);try{duration=c(o)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}f.onNext(n);var p=new jc;i.add(p);var q=function(){h.remove(e)&&m.onCompleted(),i.remove(p)};p.setDisposable(duration.take(1).subscribe(nb,function(a){h.getValues().forEach(g(a)),f.onError(a)},q))}var r;try{r=b(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}m.onNext(r)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),j})},Jc.select=Jc.map=function(a,b){var c=this;return new zd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.pluck=function(a){return this.map(function(b){return b[a]})},Jc.selectMany=Jc.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Jc.flatMapObserver=Jc.selectManyObserver=function(a,b,c,d){var e=this;return new zd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}ub(a)&&(a=Qc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Jc.selectSwitch=Jc.flatMapLatest=Jc.switchMap=function(a,b){return this.select(a,b).switchLatest()},Jc.skip=function(a){if(0>a)throw new Error(yb);var b=this;return new zd(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Jc.skipWhile=function(a,b){var c=this;return new zd(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.take=function(a,b){if(0>a)throw new RangeError(yb);if(0===a)return Sc(b);var c=this;return new zd(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.takeWhile=function(a,b){var c=this;return new zd(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.where=Jc.filter=function(a,b){var c=this;return new zd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.finalValue=function(){var a=this;return new zd(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(xb))})})},Jc.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},Jc.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},Jc.some=Jc.any=function(a,b){var c=this;return a?c.where(a,b).any():new zd(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},Jc.isEmpty=function(){return this.any().map(vb)},Jc.every=Jc.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},Jc.contains=function(a,b){function c(a,b){return 0===a&&0===b||a===b||isNaN(a)&&isNaN(b)}var d=this;return new zd(function(e){var f=0,g=+b||0;return 1/0===Math.abs(g)&&(g=0),0>g?(e.onNext(!1),e.onCompleted(),ic):d.subscribe(function(b){f++>=g&&c(b,a)&&(e.onNext(!0),e.onCompleted())},e.onError.bind(e),function(){e.onNext(!1),e.onCompleted()})})},Jc.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},Jc.indexOf=function(a,b){var c=this;return new zd(function(d){var e=0,f=+b||0;return 1/0===Math.abs(f)&&(f=0),0>f?(d.onNext(-1),d.onCompleted(),ic):c.subscribe(function(b){e>=f&&b===a&&(d.onNext(e),d.onCompleted()),e++},d.onError.bind(d),function(){d.onNext(-1),d.onCompleted()})})},Jc.sum=function(a,b){return a&&wb(a)?this.map(a,b).sum():this.aggregate(0,function(a,b){return a+b})},Jc.minBy=function(a,b){return b||(b=sb),y(this,a,function(a,c){return-1*b(a,c)})},Jc.min=function(a){return this.minBy(pb,a).select(function(a){return z(a)})},Jc.maxBy=function(a,b){return b||(b=sb),y(this,a,b)},Jc.max=function(a){return this.maxBy(pb,a).select(function(a){return z(a)})},Jc.average=function(a,b){return a&&wb(a)?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().map(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},Jc.sequenceEqual=function(a,b){var c=this;return b||(b=rb),Array.isArray(a)?A(c,a,b):new zd(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});ub(a)&&(a=Qc(a));var j=a.subscribe(function(a){var c;if(g.length>0){var f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new ec(i,j)})},Jc.elementAt=function(a){return B(this,a,!1)},Jc.elementAtOrDefault=function(a,b){return B(this,a,!0,b)},Jc.single=function(a,b){return a&&wb(a)?this.where(a,b).single():C(this,!1)},Jc.singleOrDefault=function(a,b,c){return a&&wb(a)?this.where(a,c).singleOrDefault(null,b):C(this,!0,b)},Jc.first=function(a,b){return a?this.where(a,b).first():D(this,!1)},Jc.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):D(this,!0,b)},Jc.last=function(a,b){return a?this.where(a,b).last():E(this,!1)},Jc.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):E(this,!0,b)},Jc.find=function(a,b){return F(this,a,b,!1)},Jc.findIndex=function(a,b){return F(this,a,b,!0)},hb.Set&&(Jc.toSet=function(){var a=this;return new zd(function(b){var c=new hb.Set;return a.subscribe(c.add.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})}),hb.Map&&(Jc.toMap=function(a,b){var c=this;return new zd(function(d){var e=new hb.Map;return c.subscribe(function(c){var f;try{f=a(c)}catch(g){return void d.onError(g)}var h=c;if(b)try{h=b(c)}catch(g){return void d.onError(g)}e.set(f,h)},d.onError.bind(d),function(){d.onNext(e),d.onCompleted()})})});var cd="function",dd="throw",ed=mb.spawn=function(a){var b=L(a);return function(c){function d(a,b){xc.schedule(c.bind(f,a,b))}function e(a,b){var c;if(arguments.length>2&&(b=Yb.call(arguments,1)),a)try{c=g[dd](a)}catch(h){return d(h)}if(!a)try{c=g.next(b)}catch(h){return d(h)}if(c.done)return d(null,c.value);if(c.value=G(c.value,f),typeof c.value!==cd)e(new TypeError("Rx.spawn only supports a function, Promise, Observable, Object or Array."));else{var i=!1;try{c.value.call(f,function(){i||(i=!0,e.apply(f,arguments))})}catch(h){xc.schedule(function(){i||(i=!0,e.call(f,h))})}}}var f=this,g=a;if(b){var h=Yb.call(arguments),i=h.length,j=i&&typeof h[i-1]===cd;c=j?h.pop():N,g=a.apply(this,h)}else c=c||N;e()}};mb.denodify=function(a){return function(){var b,c,d,e=Yb.call(arguments);return e.push(function(){b=arguments,d&&!c&&(c=!0,cb.apply(this,b))}),a.apply(this,e),function(a){d=a,b&&!c&&(c=!0,a.apply(this,b))}}},Pc.start=function(a,b,c){return fd(a,b,c)()};var fd=Pc.toAsync=function(a,b,c){return ob(c)||(c=xc),function(){var d=arguments,e=new Dd;return c.schedule(function(){var c;try{c=a.apply(b,d)}catch(f){return void e.onError(f)}e.onNext(c),e.onCompleted()}),e.asObservable()}};Pc.fromCallback=function(a,b,c){return function(){var d=Yb.call(arguments,0);return new zd(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},Pc.fromNodeCallback=function(a,b,c){return function(){var d=Yb.call(arguments,0);return new zd(function(e){function f(a){if(a)return void e.onError(a);var b=Yb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},mb.config.useNativeEvents=!1;var gd=hb.angular&&angular.element?angular.element:hb.jQuery?hb.jQuery:hb.Zepto?hb.Zepto:null,hd=!!hb.Ember&&"function"==typeof hb.Ember.addListener,id=!!hb.Backbone&&!!hb.Backbone.Marionette;Pc.fromEvent=function(a,b,c){if(a.addListener)return jd(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!mb.config.useNativeEvents){if(id)return jd(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(hd)return jd(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(gd){var d=gd(a);return jd(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new zd(function(d){return Q(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var jd=Pc.fromEventPattern=function(a,b,c){return new zd(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return hc(function(){b&&b(e,f)})}).publish().refCount()};Pc.startAsync=function(a){var b;try{b=a()}catch(c){return Yc(c)}return Qc(b)};var kd=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=ic,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=ic)});return new ec(c,d,e)}function c(c,d){this.source=c,this.controller=new Cd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return Zb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(Pc);Jc.pausable=function(a){return new kd(this,a)};var ld=function(b){function c(b){var c,d=[],e=R(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Cd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return Zb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(Pc);Jc.pausableBuffered=function(a){return new ld(this,a)},Jc.controlled=function(a){return null==a&&(a=!0),new md(this,a)};var md=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new nd(d),this.source=c.multicast(this.subject).refCount()}return Zb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(Pc),nd=mb.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Cd,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=ic,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=ic}return Zb(d,a),$b(d.prototype,Hc,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=ic):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=ic),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?ic:(this.requestedCount=a,this.requestedDisposable=hc(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=ic},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(Pc);Jc.multicast=function(a,b){var c=this;return"function"==typeof a?new zd(function(d){var e=c.multicast(a());return new ec(b(e).subscribe(d),e.connect())}):new rd(c,a)},Jc.publish=function(a){return a&&wb(a)?this.multicast(function(){return new Cd},a):this.multicast(new Cd)},Jc.share=function(){return this.publish().refCount()},Jc.publishLast=function(a){return a&&wb(a)?this.multicast(function(){return new Dd},a):this.multicast(new Dd)},Jc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new pd(b)},a):this.multicast(new pd(a))},Jc.shareValue=function(a){return this.publishValue(a).refCount()},Jc.replay=function(a,b,c,d){return a&&wb(a)?this.multicast(function(){return new qd(b,c,d)},a):this.multicast(new qd(b,c,d))},Jc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var od=function(a,b){this.subject=a,this.observer=b};od.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var pd=mb.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new od(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),ic}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(Pc),qd=mb.ReplaySubject=function(a){function c(a,b){return hc(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new Nc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||sc,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return Zb(e,a),$b(e.prototype,Hc,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift(); -for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(Pc),rd=mb.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new ec(f.subscribe(c),hc(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return Zb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new zd(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(Pc),sd=function(){function b(a){if(a&!1)return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function c(a){var c,d,e;for(c=0;c=a)return d;for(e=1|a;ec;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new Error("out of range");a>0&&this._initialize(a),this.comparer=b||rb,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return d(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return d(b.toString());if("function"==typeof b.valueOf){var c=b.valueOf();if("number"==typeof c)return e(c);if("string"==typeof b)return d(c)}if(b.getHashCode)return b.getHashCode();var f=17*a++;return b.getHashCode=function(){return f},f}}(),l=g.prototype;return l._initialize=function(a){var b,d=c(a);for(this.buckets=new Array(d),this.entries=new Array(d),b=0;d>b;b++)this.buckets[b]=-1,this.entries[b]=f();this.freeList=-1},l.add=function(a,b){return this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=c(2*this.size),b=new Array(a);for(e=0;ee;++e)d[e]=f();for(var g=0;g=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(b){var c=this._findEntry(b);return c>=0?this.entries[c].value:a},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();Jc.join=function(a,b,c,d){var e=this;return new zd(function(f){var g=new ec,h=!1,i=!1,j=0,k=0,l=new sd,m=new sd;return g.add(e.subscribe(function(a){var c=j++,e=new jc;l.add(c,a),g.add(e);var i,k=function(){l.remove(c)&&0===l.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(n){return void f.onError(n)}e.setDisposable(i.take(1).subscribe(nb,f.onError.bind(f),k)),m.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(i||0===l.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=k++,e=new jc;m.add(b,a),g.add(e);var h,j=function(){m.remove(b)&&0===m.count()&&i&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(n){return void f.onError(n)}e.setDisposable(h.take(1).subscribe(nb,f.onError.bind(f),j)),l.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){i=!0,(h||0===m.count())&&f.onCompleted()})),g})},Jc.groupJoin=function(a,b,c,d){var e=this;return new zd(function(f){function g(a){return function(b){b.onError(a)}}var h=new ec,i=new lc(h),j=new sd,k=new sd,l=0,m=0;return h.add(e.subscribe(function(a){var c=new Cd,e=l++;j.add(e,c);var m;try{m=d(a,_b(c,i))}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}f.onNext(m),k.getValues().forEach(function(a){c.onNext(a)});var o=new jc;h.add(o);var p,q=function(){j.remove(e)&&c.onCompleted(),h.remove(o)};try{p=b(a)}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}o.setDisposable(p.take(1).subscribe(nb,function(a){j.getValues().forEach(g(a)),f.onError(a)},q))},function(a){j.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=m++;k.add(b,a);var d=new jc;h.add(d);var e,i=function(){k.remove(b),h.remove(d)};try{e=c(a)}catch(l){return j.getValues().forEach(g(l)),void f.onError(l)}d.setDisposable(e.take(1).subscribe(nb,function(a){j.getValues().forEach(g(a)),f.onError(a)},i)),j.getValues().forEach(function(b){b.onNext(a)})},function(a){j.getValues().forEach(g(a)),f.onError(a)})),i})},Jc.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},Jc.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?T.call(this,a):"function"==typeof a?U.call(this,a):S.call(this,a,b)},Jc.pairwise=function(){var a=this;return new zd(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.partition=function(a,b){var c=this.publish().refCount();return[c.filter(a,b),c.filter(function(c,d,e){return!a.call(b,c,d,e)})]},Jc.letBind=Jc.let=function(a){return a(this)},Pc["if"]=Pc.ifThen=function(a,b,c){return Rc(function(){return c||(c=Sc()),ub(b)&&(b=Qc(b)),ub(c)&&(c=Qc(c)),"function"==typeof c.now&&(c=Sc(c)),a()?b:c})},Pc["for"]=Pc.forIn=function(a,b,c){return Gc(a,b,c).concat()};var td=Pc["while"]=Pc.whileDo=function(a,b){return ub(b)&&(b=Qc(b)),V(a,b).concat()};Jc.doWhile=function(a){return _c([this,td(a,this)])},Pc["case"]=Pc.switchCase=function(a,b,c){return Rc(function(){ub(c)&&(c=Qc(c)),c||(c=Sc()),"function"==typeof c.now&&(c=Sc(c));var d=b[a()];return ub(d)&&(d=Qc(d)),d||c})},Jc.expand=function(a,b){ob(b)||(b=rc);var c=this;return new zd(function(d){var e=[],f=new kc,g=new ec(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new jc;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g})},Pc.forkJoin=function(){var a=j(arguments,0);return new zd(function(b){var c=a.length;if(0===c)return b.onCompleted(),ic;for(var d=new ec,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];ub(j)&&(j=Qc(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},Jc.forkJoin=function(a,b){var c=this;return new zd(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new jc,l=new jc;return ub(a)&&(a=Qc(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new ec(k,l)})},Jc.manySelect=function(a,b){ob(b)||(b=rc);var c=this;return Rc(function(){var d;return c.map(function(a){var b=new ud(a);return d&&d.onNext(a),d=b,b}).tap(nb,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).map(a)})};var ud=function(a){function b(a){var b=this,c=new ec;return c.add(sc.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeObservable().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new Dd}return Zb(c,a),$b(c.prototype,Hc,{onCompleted:function(){this.onNext(Pc.empty())},onError:function(a){this.onNext(Pc.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(Pc),vd=hb.Map||function(){function b(){this._keys=[],this._values=[]}return b.prototype.get=function(b){var c=this._keys.indexOf(b);return-1!==c?this._values[c]:a},b.prototype.set=function(a,b){var c=this._keys.indexOf(a);-1!==c&&(this._values[c]=b),this._values[this._keys.push(a)-1]=b},b.prototype.forEach=function(a,b){for(var c=0,d=this._keys.length;d>c;c++)a.call(b,this._values[c],this._keys[c])},b}();W.prototype.and=function(a){return new W(this.patterns.concat(a))},W.prototype.thenDo=function(a){return new X(this,a)},X.prototype.activate=function(a,b,c){for(var d=this,e=[],f=0,g=this.expression.patterns.length;g>f;f++)e.push(Y(a,this.expression.patterns[f],b.onError.bind(b)));var h=new Z(e,function(){var a;try{a=d.selector.apply(d,arguments)}catch(c){return void b.onError(c)}b.onNext(a)},function(){for(var a=0,b=e.length;b>a;a++)e[a].removeActivePlan(h);c(h)});for(f=0,g=e.length;g>f;f++)e[f].addActivePlan(h);return h},Z.prototype.dequeue=function(){this.joinObservers.forEach(function(a){a.queue.shift()})},Z.prototype.match=function(){var a,b,c=!0;for(a=0,b=this.joinObserverArray.length;b>a;a++)if(0===this.joinObserverArray[a].queue.length){c=!1;break}if(c){var d=[],e=!1;for(a=0,b=this.joinObserverArray.length;b>a;a++)d.push(this.joinObserverArray[a].queue[0]),"C"===this.joinObserverArray[a].queue[0].kind&&(e=!0);if(e)this.onCompleted();else{this.dequeue();var f=[];for(a=0,b=d.length;ac;c++)b[c].match()}},c.error=nb,c.completed=nb,c.addActivePlan=function(a){this.activePlans.push(a)},c.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))},c.removeActivePlan=function(a){this.activePlans.splice(this.activePlans.indexOf(a),1),0===this.activePlans.length&&this.dispose()},c.dispose=function(){a.prototype.dispose.call(this),this.isDisposed||(this.isDisposed=!0,this.subscription.dispose())},b}(Kc);Jc.and=function(a){return new W([this,a])},Jc.thenDo=function(a){return new W([this]).thenDo(a)},Pc.when=function(){var a=j(arguments,0);return new zd(function(b){var c=[],d=new vd,e=Ic(b.onNext.bind(b),function(a){d.forEach(function(b){b.onError(a)}),b.onError(a)},b.onCompleted.bind(b));try{for(var f=0,g=a.length;g>f;f++)c.push(a[f].activate(d,e,function(a){var d=c.indexOf(a);c.splice(d,1),0===c.length&&b.onCompleted()}))}catch(h){Yc(h).subscribe(b)}var i=new ec;return d.forEach(function(a){a.subscribe(),i.add(a)}),i})};var xd=Pc.interval=function(a,b){return bb(a,a,ob(b)?b:xc)},yd=Pc.timer=function(b,c,d){var e;return ob(d)||(d=xc),c!==a&&"number"==typeof c?e=c:ob(c)&&(d=c),b instanceof Date&&e===a?$(b.getTime(),d):b instanceof Date&&e!==a?(e=c,_(b.getTime(),e,d)):e===a?ab(b,d):bb(b,e,d)};Jc.delay=function(a,b){return ob(b)||(b=xc),a instanceof Date?eb(this,a.getTime(),b):db(this,a,b)},Jc.throttle=function(a,b){ob(b)||(b=xc);var c=this;return new zd(function(d){var e,f=new kc,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new jc;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new ec(i,f)})},Jc.windowWithTime=function(a,b,c){var d,e=this;return null==b&&(d=a),ob(c)||(c=xc),"number"==typeof b?d=b:ob(b)&&(d=a,c=b),new zd(function(b){function f(){var a=new jc,e=!1,g=!1;l.setDisposable(a),j===i?(e=!0,g=!0):i>j?e=!0:g=!0;var n=e?j:i,o=n-m;m=n,e&&(j+=d),g&&(i+=d),a.setDisposable(c.scheduleWithRelative(o,function(){if(g){var a=new Cd;k.push(a),b.onNext(_b(a,h))}e&&k.shift().onCompleted(),f()}))}var g,h,i=d,j=a,k=[],l=new kc,m=0;return g=new ec(l),h=new lc(g),k.push(new Cd),b.onNext(_b(k[0],h)),f(),g.add(e.subscribe(function(a){for(var b=0,c=k.length;c>b;b++)k[b].onNext(a)},function(a){for(var c=0,d=k.length;d>c;c++)k[c].onError(a);b.onError(a)},function(){for(var a=0,c=k.length;c>a;a++)k[a].onCompleted();b.onCompleted()})),h})},Jc.windowWithTimeOrCount=function(a,b,c){var d=this;return ob(c)||(c=xc),new zd(function(e){function f(b){var d=new jc;g.setDisposable(d),d.setDisposable(c.scheduleWithRelative(a,function(){if(b===k){j=0;var a=++k;l.onCompleted(),l=new Cd,e.onNext(_b(l,i)),f(a)}}))}var g=new kc,h=new ec(g),i=new lc(h),j=0,k=0,l=new Cd;return e.onNext(_b(l,i)),f(0),h.add(d.subscribe(function(a){var c=0,d=!1;l.onNext(a),++j===b&&(d=!0,j=0,c=++k,l.onCompleted(),l=new Cd,e.onNext(_b(l,i))),d&&f(c)},function(a){l.onError(a),e.onError(a)},function(){l.onCompleted(),e.onCompleted()})),i})},Jc.bufferWithTime=function(){return this.windowWithTime.apply(this,arguments).selectMany(function(a){return a.toArray()})},Jc.bufferWithTimeOrCount=function(a,b,c){return this.windowWithTimeOrCount(a,b,c).selectMany(function(a){return a.toArray()})},Jc.timeInterval=function(a){var b=this;return ob(a)||(a=xc),Rc(function(){var c=a.now();return b.map(function(b){var d=a.now(),e=d-c;return c=d,{value:b,interval:e}})})},Jc.timestamp=function(a){return ob(a)||(a=xc),this.map(function(b){return{value:b,timestamp:a.now()}})},Jc.sample=function(a,b){return ob(b)||(b=xc),"number"==typeof a?fb(this,xd(a,b)):fb(this,a)},Jc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Yc(new Error(b||"Timeout"))),ob(c)||(c=xc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(ub(b)&&(b=Qc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new jc,j=new kc,k=!1,l=new kc;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new ec(j,l)})},Pc.generateWithAbsoluteTime=function(a,b,c,d,e,f){return ob(f)||(f=xc),new zd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithAbsolute(f.now(),function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Pc.generateWithRelativeTime=function(a,b,c,d,e,f){return ob(f)||(f=xc),new zd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithRelative(0,function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Jc.delaySubscription=function(a,b){return this.delayWithSelector(yd(a,ob(b)?b:xc),Sc)},Jc.delayWithSelector=function(a,b){var c,d,e=this;return"function"==typeof a?d=a:(c=a,d=b),new zd(function(a){var b=new ec,f=!1,g=function(){f&&0===b.length&&a.onCompleted()},h=new kc,i=function(){h.setDisposable(e.subscribe(function(c){var e;try{e=d(c)}catch(f){return void a.onError(f)}var h=new jc;b.add(h),h.setDisposable(e.subscribe(function(){a.onNext(c),b.remove(h),g()},a.onError.bind(a),function(){a.onNext(c),b.remove(h),g()}))},a.onError.bind(a),function(){f=!0,h.dispose(),g()}))};return c?h.setDisposable(c.subscribe(function(){i()},a.onError.bind(a),function(){i()})):i(),new ec(h,b)})},Jc.timeoutWithSelector=function(a,b,c){1===arguments.length&&(b=a,a=Wc()),c||(c=Yc(new Error("Timeout")));var d=this;return new zd(function(e){function f(a){function b(){return k===d}var d=k,f=new jc;i.setDisposable(f),f.setDisposable(a.subscribe(function(){b()&&h.setDisposable(c.subscribe(e)),f.dispose()},function(a){b()&&e.onError(a)},function(){b()&&h.setDisposable(c.subscribe(e))}))}function g(){var a=!l;return a&&k++,a}var h=new kc,i=new kc,j=new jc;h.setDisposable(j);var k=0,l=!1;return f(a),j.setDisposable(d.subscribe(function(a){if(g()){e.onNext(a);var c;try{c=b(a)}catch(d){return void e.onError(d)}f(ub(c)?Qc(c):c)}},function(a){g()&&e.onError(a)},function(){g()&&e.onCompleted()})),new ec(h,i)})},Jc.throttleWithSelector=function(a){var b=this;return new zd(function(c){var d,e=!1,f=new kc,g=0,h=b.subscribe(function(b){var h;try{h=a(b)}catch(i){return void c.onError(i)}ub(h)&&(h=Qc(h)),e=!0,d=b,g++;var j=g,k=new jc;f.setDisposable(k),k.setDisposable(h.subscribe(function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()},c.onError.bind(c),function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()}))},function(a){f.dispose(),c.onError(a),e=!1,g++},function(){f.dispose(),e&&c.onNext(d),c.onCompleted(),e=!1,g++});return new ec(h,f)})},Jc.skipLastWithTime=function(a,b){ob(b)||(b=xc);var c=this;return new zd(function(d){var e=[];return c.subscribe(function(c){var f=b.now();for(e.push({interval:f,value:c});e.length>0&&f-e[0].interval>=a;)d.onNext(e.shift().value)},d.onError.bind(d),function(){for(var c=b.now();e.length>0&&c-e[0].interval>=a;)d.onNext(e.shift().value);d.onCompleted()})})},Jc.takeLastWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now();e.length>0;){var f=e.shift();c-f.interval<=a&&d.onNext(f.value)}d.onCompleted()})})},Jc.takeLastBufferWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now(),f=[];e.length>0;){var g=e.shift();c-g.interval<=a&&f.push(g.value)}d.onNext(f),d.onCompleted()})})},Jc.takeWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){return new ec(b.scheduleWithRelative(a,d.onCompleted.bind(d)),c.subscribe(d))})},Jc.skipWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=!1;return new ec(b.scheduleWithRelative(a,function(){e=!0}),c.subscribe(function(a){e&&d.onNext(a)},d.onError.bind(d),d.onCompleted.bind(d)))})},Jc.skipUntilWithTime=function(a,b){ob(b)||(b=xc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(e){var f=!1;return new ec(b[d](a,function(){f=!0}),c.subscribe(function(a){f&&e.onNext(a)},e.onError.bind(e),e.onCompleted.bind(e)))})},Jc.takeUntilWithTime=function(a,b){ob(b)||(b=xc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(e){return new ec(b[d](a,e.onCompleted.bind(e)),c.subscribe(e))})},Jc.exclusive=function(){var a=this;return new zd(function(b){var c=!1,d=!1,e=new jc,f=new ec;return f.add(e),e.setDisposable(a.subscribe(function(a){if(!c){c=!0,ub(a)&&(a=Qc(a));var e=new jc;f.add(e),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){f.remove(e),c=!1,d&&1===f.length&&b.onCompleted()}))}},b.onError.bind(b),function(){d=!0,c||1!==f.length||b.onCompleted()})),f})},Jc.exclusiveMap=function(a,b){var c=this;return new zd(function(d){var e=0,f=!1,g=!0,h=new jc,i=new ec;return i.add(h),h.setDisposable(c.subscribe(function(c){f||(f=!0,innerSubscription=new jc,i.add(innerSubscription),ub(c)&&(c=Qc(c)),innerSubscription.setDisposable(c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),function(){i.remove(innerSubscription),f=!1,g&&1===i.length&&d.onCompleted()})))},d.onError.bind(d),function(){g=!0,1!==i.length||f||d.onCompleted()})),i})},Jc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new zd(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})},mb.VirtualTimeScheduler=function(a){function b(){throw new Error("Not implemented")}function c(){return this.toDateTimeOffset(this.clock)}function d(a,b){return this.scheduleAbsoluteWithState(a,this.clock,b)}function e(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b),c)}function f(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b-this.now()),c)}function g(a,b){return b(),ic}function h(b,g){this.clock=b,this.comparer=g,this.isEnabled=!1,this.queue=new cc(1024),a.call(this,c,d,e,f)}Zb(h,a);var i=h.prototype;return i.add=b,i.toDateTimeOffset=b,i.toRelative=b,i.schedulePeriodicWithState=function(a,b,c){var d=new qc(this,a,b,c);return d.start()},i.scheduleRelativeWithState=function(a,b,c){var d=this.add(this.clock,b);return this.scheduleAbsoluteWithState(a,d,c)},i.scheduleRelative=function(a,b){return this.scheduleRelativeWithState(b,a,g)},i.start=function(){if(!this.isEnabled){this.isEnabled=!0;do{var a=this.getNext();null!==a?(this.comparer(a.dueTime,this.clock)>0&&(this.clock=a.dueTime),a.invoke()):this.isEnabled=!1}while(this.isEnabled)}},i.stop=function(){this.isEnabled=!1},i.advanceTo=function(a){var b=this.comparer(this.clock,a);if(this.comparer(this.clock,a)>0)throw new Error(yb);if(0!==b&&!this.isEnabled){this.isEnabled=!0;do{var c=this.getNext();null!==c&&this.comparer(c.dueTime,a)<=0?(this.comparer(c.dueTime,this.clock)>0&&(this.clock=c.dueTime),c.invoke()):this.isEnabled=!1}while(this.isEnabled);this.clock=a}},i.advanceBy=function(a){var b=this.add(this.clock,a),c=this.comparer(this.clock,b);if(c>0)throw new Error(yb);0!==c&&this.advanceTo(b)},i.sleep=function(a){var b=this.add(this.clock,a);if(this.comparer(this.clock,b)>=0)throw new Error(yb);this.clock=b},i.getNext=function(){for(;this.queue.length>0;){var a=this.queue.peek();if(!a.isCancelled())return a;this.queue.dequeue()}return null},i.scheduleAbsolute=function(a,b){return this.scheduleAbsoluteWithState(b,a,g)},i.scheduleAbsoluteWithState=function(a,b,c){function d(a,b){return e.queue.remove(f),c(a,b)}var e=this,f=new mc(this,a,d,b,this.comparer);return this.queue.enqueue(f),f.disposable},h}(nc),mb.HistoricalScheduler=function(a){function b(b,c){var d=null==b?0:b,e=c||sb;a.call(this,d,e)}Zb(b,a);var c=b.prototype;return c.add=function(a,b){return a+b},c.toDateTimeOffset=function(a){return new Date(a).getTime()},c.toRelative=function(a){return a},b}(mb.VirtualTimeScheduler);var zd=mb.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?hc(a):ic}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Ad(a);return sc.scheduleRequired()?sc.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return Zb(c,a),c}(Pc),Ad=function(a){function b(b){a.call(this),this.observer=b,this.m=new jc}Zb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Kc),Bd=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new zd(function(a){return new ec(e.getDisposable(),d.subscribe(a))}):d}return Zb(c,a),c}(Pc),Cd=mb.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),ic):(a.onCompleted(),ic):(this.observers.push(a),new od(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Ed(a,b)},d}(Pc),Dd=mb.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new od(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),ic}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(Pc),Ed=mb.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Zb(b,a),$b(b.prototype,Hc,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(Pc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(hb.Rx=mb,define(function(){return mb})):ib&&jb?kb?(jb.exports=mb).Rx=mb:ib.Rx=mb:hb.Rx=mb}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(zb)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;Wb.nonEnumArgs&&a.length&&h(a)&&(a=Yb.call(a));var d=Wb.enumPrototypes&&"function"==typeof a,e=Wb.enumErrorProps&&(a===Qb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(Wb.nonEnumShadows&&a!==Rb){var g=a.constructor,i=-1,j=Ub.length;if(a===(g&&g.prototype))var k=a===stringProto?Mb:a===Qb?Hb:Nb.call(a),l=Vb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Yb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&hb.isFinite(a)}function o(b){return b[Ab]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>Tc?Tc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new zd(function(c){var d=new jc,e=new kc;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}ub(f)&&(f=Qc(f)),d=new jc,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new zd(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return ub(f)&&(f=Qc(f)),(Array.isArray(f)||o(f))&&(f=Uc(f)),f}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return ub(f)&&(f=Qc(f)),(Array.isArray(f)||o(f))&&(f=Uc(f)),f}).mergeObservable()}function y(a,b,c){return new zd(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function z(a){if(0===a.length)throw new Error(xb);return a[0]}function A(a,b,c){return new zd(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function B(a,b,c,d){if(0>b)throw new Error(yb);return new zd(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(yb))})})}function C(a,b,c){return new zd(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(xb))})})}function D(a,b,c){return new zd(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(xb))})})}function E(a,b,c){return new zd(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(xb))})})}function F(b,c,d,e){return new zd(function(f){var g=0;return b.subscribe(function(a){var h;try{h=c.call(d,a,g,b)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:a),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:a),f.onCompleted()})})}function G(a,b){return Array.isArray(a)?H.call(b,a):L(a)?ed(a.call(b)):M(a)?ed(a):K(a)?I(a):ub(a)?J(a):typeof a===cd?a:c(a)||Array.isArray(a)?H.call(b,a):a}function H(a){var b=this;return function(c){function d(a,d){if(!e)try{if(a=G(a,b),typeof a!==cd)return h[d]=a,--g||c(null,h);a.call(b,function(a,b){if(!e){if(a)return e=!0,c(a);h[d]=b,--g||c(null,h)}})}catch(f){e=!0,c(f)}}var e,f=Object.keys(a),g=f.length,h=new a.constructor;if(!g)return void xc.schedule(function(){c(null,h)});for(var i=0,j=f.length;j>i;i++)d(a[f[i]],f[i])}}function I(a){return function(b){var c,d=!1;a.subscribe(function(a){c=a,d=!0},b,function(){d&&b(null,c)})}}function J(a){return function(b){a.then(function(a){b(null,a)},b)}}function K(a){return a&&typeof a.subscribe===cd}function L(a){return a&&a.constructor&&"GeneratorFunction"===a.constructor.name}function M(a){return a&&typeof a.next===cd&&typeof a[dd]===cd}function c(a){return a&&a.constructor===Object}function N(a){a&&xc.schedule(function(){throw a})}function O(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=hb.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function P(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),hc(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(O(a))};return a.attachEvent("on"+b,d),hc(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,hc(function(){a["on"+b]=null})}function Q(a,b,c){var d=new ec;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(Q(a.item(e),b,c));else a&&d.add(P(a,b,c));return d}function R(a,b,c){return new zd(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(pb))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new ec(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}function S(a,b){return a.groupJoin(this,b,Sc,function(a,b){return b})}function T(a){var b=this;return new zd(function(c){var d=new Cd,e=new ec,f=new lc(e);return c.onNext(_b(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),ub(a)&&(a=Qc(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new Cd,c.onNext(_b(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f})}function U(a){var b=this;return new zd(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}ub(b)&&(b=Qc(b));var i=new jc;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(nb,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new Cd,c.onNext(_b(h,g)),d()}))}var e=new kc,f=new ec(e),g=new lc(f),h=new Cd;return c.onNext(_b(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g})}function V(b,c){return new Ec(function(){return new Dc(function(){return b()?{done:!1,value:c}:{done:!0,value:a}})})}function W(a){this.patterns=a}function X(a,b){this.expression=a,this.selector=b}function Y(a,b,c){var d=a.get(b);if(!d){var e=new wd(b,c);return a.set(b,e),e}return d}function Z(a,b,c){this.joinObserverArray=a,this.onNext=b,this.onCompleted=c,this.joinObservers=new vd;for(var d=0,e=this.joinObserverArray.length;e>d;d++){var f=this.joinObserverArray[d];this.joinObservers.set(f,f)}}function $(a,b){return new zd(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function _(a,b,c){return new zd(function(d){var e=0,f=a,g=oc(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function ab(a,b){return new zd(function(c){return b.scheduleWithRelative(oc(a),function(){c.onNext(0),c.onCompleted()})})}function bb(a,b,c){return a===b?new zd(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):Rc(function(){return _(c.now()+a,b,c)})}function db(a,b,c){return new zd(function(d){var e,f=!1,g=new kc,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new jc,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new ec(e,g)})}function eb(a,b,c){return Rc(function(){return db(a,b-c.now(),c)})}function fb(a,b){return new zd(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new ec(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}var gb={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},hb=gb[typeof window]&&window||this,ib=gb[typeof exports]&&exports&&!exports.nodeType&&exports,jb=gb[typeof module]&&module&&!module.nodeType&&module,kb=jb&&jb.exports===ib&&ib,lb=gb[typeof global]&&global;!lb||lb.global!==lb&&lb.window!==lb||(hb=lb);var mb={internals:{},config:{Promise:hb.Promise},helpers:{}},nb=mb.helpers.noop=function(){},ob=(mb.helpers.notDefined=function(a){return"undefined"==typeof a},mb.helpers.isScheduler=function(a){return a instanceof mb.Scheduler}),pb=mb.helpers.identity=function(a){return a},qb=(mb.helpers.pluck=function(a){return function(b){return b[a]}},mb.helpers.just=function(a){return function(){return a}},mb.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),rb=mb.helpers.defaultComparer=function(a,b){return Xb(a,b)},sb=mb.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},tb=(mb.helpers.defaultKeySerializer=function(a){return a.toString()},mb.helpers.defaultError=function(a){throw a}),ub=mb.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},vb=(mb.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},mb.helpers.not=function(a){return!a}),wb=mb.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Nb.call(a)}),a}(),xb="Sequence contains no elements.",yb="Argument out of range",zb="Object has been disposed",Ab="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";hb.Set&&"function"==typeof(new hb.Set)["@@iterator"]&&(Ab="@@iterator");var Bb=mb.doneEnumerator={done:!0,value:a};mb.iterator=Ab;var Cb,Db="[object Arguments]",Eb="[object Array]",Fb="[object Boolean]",Gb="[object Date]",Hb="[object Error]",Ib="[object Function]",Jb="[object Number]",Kb="[object Object]",Lb="[object RegExp]",Mb="[object String]",Nb=Object.prototype.toString,Ob=Object.prototype.hasOwnProperty,Pb=Nb.call(arguments)==Db,Qb=Error.prototype,Rb=Object.prototype,Sb=Rb.propertyIsEnumerable;try{Cb=!(Nb.call(document)==Kb&&!({toString:0}+""))}catch(Tb){Cb=!0}var Ub=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Vb={};Vb[Eb]=Vb[Gb]=Vb[Jb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Vb[Fb]=Vb[Mb]={constructor:!0,toString:!0,valueOf:!0},Vb[Hb]=Vb[Ib]=Vb[Lb]={constructor:!0,toString:!0},Vb[Kb]={constructor:!0};var Wb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Wb.enumErrorProps=Sb.call(Qb,"message")||Sb.call(Qb,"name"),Wb.enumPrototypes=Sb.call(a,"prototype"),Wb.nonEnumArgs=0!=c,Wb.nonEnumShadows=!/valueOf/.test(b)}(1),Pb||(h=function(a){return a&&"object"==typeof a?Ob.call(a,"callee"):!1});var Xb=mb.internals.isEqual=function(a,b){return i(a,b,[],[])},Yb=Array.prototype.slice,Zb=({}.hasOwnProperty,this.inherits=mb.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),$b=mb.internals.addProperties=function(a){for(var b=Yb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},_b=mb.internals.addRef=function(a,b){return new zd(function(c){return new ec(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Yb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Yb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Yb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var ac=Object("a"),bc="a"!=ac[0]||!(0 in ac);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=bc&&{}.toString.call(this)==Mb?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=Ib)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=bc&&{}.toString.call(this)==Mb?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=Ib)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==Eb}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var cc=mb.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},dc=cc.prototype;dc.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},dc.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},dc.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},fc.toArray=function(){return this.disposables.slice(0)};var gc=mb.Disposable=function(a){this.isDisposed=!1,this.action=a||nb};gc.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var hc=gc.create=function(a){return new gc(a)},ic=gc.empty={dispose:nb},jc=mb.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),kc=mb.SerialDisposable=jc,lc=mb.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?ic:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var mc=mb.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||sb,this.disposable=new jc};mc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},mc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},mc.prototype.isCancelled=function(){return this.disposable.isDisposed},mc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var nc=mb.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),ic}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=qb,a.normalize=function(a){return 0>a&&(a=0),a},a}(),oc=nc.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new ec,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),ic});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new ec,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),ic});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(nc.prototype),function(){nc.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},nc.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof hb.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=hb.setInterval(function(){d=c(d)},b);return hc(function(){hb.clearInterval(e)})}}(nc.prototype),function(a){a.catchError=a["catch"]=function(a){return new yc(this,a)}}(nc.prototype);var pc,qc=mb.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new jc;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),rc=nc.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=oc(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new nc(qb,a,b,c)}(),sc=nc.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-nc.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+nc.normalize(c),g=new mc(this,b,d,f);if(e)e.enqueue(g);else{e=new cc(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new nc(qb,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),tc=nb,uc=function(){var a,b=nb;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!hb.setTimeout)throw new Error("No concurrency detected!");a=hb.setTimeout,b=hb.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),vc=uc.setTimeout,wc=uc.clearTimeout;!function(){function a(){if(!hb.postMessage||hb.importScripts)return!1;var a=!1,b=hb.onmessage;return hb.onmessage=function(){a=!0},hb.postMessage("","*"),hb.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(Nb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=lb&&kb&&lb.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=lb&&kb&&lb.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))pc=process.nextTick;else if("function"==typeof d)pc=d,tc=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;hb.addEventListener?hb.addEventListener("message",b,!1):hb.attachEvent("onmessage",b,!1),pc=function(a){var b=h++;g[b]=a,hb.postMessage(f+b,"*")}}else if(hb.MessageChannel){var i=new hb.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},pc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in hb&&"onreadystatechange"in hb.document.createElement("script")?pc=function(a){var b=hb.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},hb.document.documentElement.appendChild(b)}:(pc=function(a){return vc(a,0)},tc=wc)}();var xc=nc.timeout=function(){function a(a,b){var c=this,d=new jc,e=pc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new ec(d,hc(function(){tc(e)}))}function b(a,b,c){var d=this,e=nc.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new jc,g=vc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new ec(f,hc(function(){wc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new nc(qb,a,b,c)}(),yc=function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Zb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return ic}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new jc;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(nc),zc=mb.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return ob(a)||(a=rc),new zd(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ac=zc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new zc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Bc=zc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new zc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Cc=zc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new zc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Dc=mb.internals.Enumerator=function(a){this._next=a};Dc.prototype.next=function(){return this._next()},Dc.prototype[Ab]=function(){return this};var Ec=mb.internals.Enumerable=function(a){this._iterator=a};Ec.prototype[Ab]=function(){return this._iterator()},Ec.prototype.concat=function(){var a=this;return new zd(function(b){var c;try{c=a[Ab]()}catch(d){return void b.onError()}var e,f=new kc,g=rc.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;ub(h)&&(h=Qc(h));var i=new jc;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new ec(f,g,hc(function(){e=!0}))})},Ec.prototype.catchException=function(){var a=this;return new zd(function(b){var c;try{c=a[Ab]()}catch(d){return void b.onError()}var e,f,g=new kc,h=rc.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;ub(i)&&(i=Qc(i));var j=new jc;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new ec(g,h,hc(function(){e=!0}))})};var Fc=Ec.repeat=function(a,b){return null==b&&(b=-1),new Ec(function(){var c=b;return new Dc(function(){return 0===c?Bb:(c>0&&c--,{done:!1,value:a})})})},Gc=Ec.of=function(a,b,c){return b||(b=pb),new Ec(function(){var d=-1;return new Dc(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Kc),Oc=function(a){function b(){a.apply(this,arguments)}return Zb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Nc),Pc=mb.Observable=function(){function a(a){this._subscribe=a}return Jc=a.prototype,Jc.subscribe=Jc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Ic(a,b,c))},Jc.subscribeOnNext=function(a,b){return this._subscribe(Ic(2===arguments.length?function(c){a.call(b,c)}:a))},Jc.subscribeOnError=function(a,b){return this._subscribe(Ic(null,2===arguments.length?function(c){a.call(b,c)}:a))},Jc.subscribeOnCompleted=function(a,b){return this._subscribe(Ic(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Jc.observeOn=function(a){var b=this;return new zd(function(c){return b.subscribe(new Oc(a,c))})},Jc.subscribeOn=function(a){var b=this;return new zd(function(c){var d=new jc,e=new kc;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var Qc=Pc.fromPromise=function(a){return Rc(function(){var b=new mb.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Jc.toPromise=function(a){if(a||(a=mb.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Jc.toArray=function(){var a=this;return new zd(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},Pc.create=Pc.createWithDisposable=function(a){return new zd(a)};var Rc=Pc.defer=function(a){return new zd(function(b){var c;try{c=a()}catch(d){return Yc(d).subscribe(b)}return ub(c)&&(c=Qc(c)),c.subscribe(b)})},Sc=Pc.empty=function(a){return ob(a)||(a=rc),new zd(function(b){return a.schedule(function(){b.onCompleted()})})},Tc=Math.pow(2,53)-1,Uc=Pc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return ob(d)||(d=sc),new zd(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Ab]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},Vc=Pc.fromArray=function(a,b){return ob(b)||(b=sc),new zd(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};Pc.generate=function(a,b,c,d,e){return ob(e)||(e=sc),new zd(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})},Pc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Vc(b)};var Wc=(Pc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return Vc(c,a)},Pc.never=function(){return new zd(function(){return ic})});Pc.range=function(a,b,c){return ob(c)||(c=sc),new zd(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},Pc.repeat=function(a,b,c){return ob(c)||(c=sc),Xc(a,c).repeat(null==b?-1:b)};var Xc=Pc["return"]=Pc.returnValue=Pc.just=function(a,b){return ob(b)||(b=rc),new zd(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},Yc=Pc["throw"]=Pc.throwException=Pc.throwError=function(a,b){return ob(b)||(b=rc),new zd(function(c){return b.schedule(function(){c.onError(a)})})};Pc.using=function(a,b){return new zd(function(c){var d,e,f=ic;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new ec(Yc(g).subscribe(c),f)}return new ec(e.subscribe(c),f)})},Jc.amb=function(a){var b=this;return new zd(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new jc,j=new jc;return ub(a)&&(a=Qc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new ec(i,j)})},Pc.amb=function(){function a(a,b){return a.amb(b)}for(var b=Wc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Jc["catch"]=Jc.catchError=Jc.catchException=function(a){return"function"==typeof a?s(this,a):Zc([this,a])};var Zc=Pc.catchException=Pc.catchError=Pc["catch"]=function(){return Gc(j(arguments,0)).catchException()};Jc.combineLatest=function(){var a=Yb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),$c.apply(this,a)};var $c=Pc.combineLatest=function(){var a=Yb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new zd(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(pb))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(pb)&&c.onCompleted()}function e(a){j[a]=!0,j.every(pb)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new jc;ub(f)&&(f=Qc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new ec(m)})};Jc.concat=function(){var a=Yb.call(arguments,0);return a.unshift(this),_c.apply(this,a)};var _c=Pc.concat=function(){return Gc(j(arguments,0)).concat()};Jc.concatObservable=Jc.concatAll=function(){return this.merge(1)},Jc.merge=function(a){if("number"!=typeof a)return ad(this,a);var b=this;return new zd(function(c){function d(a){var b=new jc;f.add(b),ub(a)&&(a=Qc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new ec,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var ad=Pc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=Yb.call(arguments,1)):(a=rc,b=Yb.call(arguments,0)):(a=rc,b=Yb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),Vc(b,a).mergeObservable()};Jc.mergeObservable=Jc.mergeAll=function(){var a=this;return new zd(function(b){var c=new ec,d=!1,e=new jc;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new jc;c.add(e),ub(a)&&(a=Qc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Jc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return bd([this,a])};var bd=Pc.onErrorResumeNext=function(){var a=j(arguments,0);return new zd(function(b){var c=0,d=new kc,e=rc.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(pb)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new jc;ub(c)&&(c=Qc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new ec(j)})},Pc.zip=function(){var a=Yb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},Pc.zipArray=function(){var a=j(arguments,0);return new zd(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(pb))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(pb)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new jc,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new ec(h);return j.add(hc(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Jc.asObservable=function(){return new zd(this.subscribe.bind(this))},Jc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Jc.dematerialize=function(){var a=this;return new zd(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.distinctUntilChanged=function(a,b){var c=this;return a||(a=pb),b||(b=rb),new zd(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Jc["do"]=Jc.doAction=Jc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new zd(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Jc.doOnNext=Jc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Jc.doOnError=Jc.tapOnError=function(a,b){return this.tap(nb,2===arguments.length?function(c){a.call(b,c)}:a)},Jc.doOnCompleted=Jc.tapOnCompleted=function(a,b){return this.tap(nb,null,2===arguments.length?function(){a.call(b)}:a)},Jc["finally"]=Jc.finallyAction=function(a){var b=this;return new zd(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return hc(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Jc.ignoreElements=function(){var a=this;return new zd(function(b){return a.subscribe(nb,b.onError.bind(b),b.onCompleted.bind(b))})},Jc.materialize=function(){var a=this;return new zd(function(b){return a.subscribe(function(a){b.onNext(Ac(a))},function(a){b.onNext(Bc(a)),b.onCompleted()},function(){b.onNext(Cc()),b.onCompleted()})})},Jc.repeat=function(a){return Fc(this,a).concat()},Jc.retry=function(a){return Fc(this,a).catchException()},Jc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new zd(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Jc.skipLast=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Jc.startWith=function(){var a,b,c=0;return arguments.length&&ob(arguments[0])?(b=arguments[0],c=1):b=rc,a=Yb.call(arguments,c),Gc([Vc(a,b),this]).concat()},Jc.takeLast=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Jc.takeLastBuffer=function(a){var b=this;return new zd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Jc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(yb);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(yb);return new zd(function(d){function e(){var a=new Cd;i.push(a),d.onNext(_b(a,g))}var f=new jc,g=new lc(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Jc.selectConcat=Jc.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Jc.concatMapObserver=Jc.selectConcatObserver=function(a,b,c,d){var e=this;return new zd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}ub(a)&&(a=Qc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Jc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new zd(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Jc.distinct=function(a,b){var c=this;return b||(b=rb),new zd(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.groupBy=function(a,b,c){return this.groupByUntil(a,b,Wc,c)},Jc.groupByUntil=function(a,b,c,d){var e=this;return b||(b=pb),d||(d=rb),new zd(function(f){function g(a){return function(b){b.onError(a)}}var h=new sd(0,d),i=new ec,j=new lc(i);return i.add(e.subscribe(function(d){var e;try{e=a(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}var l=!1,m=h.tryGetValue(e);if(m||(m=new Cd,h.set(e,m),l=!0),l){var n=new Bd(e,m,j),o=new Bd(e,m);try{duration=c(o)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}f.onNext(n);var p=new jc;i.add(p);var q=function(){h.remove(e)&&m.onCompleted(),i.remove(p)};p.setDisposable(duration.take(1).subscribe(nb,function(a){h.getValues().forEach(g(a)),f.onError(a)},q))}var r;try{r=b(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}m.onNext(r)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),j})},Jc.select=Jc.map=function(a,b){var c=this;return new zd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.pluck=function(a){return this.map(function(b){return b[a]})},Jc.selectMany=Jc.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return ub(e)&&(e=Qc(e)),(Array.isArray(e)||o(e))&&(e=Uc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Jc.flatMapObserver=Jc.selectManyObserver=function(a,b,c,d){var e=this;return new zd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}ub(c)&&(c=Qc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}ub(a)&&(a=Qc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Jc.selectSwitch=Jc.flatMapLatest=Jc.switchMap=function(a,b){return this.select(a,b).switchLatest()},Jc.skip=function(a){if(0>a)throw new Error(yb);var b=this;return new zd(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Jc.skipWhile=function(a,b){var c=this;return new zd(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.take=function(a,b){if(0>a)throw new RangeError(yb);if(0===a)return Sc(b);var c=this;return new zd(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.takeWhile=function(a,b){var c=this;return new zd(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.where=Jc.filter=function(a,b){var c=this;return new zd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Jc.finalValue=function(){var a=this;return new zd(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(xb))})})},Jc.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},Jc.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},Jc.some=Jc.any=function(a,b){var c=this;return a?c.where(a,b).any():new zd(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},Jc.isEmpty=function(){return this.any().map(vb)},Jc.every=Jc.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},Jc.contains=function(a,b){function c(a,b){return 0===a&&0===b||a===b||isNaN(a)&&isNaN(b)}var d=this;return new zd(function(e){var f=0,g=+b||0;return 1/0===Math.abs(g)&&(g=0),0>g?(e.onNext(!1),e.onCompleted(),ic):d.subscribe(function(b){f++>=g&&c(b,a)&&(e.onNext(!0),e.onCompleted())},e.onError.bind(e),function(){e.onNext(!1),e.onCompleted()})})},Jc.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},Jc.indexOf=function(a,b){var c=this;return new zd(function(d){var e=0,f=+b||0;return 1/0===Math.abs(f)&&(f=0),0>f?(d.onNext(-1),d.onCompleted(),ic):c.subscribe(function(b){e>=f&&b===a&&(d.onNext(e),d.onCompleted()),e++},d.onError.bind(d),function(){d.onNext(-1),d.onCompleted()})})},Jc.sum=function(a,b){return a&&wb(a)?this.map(a,b).sum():this.aggregate(0,function(a,b){return a+b})},Jc.minBy=function(a,b){return b||(b=sb),y(this,a,function(a,c){return-1*b(a,c)})},Jc.min=function(a){return this.minBy(pb,a).select(function(a){return z(a)})},Jc.maxBy=function(a,b){return b||(b=sb),y(this,a,b)},Jc.max=function(a){return this.maxBy(pb,a).select(function(a){return z(a)})},Jc.average=function(a,b){return a&&wb(a)?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().map(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},Jc.sequenceEqual=function(a,b){var c=this;return b||(b=rb),Array.isArray(a)?A(c,a,b):new zd(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});ub(a)&&(a=Qc(a));var j=a.subscribe(function(a){var c;if(g.length>0){var f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new ec(i,j)})},Jc.elementAt=function(a){return B(this,a,!1)},Jc.elementAtOrDefault=function(a,b){return B(this,a,!0,b)},Jc.single=function(a,b){return a&&wb(a)?this.where(a,b).single():C(this,!1)},Jc.singleOrDefault=function(a,b,c){return a&&wb(a)?this.where(a,c).singleOrDefault(null,b):C(this,!0,b)},Jc.first=function(a,b){return a?this.where(a,b).first():D(this,!1)},Jc.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):D(this,!0,b)},Jc.last=function(a,b){return a?this.where(a,b).last():E(this,!1)},Jc.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):E(this,!0,b)},Jc.find=function(a,b){return F(this,a,b,!1)},Jc.findIndex=function(a,b){return F(this,a,b,!0)},hb.Set&&(Jc.toSet=function(){var a=this;return new zd(function(b){var c=new hb.Set;return a.subscribe(c.add.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})}),hb.Map&&(Jc.toMap=function(a,b){var c=this;return new zd(function(d){var e=new hb.Map;return c.subscribe(function(c){var f;try{f=a(c)}catch(g){return void d.onError(g)}var h=c;if(b)try{h=b(c)}catch(g){return void d.onError(g)}e.set(f,h)},d.onError.bind(d),function(){d.onNext(e),d.onCompleted()})})});var cd="function",dd="throw",ed=mb.spawn=function(a){var b=L(a);return function(c){function d(a,b){xc.schedule(c.bind(f,a,b))}function e(a,b){var c;if(arguments.length>2&&(b=Yb.call(arguments,1)),a)try{c=g[dd](a)}catch(h){return d(h)}if(!a)try{c=g.next(b)}catch(h){return d(h)}if(c.done)return d(null,c.value);if(c.value=G(c.value,f),typeof c.value!==cd)e(new TypeError("Rx.spawn only supports a function, Promise, Observable, Object or Array."));else{var i=!1;try{c.value.call(f,function(){i||(i=!0,e.apply(f,arguments))})}catch(h){xc.schedule(function(){i||(i=!0,e.call(f,h))})}}}var f=this,g=a;if(b){var h=Yb.call(arguments),i=h.length,j=i&&typeof h[i-1]===cd;c=j?h.pop():N,g=a.apply(this,h)}else c=c||N;e()}};mb.denodify=function(a){return function(){var b,c,d,e=Yb.call(arguments);return e.push(function(){b=arguments,d&&!c&&(c=!0,cb.apply(this,b))}),a.apply(this,e),function(a){d=a,b&&!c&&(c=!0,a.apply(this,b))}}},Pc.start=function(a,b,c){return fd(a,b,c)()};var fd=Pc.toAsync=function(a,b,c){return ob(c)||(c=xc),function(){var d=arguments,e=new Dd;return c.schedule(function(){var c;try{c=a.apply(b,d)}catch(f){return void e.onError(f)}e.onNext(c),e.onCompleted()}),e.asObservable()}};Pc.fromCallback=function(a,b,c){return function(){var d=Yb.call(arguments,0);return new zd(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},Pc.fromNodeCallback=function(a,b,c){return function(){var d=Yb.call(arguments,0);return new zd(function(e){function f(a){if(a)return void e.onError(a);var b=Yb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},mb.config.useNativeEvents=!1;var gd=hb.angular&&angular.element?angular.element:hb.jQuery?hb.jQuery:hb.Zepto?hb.Zepto:null,hd=!!hb.Ember&&"function"==typeof hb.Ember.addListener,id=!!hb.Backbone&&!!hb.Backbone.Marionette;Pc.fromEvent=function(a,b,c){if(a.addListener)return jd(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!mb.config.useNativeEvents){if(id)return jd(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(hd)return jd(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(gd){var d=gd(a);return jd(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new zd(function(d){return Q(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var jd=Pc.fromEventPattern=function(a,b,c){return new zd(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return hc(function(){b&&b(e,f)})}).publish().refCount()};Pc.startAsync=function(a){var b;try{b=a()}catch(c){return Yc(c)}return Qc(b)};var kd=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=ic,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=ic)});return new ec(c,d,e)}function c(c,d){this.source=c,this.controller=new Cd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return Zb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(Pc);Jc.pausable=function(a){return new kd(this,a)};var ld=function(b){function c(b){var c,d=[],e=R(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Cd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return Zb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(Pc);Jc.pausableBuffered=function(a){return new ld(this,a)},Jc.controlled=function(a){return null==a&&(a=!0),new md(this,a)};var md=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new nd(d),this.source=c.multicast(this.subject).refCount()}return Zb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(Pc),nd=mb.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Cd,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=ic,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=ic}return Zb(d,a),$b(d.prototype,Hc,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=ic):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=ic),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?ic:(this.requestedCount=a,this.requestedDisposable=hc(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=ic},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(Pc);Jc.multicast=function(a,b){var c=this;return"function"==typeof a?new zd(function(d){var e=c.multicast(a());return new ec(b(e).subscribe(d),e.connect())}):new rd(c,a)},Jc.publish=function(a){return a&&wb(a)?this.multicast(function(){return new Cd},a):this.multicast(new Cd)},Jc.share=function(){return this.publish().refCount()},Jc.publishLast=function(a){return a&&wb(a)?this.multicast(function(){return new Dd},a):this.multicast(new Dd)},Jc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new pd(b)},a):this.multicast(new pd(a))},Jc.shareValue=function(a){return this.publishValue(a).refCount()},Jc.replay=function(a,b,c,d){return a&&wb(a)?this.multicast(function(){return new qd(b,c,d)},a):this.multicast(new qd(b,c,d))},Jc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var od=function(a,b){this.subject=a,this.observer=b};od.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var pd=mb.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new od(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),ic}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(Pc),qd=mb.ReplaySubject=function(a){function c(a,b){return hc(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new Nc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||sc,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d) +}return Zb(e,a),$b(e.prototype,Hc,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(Pc),rd=mb.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new ec(f.subscribe(c),hc(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return Zb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new zd(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(Pc),sd=function(){function b(a){if(a&!1)return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function c(a){var c,d,e;for(c=0;c=a)return d;for(e=1|a;ec;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new Error("out of range");a>0&&this._initialize(a),this.comparer=b||rb,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return d(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return d(b.toString());if("function"==typeof b.valueOf){var c=b.valueOf();if("number"==typeof c)return e(c);if("string"==typeof b)return d(c)}if(b.getHashCode)return b.getHashCode();var f=17*a++;return b.getHashCode=function(){return f},f}}(),l=g.prototype;return l._initialize=function(a){var b,d=c(a);for(this.buckets=new Array(d),this.entries=new Array(d),b=0;d>b;b++)this.buckets[b]=-1,this.entries[b]=f();this.freeList=-1},l.add=function(a,b){return this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=c(2*this.size),b=new Array(a);for(e=0;ee;++e)d[e]=f();for(var g=0;g=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(b){var c=this._findEntry(b);return c>=0?this.entries[c].value:a},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();Jc.join=function(a,b,c,d){var e=this;return new zd(function(f){var g=new ec,h=!1,i=!1,j=0,k=0,l=new sd,m=new sd;return g.add(e.subscribe(function(a){var c=j++,e=new jc;l.add(c,a),g.add(e);var i,k=function(){l.remove(c)&&0===l.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(n){return void f.onError(n)}e.setDisposable(i.take(1).subscribe(nb,f.onError.bind(f),k)),m.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(i||0===l.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=k++,e=new jc;m.add(b,a),g.add(e);var h,j=function(){m.remove(b)&&0===m.count()&&i&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(n){return void f.onError(n)}e.setDisposable(h.take(1).subscribe(nb,f.onError.bind(f),j)),l.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){i=!0,(h||0===m.count())&&f.onCompleted()})),g})},Jc.groupJoin=function(a,b,c,d){var e=this;return new zd(function(f){function g(a){return function(b){b.onError(a)}}var h=new ec,i=new lc(h),j=new sd,k=new sd,l=0,m=0;return h.add(e.subscribe(function(a){var c=new Cd,e=l++;j.add(e,c);var m;try{m=d(a,_b(c,i))}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}f.onNext(m),k.getValues().forEach(function(a){c.onNext(a)});var o=new jc;h.add(o);var p,q=function(){j.remove(e)&&c.onCompleted(),h.remove(o)};try{p=b(a)}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}o.setDisposable(p.take(1).subscribe(nb,function(a){j.getValues().forEach(g(a)),f.onError(a)},q))},function(a){j.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=m++;k.add(b,a);var d=new jc;h.add(d);var e,i=function(){k.remove(b),h.remove(d)};try{e=c(a)}catch(l){return j.getValues().forEach(g(l)),void f.onError(l)}d.setDisposable(e.take(1).subscribe(nb,function(a){j.getValues().forEach(g(a)),f.onError(a)},i)),j.getValues().forEach(function(b){b.onNext(a)})},function(a){j.getValues().forEach(g(a)),f.onError(a)})),i})},Jc.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},Jc.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?T.call(this,a):"function"==typeof a?U.call(this,a):S.call(this,a,b)},Jc.pairwise=function(){var a=this;return new zd(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))})},Jc.partition=function(a,b){var c=this.publish().refCount();return[c.filter(a,b),c.filter(function(c,d,e){return!a.call(b,c,d,e)})]},Jc.letBind=Jc.let=function(a){return a(this)},Pc["if"]=Pc.ifThen=function(a,b,c){return Rc(function(){return c||(c=Sc()),ub(b)&&(b=Qc(b)),ub(c)&&(c=Qc(c)),"function"==typeof c.now&&(c=Sc(c)),a()?b:c})},Pc["for"]=Pc.forIn=function(a,b,c){return Gc(a,b,c).concat()};var td=Pc["while"]=Pc.whileDo=function(a,b){return ub(b)&&(b=Qc(b)),V(a,b).concat()};Jc.doWhile=function(a){return _c([this,td(a,this)])},Pc["case"]=Pc.switchCase=function(a,b,c){return Rc(function(){ub(c)&&(c=Qc(c)),c||(c=Sc()),"function"==typeof c.now&&(c=Sc(c));var d=b[a()];return ub(d)&&(d=Qc(d)),d||c})},Jc.expand=function(a,b){ob(b)||(b=rc);var c=this;return new zd(function(d){var e=[],f=new kc,g=new ec(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new jc;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g})},Pc.forkJoin=function(){var a=j(arguments,0);return new zd(function(b){var c=a.length;if(0===c)return b.onCompleted(),ic;for(var d=new ec,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];ub(j)&&(j=Qc(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},Jc.forkJoin=function(a,b){var c=this;return new zd(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new jc,l=new jc;return ub(a)&&(a=Qc(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new ec(k,l)})},Jc.manySelect=function(a,b){ob(b)||(b=rc);var c=this;return Rc(function(){var d;return c.map(function(a){var b=new ud(a);return d&&d.onNext(a),d=b,b}).tap(nb,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).map(a)})};var ud=function(a){function b(a){var b=this,c=new ec;return c.add(sc.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeObservable().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new Dd}return Zb(c,a),$b(c.prototype,Hc,{onCompleted:function(){this.onNext(Pc.empty())},onError:function(a){this.onNext(Pc.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(Pc),vd=hb.Map||function(){function b(){this._keys=[],this._values=[]}return b.prototype.get=function(b){var c=this._keys.indexOf(b);return-1!==c?this._values[c]:a},b.prototype.set=function(a,b){var c=this._keys.indexOf(a);-1!==c&&(this._values[c]=b),this._values[this._keys.push(a)-1]=b},b.prototype.forEach=function(a,b){for(var c=0,d=this._keys.length;d>c;c++)a.call(b,this._values[c],this._keys[c])},b}();W.prototype.and=function(a){return new W(this.patterns.concat(a))},W.prototype.thenDo=function(a){return new X(this,a)},X.prototype.activate=function(a,b,c){for(var d=this,e=[],f=0,g=this.expression.patterns.length;g>f;f++)e.push(Y(a,this.expression.patterns[f],b.onError.bind(b)));var h=new Z(e,function(){var a;try{a=d.selector.apply(d,arguments)}catch(c){return void b.onError(c)}b.onNext(a)},function(){for(var a=0,b=e.length;b>a;a++)e[a].removeActivePlan(h);c(h)});for(f=0,g=e.length;g>f;f++)e[f].addActivePlan(h);return h},Z.prototype.dequeue=function(){this.joinObservers.forEach(function(a){a.queue.shift()})},Z.prototype.match=function(){var a,b,c=!0;for(a=0,b=this.joinObserverArray.length;b>a;a++)if(0===this.joinObserverArray[a].queue.length){c=!1;break}if(c){var d=[],e=!1;for(a=0,b=this.joinObserverArray.length;b>a;a++)d.push(this.joinObserverArray[a].queue[0]),"C"===this.joinObserverArray[a].queue[0].kind&&(e=!0);if(e)this.onCompleted();else{this.dequeue();var f=[];for(a=0,b=d.length;ac;c++)b[c].match()}},c.error=nb,c.completed=nb,c.addActivePlan=function(a){this.activePlans.push(a)},c.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))},c.removeActivePlan=function(a){this.activePlans.splice(this.activePlans.indexOf(a),1),0===this.activePlans.length&&this.dispose()},c.dispose=function(){a.prototype.dispose.call(this),this.isDisposed||(this.isDisposed=!0,this.subscription.dispose())},b}(Kc);Jc.and=function(a){return new W([this,a])},Jc.thenDo=function(a){return new W([this]).thenDo(a)},Pc.when=function(){var a=j(arguments,0);return new zd(function(b){var c=[],d=new vd,e=Ic(b.onNext.bind(b),function(a){d.forEach(function(b){b.onError(a)}),b.onError(a)},b.onCompleted.bind(b));try{for(var f=0,g=a.length;g>f;f++)c.push(a[f].activate(d,e,function(a){var d=c.indexOf(a);c.splice(d,1),0===c.length&&b.onCompleted()}))}catch(h){Yc(h).subscribe(b)}var i=new ec;return d.forEach(function(a){a.subscribe(),i.add(a)}),i})};var xd=Pc.interval=function(a,b){return bb(a,a,ob(b)?b:xc)},yd=Pc.timer=function(b,c,d){var e;return ob(d)||(d=xc),c!==a&&"number"==typeof c?e=c:ob(c)&&(d=c),b instanceof Date&&e===a?$(b.getTime(),d):b instanceof Date&&e!==a?(e=c,_(b.getTime(),e,d)):e===a?ab(b,d):bb(b,e,d)};Jc.delay=function(a,b){return ob(b)||(b=xc),a instanceof Date?eb(this,a.getTime(),b):db(this,a,b)},Jc.throttle=function(a,b){ob(b)||(b=xc);var c=this;return new zd(function(d){var e,f=new kc,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new jc;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new ec(i,f)})},Jc.windowWithTime=function(a,b,c){var d,e=this;return null==b&&(d=a),ob(c)||(c=xc),"number"==typeof b?d=b:ob(b)&&(d=a,c=b),new zd(function(b){function f(){var a=new jc,e=!1,g=!1;l.setDisposable(a),j===i?(e=!0,g=!0):i>j?e=!0:g=!0;var n=e?j:i,o=n-m;m=n,e&&(j+=d),g&&(i+=d),a.setDisposable(c.scheduleWithRelative(o,function(){if(g){var a=new Cd;k.push(a),b.onNext(_b(a,h))}e&&k.shift().onCompleted(),f()}))}var g,h,i=d,j=a,k=[],l=new kc,m=0;return g=new ec(l),h=new lc(g),k.push(new Cd),b.onNext(_b(k[0],h)),f(),g.add(e.subscribe(function(a){for(var b=0,c=k.length;c>b;b++)k[b].onNext(a)},function(a){for(var c=0,d=k.length;d>c;c++)k[c].onError(a);b.onError(a)},function(){for(var a=0,c=k.length;c>a;a++)k[a].onCompleted();b.onCompleted()})),h})},Jc.windowWithTimeOrCount=function(a,b,c){var d=this;return ob(c)||(c=xc),new zd(function(e){function f(b){var d=new jc;g.setDisposable(d),d.setDisposable(c.scheduleWithRelative(a,function(){if(b===k){j=0;var a=++k;l.onCompleted(),l=new Cd,e.onNext(_b(l,i)),f(a)}}))}var g=new kc,h=new ec(g),i=new lc(h),j=0,k=0,l=new Cd;return e.onNext(_b(l,i)),f(0),h.add(d.subscribe(function(a){var c=0,d=!1;l.onNext(a),++j===b&&(d=!0,j=0,c=++k,l.onCompleted(),l=new Cd,e.onNext(_b(l,i))),d&&f(c)},function(a){l.onError(a),e.onError(a)},function(){l.onCompleted(),e.onCompleted()})),i})},Jc.bufferWithTime=function(){return this.windowWithTime.apply(this,arguments).selectMany(function(a){return a.toArray()})},Jc.bufferWithTimeOrCount=function(a,b,c){return this.windowWithTimeOrCount(a,b,c).selectMany(function(a){return a.toArray()})},Jc.timeInterval=function(a){var b=this;return ob(a)||(a=xc),Rc(function(){var c=a.now();return b.map(function(b){var d=a.now(),e=d-c;return c=d,{value:b,interval:e}})})},Jc.timestamp=function(a){return ob(a)||(a=xc),this.map(function(b){return{value:b,timestamp:a.now()}})},Jc.sample=function(a,b){return ob(b)||(b=xc),"number"==typeof a?fb(this,xd(a,b)):fb(this,a)},Jc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Yc(new Error(b||"Timeout"))),ob(c)||(c=xc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(ub(b)&&(b=Qc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new jc,j=new kc,k=!1,l=new kc;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new ec(j,l)})},Pc.generateWithAbsoluteTime=function(a,b,c,d,e,f){return ob(f)||(f=xc),new zd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithAbsolute(f.now(),function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Pc.generateWithRelativeTime=function(a,b,c,d,e,f){return ob(f)||(f=xc),new zd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithRelative(0,function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Jc.delaySubscription=function(a,b){return this.delayWithSelector(yd(a,ob(b)?b:xc),Sc)},Jc.delayWithSelector=function(a,b){var c,d,e=this;return"function"==typeof a?d=a:(c=a,d=b),new zd(function(a){var b=new ec,f=!1,g=function(){f&&0===b.length&&a.onCompleted()},h=new kc,i=function(){h.setDisposable(e.subscribe(function(c){var e;try{e=d(c)}catch(f){return void a.onError(f)}var h=new jc;b.add(h),h.setDisposable(e.subscribe(function(){a.onNext(c),b.remove(h),g()},a.onError.bind(a),function(){a.onNext(c),b.remove(h),g()}))},a.onError.bind(a),function(){f=!0,h.dispose(),g()}))};return c?h.setDisposable(c.subscribe(function(){i()},a.onError.bind(a),function(){i()})):i(),new ec(h,b)})},Jc.timeoutWithSelector=function(a,b,c){1===arguments.length&&(b=a,a=Wc()),c||(c=Yc(new Error("Timeout")));var d=this;return new zd(function(e){function f(a){function b(){return k===d}var d=k,f=new jc;i.setDisposable(f),f.setDisposable(a.subscribe(function(){b()&&h.setDisposable(c.subscribe(e)),f.dispose()},function(a){b()&&e.onError(a)},function(){b()&&h.setDisposable(c.subscribe(e))}))}function g(){var a=!l;return a&&k++,a}var h=new kc,i=new kc,j=new jc;h.setDisposable(j);var k=0,l=!1;return f(a),j.setDisposable(d.subscribe(function(a){if(g()){e.onNext(a);var c;try{c=b(a)}catch(d){return void e.onError(d)}f(ub(c)?Qc(c):c)}},function(a){g()&&e.onError(a)},function(){g()&&e.onCompleted()})),new ec(h,i)})},Jc.throttleWithSelector=function(a){var b=this;return new zd(function(c){var d,e=!1,f=new kc,g=0,h=b.subscribe(function(b){var h;try{h=a(b)}catch(i){return void c.onError(i)}ub(h)&&(h=Qc(h)),e=!0,d=b,g++;var j=g,k=new jc;f.setDisposable(k),k.setDisposable(h.subscribe(function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()},c.onError.bind(c),function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()}))},function(a){f.dispose(),c.onError(a),e=!1,g++},function(){f.dispose(),e&&c.onNext(d),c.onCompleted(),e=!1,g++});return new ec(h,f)})},Jc.skipLastWithTime=function(a,b){ob(b)||(b=xc);var c=this;return new zd(function(d){var e=[];return c.subscribe(function(c){var f=b.now();for(e.push({interval:f,value:c});e.length>0&&f-e[0].interval>=a;)d.onNext(e.shift().value)},d.onError.bind(d),function(){for(var c=b.now();e.length>0&&c-e[0].interval>=a;)d.onNext(e.shift().value);d.onCompleted()})})},Jc.takeLastWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now();e.length>0;){var f=e.shift();c-f.interval<=a&&d.onNext(f.value)}d.onCompleted()})})},Jc.takeLastBufferWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now(),f=[];e.length>0;){var g=e.shift();c-g.interval<=a&&f.push(g.value)}d.onNext(f),d.onCompleted()})})},Jc.takeWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){return new ec(b.scheduleWithRelative(a,d.onCompleted.bind(d)),c.subscribe(d))})},Jc.skipWithTime=function(a,b){var c=this;return ob(b)||(b=xc),new zd(function(d){var e=!1;return new ec(b.scheduleWithRelative(a,function(){e=!0}),c.subscribe(function(a){e&&d.onNext(a)},d.onError.bind(d),d.onCompleted.bind(d)))})},Jc.skipUntilWithTime=function(a,b){ob(b)||(b=xc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(e){var f=!1;return new ec(b[d](a,function(){f=!0}),c.subscribe(function(a){f&&e.onNext(a)},e.onError.bind(e),e.onCompleted.bind(e)))})},Jc.takeUntilWithTime=function(a,b){ob(b)||(b=xc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zd(function(e){return new ec(b[d](a,e.onCompleted.bind(e)),c.subscribe(e))})},Jc.exclusive=function(){var a=this;return new zd(function(b){var c=!1,d=!1,e=new jc,f=new ec;return f.add(e),e.setDisposable(a.subscribe(function(a){if(!c){c=!0,ub(a)&&(a=Qc(a));var e=new jc;f.add(e),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){f.remove(e),c=!1,d&&1===f.length&&b.onCompleted()}))}},b.onError.bind(b),function(){d=!0,c||1!==f.length||b.onCompleted()})),f})},Jc.exclusiveMap=function(a,b){var c=this;return new zd(function(d){var e=0,f=!1,g=!0,h=new jc,i=new ec;return i.add(h),h.setDisposable(c.subscribe(function(c){f||(f=!0,innerSubscription=new jc,i.add(innerSubscription),ub(c)&&(c=Qc(c)),innerSubscription.setDisposable(c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),function(){i.remove(innerSubscription),f=!1,g&&1===i.length&&d.onCompleted()})))},d.onError.bind(d),function(){g=!0,1!==i.length||f||d.onCompleted()})),i})},Jc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new zd(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})},mb.VirtualTimeScheduler=function(a){function b(){throw new Error("Not implemented")}function c(){return this.toDateTimeOffset(this.clock)}function d(a,b){return this.scheduleAbsoluteWithState(a,this.clock,b)}function e(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b),c)}function f(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b-this.now()),c)}function g(a,b){return b(),ic}function h(b,g){this.clock=b,this.comparer=g,this.isEnabled=!1,this.queue=new cc(1024),a.call(this,c,d,e,f)}Zb(h,a);var i=h.prototype;return i.add=b,i.toDateTimeOffset=b,i.toRelative=b,i.schedulePeriodicWithState=function(a,b,c){var d=new qc(this,a,b,c);return d.start()},i.scheduleRelativeWithState=function(a,b,c){var d=this.add(this.clock,b);return this.scheduleAbsoluteWithState(a,d,c)},i.scheduleRelative=function(a,b){return this.scheduleRelativeWithState(b,a,g)},i.start=function(){if(!this.isEnabled){this.isEnabled=!0;do{var a=this.getNext();null!==a?(this.comparer(a.dueTime,this.clock)>0&&(this.clock=a.dueTime),a.invoke()):this.isEnabled=!1}while(this.isEnabled)}},i.stop=function(){this.isEnabled=!1},i.advanceTo=function(a){var b=this.comparer(this.clock,a);if(this.comparer(this.clock,a)>0)throw new Error(yb);if(0!==b&&!this.isEnabled){this.isEnabled=!0;do{var c=this.getNext();null!==c&&this.comparer(c.dueTime,a)<=0?(this.comparer(c.dueTime,this.clock)>0&&(this.clock=c.dueTime),c.invoke()):this.isEnabled=!1}while(this.isEnabled);this.clock=a}},i.advanceBy=function(a){var b=this.add(this.clock,a),c=this.comparer(this.clock,b);if(c>0)throw new Error(yb);0!==c&&this.advanceTo(b)},i.sleep=function(a){var b=this.add(this.clock,a);if(this.comparer(this.clock,b)>=0)throw new Error(yb);this.clock=b},i.getNext=function(){for(;this.queue.length>0;){var a=this.queue.peek();if(!a.isCancelled())return a;this.queue.dequeue()}return null},i.scheduleAbsolute=function(a,b){return this.scheduleAbsoluteWithState(b,a,g)},i.scheduleAbsoluteWithState=function(a,b,c){function d(a,b){return e.queue.remove(f),c(a,b)}var e=this,f=new mc(this,a,d,b,this.comparer);return this.queue.enqueue(f),f.disposable},h}(nc),mb.HistoricalScheduler=function(a){function b(b,c){var d=null==b?0:b,e=c||sb;a.call(this,d,e)}Zb(b,a);var c=b.prototype;return c.add=function(a,b){return a+b},c.toDateTimeOffset=function(a){return new Date(a).getTime()},c.toRelative=function(a){return a},b}(mb.VirtualTimeScheduler);var zd=mb.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?hc(a):ic}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Ad(a);return sc.scheduleRequired()?sc.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return Zb(c,a),c}(Pc),Ad=function(a){function b(b){a.call(this),this.observer=b,this.m=new jc}Zb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Kc),Bd=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new zd(function(a){return new ec(e.getDisposable(),d.subscribe(a))}):d}return Zb(c,a),c}(Pc),Cd=mb.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),ic):(a.onCompleted(),ic):(this.observers.push(a),new od(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Ed(a,b)},d}(Pc),Dd=mb.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new od(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),ic}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Zb(d,a),$b(d.prototype,Hc,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(Pc),Ed=mb.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Zb(b,a),$b(b.prototype,Hc,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(Pc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(hb.Rx=mb,define(function(){return mb})):ib&&jb?kb?(jb.exports=mb).Rx=mb:ib.Rx=mb:hb.Rx=mb}).call(this); //# sourceMappingURL=rx.all.compat.map \ No newline at end of file diff --git a/dist/rx.all.js b/dist/rx.all.js index e8ed7791e..387817e2d 100644 --- a/dist/rx.all.js +++ b/dist/rx.all.js @@ -1411,14 +1411,14 @@ function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1427,17 +1427,17 @@ */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -2189,7 +2189,13 @@ if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -3481,7 +3487,7 @@ function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3508,7 +3514,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -3806,7 +3812,7 @@ function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3833,7 +3839,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.all.map b/dist/rx.all.map index 09e477a8f..1c37e6c7f 100644 --- a/dist/rx.all.map +++ b/dist/rx.all.map @@ -1 +1 @@ -{"version":3,"file":"rx.all.min.js","sources":["rx.all.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","extremaBy","keySelector","hasValue","lastKey","list","comparison","ex1","firstOnly","sequenceContainsNoElements","sequenceEqualArray","equal","elementAtOrDefault","hasDefault","defaultValue","argumentOutOfRange","singleOrDefaultAsync","seenValue","firstOrDefaultAsync","lastOrDefaultAsync","findValue","predicate","yieldIndex","shouldRun","toThunk","obj","ctx","objectToThunk","isGeneratorFunction","observableSpawn","isGenerator","isObservable","observableToThunk","promiseToThunk","fnString","done","run","fn","finished","results","pending","err","res","keys","timeoutScheduler","schedule","observable","v","promise","then","name","next","throwString","val","error","createListener","element","addEventListener","disposableCreate","removeEventListener","createEventListener","el","eventName","disposables","CompositeDisposable","add","combineLatestSource","subject","values","hasValueAll","every","identity","apply","isDone","n","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBounaries","windowBoundaries","Subject","r","RefCountDisposable","addRef","observableWindowWithClosingSelector","createWindowClose","windowClose","m1","m","take","noop","enumerableWhile","condition","Enumerable","Enumerator","Pattern","patterns","Plan","expression","planCreateObserver","externalSubscriptions","entry","get","JoinObserver","ActivePlan","joinObserverArray","joinObservers","Map","joinObserver","observableTimerDate","dueTime","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","atEnd","newValue","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","not","asArray","arguments","isFn","Symbol","iterator","Set","doneEnumerator","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","sources","prop","xs","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","ScheduledItem","state","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","_next","_iterator","concat","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","fromPromise","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","arr","createWithDisposable","defer","observableFactory","observableThrow","pow","from","iterable","mapFn","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","iterate","hasResult","observableNever","ofWithScheduler","never","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","Infinity","createWindow","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","found","retValue","distinct","hashSet","groupBy","elementSelector","groupByUntil","durationSelector","handleError","Dictionary","groupDisposable","getValues","fireNewMapEntry","writer","tryGetValue","GroupedObservable","durationGroup","duration","md","expire","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","RangeError","takeWhile","finalValue","aggregate","reduce","some","any","isEmpty","all","contains","searchElement","fromIndex","sum","prev","curr","minBy","min","maxBy","average","cur","sequenceEqual","donel","doner","ql","qr","subscription1","subscription2","elementAt","single","singleOrDefault","firstOrDefault","last","lastOrDefault","find","findIndex","toSet","toMap","spawn","isGenFun","exit","ret","gen","called","hasCallback","denodify","cb","context","observableToAsync","toAsync","fromCallback","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","innerHandler","startAsync","functionAsync","PausableObservable","conn","connection","pausable","pauser","connect","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","multicast","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","subjectOrSubjectSelector","connectable","ConnectableObservable","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","InnerSubscription","observers","hasObservers","os","createRemovableDisposable","so","_trim","hasError","windowSize","Number","MAX_VALUE","interval","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","isPrime","candidate","num1","sqrt","num2","getPrime","num","primes","stringHashFn","str","hash","character","charCodeAt","numberHashFn","c2","newEntry","hashCode","_initialize","freeCount","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","dictionaryProto","prime","buckets","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","clear","_findEntry","containskey","join","leftDurationSelector","rightDurationSelector","leftDone","rightDone","leftId","rightId","leftMap","rightMap","buffer","windowOpeningsOrClosingSelector","pairwise","hasPrevious","partition","published","letBind","ifThen","thenSource","elseSourceOrScheduler","forIn","observableWhileDo","whileDo","doWhile","switchCase","defaultSourceOrScheduler","expand","forkJoin","allSources","subscriber","hasResults","ix","lastLeft","lastRight","leftStopped","rightStopped","hasLeft","hasRight","manySelect","chain","ChainObservable","g","head","tail","_keys","_values","and","thenDo","activate","deactivate","activePlan","jlen","removeActivePlan","addActivePlan","match","hasValues","firstValues","isCompleted","activePlans","JoinObserverPrototype","when","plans","outObserver","observableinterval","observableTimer","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","windowWithTime","timeShiftOrScheduler","timeShift","createTimer","isSpan","isShift","timerD","nextSpan","nextShift","newTotalTime","ts","totalTime","windowWithTimeOrCount","windowId","newId","newWindow","bufferWithTime","bufferWithTimeOrCount","timeInterval","span","sample","intervalOrSampler","schedulerMethod","myId","original","switched","generateWithAbsoluteTime","timeSelector","generateWithRelativeTime","delaySubscription","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","delays","timeoutWithSelector","firstTimeout","timeoutdurationSelector","setTimer","timerWins","observerWins","throttleWithSelector","throttleDurationSelector","currentid","skipLastWithTime","takeLastWithTime","takeLastBufferWithTime","takeWithTime","skipWithTime","open","skipUntilWithTime","startTime","takeUntilWithTime","endTime","transduce","transducer","transformForObserver","init","step","obs","input","xform","exclusive","hasCurrent","exclusiveMap","VirtualTimeScheduler","notImplemented","localNow","toDateTimeOffset","clock","scheduleAbsoluteWithState","scheduleRelativeWithState","toRelative","initialClock","isEnabled","VirtualTimeSchedulerPrototype","runAt","getNext","stop","advanceTo","dueToClock","advanceBy","sleep","HistoricalScheduler","cmp","HistoricalSchedulerProto","absolute","relative","fixSubscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","underlyingObservable","mergedDisposable","AnonymousSubject","hv","define","amd"],"mappings":";CAEE,SAAUA,GAgEV,QAASC,KAAkB,GAAIC,KAAKC,WAAc,KAAM,IAAIC,OAAMC,IAwElE,QAASC,GAASC,GAKhB,GAAIC,SAAcD,EAClB,OAAOA,KAAkB,YAARC,GAA8B,UAARA,KAAqB,EAG9D,QAASC,GAAOC,GACd,GAAIC,KACJ,KAAKL,EAASI,GACZ,MAAOC,EAELC,IAAQC,aAAeH,EAAOI,QAAUC,EAAYL,KACtDA,EAASM,GAAMC,KAAKP,GAEtB,IAAIQ,GAAYN,GAAQO,gBAAmC,kBAAVT,GAC7CU,EAAiBR,GAAQS,iBAAmBX,IAAWY,IAAcZ,YAAkBN,OAE3F,KAAK,GAAImB,KAAOb,GACRQ,GAAoB,aAAPK,GACbH,IAA0B,WAAPG,GAA2B,QAAPA,IAC3CZ,EAAOa,KAAKD,EAIhB,IAAIX,GAAQa,gBAAkBf,IAAWgB,GAAa,CACpD,GAAIC,GAAOjB,EAAOkB,YACdC,EAAQ,GACRf,EAASgB,GAAchB,MAE3B,IAAIJ,KAAYiB,GAAQA,EAAKI,WAC3B,GAAIC,GAAYtB,IAAWuB,YAAcC,GAAcxB,IAAWY,GAAaa,GAAaC,GAASnB,KAAKP,GACtG2B,EAAUC,GAAaN,EAE7B,QAASH,EAAQf,GACfS,EAAMO,GAAcD,GACdQ,GAAWA,EAAQd,KAASgB,GAAetB,KAAKP,EAAQa,IAC5DZ,EAAOa,KAAKD,GAIlB,MAAOZ,GAGT,QAAS6B,GAAY9B,EAAQ+B,EAAUC,GAKrC,IAJA,GAAIb,GAAQ,GACVc,EAAQD,EAAShC,GACjBI,EAAS6B,EAAM7B,SAERe,EAAQf,GAAQ,CACvB,GAAIS,GAAMoB,EAAMd,EAChB,IAAIY,EAAS/B,EAAOa,GAAMA,EAAKb,MAAY,EACzC,MAGJ,MAAOA,GAGT,QAASkC,GAAclC,EAAQ+B,GAC7B,MAAOD,GAAY9B,EAAQ+B,EAAUhC,GAGvC,QAASoC,GAAOtC,GAGd,MAAgC,kBAAlBA,GAAM6B,UAAiD,iBAAf7B,EAAQ,IAGhE,QAASQ,GAAYR,GACnB,MAAQA,IAAyB,gBAATA,GAAqB6B,GAASnB,KAAKV,IAAUuC,IAAY,EAiBnF,QAASC,GAAWC,EAAGC,EAAGC,EAAQC,GAEhC,GAAIH,IAAMC,EAER,MAAa,KAAND,GAAY,EAAIA,GAAK,EAAIC,CAGlC,IAAIzC,SAAcwC,GACdI,QAAmBH,EAGvB,IAAID,IAAMA,IAAW,MAALA,GAAkB,MAALC,GAChB,YAARzC,GAA8B,UAARA,GAAiC,YAAb4C,GAAwC,UAAbA,GACxE,OAAO,CAIT,IAAIpB,GAAYI,GAASnB,KAAK+B,GAC1BK,EAAajB,GAASnB,KAAKgC,EAQ/B,IANIjB,GAAac,KACfd,EAAYsB,IAEVD,GAAcP,KAChBO,EAAaC,IAEXtB,GAAaqB,EACf,OAAO,CAET,QAAQrB,GACN,IAAKuB,IACL,IAAKC,IAGH,OAAQR,IAAMC,CAEhB,KAAKQ,IAEH,MAAQT,KAAMA,EACVC,IAAMA,EAEA,GAALD,EAAU,EAAIA,GAAK,EAAIC,EAAKD,IAAMC,CAEzC,KAAKS,IACL,IAAKxB,IAGH,MAAOc,IAAKW,OAAOV,GAEvB,GAAIW,GAAQ5B,GAAa6B,EACzB,KAAKD,EAAO,CAGV,GAAI5B,GAAasB,KAAiB1C,GAAQkD,YAAcjB,EAAOG,IAAMH,EAAOI,IAC1E,OAAO,CAGT,IAAIc,IAASnD,GAAQoD,YAAcjD,EAAYiC,GAAKiB,OAASjB,EAAEpB,YAC3DsC,GAAStD,GAAQoD,YAAcjD,EAAYkC,GAAKgB,OAAShB,EAAErB,WAG/D,MAAImC,GAASG,GACL3B,GAAetB,KAAK+B,EAAG,gBAAkBT,GAAetB,KAAKgC,EAAG,gBAChEkB,GAAWJ,IAAUA,YAAiBA,IAASI,GAAWD,IAAUA,YAAiBA,MACtF,eAAiBlB,IAAK,eAAiBC,KAE5C,OAAO,EAOXC,IAAWA,MACXC,IAAWA,KAGX,KADA,GAAIrC,GAASoC,EAAOpC,OACbA,KACL,GAAIoC,EAAOpC,IAAWkC,EACpB,MAAOG,GAAOrC,IAAWmC,CAG7B,IAAImB,GAAO,EACPzD,GAAS,CAOb,IAJAuC,EAAO1B,KAAKwB,GACZG,EAAO3B,KAAKyB,GAGRW,GAMF,GAJA9C,EAASkC,EAAElC,OACXsD,EAAOnB,EAAEnC,OACTH,EAASyD,GAAQtD,EAIf,KAAOsD,KAAQ,CACb,GACI7D,GAAQ0C,EAAEmB,EAEd,MAAMzD,EAASoC,EAAWC,EAAEoB,GAAO7D,EAAO2C,EAAQC,IAChD,WAQNP,GAAcK,EAAG,SAAS1C,EAAOgB,EAAK0B,GACpC,MAAIV,IAAetB,KAAKgC,EAAG1B,IAEzB6C,IAEQzD,EAAS4B,GAAetB,KAAK+B,EAAGzB,IAAQwB,EAAWC,EAAEzB,GAAMhB,EAAO2C,EAAQC,IAJpF,SAQExC,GAEFiC,EAAcI,EAAG,SAASzC,EAAOgB,EAAKyB,GACpC,MAAIT,IAAetB,KAAK+B,EAAGzB,GAEjBZ,IAAWyD,EAAO,GAF5B,QAUN,OAHAlB,GAAOmB,MACPlB,EAAOkB,MAEA1D,EAIT,QAAS2D,GAAYC,EAAMC,GACzB,MAAuB,KAAhBD,EAAKzD,QAAgB2D,MAAMC,QAAQH,EAAKC,IAC7CD,EAAKC,GACLxD,GAAMC,KAAKsD,GA2Bf,QAASI,GAAgBC,EAAOC,GAE9B,IAAK,GADD7B,GAAI,GAAIyB,OAAMG,GACTE,EAAI,EAAOF,EAAJE,EAAWA,IACzB9B,EAAE8B,GAAKD,GAET,OAAO7B,GAIT,QAAS+B,GAAYC,EAAIzE,GACvBL,KAAK8E,GAAKA,EACV9E,KAAKK,MAAQA,EAmSb,QAAS0E,GAAoBC,EAAWC,GACpCjF,KAAKgF,UAAYA,EACjBhF,KAAKiF,WAAaA,EAClBjF,KAAKC,YAAa,EA25CxB,QAASiF,GAAe7E,GACtB,MAAwB,gBAAVA,IAAsB8E,GAAKC,SAAS/E,GAOpD,QAASgF,GAAWC,GAClB,MAAOA,GAAEC,MAAgBzF,EAG3B,QAAS0F,GAAKnF,GACZ,GAAIoF,IAAUpF,CACd,OAAe,KAAXoF,EAAuBA,EACvBC,MAAMD,GAAkBA,EACZ,EAATA,EAAa,GAAK,EAG3B,QAASE,GAASL,GAChB,GAAIM,IAAON,EAAE1E,MACb,OAAI8E,OAAME,GAAe,EACb,IAARA,GAAcV,EAAeU,IACjCA,EAAMJ,EAAKI,GAAOC,KAAKC,MAAMD,KAAKE,IAAIH,IAC3B,GAAPA,EAAmB,EACnBA,EAAMI,GAAyBA,GAC5BJ,GAJyCA,EAOlD,QAASK,GAAWC,GAClB,MAA6C,sBAAtCnC,OAAOlC,UAAUK,SAASnB,KAAKmF,IAA2C,kBAANA,GA0V7E,QAASC,GAAuBC,EAAQC,GACtC,MAAO,IAAIC,IAAoB,SAAUC,GACvC,GAAIC,GAAK,GAAIC,IAA8BC,EAAe,GAAIC,GAiB9D,OAhBAD,GAAaE,cAAcJ,GAC3BA,EAAGI,cAAcR,EAAOS,UAAUN,EAASO,OAAOC,KAAKR,GAAW,SAAUS,GAC1E,GAAIC,GAAGxG,CACP,KACEA,EAAS4F,EAAQW,GACjB,MAAOE,GAEP,WADAX,GAASY,QAAQD,GAGnBE,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IAErDwG,EAAI,GAAIR,IACRC,EAAaE,cAAcK,GAC3BA,EAAEL,cAAcnG,EAAOoG,UAAUN,KAChCA,EAASe,YAAYP,KAAKR,KAEtBG,IAqXX,QAASa,GAASC,EAAQC,GACxB,GAAIC,GAAQ1H,IACZ,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI5E,GAAQ,EAAGiE,EAAM4B,EAAO5G,MAC5B,OAAO8G,GAAMb,UAAU,SAAUc,GAC/B,GAAY/B,EAARjE,EAAa,CACf,GAA6BlB,GAAzBmH,EAAQJ,EAAO7F,IACnB,KACElB,EAASgH,EAAeE,EAAMC,GAC9B,MAAOC,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,OAEhB8F,GAASe,eAEVf,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,MAmjBlE,QAASuB,GAAU1B,EAAQ2B,EAAUC,GACnC,MAAO5B,GAAO6B,IAAI,SAAUC,EAAGtD,GAC7B,GAAInE,GAASsH,EAAShH,KAAKiH,EAASE,EAAGtD,EAGvC,OAFAwC,IAAU3G,KAAYA,EAAS4G,GAAsB5G,KACpD8D,MAAMC,QAAQ/D,IAAW4E,EAAW5E,MAAaA,EAAS0H,GAAe1H,IACnEA,IACN2H,YAyHL,QAASC,GAAqBC,EAAOC,EAAMC,GACzC,IAAK,GAAI5D,GAAI,EAAGgB,EAAM0C,EAAM1H,OAAYgF,EAAJhB,EAASA,IAC3C,GAAI4D,EAASF,EAAM1D,GAAI2D,GAAS,MAAO3D,EAEzC,OAAO,GAGT,QAAS6D,GAAQD,GACfxI,KAAKwI,SAAWA,EAChBxI,KAAK0I,OA6LP,QAASC,GAAQvC,EAAQ2B,EAAUC,GACjC,MAAO5B,GAAO6B,IAAI,SAAUC,EAAGtD,GAC7B,GAAInE,GAASsH,EAAShH,KAAKiH,EAASE,EAAGtD,EAGvC,OAFAwC,IAAU3G,KAAYA,EAAS4G,GAAsB5G,KACpD8D,MAAMC,QAAQ/D,IAAW4E,EAAW5E,MAAaA,EAAS0H,GAAe1H,IACnEA,IACNmI,kBAyPL,QAASC,GAAUzC,EAAQ0C,EAAaN,GACtC,MAAO,IAAIlC,IAAoB,SAAUC,GACvC,GAAIwC,IAAW,EAAOC,EAAU,KAAMC,IACtC,OAAO7C,GAAOS,UAAU,SAAUqB,GAChC,GAAIgB,GAAY7H,CAChB,KACEA,EAAMyH,EAAYZ,GAClB,MAAOhB,GAEP,WADAX,GAASY,QAAQD,GAInB,GADAgC,EAAa,EACRH,EAIH,IACEG,EAAaV,EAASnH,EAAK2H,GAC3B,MAAOG,GAEP,WADA5C,GAASY,QAAQgC,OANnBJ,IAAW,EACXC,EAAU3H,CASR6H,GAAa,IACfF,EAAU3H,EACV4H,MAEEC,GAAc,GAAKD,EAAK3H,KAAK4G,IAChC3B,EAASY,QAAQJ,KAAKR,GAAW,WAClCA,EAASO,OAAOmC,GAChB1C,EAASe,kBAKb,QAAS8B,GAAUlB,GACf,GAAiB,IAAbA,EAAEtH,OACF,KAAM,IAAIV,OAAMmJ,GAEpB,OAAOnB,GAAE,GAyQf,QAASoB,GAAmB5B,EAAOF,EAAQgB,GACzC,MAAO,IAAIlC,IAAoB,SAAUC,GACvC,GAAI7B,GAAQ,EAAGkB,EAAM4B,EAAO5G,MAC5B,OAAO8G,GAAMb,UAAU,SAAUxG,GAC/B,GAAIkJ,IAAQ,CACZ,KACU3D,EAARlB,IAAgB6E,EAAQf,EAASnI,EAAOmH,EAAO9C,OAC/C,MAAOmD,GAEP,WADAtB,GAASY,QAAQU,GAGd0B,IACHhD,EAASO,QAAO,GAChBP,EAASe,gBAEVf,EAASY,QAAQJ,KAAKR,GAAW,WAClCA,EAASO,OAAOpC,IAAUkB,GAC1BW,EAASe,kBA+Fb,QAASkC,GAAmBpD,EAAQzE,EAAO8H,EAAYC,GACnD,GAAY,EAAR/H,EACA,KAAM,IAAIzB,OAAMyJ,GAEpB,OAAO,IAAIrD,IAAoB,SAAUC,GACrC,GAAI3B,GAAIjD,CACR,OAAOyE,GAAOS,UAAU,SAAUqB,GACpB,IAANtD,IACA2B,EAASO,OAAOoB,GAChB3B,EAASe,eAEb1C,KACD2B,EAASY,QAAQJ,KAAKR,GAAW,WAC3BkD,GAGDlD,EAASO,OAAO4C,GAChBnD,EAASe,eAHTf,EAASY,QAAQ,GAAIjH,OAAMyJ,SAiC7C,QAASC,GAAqBxD,EAAQqD,EAAYC,GAChD,MAAO,IAAIpD,IAAoB,SAAUC,GACvC,GAAIlG,GAAQqJ,EAAcG,GAAY,CACtC,OAAOzD,GAAOS,UAAU,SAAUqB,GAC5B2B,EACFtD,EAASY,QAAQ,GAAIjH,OAAM,6CAE3BG,EAAQ6H,EACR2B,GAAY,IAEbtD,EAASY,QAAQJ,KAAKR,GAAW,WAC7BsD,GAAcJ,GAGjBlD,EAASO,OAAOzG,GAChBkG,EAASe,eAHTf,EAASY,QAAQ,GAAIjH,OAAMmJ,SA2CjC,QAASS,GAAoB1D,EAAQqD,EAAYC,GAC7C,MAAO,IAAIpD,IAAoB,SAAUC,GACrC,MAAOH,GAAOS,UAAU,SAAUqB,GAC9B3B,EAASO,OAAOoB,GAChB3B,EAASe,eACVf,EAASY,QAAQJ,KAAKR,GAAW,WAC3BkD,GAGDlD,EAASO,OAAO4C,GAChBnD,EAASe,eAHTf,EAASY,QAAQ,GAAIjH,OAAMmJ,SA0C3C,QAASU,GAAmB3D,EAAQqD,EAAYC,GAC5C,MAAO,IAAIpD,IAAoB,SAAUC,GACrC,GAAIlG,GAAQqJ,EAAcG,GAAY,CACtC,OAAOzD,GAAOS,UAAU,SAAUqB,GAC9B7H,EAAQ6H,EACR2B,GAAY,GACbtD,EAASY,QAAQJ,KAAKR,GAAW,WAC3BsD,GAAcJ,GAGflD,EAASO,OAAOzG,GAChBkG,EAASe,eAHTf,EAASY,QAAQ,GAAIjH,OAAMmJ,SA0C3C,QAASW,GAAW5D,EAAQ6D,EAAWjC,EAASkC,GAC5C,MAAO,IAAI5D,IAAoB,SAAUC,GACrC,GAAI3B,GAAI,CACR,OAAOwB,GAAOS,UAAU,SAAUqB,GAC9B,GAAIiC,EACJ,KACIA,EAAYF,EAAUlJ,KAAKiH,EAASE,EAAGtD,EAAGwB,GAC5C,MAAMyB,GAEJ,WADAtB,GAASY,QAAQU,GAGjBsC,GACA5D,EAASO,OAAOoD,EAAatF,EAAIsD,GACjC3B,EAASe,eAET1C,KAEL2B,EAASY,QAAQJ,KAAKR,GAAW,WAChCA,EAASO,OAAOoD,EAAa,GAAKpK,GAClCyG,EAASe,kBA2FvB,QAAS8C,GAAQC,EAAKC,GACpB,MAAI/F,OAAMC,QAAQ6F,GAAgBE,EAAcxJ,KAAKuJ,EAAKD,GACtDG,EAAoBH,GAAeI,GAAgBJ,EAAItJ,KAAKuJ,IAC5DI,EAAYL,GAAgBI,GAAgBJ,GAC5CM,EAAaN,GAAeO,EAAkBP,GAC9CjD,GAAUiD,GAAeQ,EAAeR,SACjCA,KAAQS,GAAmBT,EAClCjK,EAASiK,IAAQ9F,MAAMC,QAAQ6F,GAAeE,EAAcxJ,KAAKuJ,EAAKD,GAEnEA,EAGT,QAASE,GAAcF,GACrB,GAAIC,GAAMtK,IAEV,OAAO,UAAU+K,GAef,QAASC,GAAIC,EAAI5J,GACf,IAAI6J,EACJ,IAGE,GAFAD,EAAKb,EAAQa,EAAIX,SAENW,KAAOH,GAEhB,MADAK,GAAQ9J,GAAO4J,IACNG,GAAWL,EAAK,KAAMI,EAGjCF,GAAGlK,KAAKuJ,EAAK,SAASe,EAAKC,GACzB,IAAIJ,EAAJ,CAEA,GAAIG,EAEF,MADAH,IAAW,EACJH,EAAKM,EAGdF,GAAQ9J,GAAOiK,IACbF,GAAWL,EAAK,KAAMI,MAE1B,MAAOtD,GACPqD,GAAW,EACXH,EAAKlD,IArCT,GAGIqD,GAHAK,EAAOxH,OAAOwH,KAAKlB,GACnBe,EAAUG,EAAK3K,OACfuK,EAAU,GAAId,GAAI3I,WAGtB,KAAK0J,EAEH,WADAI,IAAiBC,SAAS,WAAcV,EAAK,KAAMI,IAIrD,KAAK,GAAIvG,GAAI,EAAGgB,EAAM2F,EAAK3K,OAAYgF,EAAJhB,EAASA,IAC1CoG,EAAIX,EAAIkB,EAAK3G,IAAK2G,EAAK3G,KAgC7B,QAASgG,GAAkBc,GACzB,MAAO,UAAUT,GACf,GAAI5K,GAAO0I,GAAW,CACtB2C,GAAW7E,UACT,SAAU8E,GACRtL,EAAQsL,EACR5C,GAAW,GAEbkC,EACA,WACElC,GAAYkC,EAAG,KAAM5K,MAK7B,QAASwK,GAAee,GACtB,MAAO,UAASX,GACdW,EAAQC,KAAK,SAASP,GACpBL,EAAG,KAAMK,IACRL,IAIP,QAASN,GAAaN,GACpB,MAAOA,UAAcA,GAAIxD,YAAciE,GAGzC,QAASN,GAAoBH,GAC3B,MAAOA,IAAOA,EAAI3I,aAAwC,sBAAzB2I,EAAI3I,YAAYoK,KAGnD,QAASpB,GAAYL,GACnB,MAAOA,UAAcA,GAAI0B,OAASjB,UAAmBT,GAAI2B,MAAiBlB,GAG5E,QAAS1K,GAAS6L,GAChB,MAAOA,IAAOA,EAAIvK,cAAgBqC,OA4HpC,QAASmI,GAAMb,GACRA,GACLG,GAAiBC,SAAS,WACxB,KAAMJ,KAkJV,QAASc,GAAgBC,EAASN,EAAMzF,GACtC,GAAI+F,EAAQC,iBAEV,MADAD,GAAQC,iBAAiBP,EAAMzF,GAAS,GACjCiG,GAAiB,WACtBF,EAAQG,oBAAoBT,EAAMzF,GAAS,IAG/C,MAAM,IAAInG,OAAM,qBAGlB,QAASsM,GAAqBC,EAAIC,EAAWrG,GAC3C,GAAIsG,GAAc,GAAIC,GAGtB,IAA2C,sBAAvC7I,OAAOlC,UAAUK,SAASnB,KAAK0L,GACjC,IAAK,GAAI7H,GAAI,EAAGgB,EAAM6G,EAAG7L,OAAYgF,EAAJhB,EAASA,IACxC+H,EAAYE,IAAIL,EAAoBC,EAAGlE,KAAK3D,GAAI8H,EAAWrG,QAEpDoG,IACTE,EAAYE,IAAIV,EAAeM,EAAIC,EAAWrG,GAGhD,OAAOsG,GA4LT,QAASG,GAAoB1G,EAAQ2G,EAAStF,GAC5C,MAAO,IAAInB,IAAoB,SAAUC,GAOvC,QAASwF,GAAK7D,EAAGtD,GACfoI,EAAOpI,GAAKsD,CACZ,IAAIoD,EAEJ,IADAvC,EAASnE,IAAK,EACVqI,IAAgBA,EAAclE,EAASmE,MAAMC,KAAY,CAC3D,IACE7B,EAAM7D,EAAe2F,MAAM,KAAMJ,GACjC,MAAO9F,GAEP,WADAX,GAASY,QAAQD,GAGnBX,EAASO,OAAOwE,OACP+B,IACT9G,EAASe,cAnBb,GAAIgG,GAAI,EACNvE,IAAY,GAAO,GACnBkE,GAAc,EACdI,GAAS,EACTL,EAAS,GAAIzI,OAAM+I,EAmBrB,OAAO,IAAIV,IACTxG,EAAOS,UACL,SAAUqB,GACR6D,EAAK7D,EAAG,IAEV3B,EAASY,QAAQJ,KAAKR,GACtB,WACE8G,GAAS,EACT9G,EAASe,gBAEbyF,EAAQlG,UACN,SAAUqB,GACR6D,EAAK7D,EAAG,IAEV3B,EAASY,QAAQJ,KAAKR,OA2qC9B,QAASgH,GAA6BC,EAAgBC,GACpD,MAAOD,GAAeE,UAAU1N,KAAMyN,EAAuBE,GAAiB,SAAUC,EAAGC,GACzF,MAAOA,KAIX,QAASC,GAA8BC,GACrC,GAAI3H,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIsH,GAAM,GAAIG,IACZ/G,EAAI,GAAI2F,IACRqB,EAAI,GAAIC,IAAmBjH,EA4B7B,OA1BAV,GAASO,OAAOqH,GAAON,EAAKI,IAE5BhH,EAAE4F,IAAIzG,EAAOS,UAAU,SAAUqB,GAC/B2F,EAAI/G,OAAOoB,IACV,SAAUmD,GACXwC,EAAI1G,QAAQkE,GACZ9E,EAASY,QAAQkE,IAChB,WACDwC,EAAIvG,cACJf,EAASe,iBAGXF,GAAU2G,KAAsBA,EAAmB1G,GAAsB0G,IAEzE9G,EAAE4F,IAAIkB,EAAiBlH,UAAU,WAC/BgH,EAAIvG,cACJuG,EAAM,GAAIG,IACVzH,EAASO,OAAOqH,GAAON,EAAKI,KAC3B,SAAU5C,GACXwC,EAAI1G,QAAQkE,GACZ9E,EAASY,QAAQkE,IAChB,WACDwC,EAAIvG,cACJf,EAASe,iBAGJ2G,IAIX,QAASG,GAAoCX,GAC3C,GAAIrH,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GAgBvC,QAAS8H,KACP,GAAIC,EACJ,KACEA,EAAcb,IACd,MAAO5F,GAEP,WADAtB,GAASY,QAAQU,GAInBT,GAAUkH,KAAiBA,EAAcjH,GAAsBiH,GAE/D,IAAIC,GAAK,GAAI9H,GACb+H,GAAE5H,cAAc2H,GAChBA,EAAG3H,cAAc0H,EAAYG,KAAK,GAAG5H,UAAU6H,GAAM,SAAUrD,GAC7DwC,EAAI1G,QAAQkE,GACZ9E,EAASY,QAAQkE,IAChB,WACDwC,EAAIvG,cACJuG,EAAM,GAAIG,IACVzH,EAASO,OAAOqH,GAAON,EAAKI,IAC5BI,OAnCJ,GAAIG,GAAI,GAAI7H,IACVM,EAAI,GAAI2F,IAAoB4B,GAC5BP,EAAI,GAAIC,IAAmBjH,GAC3B4G,EAAM,GAAIG,GAqCZ,OApCAzH,GAASO,OAAOqH,GAAON,EAAKI,IAC5BhH,EAAE4F,IAAIzG,EAAOS,UAAU,SAAUqB,GAC7B2F,EAAI/G,OAAOoB,IACZ,SAAUmD,GACTwC,EAAI1G,QAAQkE,GACZ9E,EAASY,QAAQkE,IAClB,WACCwC,EAAIvG,cACJf,EAASe,iBA2Bb+G,IACOJ,IAiDX,QAASU,GAAgBC,EAAWxI,GAClC,MAAO,IAAIyI,IAAW,WACpB,MAAO,IAAIC,IAAW,WACpB,MAAOF,MACH7D,MAAM,EAAO1K,MAAO+F,IACpB2E,MAAM,EAAM1K,MAAOP,OA0Z7B,QAASiP,GAAQC,GACfhP,KAAKgP,SAAWA,EAqBlB,QAASC,GAAKC,EAAYnH,GACtB/H,KAAKkP,WAAaA,EAClBlP,KAAK+H,SAAWA,EA8BpB,QAASoH,GAAmBC,EAAuB1D,EAAYvE,GAC7D,GAAIkI,GAAQD,EAAsBE,IAAI5D,EACtC,KAAK2D,EAAO,CACV,GAAI9I,GAAW,GAAIgJ,IAAa7D,EAAYvE,EAE5C,OADAiI,GAAsB1G,IAAIgD,EAAYnF,GAC/BA,EAET,MAAO8I,GAGT,QAASG,GAAWC,EAAmB3I,EAAQQ,GAC7CtH,KAAKyP,kBAAoBA,EACzBzP,KAAK8G,OAASA,EACd9G,KAAKsH,YAAcA,EACnBtH,KAAK0P,cAAgB,GAAIC,GACzB,KAAK,GAAI/K,GAAI,EAAGgB,EAAM5F,KAAKyP,kBAAkB7O,OAAYgF,EAAJhB,EAASA,IAAK,CACjE,GAAIgL,GAAe5P,KAAKyP,kBAAkB7K,EAC1C5E,MAAK0P,cAAchH,IAAIkH,EAAcA,IAyJzC,QAASC,GAAoBC,EAAS9K,GACpC,MAAO,IAAIsB,IAAoB,SAAUC,GACvC,MAAOvB,GAAU+K,qBAAqBD,EAAS,WAC7CvJ,EAASO,OAAO,GAChBP,EAASe,kBAKf,QAAS0I,GAA6BF,EAASG,EAAQjL,GACrD,MAAO,IAAIsB,IAAoB,SAAUC,GACvC,GAAI7B,GAAQ,EAAGuC,EAAI6I,EAASI,EAAIC,GAAcF,EAC9C,OAAOjL,GAAUoL,8BAA8BnJ,EAAG,SAAUoJ,GAC1D,GAAIH,EAAI,EAAG,CACT,GAAII,GAAMtL,EAAUsL,KACpBrJ,IAAQiJ,EACHI,GAALrJ,IAAaA,EAAIqJ,EAAMJ,GAEzB3J,EAASO,OAAOpC,KAChB2L,EAAKpJ,OAKX,QAASsJ,GAAwBT,EAAS9K,GACxC,MAAO,IAAIsB,IAAoB,SAAUC,GACvC,MAAOvB,GAAUwL,qBAAqBL,GAAcL,GAAU,WAC5DvJ,EAASO,OAAO,GAChBP,EAASe,kBAKf,QAASmJ,IAAiCX,EAASG,EAAQjL,GACzD,MAAO8K,KAAYG,EACjB,GAAI3J,IAAoB,SAAUC,GAChC,MAAOvB,GAAU0L,0BAA0B,EAAGT,EAAQ,SAAUvL,GAE9D,MADA6B,GAASO,OAAOpC,GACTA,EAAQ,MAGnBiM,GAAgB,WACd,MAAOX,GAA6BhL,EAAUsL,MAAQR,EAASG,EAAQjL,KA8C7E,QAAS4L,IAAwBxK,EAAQ0J,EAAS9K,GAChD,MAAO,IAAIsB,IAAoB,SAAUC,GACvC,GAKEG,GALEmK,GAAS,EACXC,EAAa,GAAInK,IACjBK,EAAY,KACZ+J,KACAC,GAAU,CAsDZ,OApDAtK,GAAeN,EAAO6K,cAAcC,UAAUlM,GAAW6B,UAAU,SAAUsK,GAC3E,GAAIlK,GAAGkD,CACyB,OAA5BgH,EAAa9Q,MAAM+Q,MACrBL,KACAA,EAAEzP,KAAK6P,GACPnK,EAAYmK,EAAa9Q,MAAM2G,UAC/BmD,GAAa6G,IAEbD,EAAEzP,MAAOjB,MAAO8Q,EAAa9Q,MAAO6Q,UAAWC,EAAaD,UAAYpB,IACxE3F,GAAa0G,EACbA,GAAS,GAEP1G,IACgB,OAAdnD,EACFT,EAASY,QAAQH,IAEjBC,EAAI,GAAIR,IACRqK,EAAWlK,cAAcK,GACzBA,EAAEL,cAAc5B,EAAUqM,8BAA8BvB,EAAS,SAAUO,GACzE,GAAIxI,GAAGyJ,EAAgB7Q,EAAQ8Q,CAC/B,IAAkB,OAAdvK,EAAJ,CAGAgK,GAAU,CACV,GACEvQ,GAAS,KACLsQ,EAAEnQ,OAAS,GAAKmQ,EAAE,GAAGG,UAAYlM,EAAUsL,OAAS,IACtD7P,EAASsQ,EAAES,QAAQnR,OAEN,OAAXI,GACFA,EAAOgR,OAAOlL,SAEE,OAAX9F,EACT8Q,IAAgB,EAChBD,EAAiB,EACbP,EAAEnQ,OAAS,GACb2Q,GAAgB,EAChBD,EAAiBzL,KAAK6L,IAAI,EAAGX,EAAE,GAAGG,UAAYlM,EAAUsL,QAExDO,GAAS,EAEXhJ,EAAIb,EACJgK,GAAU,EACA,OAANnJ,EACFtB,EAASY,QAAQU,GACR0J,GACTlB,EAAKiB,WAMR,GAAI1E,IAAoBlG,EAAcoK,KAIjD,QAASa,IAAoBvL,EAAQ0J,EAAS9K,GAC5C,MAAO2L,IAAgB,WACrB,MAAOC,IAAwBxK,EAAQ0J,EAAU9K,EAAUsL,MAAOtL,KA8RtE,QAAS4M,IAAiBxL,EAAQyL,GAEhC,MAAO,IAAIvL,IAAoB,SAAUC,GAGvC,QAASuL,KACH/I,IACFA,GAAW,EACXxC,EAASO,OAAOzG,IAElB0R,GAASxL,EAASe,cAPpB,GAAIyK,GAAO1R,EAAO0I,CAUlB,OAAO,IAAI6D,IACTxG,EAAOS,UAAU,SAAUmL,GACzBjJ,GAAW,EACX1I,EAAQ2R,GACPzL,EAASY,QAAQJ,KAAKR,GAAW,WAClCwL,GAAQ,IAEVF,EAAQhL,UAAUiL,EAAiBvL,EAASY,QAAQJ,KAAKR,GAAWuL,MAtpP1E,GAAIG,KACFC,WAAW,EACXC,YAAY,EACZ3R,QAAU,EACViF,QAAU,EACV2M,QAAU,EACVtS,WAAa,GAGXqF,GAAQ8M,SAAmBI,UAAWA,QAAWrS,KACnDsS,GAAcL,SAAmBM,WAAYA,UAAYA,QAAQC,UAAYD,QAC7EE,GAAaR,SAAmBS,UAAWA,SAAWA,OAAOF,UAAYE,OACzEC,GAAgBF,IAAcA,GAAWF,UAAYD,IAAeA,GACpEM,GAAaX,SAAmBY,UAAWA,QAEzCD,IAAeA,GAAWC,SAAWD,IAAcA,GAAWP,SAAWO,KAC3EzN,GAAOyN,GAGT,IAAIE,KACAC,aACAC,QACEC,QAAS9N,GAAK8N,SAEhBC,YAIAxE,GAAOoE,GAAGI,QAAQxE,KAAO,aAE3ByE,IADaL,GAAGI,QAAQE,WAAa,SAAUlL,GAAK,MAAoB,mBAANA,IACpD4K,GAAGI,QAAQC,YAAc,SAAUjL,GAAK,MAAOA,aAAa4K,IAAGO,YAC7ElG,GAAW2F,GAAGI,QAAQ/F,SAAW,SAAUjF,GAAK,MAAOA,IAGvDoL,IAFQR,GAAGI,QAAQK,MAAQ,SAAUC,GAAY,MAAO,UAAUtL,GAAK,MAAOA,GAAEsL,KACzEV,GAAGI,QAAQO,KAAO,SAAUpT,GAAS,MAAO,YAAc,MAAOA,KAC3DyS,GAAGI,QAAQI,WAAaI,KAAKpD,KAC1CqD,GAAkBb,GAAGI,QAAQS,gBAAkB,SAAUzL,EAAG0L,GAAK,MAAOC,IAAQ3L,EAAG0L,IACnFE,GAAqBhB,GAAGI,QAAQY,mBAAqB,SAAU5L,EAAG0L,GAAK,MAAO1L,GAAI0L,EAAI,EAASA,EAAJ1L,EAAQ,GAAK,GAExG6L,IADuBjB,GAAGI,QAAQc,qBAAuB,SAAU9L,GAAK,MAAOA,GAAEhG,YAClE4Q,GAAGI,QAAQa,aAAe,SAAU1I,GAAO,KAAMA,KAChEjE,GAAY0L,GAAGI,QAAQ9L,UAAY,SAAU8I,GAAK,QAASA,GAAuB,kBAAXA,GAAErE,MAEzEoI,IADUnB,GAAGI,QAAQgB,QAAU,WAAc,MAAO3P,OAAM1C,UAAUf,MAAMC,KAAKoT,YACzErB,GAAGI,QAAQe,IAAM,SAAUnR,GAAK,OAAQA,IAC9CmB,GAAa6O,GAAGI,QAAQjP,WAAc,WAEpC,GAAImQ,GAAO,SAAU/T,GACnB,MAAuB,kBAATA,KAAuB,EAUvC,OANI+T,GAAK,OACPA,EAAO,SAAS/T,GACd,MAAuB,kBAATA,IAA+C,qBAAxB6B,GAASnB,KAAKV,KAIhD+T,KAIP/K,GAA6B,iCAC7BM,GAAqB,wBACrBxJ,GAAiB,2BAIjBoF,GAAgC,kBAAX8O,SAAyBA,OAAOC,UACvD,oBAEEnP,IAAKoP,KAA+C,mBAAjC,GAAIpP,IAAKoP,KAAM,gBACpChP,GAAa,aAGf,IAAIiP,IAAiB1B,GAAG0B,gBAAmBzJ,MAAM,EAAM1K,MAAOP,EAE9DgT,IAAGwB,SAAW/O,EAGd,IAcEkP,IAdE7R,GAAY,qBACde,GAAa,iBACbN,GAAY,mBACZC,GAAY,gBACZrB,GAAa,iBACbyS,GAAY,oBACZnR,GAAc,kBACdH,GAAc,kBACdI,GAAc,kBACdxB,GAAc,kBAEZE,GAAW6B,OAAOlC,UAAUK,SAC9BG,GAAiB0B,OAAOlC,UAAUQ,eAClCsS,GAAoBzS,GAASnB,KAAKoT,YAAcvR,GAEhDxB,GAAalB,MAAM2B,UACnBL,GAAcuC,OAAOlC,UACrB+S,GAAuBpT,GAAYoT,oBAErC,KACEH,KAAoBvS,GAASnB,KAAK8T,WAAazR,OAAmBlB,SAAY,GAAM,KACpF,MAAM2F,IACN4M,IAAkB,EAGpB,GAAI7S,KACF,cAAe,iBAAkB,gBAAiB,uBAAwB,iBAAkB,WAAY,WAGtGQ,KACJA,IAAauB,IAAcvB,GAAakB,IAAalB,GAAamB,KAAiB7B,aAAe,EAAMoT,gBAAkB,EAAM5S,UAAY,EAAM6S,SAAW,GAC7J3S,GAAaiB,IAAajB,GAAaJ,KAAiBN,aAAe,EAAMQ,UAAY,EAAM6S,SAAW,GAC1G3S,GAAaH,IAAcG,GAAasS,IAAatS,GAAaoB,KAAiB9B,aAAe,EAAMQ,UAAY,GACpHE,GAAagB,KAAiB1B,aAAe,EAE7C,IAAIhB,QACH,WACC,GAAIe,GAAO,WAAazB,KAAKkI,EAAI,GAC/BzF,IAEFhB,GAAKI,WAAckT,QAAW,EAAGnB,EAAK,EACtC,KAAK,GAAIvS,KAAO,IAAII,GAAQgB,EAAMnB,KAAKD,EACvC,KAAKA,IAAO8S,YAGZzT,GAAQS,eAAiByT,GAAqB7T,KAAKK,GAAY,YAAcwT,GAAqB7T,KAAKK,GAAY,QAGnHV,GAAQO,eAAiB2T,GAAqB7T,KAAKU,EAAM,aAGzDf,GAAQC,YAAqB,GAAPU,EAGtBX,GAAQa,gBAAkB,UAAUyT,KAAKvS,IACzC,GA6EGkS,KACH9T,EAAc,SAASR,GACrB,MAAQA,IAAyB,gBAATA,GAAqBgC,GAAetB,KAAKV,EAAO,WAAY,GAIxF,IAAIwT,IAAUf,GAAGC,UAAUc,QAAU,SAAU3L,EAAG0L,GAChD,MAAO/Q,GAAWqF,EAAG0L,UA8InB9S,GAAQyD,MAAM1C,UAAUf,MAQxBmU,OAFa5S,eAEFrC,KAAKiV,SAAWnC,GAAGC,UAAUkC,SAAW,SAAUC,EAAOC,GACtE,QAASC,KAAOpV,KAAK0B,YAAcwT,EACnCE,EAAGvT,UAAYsT,EAAOtT,UACtBqT,EAAMrT,UAAY,GAAIuT,KAGpBC,GAAgBvC,GAAGC,UAAUsC,cAAgB,SAAUhL,GAEzD,IAAK,GADDiL,GAAUxU,GAAMC,KAAKoT,UAAW,GAC3BvP,EAAI,EAAGgB,EAAM0P,EAAQ1U,OAAYgF,EAAJhB,EAASA,IAAK,CAClD,GAAIwB,GAASkP,EAAQ1Q,EACrB,KAAK,GAAI2Q,KAAQnP,GACfiE,EAAIkL,GAAQnP,EAAOmP,KAMrBpH,GAAS2E,GAAGC,UAAU5E,OAAS,SAAUqH,EAAIvH,GAC/C,MAAO,IAAI3H,IAAoB,SAAUC,GACvC,MAAO,IAAIqG,IAAoBqB,EAAEwH,gBAAiBD,EAAG3O,UAAUN,MAkBnE1B,GAAYhD,UAAU6T,UAAY,SAAUC,GAC1C,GAAIC,GAAI5V,KAAKK,MAAMqV,UAAUC,EAAMtV,MAEnC,OADM,KAANuV,IAAYA,EAAI5V,KAAK8E,GAAK6Q,EAAM7Q,IACzB8Q,EAIT,IAAIC,IAAgB/C,GAAGC,UAAU8C,cAAgB,SAAUC,GACzD9V,KAAK+V,MAAQ,GAAIxR,OAAMuR,GACvB9V,KAAKY,OAAS,GAGZoV,GAAgBH,GAAchU,SAClCmU,IAAcC,iBAAmB,SAAUtO,EAAMC,GAC/C,MAAO5H,MAAK+V,MAAMpO,GAAM+N,UAAU1V,KAAK+V,MAAMnO,IAAU,GAGzDoO,GAAcE,UAAY,SAAUvU,GAClC,KAAIA,GAAS3B,KAAKY,QAAkB,EAARe,GAA5B,CACA,GAAIwT,GAASxT,EAAQ,GAAK,CAC1B,MAAa,EAATwT,GAAcA,IAAWxT,IACzB3B,KAAKiW,iBAAiBtU,EAAOwT,GAAS,CACxC,GAAIgB,GAAOnW,KAAK+V,MAAMpU,EACtB3B,MAAK+V,MAAMpU,GAAS3B,KAAK+V,MAAMZ,GAC/BnV,KAAK+V,MAAMZ,GAAUgB,EACrBnW,KAAKkW,UAAUf,MAInBa,GAAcI,QAAU,SAAUzU,GAEhC,IADCA,IAAUA,EAAQ,KACfA,GAAS3B,KAAKY,QAAkB,EAARe,GAA5B,CACA,GAAIgG,GAAO,EAAIhG,EAAQ,EACnBiG,EAAQ,EAAIjG,EAAQ,EACpB+F,EAAQ/F,CAOZ,IANIgG,EAAO3H,KAAKY,QAAUZ,KAAKiW,iBAAiBtO,EAAMD,KACpDA,EAAQC,GAENC,EAAQ5H,KAAKY,QAAUZ,KAAKiW,iBAAiBrO,EAAOF,KACtDA,EAAQE,GAENF,IAAU/F,EAAO,CACnB,GAAIwU,GAAOnW,KAAK+V,MAAMpU,EACtB3B,MAAK+V,MAAMpU,GAAS3B,KAAK+V,MAAMrO,GAC/B1H,KAAK+V,MAAMrO,GAASyO,EACpBnW,KAAKoW,QAAQ1O,MAIjBsO,GAAcK,KAAO,WAAc,MAAOrW,MAAK+V,MAAM,GAAG1V,OAExD2V,GAAcM,SAAW,SAAU3U,GACjC3B,KAAK+V,MAAMpU,GAAS3B,KAAK+V,QAAQ/V,KAAKY,cAC/BZ,MAAK+V,MAAM/V,KAAKY,QACvBZ,KAAKoW,WAGPJ,GAAcO,QAAU,WACtB,GAAI9V,GAAST,KAAKqW,MAElB,OADArW,MAAKsW,SAAS,GACP7V,GAGTuV,GAAcQ,QAAU,SAAUjO,GAChC,GAAI5G,GAAQ3B,KAAKY,QACjBZ,MAAK+V,MAAMpU,GAAS,GAAIkD,GAAYgR,GAAcnR,QAAS6D,GAC3DvI,KAAKkW,UAAUvU,IAGjBqU,GAAcS,OAAS,SAAUlO,GAC/B,IAAK,GAAI3D,GAAI,EAAGA,EAAI5E,KAAKY,OAAQgE,IAC/B,GAAI5E,KAAK+V,MAAMnR,GAAGvE,QAAUkI,EAE1B,MADAvI,MAAKsW,SAAS1R,IACP,CAGX,QAAO,GAETiR,GAAcnR,MAAQ,CAMtB,IAAIkI,IAAsBkG,GAAGlG,oBAAsB,WACjD5M,KAAK2M,YAAcvI,EAAY+P,UAAW,GAC1CnU,KAAKC,YAAa,EAClBD,KAAKY,OAASZ,KAAK2M,YAAY/L,QAG7B8V,GAA+B9J,GAAoB/K,SAMvD6U,IAA6B7J,IAAM,SAAUtE,GACvCvI,KAAKC,WACPsI,EAAKoO,WAEL3W,KAAK2M,YAAYrL,KAAKiH,GACtBvI,KAAKY,WAST8V,GAA6BD,OAAS,SAAUlO,GAC9C,GAAIqO,IAAgB,CACpB,KAAK5W,KAAKC,WAAY,CACpB,GAAIqE,GAAMtE,KAAK2M,YAAYkK,QAAQtO,EACvB,MAARjE,IACFsS,GAAgB,EAChB5W,KAAK2M,YAAYmK,OAAOxS,EAAK,GAC7BtE,KAAKY,SACL2H,EAAKoO,WAGT,MAAOC,IAMTF,GAA6BC,QAAU,WACrC,IAAK3W,KAAKC,WAAY,CACpBD,KAAKC,YAAa,CAClB,IAAI8W,GAAqB/W,KAAK2M,YAAY7L,MAAM,EAChDd,MAAK2M,eACL3M,KAAKY,OAAS,CAEd,KAAK,GAAIgE,GAAI,EAAGgB,EAAMmR,EAAmBnW,OAAYgF,EAAJhB,EAASA,IACxDmS,EAAmBnS,GAAG+R,YAS5BD,GAA6BM,QAAU,WACrC,MAAOhX,MAAK2M,YAAY7L,MAAM,GAShC,IAAImW,IAAanE,GAAGmE,WAAa,SAAUC,GACzClX,KAAKC,YAAa,EAClBD,KAAKkX,OAASA,GAAUxI,GAI1BuI,IAAWpV,UAAU8U,QAAU,WACxB3W,KAAKC,aACRD,KAAKkX,SACLlX,KAAKC,YAAa,GAStB,IAAIqM,IAAmB2K,GAAWE,OAAS,SAAUD,GAAU,MAAO,IAAID,IAAWC,IAKjFE,GAAkBH,GAAWI,OAAUV,QAASjI,IAEhDjI,GAA6BqM,GAAGrM,2BAA8B,WAChE,QAAS6Q,KACPtX,KAAKC,YAAa,EAClBD,KAAKuX,QAAU,KAGjB,GAAIC,GAA6BF,EAAkBzV,SAqCnD,OA/BA2V,GAA2B/B,cAAgB,WACzC,MAAOzV,MAAKuX,SAOdC,EAA2B5Q,cAAgB,SAAUvG,GACnD,GAAqCoX,GAAjCb,EAAgB5W,KAAKC,UACpB2W,KACHa,EAAMzX,KAAKuX,QACXvX,KAAKuX,QAAUlX,GAEjBoX,GAAOA,EAAId,UACXC,GAAiBvW,GAASA,EAAMsW,WAMlCa,EAA2Bb,QAAU,WACnC,GAAIc,EACCzX,MAAKC,aACRD,KAAKC,YAAa,EAClBwX,EAAMzX,KAAKuX,QACXvX,KAAKuX,QAAU,MAEjBE,GAAOA,EAAId,WAGNW,KAEL3Q,GAAmBmM,GAAGnM,iBAAmBF,GAKvCyH,GAAqB4E,GAAG5E,mBAAqB,WAE7C,QAASwJ,GAAgBzS,GACrBjF,KAAKiF,WAAaA,EAClBjF,KAAKiF,WAAWP,QAChB1E,KAAK2X,iBAAkB,EAqB3B,QAASzJ,GAAmBjJ,GACxBjF,KAAK4X,qBAAuB3S,EAC5BjF,KAAKC,YAAa,EAClBD,KAAK6X,mBAAoB,EACzB7X,KAAK0E,MAAQ,EA0BjB,MAhDAgT,GAAgB7V,UAAU8U,QAAU,WAC3B3W,KAAKiF,WAAWhF,YACZD,KAAK2X,kBACN3X,KAAK2X,iBAAkB,EACvB3X,KAAKiF,WAAWP,QACc,IAA1B1E,KAAKiF,WAAWP,OAAe1E,KAAKiF,WAAW4S,oBAC/C7X,KAAKiF,WAAWhF,YAAa,EAC7BD,KAAKiF,WAAW2S,qBAAqBjB,aAqBrDzI,EAAmBrM,UAAU8U,QAAU,WAC9B3W,KAAKC,YACDD,KAAK6X,oBACN7X,KAAK6X,mBAAoB,EACN,IAAf7X,KAAK0E,QACL1E,KAAKC,YAAa,EAClBD,KAAK4X,qBAAqBjB,aAU1CzI,EAAmBrM,UAAU4T,cAAgB,WACzC,MAAOzV,MAAKC,WAAamX,GAAkB,GAAIM,GAAgB1X,OAG5DkO,IASXnJ,GAAoBlD,UAAU8U,QAAU,WACpC,GAAIxB,GAASnV,IACbA,MAAKgF,UAAUyG,SAAS,WACf0J,EAAOlV,aACRkV,EAAOlV,YAAa,EACpBkV,EAAOlQ,WAAW0R,aAKhC,IAAImB,IAAgBhF,GAAGC,UAAU+E,cAAgB,SAAU9S,EAAW+S,EAAOb,EAAQpH,EAAStH,GAC5FxI,KAAKgF,UAAYA,EACjBhF,KAAK+X,MAAQA,EACb/X,KAAKkX,OAASA,EACdlX,KAAK8P,QAAUA,EACf9P,KAAKwI,SAAWA,GAAYsL,GAC5B9T,KAAKiF,WAAa,GAAIwB,IAGxBqR,IAAcjW,UAAUmW,OAAS,WAC/BhY,KAAKiF,WAAW2B,cAAc5G,KAAKiY,eAGrCH,GAAcjW,UAAU6T,UAAY,SAAUC,GAC5C,MAAO3V,MAAKwI,SAASxI,KAAK8P,QAAS6F,EAAM7F,UAG3CgI,GAAcjW,UAAUqW,YAAc,WACpC,MAAOlY,MAAKiF,WAAWhF,YAGzB6X,GAAcjW,UAAUoW,WAAa,WACnC,MAAOjY,MAAKkX,OAAOlX,KAAKgF,UAAWhF,KAAK+X,OAI1C,IAAI1E,IAAYP,GAAGO,UAAa,WAE9B,QAASA,GAAU/C,EAAK7E,EAAU0M,EAAkBC,GAClDpY,KAAKsQ,IAAMA,EACXtQ,KAAKqY,UAAY5M,EACjBzL,KAAKsY,kBAAoBH,EACzBnY,KAAKuY,kBAAoBH,EAG3B,QAASI,GAAaxT,EAAWkS,GAE/B,MADAA,KACOE,GAGT,GAAIqB,GAAiBpF,EAAUxR,SA4E/B,OArEA4W,GAAehN,SAAW,SAAUyL,GAClC,MAAOlX,MAAKqY,UAAUnB,EAAQsB,IAShCC,EAAeC,kBAAoB,SAAUX,EAAOb,GAClD,MAAOlX,MAAKqY,UAAUN,EAAOb,IAS/BuB,EAAejI,qBAAuB,SAAUV,EAASoH,GACvD,MAAOlX,MAAKsY,kBAAkBpB,EAAQpH,EAAS0I,IAUjDC,EAAeE,6BAA+B,SAAUZ,EAAOjI,EAASoH,GACtE,MAAOlX,MAAKsY,kBAAkBP,EAAOjI,EAASoH,IAShDuB,EAAe1I,qBAAuB,SAAUD,EAASoH,GACvD,MAAOlX,MAAKuY,kBAAkBrB,EAAQpH,EAAS0I,IAUjDC,EAAeG,6BAA+B,SAAUb,EAAOjI,EAASoH,GACtE,MAAOlX,MAAKuY,kBAAkBR,EAAOjI,EAASoH,IAIhD7D,EAAU/C,IAAMgD,GAOhBD,EAAUwF,UAAY,SAAUC,GAE9B,MADW,GAAXA,IAAiBA,EAAW,GACrBA,GAGFzF,KAGLlD,GAAgBkD,GAAUwF,WAE7B,SAAUJ,GACT,QAASM,GAAmB/T,EAAWgU,GACrC,GAAIjB,GAAQiB,EAAKtR,MAAOwP,EAAS8B,EAAKxR,OAAQyR,EAAQ,GAAIrM,IAC1DsM,EAAkB,SAAUC,GAC1BjC,EAAOiC,EAAQ,SAAUC,GACvB,GAAIC,IAAU,EAAOhM,GAAS,EAC9BpG,EAAIjC,EAAU0T,kBAAkBU,EAAQ,SAAUE,EAAYC,GAO5D,MANIF,GACFJ,EAAMxC,OAAOxP,GAEboG,GAAS,EAEX6L,EAAgBK,GACTnC,IAEJ/J,KACH4L,EAAMpM,IAAI5F,GACVoS,GAAU,KAKhB,OADAH,GAAgBnB,GACTkB,EAGT,QAASO,GAAcxU,EAAWgU,EAAMS,GACtC,GAAI1B,GAAQiB,EAAKtR,MAAOwP,EAAS8B,EAAKxR,OAAQyR,EAAQ,GAAIrM,IAC1DsM,EAAkB,SAAUC,GAC1BjC,EAAOiC,EAAQ,SAAUC,EAAQM,GAC/B,GAAIL,IAAU,EAAOhM,GAAS,EAC9BpG,EAAIjC,EAAUyU,GAAQ1Y,KAAKiE,EAAWoU,EAAQM,EAAU,SAAUJ,EAAYC,GAO5E,MANIF,GACFJ,EAAMxC,OAAOxP,GAEboG,GAAS,EAEX6L,EAAgBK,GACTnC,IAEJ/J,KACH4L,EAAMpM,IAAI5F,GACVoS,GAAU,KAKhB,OADAH,GAAgBnB,GACTkB,EAGT,QAASU,GAAuBzC,EAAQ7G,GACtC6G,EAAO,SAAS0C,GAAMvJ,EAAK6G,EAAQ0C,KAQrCnB,EAAeoB,kBAAoB,SAAU3C,GAC3C,MAAOlX,MAAK8Z,2BAA2B5C,EAAQ,SAAU6C,EAAS1J,GAChE0J,EAAQ,WAAc1J,EAAK0J,QAS/BtB,EAAeqB,2BAA6B,SAAU/B,EAAOb,GAC3D,MAAOlX,MAAK0Y,mBAAoBhR,MAAOqQ,EAAOvQ,OAAQ0P,GAAU6B,IASlEN,EAAepH,8BAAgC,SAAUvB,EAASoH,GAChE,MAAOlX,MAAKga,sCAAsC9C,EAAQpH,EAAS6J,IAUrElB,EAAeuB,sCAAwC,SAAUjC,EAAOjI,EAASoH,GAC/E,MAAOlX,MAAKsY,mBAAoB5Q,MAAOqQ,EAAOvQ,OAAQ0P,GAAUpH,EAAS,SAAUmK,EAAG/J,GACpF,MAAOsJ,GAAcS,EAAG/J,EAAG,mCAU/BuI,EAAerI,8BAAgC,SAAUN,EAASoH,GAChE,MAAOlX,MAAKka,sCAAsChD,EAAQpH,EAAS6J,IAUrElB,EAAeyB,sCAAwC,SAAUnC,EAAOjI,EAASoH,GAC/E,MAAOlX,MAAKuY,mBAAoB7Q,MAAOqQ,EAAOvQ,OAAQ0P,GAAUpH,EAAS,SAAUmK,EAAG/J,GACpF,MAAOsJ,GAAcS,EAAG/J,EAAG,oCAG/BmD,GAAUxR,WAEX,WAQCwR,GAAUxR,UAAUsY,iBAAmB,SAAUlK,EAAQiH,GACvD,MAAOlX,MAAK0Q,0BAA0B,KAAMT,EAAQiH,IAUtD7D,GAAUxR,UAAU6O,0BAA4B,SAASqH,EAAO9H,EAAQiH,GACtE,GAAgC,mBAArB/R,IAAKiV,YAA+B,KAAM,IAAIla,OAAM,qCAC/D,IAAI+Z,GAAIlC,EAEJjT,EAAKK,GAAKiV,YAAY,WACxBH,EAAI/C,EAAO+C,IACVhK,EAEH,OAAO3D,IAAiB,WACtBnH,GAAKkV,cAAcvV,OAIvBuO,GAAUxR,WAEX,SAAU4W,GAMTA,EAAe6B,WAAa7B,EAAe,SAAW,SAAUpS,GAC9D,MAAO,IAAIkU,IAAeva,KAAMqG,KAElCgN,GAAUxR,UAEZ,IA4GI2Y,IA5GAC,GAA4B3H,GAAGC,UAAU0H,0BAA6B,WACxE,QAASC,GAAKC,EAASC,GACrBA,EAAQ,EAAG5a,KAAK6a,QAChB,KACE7a,KAAK8a,OAAS9a,KAAK+Z,QAAQ/Z,KAAK8a,QAChC,MAAOjT,GAEP,KADA7H,MAAK+a,QAAQpE,UACP9O,GAIV,QAAS4S,GAA0BzV,EAAW+S,EAAO9H,EAAQiH,GAC3DlX,KAAKgb,WAAahW,EAClBhF,KAAK8a,OAAS/C,EACd/X,KAAK6a,QAAU5K,EACfjQ,KAAK+Z,QAAU7C,EAWjB,MARAuD,GAA0B5Y,UAAUoZ,MAAQ,WAC1C,GAAIhU,GAAI,GAAIR,GAIZ,OAHAzG,MAAK+a,QAAU9T,EACfA,EAAEL,cAAc5G,KAAKgb,WAAWhB,sCAAsC,EAAGha,KAAK6a,QAASH,EAAK3T,KAAK/G,QAE1FiH,GAGFwT,KAMLS,GAAqB7H,GAAU8H,UAAa,WAE9C,QAASC,GAAYrD,EAAOb,GAAU,MAAOA,GAAOlX,KAAM+X,GAE1D,QAASI,GAAiBJ,EAAOjI,EAASoH,GAExC,IADA,GAAI0C,GAAKzJ,GAAcyJ,GAChBA,EAAK5Z,KAAKsQ,MAAQ,IACzB,MAAO4G,GAAOlX,KAAM+X,GAGtB,QAASK,GAAiBL,EAAOjI,EAASoH,GACxC,MAAOlX,MAAK2Y,6BAA6BZ,EAAOjI,EAAU9P,KAAKsQ,MAAO4G,GAGxE,MAAO,IAAI7D,IAAUC,GAAY8H,EAAajD,EAAkBC,MAM9DiD,GAAyBhI,GAAUiI,cAAiB,WAGtD,QAASC,GAAexK,GAEtB,IADA,GAAIxI,GACGwI,EAAEnQ,OAAS,GAEhB,GADA2H,EAAOwI,EAAEwF,WACJhO,EAAK2P,cAAe,CAEvB,KAAO3P,EAAKuH,QAAUuD,GAAU/C,MAAQ,IAEnC/H,EAAK2P,eACR3P,EAAKyP,UAMb,QAASoD,GAAYrD,EAAOb,GAC1B,MAAOlX,MAAK2Y,6BAA6BZ,EAAO,EAAGb,GAGrD,QAASiB,GAAiBJ,EAAOjI,EAASoH,GACxC,GAAI0C,GAAK5Z,KAAKsQ,MAAQ+C,GAAUwF,UAAU/I,GACtC0L,EAAK,GAAI1D,IAAc9X,KAAM+X,EAAOb,EAAQ0C,EAEhD,IAAK6B,EAWHA,EAAMjF,QAAQgF,OAXJ,CACVC,EAAQ,GAAI5F,IAAc,GAC1B4F,EAAMjF,QAAQgF,EACd,KACED,EAAcE,GACd,MAAO5T,GACP,KAAMA,GACN,QACA4T,EAAQ,MAKZ,MAAOD,GAAGvW,WAGZ,QAASmT,GAAiBL,EAAOjI,EAASoH,GACxC,MAAOlX,MAAK2Y,6BAA6BZ,EAAOjI,EAAU9P,KAAKsQ,MAAO4G,GA1CxE,GAAIuE,GA6CAC,EAAmB,GAAIrI,IAAUC,GAAY8H,EAAajD,EAAkBC,EAOhF,OALAsD,GAAiBC,iBAAmB,WAAc,OAAQF,GAC1DC,EAAiBE,iBAAmB,SAAU1E,GACvCuE,EAAyCvE,IAAhClX,KAAKyL,SAASyL,IAGvBwE,KAGWG,GAAcnN,GAC9BoN,GAAc,WAChB,GAAIC,GAAiBC,EAAoBtN,EACzC,IAAI,WAAa1O,MACf+b,EAAkB,SAAU9Q,EAAIgR,GAC9BC,QAAQC,MAAMF,GACdhR,SAEG,CAAA,IAAM9F,GAAKiX,WAIhB,KAAM,IAAIlc,OAAM,2BAHhB6b,GAAkB5W,GAAKiX,WACvBJ,EAAoB7W,GAAKkX,aAK3B,OACED,WAAYL,EACZM,aAAcL,MAGdD,GAAkBD,GAAWM,WAC/BJ,GAAoBF,GAAWO,cAEhC,WAaC,QAASC,KAEP,IAAKnX,GAAKoX,aAAepX,GAAKqX,cAAiB,OAAO,CACtD,IAAIC,IAAU,EACVC,EAAavX,GAAKwX,SAMtB,OAJAxX,IAAKwX,UAAY,WAAcF,GAAU,GACzCtX,GAAKoX,YAAY,GAAG,KACpBpX,GAAKwX,UAAYD,EAEVD,EAcP,QAASG,GAAoBC,GAE3B,GAA0B,gBAAfA,GAAMC,MAAqBD,EAAMC,KAAKC,UAAU,EAAGC,EAAWpc,UAAYoc,EAAY,CAC/F,GAAIC,GAAWJ,EAAMC,KAAKC,UAAUC,EAAWpc,QAC7CsW,EAASgG,EAAMD,EACjB/F,WACOgG,GAAMD,IAzCnB,GAAIE,GAAWC,OAAO,IACpB3Z,OAAOvB,IACJmb,QAAQ,sBAAuB,QAC/BA,QAAQ,wBAAyB,OAAS,KAG3CC,EAAiG,mBAA1EA,EAAe1K,IAAcD,IAAiBC,GAAW0K,gBACjFH,EAASnI,KAAKsI,IAAiBA,EAChCC,EAAuG,mBAA9EA,EAAiB3K,IAAcD,IAAiBC,GAAW2K,kBACnFJ,EAASnI,KAAKuI,IAAmBA,CAgBpC,IAAuB,mBAAZC,UAAyD,wBAA3Btb,SAASnB,KAAKyc,SACrDhD,GAAiBgD,QAAQC,aACpB,IAA4B,kBAAjBH,GAChB9C,GAAiB8C,EACjBzB,GAAc0B,MACT,IAAIjB,IAAwB,CACjC,GAAIU,GAAa,iBAAmBnX,KAAK6X,SACvCR,KACAS,EAAS,CAYPxY,IAAKkH,iBACPlH,GAAKkH,iBAAiB,UAAWuQ,GAAqB,GAEtDzX,GAAKyY,YAAY,YAAahB,GAAqB,GAGrDpC,GAAiB,SAAUtD,GACzB,GAAI2G,GAAYF,GAChBT,GAAMW,GAAa3G,EACnB/R,GAAKoX,YAAYS,EAAaa,EAAW,UAEtC,IAAM1Y,GAAK2Y,eAAgB,CAChC,GAAIC,GAAU,GAAI5Y,IAAK2Y,eACrBE,KACAC,EAAgB,CAElBF,GAAQG,MAAMvB,UAAY,SAAUE,GAClC,GAAI/X,GAAK+X,EAAMC,KACb5F,EAAS8G,EAAalZ,EACxBoS,WACO8G,GAAalZ,IAGtB0V,GAAiB,SAAUtD,GACzB,GAAIpS,GAAKmZ,GACTD,GAAalZ,GAAMoS,EACnB6G,EAAQI,MAAM5B,YAAYzX,QAEnB,YAAcK,KAAQ,sBAAwBA,IAAK0P,SAASuJ,cAAc,UAEnF5D,GAAiB,SAAUtD,GACzB,GAAImH,GAAgBlZ,GAAK0P,SAASuJ,cAAc,SAChDC,GAAcC,mBAAqB,WACjCpH,IACAmH,EAAcC,mBAAqB,KACnCD,EAAcE,WAAWC,YAAYH,GACrCA,EAAgB,MAElBlZ,GAAK0P,SAAS4J,gBAAgBC,YAAYL,KAI5C7D,GAAiB,SAAUtD,GAAU,MAAO6E,IAAgB7E,EAAQ,IACpE2E,GAAcG,MAOlB,IAAIxQ,IAAmB6H,GAAUsL,QAAU,WAEzC,QAASvD,GAAYrD,EAAOb,GAC1B,GAAIlS,GAAYhF,KACdiF,EAAa,GAAIwB,IACf3B,EAAK0V,GAAe,WACjBvV,EAAWhF,YACdgF,EAAW2B,cAAcsQ,EAAOlS,EAAW+S,KAG/C,OAAO,IAAInL,IAAoB3H,EAAYqH,GAAiB,WAC1DuP,GAAY/W,MAIhB,QAASqT,GAAiBJ,EAAOjI,EAASoH,GACxC,GAAIlS,GAAYhF,KACd4Z,EAAKvG,GAAUwF,UAAU/I,EAC3B,IAAW,IAAP8J,EACF,MAAO5U,GAAU0T,kBAAkBX,EAAOb,EAE5C,IAAIjS,GAAa,GAAIwB,IACjB3B,EAAKiX,GAAgB,WAClB9W,EAAWhF,YACdgF,EAAW2B,cAAcsQ,EAAOlS,EAAW+S,KAE5C6B,EACH,OAAO,IAAIhN,IAAoB3H,EAAYqH,GAAiB,WAC1D0P,GAAkBlX,MAItB,QAASsT,GAAiBL,EAAOjI,EAASoH,GACxC,MAAOlX,MAAK2Y,6BAA6BZ,EAAOjI,EAAU9P,KAAKsQ,MAAO4G,GAGxE,MAAO,IAAI7D,IAAUC,GAAY8H,EAAajD,EAAkBC,MAG9DmC,GAAkB,SAAUqE,GAE9B,QAASxD,GAAYrD,EAAOb,GAC1B,MAAOlX,MAAKgb,WAAWtC,kBAAkBX,EAAO/X,KAAK6e,MAAM3H,IAG7D,QAASiB,GAAiBJ,EAAOjI,EAASoH,GACxC,MAAOlX,MAAKgb,WAAWrC,6BAA6BZ,EAAOjI,EAAS9P,KAAK6e,MAAM3H,IAGjF,QAASkB,GAAiBL,EAAOjI,EAASoH,GACxC,MAAOlX,MAAKgb,WAAWpC,6BAA6Bb,EAAOjI,EAAS9P,KAAK6e,MAAM3H,IAKjF,QAASqD,GAAevV,EAAWqB,GACjCrG,KAAKgb,WAAahW,EAClBhF,KAAK8e,SAAWzY,EAChBrG,KAAK+e,mBAAqB,KAC1B/e,KAAKgf,kBAAoB,KACzBJ,EAAU7d,KAAKf,KAAMA,KAAKgb,WAAW1K,IAAIvJ,KAAK/G,KAAKgb,YAAaI,EAAajD,EAAkBC,GAgDjG,MAvDAnD,IAASsF,EAAgBqE,GAUzBrE,EAAe1Y,UAAUod,OAAS,SAAUja,GACxC,MAAO,IAAIuV,GAAevV,EAAWhF,KAAK8e,WAG9CvE,EAAe1Y,UAAUgd,MAAQ,SAAU3H,GACzC,GAAI/B,GAASnV,IACb,OAAO,UAAUqQ,EAAM0H,GACrB,IACE,MAAOb,GAAO/B,EAAO+J,qBAAqB7O,GAAO0H,GACjD,MAAOlQ,GACP,IAAKsN,EAAO2J,SAASjX,GAAM,KAAMA,EACjC,OAAOuP,OAKbmD,EAAe1Y,UAAUqd,qBAAuB,SAAUla,GACxD,GAAIhF,KAAK+e,qBAAuB/Z,EAAW,CACzChF,KAAK+e,mBAAqB/Z,CAC1B,IAAIma,GAAUnf,KAAKif,OAAOja,EAC1Bma,GAAQJ,mBAAqB/Z,EAC7Bma,EAAQH,kBAAoBG,EAC5Bnf,KAAKgf,kBAAoBG,EAE3B,MAAOnf,MAAKgf,mBAGdzE,EAAe1Y,UAAU6O,0BAA4B,SAAUqH,EAAO9H,EAAQiH,GAC5E,GAAI7G,GAAOrQ,KAAMof,GAAS,EAAOnY,EAAI,GAAIR,GAczC,OAZAQ,GAAEL,cAAc5G,KAAKgb,WAAWtK,0BAA0BqH,EAAO9H,EAAQ,SAAUkJ,GACjF,GAAIiG,EAAU,MAAO,KACrB,KACE,MAAOlI,GAAOiC,GACd,MAAOtR,GAEP,GADAuX,GAAS,GACJ/O,EAAKyO,SAASjX,GAAM,KAAMA,EAE/B,OADAZ,GAAE0P,UACK,SAIJ1P,GAGFsT,GACPlH,IAKEgM,GAAevM,GAAGuM,aAAe,WACnC,QAASA,GAAajO,EAAMrI,GAC1B/I,KAAK+I,SAAuB,MAAZA,GAAmB,EAAQA,EAC3C/I,KAAKoR,KAAOA,EAoCd,MAxBAiO,GAAaxd,UAAU4P,OAAS,SAAU6N,EAAkBnY,EAASG,GACnE,MAAOgY,IAAgD,gBAArBA,GAChCtf,KAAKuf,kBAAkBD,GACvBtf,KAAKwf,QAAQF,EAAkBnY,EAASG,IAU5C+X,EAAaxd,UAAU4d,aAAe,SAAUza,GAC9C,GAAImM,GAAenR,IAEnB,OADAmT,IAAYnO,KAAeA,EAAYkW,IAChC,GAAI5U,IAAoB,SAAUC,GACvC,MAAOvB,GAAUyG,SAAS,WACxB0F,EAAaoO,kBAAkBhZ,GACT,MAAtB4K,EAAaC,MAAgB7K,EAASe,mBAKrC+X,KAQLK,GAA2BL,GAAaM,aAAgB,WAExD,QAASH,GAAS1Y,GAAU,MAAOA,GAAO9G,KAAKK,OAC/C,QAASkf,GAAkBhZ,GAAY,MAAOA,GAASO,OAAO9G,KAAKK,OACnE,QAAS6B,KAAc,MAAO,UAAYlC,KAAKK,MAAQ,IAEvD,MAAO,UAAUA,GACf,GAAI8Q,GAAe,GAAIkO,IAAa,KAAK,EAKzC,OAJAlO,GAAa9Q,MAAQA,EACrB8Q,EAAaqO,QAAUA,EACvBrO,EAAaoO,kBAAoBA,EACjCpO,EAAajP,SAAWA,EACjBiP,MASTyO,GAA4BP,GAAaQ,cAAiB,WAE5D,QAASL,GAAS1Y,EAAQK,GAAW,MAAOA,GAAQnH,KAAKgH,WACzD,QAASuY,GAAkBhZ,GAAY,MAAOA,GAASY,QAAQnH,KAAKgH,WACpE,QAAS9E,KAAc,MAAO,WAAalC,KAAKgH,UAAY,IAE5D,MAAO,UAAUA,GACf,GAAImK,GAAe,GAAIkO,IAAa,IAKpC,OAJAlO,GAAanK,UAAYA,EACzBmK,EAAaqO,QAAUA,EACvBrO,EAAaoO,kBAAoBA,EACjCpO,EAAajP,SAAWA,EACjBiP,MAQP2O,GAAgCT,GAAaU,kBAAqB,WAElE,QAASP,GAAS1Y,EAAQK,EAASG,GAAe,MAAOA,KACzD,QAASiY,GAAkBhZ,GAAY,MAAOA,GAASe,cACvD,QAASpF,KAAc,MAAO,gBAE9B,MAAO,YACL,GAAIiP,GAAe,GAAIkO,IAAa,IAIpC,OAHAlO,GAAaqO,QAAUA,EACvBrO,EAAaoO,kBAAoBA,EACjCpO,EAAajP,SAAWA,EACjBiP,MAITrC,GAAagE,GAAGC,UAAUjE,WAAa,SAAU/C,GACnD/L,KAAKggB,MAAQjU,EAGf+C,IAAWjN,UAAUkK,KAAO,WAC1B,MAAO/L,MAAKggB,SAGdlR,GAAWjN,UAAU0D,IAAc,WAAc,MAAOvF,MAExD,IAAI6O,IAAaiE,GAAGC,UAAUlE,WAAa,SAAUyF,GACnDtU,KAAKigB,UAAY3L,EAGnBzF,IAAWhN,UAAU0D,IAAc,WACjC,MAAOvF,MAAKigB,aAGdpR,GAAWhN,UAAUqe,OAAS,WAC5B,GAAI5K,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIsB,EACJ,KACEA,EAAIyN,EAAQ/P,MACZ,MAAM8F,GAEN,WADA9E,GAASY,UAIX,GAAIlH,GACFyG,EAAe,GAAIC,IACjBmK,EAAaoK,GAAmBrB,kBAAkB,SAAUxJ,GAC9D,GAAI8P,EACJ,KAAIlgB,EAAJ,CAEA,IACEkgB,EAActY,EAAEkE,OAChB,MAAO7E,GAEP,WADAX,GAASY,QAAQD,GAInB,GAAIiZ,EAAYpV,KAEd,WADAxE,GAASe,aAKX,IAAI8Y,GAAeD,EAAY9f,KAC/B+G,IAAUgZ,KAAkBA,EAAe/Y,GAAsB+Y,GAEjE,IAAInZ,GAAI,GAAIR,GACZC,GAAaE,cAAcK,GAC3BA,EAAEL,cAAcwZ,EAAavZ,UAC3BN,EAASO,OAAOC,KAAKR,GACrBA,EAASY,QAAQJ,KAAKR,GACtB,WAAc8J,SAIlB,OAAO,IAAIzD,IAAoBlG,EAAcoK,EAAYxE,GAAiB,WACxErM,GAAa,QAKnB4O,GAAWhN,UAAUwe,eAAiB,WACpC,GAAI/K,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIsB,EACJ,KACEA,EAAIyN,EAAQ/P,MACZ,MAAM8F,GAEN,WADA9E,GAASY,UAIX,GAAIlH,GACFqgB,EACA5Z,EAAe,GAAIC,IACjBmK,EAAaoK,GAAmBrB,kBAAkB,SAAUxJ,GAC9D,IAAIpQ,EAAJ,CAEA,GAAIkgB,EACJ,KACEA,EAActY,EAAEkE,OAChB,MAAO7E,GAEP,WADAX,GAASY,QAAQD,GAInB,GAAIiZ,EAAYpV,KAMd,YALIuV,EACF/Z,EAASY,QAAQmZ,GAEjB/Z,EAASe,cAMb,IAAI8Y,GAAeD,EAAY9f,KAC/B+G,IAAUgZ,KAAkBA,EAAe/Y,GAAsB+Y,GAEjE,IAAInZ,GAAI,GAAIR,GACZC,GAAaE,cAAcK,GAC3BA,EAAEL,cAAcwZ,EAAavZ,UAC3BN,EAASO,OAAOC,KAAKR,GACrB,SAAUga,GACRD,EAAgBC,EAChBlQ,KAEF9J,EAASe,YAAYP,KAAKR,OAE9B,OAAO,IAAIqG,IAAoBlG,EAAcoK,EAAYxE,GAAiB,WACxErM,GAAa,OAKnB,IAAIugB,IAAmB3R,GAAW4R,OAAS,SAAUpgB,EAAOqgB,GAE1D,MADmB,OAAfA,IAAuBA,EAAc,IAClC,GAAI7R,IAAW,WACpB,GAAIlH,GAAO+Y,CACX,OAAO,IAAI5R,IAAW,WACpB,MAAa,KAATnH,EAAqB6M,IACrB7M,EAAO,GAAKA,KACPoD,MAAM,EAAO1K,MAAOA,SAK/BsgB,GAAe9R,GAAW+R,GAAK,SAAUxa,EAAQ2B,EAAUC,GAE7D,MADAD,KAAaA,EAAWoF,IACjB,GAAI0B,IAAW,WACpB,GAAIlN,GAAQ,EACZ,OAAO,IAAImN,IACT,WACE,QAASnN,EAAQyE,EAAOxF,QACpBmK,MAAM,EAAO1K,MAAO0H,EAAShH,KAAKiH,EAAS5B,EAAOzE,GAAQA,EAAOyE,IACnEoO,QAQNqM,GAAW/N,GAAG+N,SAAW,YAM7BA,IAAShf,UAAUif,WAAa,WAC9B,GAAIva,GAAWvG,IACf,OAAO,UAAUsN,GAAK,MAAOA,GAAEmE,OAAOlL,KAOxCsa,GAAShf,UAAUkf,WAAa,WAC9B,MAAO,IAAIC,IAAkBhhB,KAAK8G,OAAOC,KAAK/G,MAAOA,KAAKmH,QAAQJ,KAAK/G,MAAOA,KAAKsH,YAAYP,KAAK/G,QAQtG6gB,GAAShf,UAAUof,QAAU,WAAc,MAAO,IAAIC,IAAgBlhB,MAStE,IAAImhB,IAAiBN,GAAS1J,OAAS,SAAUrQ,EAAQK,EAASG,GAIhE,MAHAR,KAAWA,EAAS4H,IACpBvH,IAAYA,EAAU4M,IACtBzM,IAAgBA,EAAcoH,IACvB,GAAIsS,IAAkBla,EAAQK,EAASG,GAWhDuZ,IAASO,aAAe,SAAU/a,EAAS2B,GACzC,MAAO,IAAIgZ,IAAkB,SAAU9Y,GACrC,MAAO7B,GAAQtF,KAAKiH,EAAS0X,GAAyBxX,KACrD,SAAUL,GACX,MAAOxB,GAAQtF,KAAKiH,EAAS4X,GAA0B/X,KACtD,WACD,MAAOxB,GAAQtF,KAAKiH,EAAS8X,SASjCe,GAASQ,SAAW,SAAUrc,GAC5B,MAAO,IAAIsc,IAAkBtc,EAAWhF,MAO1C,IA4PIuhB,IA5PAC,GAAmB1O,GAAGC,UAAUyO,iBAAoB,SAAU5C,GAMhE,QAAS4C,KACPxhB,KAAKyhB,WAAY,EACjB7C,EAAU7d,KAAKf,MAiDjB,MAxDAiV,IAASuM,EAAkB5C,GAc3B4C,EAAiB3f,UAAUiF,OAAS,SAAUzG,GACvCL,KAAKyhB,WAAazhB,KAAK+L,KAAK1L,IAOnCmhB,EAAiB3f,UAAUsF,QAAU,SAAU+E,GACxClM,KAAKyhB,YACRzhB,KAAKyhB,WAAY,EACjBzhB,KAAKkM,MAAMA,KAOfsV,EAAiB3f,UAAUyF,YAAc,WAClCtH,KAAKyhB,YACRzhB,KAAKyhB,WAAY,EACjBzhB,KAAK0hB,cAOTF,EAAiB3f,UAAU8U,QAAU,WACnC3W,KAAKyhB,WAAY,GAGnBD,EAAiB3f,UAAU8f,KAAO,SAAU9Z,GAC1C,MAAK7H,MAAKyhB,WAMH,GALLzhB,KAAKyhB,WAAY,EACjBzhB,KAAKkM,MAAMrE,IACJ,IAMJ2Z,GACPX,IAKEG,GAAoBlO,GAAGkO,kBAAqB,SAAUpC,GASxD,QAASoC,GAAkBla,EAAQK,EAASG,GAC1CsX,EAAU7d,KAAKf,MACfA,KAAK4hB,QAAU9a,EACf9G,KAAK6hB,SAAW1a,EAChBnH,KAAK8hB,aAAexa,EA0BtB,MAtCA2N,IAAS+L,EAAmBpC,GAmB5BoC,EAAkBnf,UAAUkK,KAAO,SAAU1L,GAC3CL,KAAK4hB,QAAQvhB,IAOf2gB,EAAkBnf,UAAUqK,MAAQ,SAAUA,GAC5ClM,KAAK6hB,SAAS3V,IAMhB8U,EAAkBnf,UAAU6f,UAAY,WACtC1hB,KAAK8hB,gBAGAd,GACPQ,IAEIN,GAAmB,SAAUa,GAG7B,QAASb,GAAgB3a,GACrBwb,EAAOhhB,KAAKf,MACZA,KAAKgiB,UAAYzb,EACjBvG,KAAK8a,OAAS,EALlB7F,GAASiM,EAAiBa,EAQ1B,IAAIE,GAA2Bf,EAAgBrf,SAyC/C,OAvCAogB,GAAyBnb,OAAS,SAAUzG,GACxCL,KAAKkiB,aACL,KACIliB,KAAKgiB,UAAUlb,OAAOzG,GACxB,MAAOwH,GACL,KAAMA,GACR,QACE7H,KAAK8a,OAAS,IAItBmH,EAAyB9a,QAAU,SAAUkE,GACzCrL,KAAKkiB,aACL,KACIliB,KAAKgiB,UAAU7a,QAAQkE,GACzB,MAAOxD,GACL,KAAMA,GACR,QACE7H,KAAK8a,OAAS,IAItBmH,EAAyB3a,YAAc,WACnCtH,KAAKkiB,aACL,KACIliB,KAAKgiB,UAAU1a,cACjB,MAAOO,GACL,KAAMA,GACR,QACE7H,KAAK8a,OAAS,IAItBmH,EAAyBC,YAAc,WACnC,GAAoB,IAAhBliB,KAAK8a,OAAgB,KAAM,IAAI5a,OAAM,uBACzC,IAAoB,IAAhBF,KAAK8a,OAAgB,KAAM,IAAI5a,OAAM,qBACrB,KAAhBF,KAAK8a,SAAgB9a,KAAK8a,OAAS,IAGpCoG,GACTL,IAEAsB,GAAoBrP,GAAGC,UAAUoP,kBAAqB,SAAUvD,GAGlE,QAASuD,GAAkBnd,EAAWuB,GACpCqY,EAAU7d,KAAKf,MACfA,KAAKgF,UAAYA,EACjBhF,KAAKuG,SAAWA,EAChBvG,KAAKoiB,YAAa,EAClBpiB,KAAKqiB,YAAa,EAClBriB,KAAKyb,SACLzb,KAAKiF,WAAa,GAAI0B,IAwDxB,MAjEAsO,IAASkN,EAAmBvD,GAY5BuD,EAAkBtgB,UAAUkK,KAAO,SAAU1L,GAC3C,GAAIgQ,GAAOrQ,IACXA,MAAKyb,MAAMna,KAAK,WACd+O,EAAK9J,SAASO,OAAOzG,MAIzB8hB,EAAkBtgB,UAAUqK,MAAQ,SAAUb,GAC5C,GAAIgF,GAAOrQ,IACXA,MAAKyb,MAAMna,KAAK,WACd+O,EAAK9J,SAASY,QAAQkE,MAI1B8W,EAAkBtgB,UAAU6f,UAAY,WACtC,GAAIrR,GAAOrQ,IACXA,MAAKyb,MAAMna,KAAK,WACd+O,EAAK9J,SAASe,iBAIlB6a,EAAkBtgB,UAAUygB,aAAe,WACzC,GAAIC,IAAU,EAAOpN,EAASnV,MACzBA,KAAKqiB,YAAcriB,KAAKyb,MAAM7a,OAAS,IAC1C2hB,GAAWviB,KAAKoiB,WAChBpiB,KAAKoiB,YAAa,GAEhBG,GACFviB,KAAKiF,WAAW2B,cAAc5G,KAAKgF,UAAU6U,kBAAkB,SAAUxJ,GACvE,GAAImS,EACJ,MAAIrN,EAAOsG,MAAM7a,OAAS,GAIxB,YADAuU,EAAOiN,YAAa,EAFpBI,GAAOrN,EAAOsG,MAAMjK,OAKtB,KACEgR,IACA,MAAOtb,GAGP,KAFAiO,GAAOsG,SACPtG,EAAOkN,YAAa,EACdnb,EAERmJ,QAKN8R,EAAkBtgB,UAAU8U,QAAU,WACpCiI,EAAU/c,UAAU8U,QAAQ5V,KAAKf,MACjCA,KAAKiF,WAAW0R,WAGXwL,GACPX,IAEEF,GAAoB,SAAW1C,GAGjC,QAAS0C,KACP1C,EAAUxR,MAAMpN,KAAMmU,WAkBxB,MArBAc,IAASqM,EAAmB1C,GAM5B0C,EAAkBzf,UAAUkK,KAAO,SAAU1L,GAC3Cue,EAAU/c,UAAUkK,KAAKhL,KAAKf,KAAMK,GACpCL,KAAKsiB,gBAGPhB,EAAkBzf,UAAUqK,MAAQ,SAAUrE,GAC5C+W,EAAU/c,UAAUqK,MAAMnL,KAAKf,KAAM6H,GACrC7H,KAAKsiB,gBAGPhB,EAAkBzf,UAAU6f,UAAY,WACtC9C,EAAU/c,UAAU6f,UAAU3gB,KAAKf,MACnCA,KAAKsiB,gBAGAhB,GACNa,IAOCM,GAAa3P,GAAG2P,WAAa,WAE/B,QAASA,GAAW5b,GAClB7G,KAAK0iB,WAAa7b,EAgDpB,MA7CA0a,IAAkBkB,EAAW5gB,UAS7B0f,GAAgB1a,UAAY0a,GAAgBoB,QAAU,SAAUrD,EAAkBnY,EAASG,GACzF,MAAOtH,MAAK0iB,WAAuC,gBAArBpD,GAC5BA,EACA6B,GAAe7B,EAAkBnY,EAASG,KAS9Cia,GAAgBqB,gBAAkB,SAAU9b,EAAQkB,GAClD,MAAOhI,MAAK0iB,WAAWvB,GAAoC,IAArBhN,UAAUvT,OAAe,SAASsH,GAAKpB,EAAO/F,KAAKiH,EAASE,IAAQpB,KAS5Gya,GAAgBsB,iBAAmB,SAAU1b,EAASa,GACpD,MAAOhI,MAAK0iB,WAAWvB,GAAe,KAA2B,IAArBhN,UAAUvT,OAAe,SAASiH,GAAKV,EAAQpG,KAAKiH,EAASH,IAAQV,KASnHoa,GAAgBuB,qBAAuB,SAAUxb,EAAaU,GAC5D,MAAOhI,MAAK0iB,WAAWvB,GAAe,KAAM,KAA2B,IAArBhN,UAAUvT,OAAe,WAAa0G,EAAYvG,KAAKiH,IAAcV,KAGlHmb,IAYTlB,IAAgBwB,UAAY,SAAU/d,GACpC,GAAIoB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,MAAOH,GAAOS,UAAU,GAAIya,IAAkBtc,EAAWuB,OAc7Dgb,GAAgByB,YAAc,SAAUhe,GACtC,GAAIoB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIiI,GAAI,GAAI/H,IAA8BQ,EAAI,GAAIN,GAKlD,OAJAM,GAAEL,cAAc4H,GAChBA,EAAE5H,cAAc5B,EAAUyG,SAAS,WACjCxE,EAAEL,cAAc,GAAI7B,GAAoBC,EAAWoB,EAAOS,UAAUN,QAE/DU,IASX,IAAII,IAAwBob,GAAWQ,YAAc,SAAUrX,GAC7D,MAAO+E,IAAgB,WACrB,GAAI5D,GAAU,GAAI+F,IAAGoQ,YAWrB,OATAtX,GAAQC,KACN,SAAUxL,GACH0M,EAAQ9M,aACX8M,EAAQjG,OAAOzG,GACf0M,EAAQzF,gBAGZyF,EAAQ5F,QAAQJ,KAAKgG,IAEhBA,IAeXwU,IAAgB4B,UAAY,SAAUC,GAEpC,GADAA,IAAgBA,EAActQ,GAAGE,OAAOC,UACnCmQ,EAAe,KAAM,IAAIC,WAAU,qDACxC,IAAIjd,GAASpG,IACb,OAAO,IAAIojB,GAAY,SAAUE,EAASC,GAExC,GAAIljB,GAAO0I,GAAW,CACtB3C,GAAOS,UAAU,SAAU8E,GACzBtL,EAAQsL,EACR5C,GAAW,GACVwa,EAAQ,WACTxa,GAAYua,EAAQjjB,QAS1BkhB,GAAgBvK,QAAU,WACxB,GAAI3G,GAAOrQ,IACX,OAAO,IAAIsG,IAAoB,SAASC,GACtC,GAAIid,KACJ,OAAOnT,GAAKxJ,UACV2c,EAAIliB,KAAKyF,KAAKyc,GACdjd,EAASY,QAAQJ,KAAKR,GACtB,WACEA,EAASO,OAAO0c,GAChBjd,EAASe,mBAgBjBmb,GAAWtL,OAASsL,GAAWgB,qBAAuB,SAAU5c,GAC9D,MAAO,IAAIP,IAAoBO,GAWjC,IAAI8J,IAAkB8R,GAAWiB,MAAQ,SAAUC,GACjD,MAAO,IAAIrd,IAAoB,SAAUC,GACvC,GAAI9F,EACJ,KACEA,EAASkjB,IACT,MAAO9b,GACP,MAAO+b,IAAgB/b,GAAGhB,UAAUN,GAGtC,MADAa,IAAU3G,KAAYA,EAAS4G,GAAsB5G,IAC9CA,EAAOoG,UAAUN,MAaxBoH,GAAkB8U,GAAWpL,MAAQ,SAAUrS,GAEjD,MADAmO,IAAYnO,KAAeA,EAAYkW,IAChC,GAAI5U,IAAoB,SAAUC,GACvC,MAAOvB,GAAUyG,SAAS,WACxBlF,EAASe,mBAKXtB,GAAiBH,KAAKge,IAAI,EAAG,IAAM,EA0CnC1b,GAAiBsa,GAAWqB,KAAO,SAAUC,EAAUC,EAAOhc,EAAShD,GACzE,GAAgB,MAAZ+e,EACF,KAAM,IAAI7jB,OAAM,2BAElB,IAAI8jB,IAAU/d,EAAW+d,GACvB,KAAM,IAAI9jB,OAAM,yCAGlB,OADAiT,IAAYnO,KAAeA,EAAYqW,IAChC,GAAI/U,IAAoB,SAAUC,GACvC,GAAI0C,GAAOlF,OAAOggB,GAChBE,EAAgB5e,EAAW4D,GAC3BrD,EAAMqe,EAAgB,EAAIte,EAASsD,GACnCib,EAAKD,EAAgBhb,EAAK1D,MAAgB,KAC1CX,EAAI,CACN;MAAOI,GAAU6U,kBAAkB,SAAUxJ,GAC3C,GAAQzK,EAAJhB,GAAWqf,EAAe,CAC5B,GAAIxjB,EACJ,IAAIwjB,EAAe,CACjB,GAAIlY,GAAOmY,EAAGnY,MACd,IAAIA,EAAKhB,KAEP,WADAxE,GAASe,aAIX7G,GAASsL,EAAK1L,UAEdI,GAAWwI,EAAKkb,OAASlb,EAAKkb,OAAOvf,GAAKqE,EAAKrE,EAGjD,IAAIof,GAAS/d,EAAW+d,GACtB,IACEvjB,EAASuH,EAAUgc,EAAMjjB,KAAKiH,EAASvH,EAAQmE,GAAKof,EAAMvjB,EAAQmE,GAClE,MAAOiD,GAEP,WADAtB,GAASY,QAAQU,GAKrBtB,EAASO,OAAOrG,GAChBmE,IACAyL,QAEA9J,GAASe,mBAeb8c,GAAsB3B,GAAW4B,UAAY,SAAU/b,EAAOtD,GAEhE,MADAmO,IAAYnO,KAAeA,EAAYqW,IAChC,GAAI/U,IAAoB,SAAUC,GACvC,GAAI7B,GAAQ,EAAGkB,EAAM0C,EAAM1H,MAC3B,OAAOoE,GAAU6U,kBAAkB,SAAUxJ,GAC/BzK,EAARlB,GACF6B,EAASO,OAAOwB,EAAM5D,MACtB2L,KAEA9J,EAASe,kBAmBjBmb,IAAW6B,SAAW,SAAUC,EAAc3V,EAAW4V,EAAS/c,EAAgBzC,GAEhF,MADAmO,IAAYnO,KAAeA,EAAYqW,IAChC,GAAI/U,IAAoB,SAAUC,GACvC,GAAImB,IAAQ,EAAMqQ,EAAQwM,CAC1B,OAAOvf,GAAU6U,kBAAkB,SAAUxJ,GAC3C,GAAIoU,GAAWhkB,CACf,KACMiH,EACFA,GAAQ,EAERqQ,EAAQyM,EAAQzM,GAElB0M,EAAY7V,EAAUmJ,GAClB0M,IACFhkB,EAASgH,EAAesQ,IAE1B,MAAO/Q,GAEP,WADAT,GAASY,QAAQH,GAGfyd,GACFle,EAASO,OAAOrG,GAChB4P,KAEA9J,EAASe,mBAYjBmb,GAAW7B,GAAK,WAEd,IAAI,GADAhb,GAAMuO,UAAUvT,OAAQyD,EAAO,GAAIE,OAAMqB,GACrChB,EAAI,EAAOgB,EAAJhB,EAASA,IAAOP,EAAKO,GAAKuP,UAAUvP,EACnD,OAAOwf,IAAoB/f,GAU7B,IAUIqgB,KAVejC,GAAWkC,gBAAkB,SAAU3f,GAExD,IAAI,GADAY,GAAMuO,UAAUvT,OAAS,EAAGyD,EAAO,GAAIE,OAAMqB,GACzChB,EAAI,EAAOgB,EAAJhB,EAASA,IAAOP,EAAKO,GAAKuP,UAAUvP,EAAI,EACvD,OAAOwf,IAAoB/f,EAAMW,IAObyd,GAAWmC,MAAQ,WACvC,MAAO,IAAIte,IAAoB,WAC7B,MAAO8Q,OAeXqL,IAAWoC,MAAQ,SAAU5J,EAAOvW,EAAOM,GAEzC,MADAmO,IAAYnO,KAAeA,EAAYqW,IAChC,GAAI/U,IAAoB,SAAUC,GACvC,MAAOvB,GAAU8U,2BAA2B,EAAG,SAAUlV,EAAGyL,GAClD3L,EAAJE,GACF2B,EAASO,OAAOmU,EAAQrW,GACxByL,EAAKzL,EAAI,IAET2B,EAASe,mBAmBjBmb,GAAWhC,OAAS,SAAUpgB,EAAOqgB,EAAa1b,GAEhD,MADAmO,IAAYnO,KAAeA,EAAYqW,IAChCyJ,GAAiBzkB,EAAO2E,GAAWyb,OAAsB,MAAfC,EAAsB,GAAKA,GAc9E,IAAIoE,IAAmBrC,GAAW,UAAYA,GAAWsC,YAActC,GAAWhP,KAAO,SAAUpT,EAAO2E,GAExG,MADAmO,IAAYnO,KAAeA,EAAYkW,IAChC,GAAI5U,IAAoB,SAAUC,GACvC,MAAOvB,GAAUyG,SAAS,WACxBlF,EAASO,OAAOzG,GAChBkG,EAASe,mBAYXsc,GAAkBnB,GAAW,SAAWA,GAAWuC,eAAiBvC,GAAWwC,WAAa,SAAUje,EAAWhC,GAEnH,MADAmO,IAAYnO,KAAeA,EAAYkW,IAChC,GAAI5U,IAAoB,SAAUC,GACvC,MAAOvB,GAAUyG,SAAS,WACxBlF,EAASY,QAAQH,OAWvByb,IAAWyC,MAAQ,SAAUC,EAAiBxB,GAC5C,MAAO,IAAIrd,IAAoB,SAAUC,GACvC,GAAkC6e,GAAUhf,EAAxCnB,EAAamS,EACjB,KACEgO,EAAWD,IACXC,IAAangB,EAAamgB,GAC1Bhf,EAASud,EAAkByB,GAC3B,MAAOpe,GACP,MAAO,IAAI4F,IAAoBgX,GAAgB5c,GAAWH,UAAUN,GAAWtB,GAEjF,MAAO,IAAI2H,IAAoBxG,EAAOS,UAAUN,GAAWtB,MAS/Dsc,GAAgB8D,IAAM,SAAUC,GAC9B,GAAIC,GAAavlB,IACjB,OAAO,IAAIsG,IAAoB,SAAUC,GAQvC,QAASif,KACFC,IACHA,EAASC,EACTC,EAAkBhP,WAItB,QAASiP,KACFH,IACHA,EAASI,EACTC,EAAiBnP,WAjBrB,GAAI8O,GACFC,EAAa,IAAKG,EAAc,IAChCC,EAAmB,GAAIrf,IACvBkf,EAAoB,GAAIlf,GAoD1B,OAlDAW,IAAUke,KAAiBA,EAAcje,GAAsBie,IAgB/DQ,EAAiBlf,cAAc2e,EAAW1e,UAAU,SAAUc,GAC5D6d,IACIC,IAAWC,GACbnf,EAASO,OAAOa,IAEjB,SAAU0D,GACXma,IACIC,IAAWC,GACbnf,EAASY,QAAQkE,IAElB,WACDma,IACIC,IAAWC,GACbnf,EAASe,iBAIbqe,EAAkB/e,cAAc0e,EAAYze,UAAU,SAAUe,GAC9Dge,IACIH,IAAWI,GACbtf,EAASO,OAAOc,IAEjB,SAAUyD,GACXua,IACIH,IAAWI,GACbtf,EAASY,QAAQkE,IAElB,WACDua,IACIH,IAAWI,GACbtf,EAASe,iBAIN,GAAIsF,IAAoBkZ,EAAkBH,MAWrDlD,GAAW4C,IAAM,WAGf,QAASU,GAAKC,EAAUzO,GACtB,MAAOyO,GAASX,IAAI9N,GAEtB,IAAK,GALD0O,GAAMvB,KACR3O,EAAQ3R,EAAY+P,UAAW,GAIxBvP,EAAI,EAAGgB,EAAMmQ,EAAMnV,OAAYgF,EAAJhB,EAASA,IAC3CqhB,EAAMF,EAAKE,EAAKlQ,EAAMnR,GAExB,OAAOqhB,IAkCT1E,GAAgB,SAAWA,GAAgBjH,WAAaiH,GAAgBlB,eAAiB,SAAU6F,GACjG,MAAkC,kBAApBA,GACZ/f,EAAuBnG,KAAMkmB,GAC7BC,IAAiBnmB,KAAMkmB,IAQ3B,IAAIC,IAAkB1D,GAAWpC,eAAiBoC,GAAWnI,WAAamI,GAAW,SAAW,WAC9F,MAAO9B,IAAavc,EAAY+P,UAAW,IAAIkM,iBAYjDkB,IAAgB6E,cAAgB,WAC9B,GAAI/hB,GAAOvD,GAAMC,KAAKoT,UAMtB,OALI5P,OAAMC,QAAQH,EAAK,IACrBA,EAAK,GAAGgiB,QAAQrmB,MAEhBqE,EAAKgiB,QAAQrmB,MAERomB,GAAchZ,MAAMpN,KAAMqE,GAWnC,IAAI+hB,IAAgB3D,GAAW2D,cAAgB,WAC7C,GAAI/hB,GAAOvD,GAAMC,KAAKoT,WAAY1M,EAAiBpD,EAAKF,KAMxD,OAJII,OAAMC,QAAQH,EAAK,MACrBA,EAAOA,EAAK,IAGP,GAAIiC,IAAoB,SAAUC,GAQvC,QAASwF,GAAKnH,GACZ,GAAI0G,EAEJ,IADAvC,EAASnE,IAAK,EACVqI,IAAgBA,EAAclE,EAASmE,MAAMC,KAAY,CAC3D,IACE7B,EAAM7D,EAAe2F,MAAM,KAAMJ,GACjC,MAAO9F,GAEP,WADAX,GAASY,QAAQD,GAGnBX,EAASO,OAAOwE,OACP+B,GAAOiZ,OAAO,SAAUpe,EAAGqe,GAAK,MAAOA,KAAM3hB,IAAMsI,MAAMC,KAClE5G,EAASe,cAIb,QAASyD,GAAMnG,GACbyI,EAAOzI,IAAK,EACRyI,EAAOH,MAAMC,KACf5G,EAASe,cAKb,IAAK,GA/BDkf,GAAe,WAAc,OAAO,GACtClZ,EAAIjJ,EAAKzD,OACTmI,EAAWtE,EAAgB6I,EAAGkZ,GAC9BvZ,GAAc,EACdI,EAAS5I,EAAgB6I,EAAGkZ,GAC5BxZ,EAAS,GAAIzI,OAAM+I,GAyBjBmZ,EAAgB,GAAIliB,OAAM+I,GACrBhJ,EAAM,EAASgJ,EAANhJ,EAASA,KACxB,SAAUM,GACT,GAAIwB,GAAS/B,EAAKO,GAAI8hB,EAAM,GAAIjgB,GAChCW,IAAUhB,KAAYA,EAASiB,GAAsBjB,IACrDsgB,EAAI9f,cAAcR,EAAOS,UAAU,SAAUqB,GAC3C8E,EAAOpI,GAAKsD,EACZ6D,EAAKnH,IACJ2B,EAASY,QAAQJ,KAAKR,GAAW,WAClCwE,EAAKnG,MAEP6hB,EAAc7hB,GAAK8hB,GACnBpiB,EAGJ,OAAO,IAAIsI,IAAoB6Z,KAYjClF,IAAgBrB,OAAS,WACrB,GAAInK,GAAQjV,GAAMC,KAAKoT,UAAW,EAElC,OADA4B,GAAMsQ,QAAQrmB,MACP2mB,GAAiBvZ,MAAMpN,KAAM+V,GAQ1C,IAAI4Q,IAAmBlE,GAAWvC,OAAS,WACzC,MAAOS,IAAavc,EAAY+P,UAAW,IAAI+L,SAO/CqB,IAAgBqF,iBAAmBrF,GAAgBnZ,UAAW,WAC1D,MAAOpI,MAAK6mB,MAAM,IAaxBtF,GAAgBsF,MAAQ,SAAUC,GAChC,GAAoC,gBAAzBA,GAAqC,MAAOC,IAAgB/mB,KAAM8mB,EAC7E,IAAIxR,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GAGvC,QAASM,GAAU2O,GACjB,GAAI9O,GAAe,GAAID,GACvBwS,GAAMpM,IAAInG,GAGVU,GAAUoO,KAAQA,EAAKnO,GAAsBmO,IAE7C9O,EAAaE,cAAc4O,EAAG3O,UAAUN,EAASO,OAAOC,KAAKR,GAAWA,EAASY,QAAQJ,KAAKR,GAAW,WACvG0S,EAAMxC,OAAO/P,GACTqK,EAAEnQ,OAAS,EACbiG,EAAUkK,EAAES,UAEZwV,IACAvF,GAA6B,IAAhBuF,GAAqBzgB,EAASe,kBAfjD,GAAI0f,GAAc,EAAG/N,EAAQ,GAAIrM,IAAuB6U,GAAY,EAAO1Q,IA8B3E,OAXAkI,GAAMpM,IAAIyI,EAAQzO,UAAU,SAAUogB,GAClBH,EAAdE,GACFA,IACAngB,EAAUogB,IAEVlW,EAAEzP,KAAK2lB,IAER1gB,EAASY,QAAQJ,KAAKR,GAAW,WAClCkb,GAAY,EACI,IAAhBuF,GAAqBzgB,EAASe,iBAEzB2R,IAeT,IAAI8N,IAAkBtE,GAAWoE,MAAQ,WACrC,GAAI7hB,GAAWsQ,CAcf,OAbKnB,WAAU,GAGJA,UAAU,GAAG7D,KACpBtL,EAAYmP,UAAU,GACtBmB,EAAUxU,GAAMC,KAAKoT,UAAW,KAEhCnP,EAAYkW,GACZ5F,EAAUxU,GAAMC,KAAKoT,UAAW,KAPhCnP,EAAYkW,GACZ5F,EAAUxU,GAAMC,KAAKoT,UAAW,IAQhC5P,MAAMC,QAAQ8Q,EAAQ,MACtBA,EAAUA,EAAQ,IAEf8O,GAAoB9O,EAAStQ,GAAW4D,kBAOrD2Y,IAAgB3Y,gBAAkB2Y,GAAgB2F,SAAW,WAC3D,GAAI5R,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI0S,GAAQ,GAAIrM,IACd6U,GAAY,EACZjT,EAAI,GAAI/H,GAkBV,OAhBAwS,GAAMpM,IAAI2B,GACVA,EAAE5H,cAAc0O,EAAQzO,UAAU,SAAUogB,GAC1C,GAAIE,GAAoB,GAAI1gB,GAC5BwS,GAAMpM,IAAIsa,GAGV/f,GAAU6f,KAAiBA,EAAc5f,GAAsB4f,IAE/DE,EAAkBvgB,cAAcqgB,EAAYpgB,UAAUN,EAASO,OAAOC,KAAKR,GAAWA,EAASY,QAAQJ,KAAKR,GAAW,WACrH0S,EAAMxC,OAAO0Q,GACb1F,GAA8B,IAAjBxI,EAAMrY,QAAgB2F,EAASe,kBAE7Cf,EAASY,QAAQJ,KAAKR,GAAW,WAClCkb,GAAY,EACK,IAAjBxI,EAAMrY,QAAgB2F,EAASe,iBAE1B2R,KASXsI,GAAgB6F,kBAAoB,SAAU5f,GAC5C,IAAKA,EAAU,KAAM,IAAItH,OAAM,gCAC/B,OAAOknB,KAAmBpnB,KAAMwH,IAWlC,IAAI4f,IAAoB3E,GAAW2E,kBAAoB,WACrD,GAAI9R,GAAUlR,EAAY+P,UAAW,EACrC,OAAO,IAAI7N,IAAoB,SAAUC,GACvC,GAAI8gB,GAAM,EAAG3gB,EAAe,GAAIC,IAChCmK,EAAaoK,GAAmBrB,kBAAkB,SAAUxJ,GAC1D,GAAIkH,GAAStQ,CACTogB,GAAM/R,EAAQ1U,QAChB2W,EAAUjC,EAAQ+R,KAClBjgB,GAAUmQ,KAAaA,EAAUlQ,GAAsBkQ,IACvDtQ,EAAI,GAAIR,IACRC,EAAaE,cAAcK,GAC3BA,EAAEL,cAAc2Q,EAAQ1Q,UAAUN,EAASO,OAAOC,KAAKR,GAAW8J,EAAMA,KAExE9J,EAASe,eAGb,OAAO,IAAIsF,IAAoBlG,EAAcoK,KASjDyQ,IAAgB+F,UAAY,SAAU3R,GACpC,GAAIvP,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIghB,IAAS,EACT5a,EAAc,GAAIC,IAAoBxG,EAAOS,UAAU,SAAUc,GACnE4f,GAAUhhB,EAASO,OAAOa,IACzBpB,EAASY,QAAQJ,KAAKR,GAAW,WAClCghB,GAAUhhB,EAASe,gBAGrBF,IAAUuO,KAAWA,EAAQtO,GAAsBsO,GAEnD,IAAIgQ,GAAoB,GAAIlf,GAS5B,OARAkG,GAAYE,IAAI8Y,GAChBA,EAAkB/e,cAAc+O,EAAM9O,UAAU,WAC9C0gB,GAAS,EACT5B,EAAkBhP,WACjBpQ,EAASY,QAAQJ,KAAKR,GAAW,WAClCof,EAAkBhP,aAGbhK,KAQX4U,GAAgB,UAAYA,GAAgBiG,aAAe,WACzD,GAAIlS,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIkhB,IAAY,EACdN,EAAoB,GAAIxgB,IACxB8a,GAAY,EACZiG,EAAS,EACThhB,EAAe4O,EAAQzO,UACrB,SAAUogB,GACR,GAAIhgB,GAAI,GAAIR,IAA8B3B,IAAO4iB,CACjDD,IAAY,EACZN,EAAkBvgB,cAAcK,GAGhCG,GAAU6f,KAAiBA,EAAc5f,GAAsB4f,IAE/DhgB,EAAEL,cAAcqgB,EAAYpgB,UAC1B,SAAUqB,GAAKwf,IAAW5iB,GAAMyB,EAASO,OAAOoB,IAChD,SAAUL,GAAK6f,IAAW5iB,GAAMyB,EAASY,QAAQU,IACjD,WACM6f,IAAW5iB,IACb2iB,GAAY,EACZhG,GAAalb,EAASe,mBAI9Bf,EAASY,QAAQJ,KAAKR,GACtB,WACEkb,GAAY,GACXgG,GAAalhB,EAASe,eAE7B,OAAO,IAAIsF,IAAoBlG,EAAcygB,MASjD5F,GAAgBoG,UAAY,SAAUhS,GACpC,GAAIvP,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GAEvC,MADAa,IAAUuO,KAAWA,EAAQtO,GAAsBsO,IAC5C,GAAI/I,IACTxG,EAAOS,UAAUN,GACjBoP,EAAM9O,UAAUN,EAASe,YAAYP,KAAKR,GAAWA,EAASY,QAAQJ,KAAKR,GAAWmI,QAmC5F6S,GAAgBqG,IAAM,WACpB,GAAIrjB,MAAMC,QAAQ2P,UAAU,IAC1B,MAAO5M,GAAS6F,MAAMpN,KAAMmU,UAE9B,IAAIgB,GAASnV,KAAMsV,EAAUxU,GAAMC,KAAKoT,WAAY1M,EAAiB6N,EAAQnR,KAE7E,OADAmR,GAAQ+Q,QAAQlR,GACT,GAAI7O,IAAoB,SAAUC,GAKvC,QAASwF,GAAKnH,GACZ,GAAI0G,GAAKuc,CACT,IAAIC,EAAO5a,MAAM,SAAUhF,GAAK,MAAOA,GAAEtH,OAAS,IAAO,CACvD,IACEinB,EAAeC,EAAO7f,IAAI,SAAUC,GAAK,MAAOA,GAAEsJ,UAClDlG,EAAM7D,EAAe2F,MAAM+H,EAAQ0S,GACnC,MAAO3gB,GAEP,WADAX,GAASY,QAAQD,GAGnBX,EAASO,OAAOwE,OACP+B,GAAOiZ,OAAO,SAAUpe,EAAGqe,GAAK,MAAOA,KAAM3hB,IAAMsI,MAAMC,KAClE5G,EAASe,cAIb,QAASyD,GAAKnG,GACZyI,EAAOzI,IAAK,EACRyI,EAAOH,MAAM,SAAUhF,GAAK,MAAOA,MACrC3B,EAASe,cAKb,IAAK,GA5BDgG,GAAIgI,EAAQ1U,OACdknB,EAASrjB,EAAgB6I,EAAG,WAAc,WAC1CD,EAAS5I,EAAgB6I,EAAG,WAAc,OAAO,IAyB/CmZ,EAAgB,GAAIliB,OAAM+I,GACrBhJ,EAAM,EAASgJ,EAANhJ,EAASA,KACzB,SAAWM,GACT,GAAIwB,GAASkP,EAAQ1Q,GAAI8hB,EAAM,GAAIjgB,GACnCW,IAAUhB,KAAYA,EAASiB,GAAsBjB,IACrDsgB,EAAI9f,cAAcR,EAAOS,UAAU,SAAUqB,GAC3C4f,EAAOljB,GAAGtD,KAAK4G,GACf6D,EAAKnH,IACJ2B,EAASY,QAAQJ,KAAKR,GAAW,WAClCwE,EAAKnG,MAEP6hB,EAAc7hB,GAAK8hB,GAClBpiB,EAGL,OAAO,IAAIsI,IAAoB6Z,MAUnChE,GAAWmF,IAAM,WACf,GAAIvjB,GAAOvD,GAAMC,KAAKoT,UAAW,GAAIzM,EAAQrD,EAAKmN,OAClD,OAAO9J,GAAMkgB,IAAIxa,MAAM1F,EAAOrD,IAQhCoe,GAAWlb,SAAW,WACpB,GAAI+N,GAAUlR,EAAY+P,UAAW,EACrC,OAAO,IAAI7N,IAAoB,SAAUC,GAKvC,QAASwF,GAAKnH,GACZ,GAAIkjB,EAAO5a,MAAM,SAAUhF,GAAK,MAAOA,GAAEtH,OAAS,IAAO,CACvD,GAAI0K,GAAMwc,EAAO7f,IAAI,SAAUC,GAAK,MAAOA,GAAEsJ,SAC7CjL,GAASO,OAAOwE,OACX,IAAI+B,EAAOiZ,OAAO,SAAUpe,EAAGqe,GAAK,MAAOA,KAAM3hB,IAAMsI,MAAMC,IAElE,WADA5G,GAASe,cAKb,QAASyD,GAAKnG,GAEZ,MADAyI,GAAOzI,IAAK,EACRyI,EAAOH,MAAMC,QACf5G,GAASe,cADX,OAOF,IAAK,GAvBDgG,GAAIgI,EAAQ1U,OACdknB,EAASrjB,EAAgB6I,EAAG,WAAc,WAC1CD,EAAS5I,EAAgB6I,EAAG,WAAc,OAAO,IAoB/CmZ,EAAgB,GAAIliB,OAAM+I,GACrBhJ,EAAM,EAASgJ,EAANhJ,EAASA,KACzB,SAAWM,GACT6hB,EAAc7hB,GAAK,GAAI6B,IACvBggB,EAAc7hB,GAAGgC,cAAc0O,EAAQ1Q,GAAGiC,UAAU,SAAUqB,GAC5D4f,EAAOljB,GAAGtD,KAAK4G,GACf6D,EAAKnH,IACJ2B,EAASY,QAAQJ,KAAKR,GAAW,WAClCwE,EAAKnG,OAENN,EAGL,IAAIyjB,GAAsB,GAAInb,IAAoB6Z,EAIlD,OAHAsB,GAAoBlb,IAAIP,GAAiB,WACvC,IAAK,GAAI0b,GAAO,EAAGC,EAAOH,EAAOlnB,OAAeqnB,EAAPD,EAAaA,IAAUF,EAAOE,SAElED,KAQXxG,GAAgB2G,aAAe,WAC7B,MAAO,IAAI5hB,IAAoBtG,KAAK6G,UAAUE,KAAK/G,QAarDuhB,GAAgB4G,gBAAkB,SAAUzjB,EAAO0jB,GAIjD,MAHoB,gBAATA,KACTA,EAAO1jB,GAEF1E,KAAKqoB,gBAAgB3jB,EAAO0jB,GAAME,WAAW,SAAUpgB,GAC5D,MAAOA,GAAE8O,YACRuR,MAAM,SAAUrgB,GACjB,MAAOA,GAAEtH,OAAS,KAQpB2gB,GAAgBiH,cAAgB,WAC5B,GAAIpiB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACrC,MAAOH,GAAOS,UAAU,SAAUqB,GAC9B,MAAOA,GAAEuJ,OAAOlL,IACjBA,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAetEgb,GAAgBkH,qBAAuB,SAAU3f,EAAaN,GAC1D,GAAIpC,GAASpG,IAGb,OAFA8I,KAAgBA,EAAcqE,IAC9B3E,IAAaA,EAAWmL,IACjB,GAAIrN,IAAoB,SAAUC,GACrC,GAA2BmiB,GAAvBC,GAAgB,CACpB,OAAOviB,GAAOS,UAAU,SAAUxG,GAC9B,GAA4BgB,GAAxBunB,GAAiB,CACrB,KACIvnB,EAAMyH,EAAYzI,GACpB,MAAO2G,GAEL,WADAT,GAASY,QAAQH,GAGrB,GAAI2hB,EACA,IACIC,EAAiBpgB,EAASkgB,EAAYrnB,GACxC,MAAO2F,GAEL,WADAT,GAASY,QAAQH,GAIpB2hB,GAAkBC,IACnBD,GAAgB,EAChBD,EAAarnB,EACbkF,EAASO,OAAOzG,KAErBkG,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAYxEgb,GAAgB,MAAQA,GAAgBsH,SAAWtH,GAAgBuH,IAAM,SAAUxJ,EAAkBnY,EAASG,GAC5G,GAAmByhB,GAAf3iB,EAASpG,IAQb,OAPgC,kBAArBsf,GACTyJ,EAAazJ,GAEbyJ,EAAazJ,EAAiBxY,OAAOC,KAAKuY,GAC1CnY,EAAUmY,EAAiBnY,QAAQJ,KAAKuY,GACxChY,EAAcgY,EAAiBhY,YAAYP,KAAKuY,IAE3C,GAAIhZ,IAAoB,SAAUC,GACvC,MAAOH,GAAOS,UAAU,SAAUqB,GAChC,IACE6gB,EAAW7gB,GACX,MAAOL,GACPtB,EAASY,QAAQU,GAEnBtB,EAASO,OAAOoB,IACf,SAAUmD,GACX,GAAIlE,EACF,IACEA,EAAQkE,GACR,MAAOxD,GACPtB,EAASY,QAAQU,GAGrBtB,EAASY,QAAQkE,IAChB,WACD,GAAI/D,EACF,IACEA,IACA,MAAOO,GACPtB,EAASY,QAAQU,GAGrBtB,EAASe,mBAYfia,GAAgByH,SAAWzH,GAAgB0H,UAAY,SAAUniB,EAAQkB,GACvE,MAAOhI,MAAK8oB,IAAyB,IAArB3U,UAAUvT,OAAe,SAAUsH,GAAKpB,EAAO/F,KAAKiH,EAASE,IAAQpB,IAUvFya,GAAgB2H,UAAY3H,GAAgB4H,WAAa,SAAUhiB,EAASa,GAC1E,MAAOhI,MAAK8oB,IAAIpa,GAA2B,IAArByF,UAAUvT,OAAe,SAAUiH,GAAKV,EAAQpG,KAAKiH,EAASH,IAAQV,IAU9Foa,GAAgB6H,cAAgB7H,GAAgB8H,eAAiB,SAAU/hB,EAAaU,GACtF,MAAOhI,MAAK8oB,IAAIpa,GAAM,KAA2B,IAArByF,UAAUvT,OAAe,WAAc0G,EAAYvG,KAAKiH,IAAcV,IAWpGia,GAAgB,WAAaA,GAAgB+H,cAAgB,SAAUpS,GACrE,GAAI9Q,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIG,EACJ,KACEA,EAAeN,EAAOS,UAAUN,GAChC,MAAOsB,GAEP,KADAqP,KACMrP,EAER,MAAOyE,IAAiB,WACtB,IACE5F,EAAaiQ,UACb,MAAO9O,GACP,KAAMA,GACN,QACAqP,UAURqK,GAAgBgI,eAAiB,WAC/B,GAAInjB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,MAAOH,GAAOS,UAAU6H,GAAMnI,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAQ7Fgb,GAAgBtQ,YAAc,WAC5B,GAAI7K,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,MAAOH,GAAOS,UAAU,SAAUxG,GAChCkG,EAASO,OAAO4Y,GAAyBrf,KACxC,SAAUwH,GACXtB,EAASO,OAAO8Y,GAA0B/X,IAC1CtB,EAASe,eACR,WACDf,EAASO,OAAOgZ,MAChBvZ,EAASe,mBAcbia,GAAgBd,OAAS,SAAUC,GAC/B,MAAOF,IAAiBxgB,KAAM0gB,GAAaR,UAajDqB,GAAgBiI,MAAQ,SAAUC,GAChC,MAAOjJ,IAAiBxgB,KAAMypB,GAAYpJ,kBAa5CkB,GAAgBmI,KAAO,WACrB,GAAqBC,GAAMC,EAAvBC,GAAU,EAA0BzjB,EAASpG,IAQjD,OAPyB,KAArBmU,UAAUvT,QACZipB,GAAU,EACVF,EAAOxV,UAAU,GACjByV,EAAczV,UAAU,IAExByV,EAAczV,UAAU,GAEnB,GAAI7N,IAAoB,SAAUC,GACvC,GAAIujB,GAAiBC,EAAchhB,CACnC,OAAO3C,GAAOS,UACZ,SAAUqB,IACPa,IAAaA,GAAW,EACzB,KACM+gB,EACFC,EAAeH,EAAYG,EAAc7hB,IAEzC6hB,EAAeF,EAAUD,EAAYD,EAAMzhB,GAAKA,EAChD4hB,GAAkB,GAEpB,MAAOjiB,GAEP,WADAtB,GAASY,QAAQU,GAInBtB,EAASO,OAAOijB,IAElBxjB,EAASY,QAAQJ,KAAKR,GACtB,YACGwC,GAAY8gB,GAAWtjB,EAASO,OAAO6iB,GACxCpjB,EAASe,mBAcjBia,GAAgByI,SAAW,SAAUtlB,GACnC,GAAI0B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC6I,EAAEzP,KAAK4G,GACP6I,EAAEnQ,OAAS8D,GAAS6B,EAASO,OAAOiK,EAAES,UACrCjL,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAYlEgb,GAAgB0I,UAAY,WAC1B,GAAIjd,GAAQhI,EAAWiW,EAAQ,CAQ/B,OAPM9G,WAAUvT,QAAUuS,GAAYgB,UAAU,KAC9CnP,EAAYmP,UAAU,GACtB8G,EAAQ,GAERjW,EAAYkW,GAEdlO,EAASlM,GAAMC,KAAKoT,UAAW8G,GACxB0F,IAAcyD,GAAoBpX,EAAQhI,GAAYhF,OAAOkgB,UAWtEqB,GAAgB2I,SAAW,SAAUxlB,GACnC,GAAI0B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC6I,EAAEzP,KAAK4G,GACP6I,EAAEnQ,OAAS8D,GAASqM,EAAES,SACrBjL,EAASY,QAAQJ,KAAKR,GAAW,WAClC,KAAMwK,EAAEnQ,OAAS,GAAK2F,EAASO,OAAOiK,EAAES,QACxCjL,GAASe,mBAcfia,GAAgB4I,eAAiB,SAAUzlB,GACzC,GAAI0B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC6I,EAAEzP,KAAK4G,GACP6I,EAAEnQ,OAAS8D,GAASqM,EAAES,SACrBjL,EAASY,QAAQJ,KAAKR,GAAW,WAClCA,EAASO,OAAOiK,GAChBxK,EAASe,mBAcfia,GAAgB8G,gBAAkB,SAAU3jB,EAAO0jB,GACjD,GAAIhiB,GAASpG,IAGb,KAFC0E,IAAUA,EAAQ,GACC0lB,MAApBvkB,KAAKE,IAAIrB,KAAwBA,EAAQ,GAC5B,GAATA,EAAc,KAAM,IAAIxE,OAAMyJ,GAKlC,IAJQ,MAARye,IAAiBA,EAAO1jB,IACvB0jB,IAASA,EAAO,GACEgC,MAAnBvkB,KAAKE,IAAIqiB,KAAuBA,EAAO,GAE3B,GAARA,EAAa,KAAM,IAAIloB,OAAMyJ,GACjC,OAAO,IAAIrD,IAAoB,SAAUC,GAMvC,QAAS8jB,KACP,GAAIpQ,GAAI,GAAIjM,GACZ+C,GAAEzP,KAAK2Y,GACP1T,EAASO,OAAOqH,GAAO8L,EAAGqQ,IAR5B,GAAI9b,GAAI,GAAI/H,IACV6jB,EAAqB,GAAIpc,IAAmBM,GAC5ClB,EAAI,EACJyD,IA0BF,OAlBAsZ,KAEA7b,EAAE5H,cAAcR,EAAOS,UACrB,SAAUqB,GACR,IAAK,GAAItD,GAAI,EAAGgB,EAAMmL,EAAEnQ,OAAYgF,EAAJhB,EAASA,IAAOmM,EAAEnM,GAAGkC,OAAOoB,EAC5D,IAAI0N,GAAItI,EAAI5I,EAAQ,CACpBkR,IAAI,GAAKA,EAAIwS,IAAS,GAAKrX,EAAES,QAAQlK,gBACnCgG,EAAI8a,IAAS,GAAKiC,KAEtB,SAAUxiB,GACR,KAAOkJ,EAAEnQ,OAAS,GAAKmQ,EAAES,QAAQrK,QAAQU,EACzCtB,GAASY,QAAQU,IAEnB,WACE,KAAOkJ,EAAEnQ,OAAS,GAAKmQ,EAAES,QAAQlK,aACjCf,GAASe,iBAGNgjB,KAgCX/I,GAAgBgJ,aAAehJ,GAAgBzZ,UAAY,SAAUC,EAAUN,EAAgBO,GAC7F,MAAIP,GACKzH,KAAK8H,UAAU,SAAUI,EAAGtD,GACjC,GAAI4lB,GAAiBziB,EAASG,EAAGtD,EAIjC,OAHAwC,IAAUojB,KAAoBA,EAAiBnjB,GAAsBmjB,KACpEjmB,MAAMC,QAAQgmB,IAAmBnlB,EAAWmlB,MAAqBA,EAAiBriB,GAAeqiB,IAE3FA,EAAeviB,IAAI,SAAU2L,EAAG6W,GACrC,MAAOhjB,GAAeS,EAAG0L,EAAGhP,EAAG6lB,OAIV,kBAAb1iB,GACZD,EAAU9H,KAAM+H,EAAUC,GAC1BF,EAAU9H,KAAM,WAAc,MAAO+H,MAWzCwZ,GAAgBmJ,kBAAoBnJ,GAAgBoJ,qBAAuB,SAAS7jB,EAAQK,EAASG,EAAaU,GAChH,GAAI5B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI5E,GAAQ,CAEZ,OAAOyE,GAAOS,UACZ,SAAUqB,GACR,GAAIzH,EACJ,KACEA,EAASqG,EAAO/F,KAAKiH,EAASE,EAAGvG,KACjC,MAAOkG,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,IAElB,SAAU4K,GACR,GAAI5K,EACJ,KACEA,EAAS0G,EAAQpG,KAAKiH,EAASqD,GAC/B,MAAOxD,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,GAChB8F,EAASe,eAEX,WACE,GAAI7G,EACJ,KACEA,EAAS6G,EAAYvG,KAAKiH,GAC1B,MAAOH,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,GAChB8F,EAASe,kBAEZc,aAaHmZ,GAAgBqJ,eAAiB,SAAUlhB,GACvC,GAAItD,GAASpG,IAIb,OAHI0J,KAAiB5J,IACjB4J,EAAe,MAEZ,GAAIpD,IAAoB,SAAUC,GACrC,GAAIskB,IAAQ,CACZ,OAAOzkB,GAAOS,UAAU,SAAUqB,GAC9B2iB,GAAQ,EACRtkB,EAASO,OAAOoB,IACjB3B,EAASY,QAAQJ,KAAKR,GAAW,WAC3BskB,GACDtkB,EAASO,OAAO4C,GAEpBnD,EAASe,mBAiBvBmB,EAAQ5G,UAAUP,KAAO,SAASjB,GAChC,GAAIyqB,GAAoE,KAAzDziB,EAAqBrI,KAAK0I,IAAKrI,EAAOL,KAAKwI,SAE1D,OADAsiB,IAAY9qB,KAAK0I,IAAIpH,KAAKjB,GACnByqB,GAeTvJ,GAAgBwJ,SAAW,SAAUjiB,EAAaN,GAChD,GAAIpC,GAASpG,IAEb,OADAwI,KAAaA,EAAWmL,IACjB,GAAIrN,IAAoB,SAAUC,GACvC,GAAIykB,GAAU,GAAIviB,GAAQD,EAC1B,OAAOpC,GAAOS,UAAU,SAAUqB,GAChC,GAAI7G,GAAM6G,CAEV,IAAIY,EACF,IACEzH,EAAMyH,EAAYZ,GAClB,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAIrBmjB,EAAQ1pB,KAAKD,IAAQkF,EAASO,OAAOoB,IAEvC3B,EAASY,QAAQJ,KAAKR,GACtBA,EAASe,YAAYP,KAAKR,OAgB9Bgb,GAAgB0J,QAAU,SAAUniB,EAAaoiB,EAAiB1iB,GAChE,MAAOxI,MAAKmrB,aAAariB,EAAaoiB,EAAiBxG,GAAiBlc,IAoBxE+Y,GAAgB4J,aAAe,SAAUriB,EAAaoiB,EAAiBE,EAAkB5iB,GACvF,GAAIpC,GAASpG,IAGb,OAFAkrB,KAAoBA,EAAkB/d,IACtC3E,IAAaA,EAAWmL,IACjB,GAAIrN,IAAoB,SAAUC,GACvC,QAAS8kB,GAAYxjB,GAAK,MAAO,UAAUU,GAAQA,EAAKpB,QAAQU,IAChE,GAAII,GAAM,GAAIqjB,IAAW,EAAG9iB,GAC1B+iB,EAAkB,GAAI3e,IACtB0d,EAAqB,GAAIpc,IAAmBqd,EAqEhD,OAnEEA,GAAgB1e,IAAIzG,EAAOS,UAAU,SAAUqB,GAC7C,GAAI7G,EACJ,KACEA,EAAMyH,EAAYZ,GAClB,MAAOL,GAGP,MAFAI,GAAIujB,YAAY7I,QAAQ0I,EAAYxjB,QACpCtB,GAASY,QAAQU,GAInB,GAAI4jB,IAAkB,EACpBC,EAASzjB,EAAI0jB,YAAYtqB,EAO3B,IANKqqB,IACHA,EAAS,GAAI1d,IACb/F,EAAIS,IAAIrH,EAAKqqB,GACbD,GAAkB,GAGhBA,EAAiB,CACnB,GAAIxS,GAAQ,GAAI2S,IAAkBvqB,EAAKqqB,EAAQpB,GAC7CuB,EAAgB,GAAID,IAAkBvqB,EAAKqqB,EAC7C,KACEI,SAAWV,EAAiBS,GAC5B,MAAOhkB,GAGP,MAFAI,GAAIujB,YAAY7I,QAAQ0I,EAAYxjB,QACpCtB,GAASY,QAAQU,GAInBtB,EAASO,OAAOmS,EAEhB,IAAI8S,GAAK,GAAItlB,GACb8kB,GAAgB1e,IAAIkf,EAEpB,IAAIC,GAAS,WACX/jB,EAAIwO,OAAOpV,IAAQqqB,EAAOpkB,cAC1BikB,EAAgB9U,OAAOsV,GAGzBA,GAAGnlB,cAAcklB,SAASrd,KAAK,GAAG5H,UAChC6H,GACA,SAAU6R,GACRtY,EAAIujB,YAAY7I,QAAQ0I,EAAY9K,IACpCha,EAASY,QAAQoZ,IAEnByL,IAIJ,GAAI5f,EACJ,KACEA,EAAU8e,EAAgBhjB,GAC1B,MAAOL,GAGP,MAFAI,GAAIujB,YAAY7I,QAAQ0I,EAAYxjB,QACpCtB,GAASY,QAAQU,GAInB6jB,EAAO5kB,OAAOsF,IACf,SAAUlF,GACXe,EAAIujB,YAAY7I,QAAQ0I,EAAYnkB,IACpCX,EAASY,QAAQD,IAChB,WACDe,EAAIujB,YAAY7I,QAAQ,SAAUpa,GAAQA,EAAKjB,gBAC/Cf,EAASe,iBAGJgjB,KAUX/I,GAAgB0K,OAAS1K,GAAgBtZ,IAAM,SAAUF,EAAUC,GACjE,GAAImN,GAASnV,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI7B,GAAQ,CACZ,OAAOyQ,GAAOtO,UAAU,SAAUxG,GAChC,GAAII,EACJ,KACEA,EAASsH,EAAShH,KAAKiH,EAAS3H,EAAOqE,IAASyQ,GAChD,MAAOtN,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,IACf8F,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OASlEgb,GAAgBhO,MAAQ,SAAUgC,GAChC,MAAOvV,MAAKiI,IAAI,SAAUC,GAAK,MAAOA,GAAEqN,MA+B1CgM,GAAgB+G,WAAa/G,GAAgB5Y,QAAU,SAAUZ,EAAUN,EAAgBO,GACzF,MAAIP,GACKzH,KAAK2I,QAAQ,SAAUT,EAAGtD,GAC/B,GAAI4lB,GAAiBziB,EAASG,EAAGtD,EAIjC,OAHAwC,IAAUojB,KAAoBA,EAAiBnjB,GAAsBmjB,KACpEjmB,MAAMC,QAAQgmB,IAAmBnlB,EAAWmlB,MAAqBA,EAAiBriB,GAAeqiB,IAE3FA,EAAeviB,IAAI,SAAU2L,EAAG6W,GACrC,MAAOhjB,GAAeS,EAAG0L,EAAGhP,EAAG6lB,MAEhCziB,GAEsB,kBAAbD,GACZY,EAAQ3I,KAAM+H,EAAUC,GACxBW,EAAQ3I,KAAM,WAAc,MAAO+H,MAWvCwZ,GAAgB2K,gBAAkB3K,GAAgB4K,mBAAqB,SAAUrlB,EAAQK,EAASG,EAAaU,GAC7G,GAAI5B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI5E,GAAQ,CAEZ,OAAOyE,GAAOS,UACZ,SAAUqB,GACR,GAAIzH,EACJ,KACEA,EAASqG,EAAO/F,KAAKiH,EAASE,EAAGvG,KACjC,MAAOkG,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,IAElB,SAAU4K,GACR,GAAI5K,EACJ,KACEA,EAAS0G,EAAQpG,KAAKiH,EAASqD,GAC/B,MAAOxD,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,GAChB8F,EAASe,eAEX,WACE,GAAI7G,EACJ,KACEA,EAAS6G,EAAYvG,KAAKiH,GAC1B,MAAOH,GAEP,WADAtB,GAASY,QAAQU,GAGnBT,GAAU3G,KAAYA,EAAS4G,GAAsB5G,IACrD8F,EAASO,OAAOrG,GAChB8F,EAASe,kBAEZ4f,YAWL3F,GAAgB6K,aAAe7K,GAAgB8K,cAAgB9K,GAAgB+K,UAAY,SAAUvkB,EAAUC,GAC7G,MAAOhI,MAAKisB,OAAOlkB,EAAUC,GAASwf,gBAQxCjG,GAAgB6G,KAAO,SAAU1jB,GAC7B,GAAY,EAARA,EAAa,KAAM,IAAIxE,OAAMyJ,GACjC,IAAIvD,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIgmB,GAAY7nB,CAChB,OAAO0B,GAAOS,UAAU,SAAUqB,GACf,GAAbqkB,EACFhmB,EAASO,OAAOoB,GAEhBqkB,KAEDhmB,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAcpEgb,GAAgBiL,UAAY,SAAUviB,EAAWjC,GAC/C,GAAI5B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI3B,GAAI,EAAGoM,GAAU,CACrB,OAAO5K,GAAOS,UAAU,SAAUqB,GAChC,IAAK8I,EACH,IACEA,GAAW/G,EAAUlJ,KAAKiH,EAASE,EAAGtD,IAAKwB,GAC3C,MAAOyB,GAEP,WADAtB,GAASY,QAAQU,GAIrBmJ,GAAWzK,EAASO,OAAOoB,IAC1B3B,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAalEgb,GAAgB9S,KAAO,SAAU/J,EAAOM,GACpC,GAAY,EAARN,EAAa,KAAM,IAAI+nB,YAAW9iB,GACtC,IAAc,IAAVjF,EAAe,MAAOiJ,IAAgB3I,EAC1C,IAAI0G,GAAa1L,IACjB,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIgmB,GAAY7nB,CAChB,OAAOgH,GAAW7E,UAAU,SAAUqB,GAChCqkB,IAAc,IAChBhmB,EAASO,OAAOoB,GACF,IAAdqkB,GAAmBhmB,EAASe,gBAE7Bf,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAWpEgb,GAAgBmL,UAAY,SAAUziB,EAAWjC,GAC/C,GAAI0D,GAAa1L,IACjB,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI3B,GAAI,EAAGoM,GAAU,CACrB,OAAOtF,GAAW7E,UAAU,SAAUqB,GACpC,GAAI8I,EAAS,CACX,IACEA,EAAU/G,EAAUlJ,KAAKiH,EAASE,EAAGtD,IAAK8G,GAC1C,MAAO7D,GAEP,WADAtB,GAASY,QAAQU,GAGfmJ,EACFzK,EAASO,OAAOoB,GAEhB3B,EAASe,gBAGZf,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAclEgb,GAAgBgH,MAAQhH,GAAgB+E,OAAS,SAAUrc,EAAWjC,GAClE,GAAImN,GAASnV,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI7B,GAAQ,CACZ,OAAOyQ,GAAOtO,UAAU,SAAUxG,GAChC,GAAI8J,EACJ,KACEA,EAAYF,EAAUlJ,KAAKiH,EAAS3H,EAAOqE,IAASyQ,GACpD,MAAOtN,GAEP,WADAtB,GAASY,QAAQU,GAGnBsC,GAAa5D,EAASO,OAAOzG,IAC5BkG,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,OAIpEgb,GAAgBoL,WAAa,WAC3B,GAAIvmB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAsBlG,GAAlB0I,GAAW,CACf,OAAO3C,GAAOS,UAAU,SAAUqB,GAChCa,GAAW,EACX1I,EAAQ6H,GACP3B,EAASY,QAAQJ,KAAKR,GAAW,WAC7BwC,GAGHxC,EAASO,OAAOzG,GAChBkG,EAASe,eAHTf,EAASY,QAAQ,GAAIjH,OAAMmJ,UA0DnCkY,GAAgBqL,UAAY,WAC1B,GAAIjD,GAAME,EAASD,CAQnB,OAPyB,KAArBzV,UAAUvT,QACZ+oB,EAAOxV,UAAU,GACjB0V,GAAU,EACVD,EAAczV,UAAU,IAExByV,EAAczV,UAAU,GAEnB0V,EAAU7pB,KAAK0pB,KAAKC,EAAMC,GAAaK,UAAUN,GAAMgD,aAAe3sB,KAAK0pB,KAAKE,GAAa+C,cAUtGpL,GAAgBsL,OAAS,SAAUjD,GACjC,GAAID,GAAME,CAKV,OAJyB,KAArB1V,UAAUvT,SACZipB,GAAU,EACVF,EAAOxV,UAAU,IAEZ0V,EAAU7pB,KAAK0pB,KAAKC,EAAMC,GAAaK,UAAUN,GAAMgD,aAAe3sB,KAAK0pB,KAAKE,GAAa+C,cAWpGpL,GAAgBuL,KAAOvL,GAAgBwL,IAAM,SAAU9iB,EAAWjC,GAC9D,GAAI5B,GAASpG,IACb,OAAOiK,GACH7D,EAAOmiB,MAAMte,EAAWjC,GAAS+kB,MACjC,GAAIzmB,IAAoB,SAAUC,GAC9B,MAAOH,GAAOS,UAAU,WACpBN,EAASO,QAAO,GAChBP,EAASe,eACVf,EAASY,QAAQJ,KAAKR,GAAW,WAChCA,EAASO,QAAO,GAChBP,EAASe,mBAS3Bia,GAAgByL,QAAU,WACxB,MAAOhtB,MAAK+sB,MAAM9kB,IAAIgM,KAYtBsN,GAAgBrU,MAAQqU,GAAgB0L,IAAM,SAAUhjB,EAAWjC,GAC/D,MAAOhI,MAAKuoB,MAAM,SAAU5c,GACxB,OAAQ1B,EAAU0B,IACnB3D,GAAS+kB,MAAMd,OAAO,SAAUlpB,GAC/B,OAAQA,KAUlBwe,GAAgB2L,SAAW,SAAUC,EAAeC,GAElD,QAAS5kB,GAAS1F,EAAGC,GACnB,MAAc,KAAND,GAAiB,IAANC,GAAaD,IAAMC,GAAM2C,MAAM5C,IAAM4C,MAAM3C,GAFhE,GAAIqD,GAASpG,IAIb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI3B,GAAI,EAAG0I,GAAK8f,GAAa,CAE7B,OADgBhD,OAAhBvkB,KAAKE,IAAIuH,KAAoBA,EAAI,GACzB,EAAJA,GACF/G,EAASO,QAAO,GAChBP,EAASe,cACF8P,IAEFhR,EAAOS,UACZ,SAAUqB,GACJtD,KAAO0I,GAAK9E,EAASN,EAAGilB,KAC1B5mB,EAASO,QAAO,GAChBP,EAASe,gBAGbf,EAASY,QAAQJ,KAAKR,GACtB,WACEA,EAASO,QAAO,GAChBP,EAASe,mBAcfia,GAAgB7c,MAAQ,SAAUuF,EAAWjC,GACzC,MAAOiC,GACHjK,KAAKuoB,MAAMte,EAAWjC,GAAStD,QAC/B1E,KAAK4sB,UAAU,EAAG,SAAUloB,GACxB,MAAOA,GAAQ,KAU7B6c,GAAgB1K,QAAU,SAASsW,EAAeC,GAChD,GAAIhnB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI3B,GAAI,EAAG0I,GAAK8f,GAAa,CAE7B,OADgBhD,OAAhBvkB,KAAKE,IAAIuH,KAAoBA,EAAI,GACzB,EAAJA,GACF/G,EAASO,OAAO,IAChBP,EAASe,cACF8P,IAEFhR,EAAOS,UACZ,SAAUqB,GACJtD,GAAK0I,GAAKpF,IAAMilB,IAClB5mB,EAASO,OAAOlC,GAChB2B,EAASe,eAEX1C,KAEF2B,EAASY,QAAQJ,KAAKR,GACtB,WACEA,EAASO,OAAO,IAChBP,EAASe,mBAajBia,GAAgB8L,IAAM,SAAUvkB,EAAad,GAC3C,MAAOc,IAAe7E,GAAW6E,GAC/B9I,KAAKiI,IAAIa,EAAad,GAASqlB,MAC/BrtB,KAAK4sB,UAAU,EAAG,SAAUU,EAAMC,GAChC,MAAOD,GAAOC,KAalBhM,GAAgBiM,MAAQ,SAAU1kB,EAAaN,GAE3C,MADAA,KAAaA,EAAWsL,IACjBjL,EAAU7I,KAAM8I,EAAa,SAAUZ,EAAG0L,GAC7C,MAAwB,GAAjBpL,EAASN,EAAG0L,MAY3B2N,GAAgBkM,IAAM,SAAUjlB,GAC5B,MAAOxI,MAAKwtB,MAAMrgB,GAAU3E,GAAUyjB,OAAO,SAAU/jB,GACnD,MAAOkB,GAAUlB,MAazBqZ,GAAgBmM,MAAQ,SAAU5kB,EAAaN,GAE3C,MADAA,KAAaA,EAAWsL,IACjBjL,EAAU7I,KAAM8I,EAAaN,IAWxC+Y,GAAgB7P,IAAM,SAAUlJ,GAC5B,MAAOxI,MAAK0tB,MAAMvgB,GAAU3E,GAAUyjB,OAAO,SAAU/jB,GACnD,MAAOkB,GAAUlB,MAU3BqZ,GAAgBoM,QAAU,SAAU7kB,EAAad,GAC/C,MAAOc,IAAe7E,GAAW6E,GAC/B9I,KAAKisB,OAAOnjB,EAAad,GAAS2lB,UAClC3tB,KAAK0pB,MAAM2D,IAAK,EAAG3oB,MAAO,GAAK,SAAU4oB,EAAMM,GAC7C,OACEP,IAAKC,EAAKD,IAAMO,EAChBlpB,MAAO4oB,EAAK5oB,MAAQ,KAErBioB,aAAa1kB,IAAI,SAAUgS,GAC5B,GAAgB,IAAZA,EAAEvV,MACJ,KAAM,IAAIxE,OAAM,+BAElB,OAAO+Z,GAAEoT,IAAMpT,EAAEvV,SAsCvB6c,GAAgBsM,cAAgB,SAAUrmB,EAAQgB,GAChD,GAAId,GAAQ1H,IAEZ,OADAwI,KAAaA,EAAWmL,IACpBpP,MAAMC,QAAQgD,GACT8B,EAAmB5B,EAAOF,EAAQgB,GAEpC,GAAIlC,IAAoB,SAAUC,GACvC,GAAIunB,IAAQ,EAAOC,GAAQ,EAAOC,KAASC,KACvCC,EAAgBxmB,EAAMb,UAAU,SAAUqB,GAC5C,GAAIqB,GAAOoC,CACX,IAAIsiB,EAAGrtB,OAAS,EAAG,CACjB+K,EAAIsiB,EAAGzc,OACP,KACEjI,EAAQf,EAASmD,EAAGzD,GACpB,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAGd0B,IACHhD,EAASO,QAAO,GAChBP,EAASe,mBAEFymB,IACTxnB,EAASO,QAAO,GAChBP,EAASe,eAET0mB,EAAG1sB,KAAK4G,IAET3B,EAASY,QAAQJ,KAAKR,GAAW,WAClCunB,GAAQ,EACU,IAAdE,EAAGptB,SACDqtB,EAAGrtB,OAAS,GACd2F,EAASO,QAAO,GAChBP,EAASe,eACAymB,IACTxnB,EAASO,QAAO,GAChBP,EAASe,iBAKfF,IAAUI,KAAYA,EAASH,GAAsBG,GACrD,IAAI2mB,GAAgB3mB,EAAOX,UAAU,SAAUqB,GAC7C,GAAIqB,EACJ,IAAIykB,EAAGptB,OAAS,EAAG,CACjB,GAAI+K,GAAIqiB,EAAGxc,OACX,KACEjI,EAAQf,EAASmD,EAAGzD,GACpB,MAAOlB,GAEP,WADAT,GAASY,QAAQH,GAGduC,IACHhD,EAASO,QAAO,GAChBP,EAASe,mBAEFwmB,IACTvnB,EAASO,QAAO,GAChBP,EAASe,eAET2mB,EAAG3sB,KAAK4G,IAET3B,EAASY,QAAQJ,KAAKR,GAAW,WAClCwnB,GAAQ,EACU,IAAdE,EAAGrtB,SACDotB,EAAGptB,OAAS,GACd2F,EAASO,QAAO,GAChBP,EAASe,eACAwmB,IACTvnB,EAASO,QAAO,GAChBP,EAASe,iBAIf,OAAO,IAAIsF,IAAoBshB,EAAeC,MAkChD5M,GAAgB6M,UAAa,SAAUzsB,GACnC,MAAO6H,GAAmBxJ,KAAM2B,GAAO,IAY3C4f,GAAgB/X,mBAAqB,SAAU7H,EAAO+H,GAClD,MAAOF,GAAmBxJ,KAAM2B,GAAO,EAAM+H,IAiCnD6X,GAAgB8M,OAAS,SAAUpkB,EAAWjC,GAC5C,MAAOiC,IAAahG,GAAWgG,GAC7BjK,KAAKuoB,MAAMte,EAAWjC,GAASqmB,SAC/BzkB,EAAqB5J,MAAM,IAgB/BuhB,GAAgB+M,gBAAkB,SAAUrkB,EAAWP,EAAc1B,GACnE,MAAOiC,IAAahG,GAAWgG,GAC7BjK,KAAKuoB,MAAMte,EAAWjC,GAASsmB,gBAAgB,KAAM5kB,GACrDE,EAAqB5J,MAAM,EAAM0J,IA4BnC6X,GAAgB7Z,MAAQ,SAAUuC,EAAWjC,GACzC,MAAOiC,GACHjK,KAAKuoB,MAAMte,EAAWjC,GAASN,QAC/BoC,EAAoB9J,MAAM,IAelCuhB,GAAgBgN,eAAiB,SAAUtkB,EAAWP,GAClD,MAAOO,GACHjK,KAAKuoB,MAAMte,GAAWskB,eAAe,KAAM7kB,GAC3CI,EAAoB9J,MAAM,EAAM0J,IA6BxC6X,GAAgBiN,KAAO,SAAUvkB,EAAWjC,GACxC,MAAOiC,GACHjK,KAAKuoB,MAAMte,EAAWjC,GAASwmB,OAC/BzkB,EAAmB/J,MAAM,IAejCuhB,GAAgBkN,cAAgB,SAAUxkB,EAAWP,EAAc1B,GAC/D,MAAOiC,GACHjK,KAAKuoB,MAAMte,EAAWjC,GAASymB,cAAc,KAAM/kB,GACnDK,EAAmB/J,MAAM,EAAM0J,IAiCvC6X,GAAgBmN,KAAO,SAAUzkB,EAAWjC,GACxC,MAAOgC,GAAUhK,KAAMiK,EAAWjC,GAAS,IAU/CuZ,GAAgBoN,UAAY,SAAU1kB,EAAWjC,GAC7C,MAAOgC,GAAUhK,KAAMiK,EAAWjC,GAAS,IAG3C7C,GAAKoP,MAKTgN,GAAgBqN,MAAQ,WACtB,GAAIxoB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI0T,GAAI,GAAI9U,IAAKoP,GACjB,OAAOnO,GAAOS,UACZoT,EAAEpN,IAAI9F,KAAKkT,GACX1T,EAASY,QAAQJ,KAAKR,GACtB,WACEA,EAASO,OAAOmT,GAChB1T,EAASe,oBAMbnC,GAAKwK,MAOT4R,GAAgBsN,MAAQ,SAAU/lB,EAAaoiB,GAC7C,GAAI9kB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIiI,GAAI,GAAIrJ,IAAKwK,GACjB,OAAOvJ,GAAOS,UACZ,SAAUqB,GACR,GAAI7G,EACJ,KACEA,EAAMyH,EAAYZ,GAClB,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAInB,GAAIuE,GAAUlE,CACd,IAAIgjB,EACF,IACE9e,EAAU8e,EAAgBhjB,GAC1B,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAKrB2G,EAAE9F,IAAIrH,EAAK+K,IAEb7F,EAASY,QAAQJ,KAAKR,GACtB,WACEA,EAASO,OAAO0H,GAChBjI,EAASe,mBAMnB,IAAIwD,IAAW,WACXkB,GAAc,QAyGdvB,GAAkBqI,GAAGgc,MAAQ,SAAU7jB,GACzC,GAAI8jB,GAAWvkB,EAAoBS,EAEnC,OAAO,UAAUF,GAiBf,QAASikB,GAAK3jB,EAAKC,GACjBE,GAAiBC,SAASV,EAAKhE,KAAKuD,EAAKe,EAAKC,IAGhD,QAASS,GAAKV,EAAKC,GACjB,GAAI2jB,EAKJ,IAFI9a,UAAUvT,OAAS,IAAG0K,EAAMxK,GAAMC,KAAKoT,UAAW,IAElD9I,EACF,IACE4jB,EAAMC,EAAIljB,IAAaX,GACvB,MAAOxD,GACP,MAAOmnB,GAAKnnB,GAIhB,IAAKwD,EACH,IACE4jB,EAAMC,EAAInjB,KAAKT,GACf,MAAOzD,GACP,MAAOmnB,GAAKnnB,GAIhB,GAAIonB,EAAIlkB,KACN,MAAOikB,GAAK,KAAMC,EAAI5uB,MAKxB,IAFA4uB,EAAI5uB,MAAQ+J,EAAQ6kB,EAAI5uB,MAAOiK,SAEpB2kB,GAAI5uB,QAAUyK,GAyBzBiB,EAAK,GAAIsX,WAAU,iFAzBnB,CACE,GAAI8L,IAAS,CACb,KACEF,EAAI5uB,MAAMU,KAAKuJ,EAAK,WACd6kB,IAIJA,GAAS,EACTpjB,EAAKqB,MAAM9C,EAAK6J,cAElB,MAAOtM,GACP2D,GAAiBC,SAAS,WACpB0jB,IAIJA,GAAS,EACTpjB,EAAKhL,KAAKuJ,EAAKzC,QAlEvB,GAAIyC,GAAMtK,KACRkvB,EAAMjkB,CAER,IAAI8jB,EAAU,CACZ,GAAI1qB,GAAOvD,GAAMC,KAAKoT,WACpBvO,EAAMvB,EAAKzD,OACXwuB,EAAcxpB,SAAcvB,GAAKuB,EAAM,KAAOkF,EAEhDC,GAAOqkB,EAAc/qB,EAAKF,MAAQ+H,EAClCgjB,EAAMjkB,EAAGmC,MAAMpN,KAAMqE,OAErB0G,GAAOA,GAAQmB,CAGjBH,MAqEJ+G,IAAGuc,SAAW,SAAUpkB,GACtB,MAAO,YACL,GACEE,GACAgkB,EACA5sB,EAHE8B,EAAOvD,GAAMC,KAAKoT,UAgBtB,OAXA9P,GAAK/C,KAAK,WACR6J,EAAUgJ,UAEN5R,IAAa4sB,IACfA,GAAS,EACTG,GAAGliB,MAAMpN,KAAMmL,MAInBF,EAAGmC,MAAMpN,KAAMqE,GAER,SAAU4G,GACf1I,EAAW0I,EAEPE,IAAYgkB,IACdA,GAAS,EACTlkB,EAAGmC,MAAMpN,KAAMmL,OA8BvBsX,GAAWxH,MAAQ,SAAU8K,EAAMwJ,EAASvqB,GAC1C,MAAOwqB,IAAkBzJ,EAAMwJ,EAASvqB,KAgB1C,IAAIwqB,IAAoB/M,GAAWgN,QAAU,SAAU1J,EAAMwJ,EAASvqB,GAEpE,MADAmO,IAAYnO,KAAeA,EAAYwG,IAChC,WACL,GAAInH,GAAO8P,UACTpH,EAAU,GAAImW,GAahB,OAXAle,GAAUyG,SAAS,WACjB,GAAIhL,EACJ,KACEA,EAASslB,EAAK3Y,MAAMmiB,EAASlrB,GAC7B,MAAOwD,GAEP,WADAkF,GAAQ5F,QAAQU,GAGlBkF,EAAQjG,OAAOrG,GACfsM,EAAQzF,gBAEHyF,EAAQmb,gBAYnBzF,IAAWiN,aAAe,SAAU3J,EAAMwJ,EAASxnB,GACjD,MAAO,YACL,GAAI1D,GAAOvD,GAAMC,KAAKoT,UAAW,EAEjC,OAAO,IAAI7N,IAAoB,SAAUC,GACvC,QAASF,GAAQwB,GACf,GAAIsD,GAAUtD,CAEd,IAAIE,EAAU,CACZ,IACEoD,EAAUpD,EAASoM,WACnB,MAAO9I,GAEP,WADA9E,GAASY,QAAQkE,GAInB9E,EAASO,OAAOqE,OAEZA,GAAQvK,QAAU,EACpB2F,EAASO,OAAOsG,MAAM7G,EAAU4E,GAEhC5E,EAASO,OAAOqE,EAIpB5E,GAASe,cAGXjD,EAAK/C,KAAK+E,GACV0f,EAAK3Y,MAAMmiB,EAASlrB,KACnBsrB,cAAcC,aAWrBnN,GAAWoN,iBAAmB,SAAU9J,EAAMwJ,EAASxnB,GACrD,MAAO,YACL,GAAI1D,GAAOvD,GAAMC,KAAKoT,UAAW,EAEjC,OAAO,IAAI7N,IAAoB,SAAUC,GACvC,QAASF,GAAQgF,GACf,GAAIA,EAEF,WADA9E,GAASY,QAAQkE,EAInB,IAAIF,GAAUrK,GAAMC,KAAKoT,UAAW,EAEpC,IAAIpM,EAAU,CACZ,IACEoD,EAAUpD,EAASoD,GACnB,MAAOtD,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOqE,OAEZA,GAAQvK,QAAU,EACpB2F,EAASO,OAAOsG,MAAM7G,EAAU4E,GAEhC5E,EAASO,OAAOqE,EAIpB5E,GAASe,cAGXjD,EAAK/C,KAAK+E,GACV0f,EAAK3Y,MAAMmiB,EAASlrB,KACnBsrB,cAAcC,aAgCrB9c,GAAGE,OAAO8c,iBAAkB,CAG5B,IAAIC,IACD5qB,GAAK6qB,SAAaA,QAAQ5jB,QAAU4jB,QAAQ5jB,QAC3CjH,GAAK8qB,OAAS9qB,GAAK8qB,OAClB9qB,GAAK+qB,MAAQ/qB,GAAK+qB,MAAQ,KAG3BC,KAAUhrB,GAAKirB,OAA2C,kBAA3BjrB,IAAKirB,MAAMC,YAI1CC,KAAenrB,GAAKorB,YAAcprB,GAAKorB,SAASC,UAapD/N,IAAWgO,UAAY,SAAUrkB,EAASM,EAAW3E,GAEnD,GAAIqE,EAAQikB,YACV,MAAOK,IACL,SAAUC,GAAKvkB,EAAQikB,YAAY3jB,EAAWikB,IAC9C,SAAUA,GAAKvkB,EAAQwkB,eAAelkB,EAAWikB,IACjD5oB,EAIJ,KAAK+K,GAAGE,OAAO8c,gBAAiB,CAC9B,GAAIQ,GACF,MAAOI,IACL,SAAUC,GAAKvkB,EAAQykB,GAAGnkB,EAAWikB,IACrC,SAAUA,GAAKvkB,EAAQ0kB,IAAIpkB,EAAWikB,IACtC5oB,EAEJ,IAAIooB,GACF,MAAOO,IACL,SAAUC,GAAKP,MAAMC,YAAYjkB,EAASM,EAAWikB,IACrD,SAAUA,GAAKP,MAAMQ,eAAexkB,EAASM,EAAWikB,IACxD5oB,EAEJ,IAAIgoB,GAAI,CACN,GAAIgB,GAAQhB,GAAG3jB,EACf,OAAOskB,IACL,SAAUC,GAAKI,EAAMF,GAAGnkB,EAAWikB,IACnC,SAAUA,GAAKI,EAAMD,IAAIpkB,EAAWikB,IACpC5oB,IAGN,MAAO,IAAIzB,IAAoB,SAAUC,GACvC,MAAOiG,GACLJ,EACAM,EACA,SAAkB7E,GAChB,GAAIsD,GAAUtD,CAEd,IAAIE,EACF,IACEoD,EAAUpD,EAASoM,WACnB,MAAO9I,GAEP,WADA9E,GAASY,QAAQkE,GAKrB9E,EAASO,OAAOqE,OAEnB6lB,UAAUpB,WAUf,IAAIc,IAAmBjO,GAAWiO,iBAAmB,SAAUO,EAAYC,EAAenpB,GACxF,MAAO,IAAIzB,IAAoB,SAAUC,GACvC,QAAS4qB,GAActpB,GACrB,GAAIpH,GAASoH,CACb,IAAIE,EACF,IACEtH,EAASsH,EAASoM,WAClB,MAAO9I,GAEP,WADA9E,GAASY,QAAQkE,GAIrB9E,EAASO,OAAOrG,GAGlB,GAAIskB,GAAckM,EAAWE,EAC7B,OAAO7kB,IAAiB,WAClB4kB,GACFA,EAAcC,EAAcpM,OAG/BiM,UAAUpB,WAQfnN,IAAW2O,WAAa,SAAUC,GAChC,GAAIzlB,EACJ,KACEA,EAAUylB,IACV,MAAOxpB,GACP,MAAO+b,IAAgB/b,GAEzB,MAAOR,IAAsBuE,GAG/B,IAAI0lB,IAAsB,SAAUvP,GAIlC,QAASlb,GAAUN,GACjB,GAAIgrB,GAAOvxB,KAAKoG,OAAO4qB,UACrBtqB,EAAe6qB,EAAK1qB,UAAUN,GAC9BirB,EAAapa,GAEXqa,EAAWzxB,KAAK0xB,OAAOjJ,uBAAuB5hB,UAAU,SAAU9D,GAChEA,EACFyuB,EAAaD,EAAKI,WAElBH,EAAW7a,UACX6a,EAAapa,KAIjB,OAAO,IAAIxK,IAAoBlG,EAAc8qB,EAAYC,GAG3D,QAASH,GAAmBlrB,EAAQsrB,GAClC1xB,KAAKoG,OAASA,EACdpG,KAAK4xB,WAAa,GAAI5jB,IAGpBhO,KAAK0xB,OADHA,GAAUA,EAAO7qB,UACL7G,KAAK4xB,WAAW/K,MAAM6K,GAEtB1xB,KAAK4xB,WAGrB7P,EAAOhhB,KAAKf,KAAM6G,GAWpB,MAxCAoO,IAASqc,EAAoBvP,GAgC7BuP,EAAmBzvB,UAAUgwB,MAAQ,WACnC7xB,KAAK4xB,WAAW9qB,QAAO,IAGzBwqB,EAAmBzvB,UAAUiwB,OAAS,WACpC9xB,KAAK4xB,WAAW9qB,QAAO,IAGlBwqB,GAEP7O,GAUFlB,IAAgBkQ,SAAW,SAAUC,GACnC,MAAO,IAAIJ,IAAmBtxB,KAAM0xB,GA+CtC,IAAIK,IAA8B,SAAUhQ,GAI1C,QAASlb,GAAUN,GACjB,GAAYyrB,GAARjhB,KAEArK,EACFoG,EACE9M,KAAKoG,OACLpG,KAAK0xB,OAAOjJ,uBAAuBwB,WAAU,GAC7C,SAAUnN,EAAMmV,GACd,OAASnV,KAAMA,EAAMmV,WAAYA,KAElCprB,UACC,SAAUsE,GACR,GAAI6mB,IAAuBlyB,GAAaqL,EAAQ8mB,YAAcD,GAG5D,GAFAA,EAAqB7mB,EAAQ8mB,WAEzB9mB,EAAQ8mB,WACV,KAAOlhB,EAAEnQ,OAAS,GAChB2F,EAASO,OAAOiK,EAAES,aAItBwgB,GAAqB7mB,EAAQ8mB,WAEzB9mB,EAAQ8mB,WACV1rB,EAASO,OAAOqE,EAAQ2R,MAExB/L,EAAEzP,KAAK6J,EAAQ2R,OAIrB,SAAUzR,GAER,KAAO0F,EAAEnQ,OAAS,GAChB2F,EAASO,OAAOiK,EAAES,QAEpBjL,GAASY,QAAQkE,IAEnB,WAEE,KAAO0F,EAAEnQ,OAAS,GAChB2F,EAASO,OAAOiK,EAAES,QAEpBjL,GAASe,eAGjB,OAAOZ,GAGT,QAASqrB,GAA2B3rB,EAAQsrB,GAC1C1xB,KAAKoG,OAASA,EACdpG,KAAK4xB,WAAa,GAAI5jB,IAGpBhO,KAAK0xB,OADHA,GAAUA,EAAO7qB,UACL7G,KAAK4xB,WAAW/K,MAAM6K,GAEtB1xB,KAAK4xB,WAGrB7P,EAAOhhB,KAAKf,KAAM6G,GAWpB,MAvEAoO,IAAS8c,EAA4BhQ,GA+DrCgQ,EAA2BlwB,UAAUgwB,MAAQ,WAC3C7xB,KAAK4xB,WAAW9qB,QAAO,IAGzBirB,EAA2BlwB,UAAUiwB,OAAS,WAC5C9xB,KAAK4xB,WAAW9qB,QAAO,IAGlBirB,GAEPtP,GAWFlB,IAAgB2Q,iBAAmB,SAAUnlB,GAC3C,MAAO,IAAIglB,IAA2B/xB,KAAM+M,IAW9CwU,GAAgB4Q,WAAa,SAAUC,GAErC,MADmB,OAAfA,IAAwBA,GAAc,GACnC,GAAIC,IAAqBryB,KAAMoyB,GAGxC,IAAIC,IAAwB,SAAUtQ,GAIpC,QAASlb,GAAWN,GAClB,MAAOvG,MAAKoG,OAAOS,UAAUN,GAG/B,QAAS8rB,GAAsBjsB,EAAQgsB,GACrCrQ,EAAOhhB,KAAKf,KAAM6G,GAClB7G,KAAK+M,QAAU,GAAIulB,IAAkBF,GACrCpyB,KAAKoG,OAASA,EAAOmsB,UAAUvyB,KAAK+M,SAAS6iB,WAQ/C,MAjBA3a,IAASod,EAAsBtQ,GAY/BsQ,EAAqBxwB,UAAU2wB,QAAU,SAAUC,GAEjD,MADqB,OAAjBA,IAAyBA,EAAgB,IACtCzyB,KAAK+M,QAAQylB,QAAQC,IAGvBJ,GAEP5P,IAEI6P,GAAoBxf,GAAGwf,kBAAqB,SAAUvQ,GAEtD,QAASlb,GAAWN,GAChB,MAAOvG,MAAK+M,QAAQlG,UAAUN,GAKlC,QAAS+rB,GAAkBF,GACJ,MAAfA,IACAA,GAAc,GAGlBrQ,EAAOhhB,KAAKf,KAAM6G,GAClB7G,KAAK+M,QAAU,GAAIiB,IACnBhO,KAAKoyB,YAAcA,EACnBpyB,KAAKyb,MAAQ2W,KAAmB,KAChCpyB,KAAK0yB,eAAiB,EACtB1yB,KAAK2yB,oBAAsBvb,GAC3BpX,KAAKkM,MAAQ,KACblM,KAAK4yB,WAAY,EACjB5yB,KAAK6yB,cAAe,EACpB7yB,KAAK8yB,qBAAuB1b,GAsGhC,MAtHAnC,IAASqd,EAAmBvQ,GAmB5B1M,GAAcid,EAAkBzwB,UAAWgf,IACvCvZ,YAAa,WACTvH,EAAcgB,KAAKf,MACnBA,KAAK6yB,cAAe,EAEf7yB,KAAKoyB,aAAqC,IAAtBpyB,KAAKyb,MAAM7a,QAChCZ,KAAK+M,QAAQzF,eAGrBH,QAAS,SAAU+E,GACfnM,EAAcgB,KAAKf,MACnBA,KAAK4yB,WAAY,EACjB5yB,KAAKkM,MAAQA,EAERlM,KAAKoyB,aAAqC,IAAtBpyB,KAAKyb,MAAM7a,QAChCZ,KAAK+M,QAAQ5F,QAAQ+E,IAG7BpF,OAAQ,SAAUzG,GACdN,EAAcgB,KAAKf,KACnB,IAAI+yB,IAAe,CAES,KAAxB/yB,KAAK0yB,eACD1yB,KAAKoyB,aACLpyB,KAAKyb,MAAMna,KAAKjB,IAGQ,KAAxBL,KAAK0yB,gBACyB,IAA1B1yB,KAAK0yB,kBACL1yB,KAAKgzB,wBAGbD,GAAe,GAGfA,GACA/yB,KAAK+M,QAAQjG,OAAOzG,IAG5B4yB,gBAAiB,SAAUR,GACvB,GAAIzyB,KAAKoyB,YAAa,CAGlB,KAAOpyB,KAAKyb,MAAM7a,QAAU6xB,GAAiBA,EAAgB,GAEzDzyB,KAAK+M,QAAQjG,OAAO9G,KAAKyb,MAAMjK,SAC/BihB,GAGJ,OAA0B,KAAtBzyB,KAAKyb,MAAM7a,QACF6xB,cAAeA,EAAe1N,aAAa,IAE3C0N,cAAeA,EAAe1N,aAAa,GAc5D,MAVI/kB,MAAK4yB,WACL5yB,KAAK+M,QAAQ5F,QAAQnH,KAAKkM,OAC1BlM,KAAK8yB,qBAAqBnc,UAC1B3W,KAAK8yB,qBAAuB1b,IACrBpX,KAAK6yB,eACZ7yB,KAAK+M,QAAQzF,cACbtH,KAAK8yB,qBAAqBnc,UAC1B3W,KAAK8yB,qBAAuB1b,KAGvBqb,cAAeA,EAAe1N,aAAa,IAExDyN,QAAS,SAAU/sB,GACf1F,EAAcgB,KAAKf,MACnBA,KAAKgzB,uBACL,IAAI3iB,GAAOrQ,KACPiO,EAAIjO,KAAKizB,gBAAgBxtB,EAG7B,OADAA,GAASwI,EAAEwkB,cACNxkB,EAAE8W,YAQI3N,IAPPpX,KAAK0yB,eAAiBjtB,EACtBzF,KAAK2yB,oBAAsBrmB,GAAiB,WACxC+D,EAAKqiB,eAAiB,IAGnB1yB,KAAK2yB,sBAKpBK,sBAAuB,WACnBhzB,KAAK2yB,oBAAoBhc,UACzB3W,KAAK2yB,oBAAsBvb,IAG/BT,QAAS,WACL3W,KAAKC,YAAa,EAClBD,KAAKkM,MAAQ,KACblM,KAAK+M,QAAQ4J,UACb3W,KAAK2yB,oBAAoBhc,aAI1B2b,GACT7P,GAmBJlB,IAAgBgR,UAAY,SAAUW,EAA0BnrB,GAC9D,GAAI3B,GAASpG,IACb,OAA2C,kBAA7BkzB,GACZ,GAAI5sB,IAAoB,SAAUC,GAChC,GAAI4sB,GAAc/sB,EAAOmsB,UAAUW,IACnC,OAAO,IAAItmB,IAAoB7E,EAASorB,GAAatsB,UAAUN,GAAW4sB,EAAYxB,aAExF,GAAIyB,IAAsBhtB,EAAQ8sB,IActC3R,GAAgByP,QAAU,SAAUjpB,GAClC,MAAOA,IAAY9D,GAAW8D,GAC5B/H,KAAKuyB,UAAU,WAAc,MAAO,IAAIvkB,KAAcjG,GACtD/H,KAAKuyB,UAAU,GAAIvkB,MAYvBuT,GAAgB8R,MAAQ,WACtB,MAAOrzB,MAAKgxB,UAAUpB,YAcxBrO,GAAgBoO,YAAc,SAAU5nB,GACtC,MAAOA,IAAY9D,GAAW8D,GAC5B/H,KAAKuyB,UAAU,WAAc,MAAO,IAAIrP,KAAmBnb,GAC3D/H,KAAKuyB,UAAU,GAAIrP,MAevB3B,GAAgB+R,aAAe,SAAUC,EAAwBC,GAC/D,MAA4B,KAArBrf,UAAUvT,OACfZ,KAAKuyB,UAAU,WACb,MAAO,IAAIkB,IAAgBD,IAC1BD,GACHvzB,KAAKuyB,UAAU,GAAIkB,IAAgBF,KAavChS,GAAgBmS,WAAa,SAAUF,GACrC,MAAOxzB,MAAKszB,aAAaE,GAAc5D,YAmBzCrO,GAAgBoS,OAAS,SAAU5rB,EAAU6rB,EAAYvhB,EAAQrN,GAC/D,MAAO+C,IAAY9D,GAAW8D,GAC5B/H,KAAKuyB,UAAU,WAAc,MAAO,IAAIsB,IAAcD,EAAYvhB,EAAQrN,IAAe+C,GACzF/H,KAAKuyB,UAAU,GAAIsB,IAAcD,EAAYvhB,EAAQrN,KAkBzDuc,GAAgBuS,YAAc,SAAUF,EAAYvhB,EAAQrN,GAC1D,MAAOhF,MAAK2zB,OAAO,KAAMC,EAAYvhB,EAAQrN,GAAW4qB,WAIxD,IAAImE,IAAoB,SAAUhnB,EAASxG,GACvCvG,KAAK+M,QAAUA,EACf/M,KAAKuG,SAAWA,EAOpBwtB,IAAkBlyB,UAAU8U,QAAU,WAClC,IAAK3W,KAAK+M,QAAQ9M,YAAgC,OAAlBD,KAAKuG,SAAmB,CACpD,GAAIjC,GAAMtE,KAAK+M,QAAQinB,UAAUnd,QAAQ7W,KAAKuG,SAC9CvG,MAAK+M,QAAQinB,UAAUld,OAAOxS,EAAK,GACnCtE,KAAKuG,SAAW,MAQ1B,IAAIktB,IAAkB3gB,GAAG2gB,gBAAmB,SAAU7U,GACpD,QAAS/X,GAAUN,GAEjB,GADAxG,EAAcgB,KAAKf,OACdA,KAAKyhB,UAGR,MAFAzhB,MAAKg0B,UAAU1yB,KAAKiF,GACpBA,EAASO,OAAO9G,KAAKK,OACd,GAAI0zB,IAAkB/zB,KAAMuG,EAErC,IAAIW,GAAKlH,KAAKgH,SAMd,OALIE,GACFX,EAASY,QAAQD,GAEjBX,EAASe,cAEJ8P,GAUT,QAASqc,GAAgBpzB,GACvBue,EAAU7d,KAAKf,KAAM6G,GACrB7G,KAAKK,MAAQA,EACbL,KAAKg0B,aACLh0B,KAAKC,YAAa,EAClBD,KAAKyhB,WAAY,EACjBzhB,KAAKgH,UAAY,KA+DnB,MA5EAiO,IAASwe,EAAiB7U,GAgB1BvJ,GAAcoe,EAAgB5xB,UAAWgf,IAKvCoT,aAAc,WACZ,MAAOj0B,MAAKg0B,UAAUpzB,OAAS,GAKjC0G,YAAa,WAEX,GADAvH,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACAzhB,KAAKyhB,WAAY,CACjB,KAAK,GAAI7c,GAAI,EAAGsvB,EAAKl0B,KAAKg0B,UAAUlzB,MAAM,GAAI8E,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtEsvB,EAAGtvB,GAAG0C,aAGRtH,MAAKg0B,eAMP7sB,QAAS,SAAU+E,GAEjB,GADAnM,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACAzhB,KAAKyhB,WAAY,EACjBzhB,KAAKgH,UAAYkF,CAEjB,KAAK,GAAItH,GAAI,EAAGsvB,EAAKl0B,KAAKg0B,UAAUlzB,MAAM,GAAI8E,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtEsvB,EAAGtvB,GAAGuC,QAAQ+E,EAGhBlM,MAAKg0B,eAMPltB,OAAQ,SAAUzG,GAEhB,GADAN,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACAzhB,KAAKK,MAAQA,CACb,KAAK,GAAIuE,GAAI,EAAGsvB,EAAKl0B,KAAKg0B,UAAUlzB,MAAM,GAAI8E,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtEsvB,EAAGtvB,GAAGkC,OAAOzG,KAMjBsW,QAAS,WACP3W,KAAKC,YAAa,EAClBD,KAAKg0B,UAAY,KACjBh0B,KAAKK,MAAQ,KACbL,KAAKgH,UAAY,QAIdysB,GACPhR,IAMEoR,GAAgB/gB,GAAG+gB,cAAiB,SAAUjV,GAEhD,QAASuV,GAA0BpnB,EAASxG,GAC1C,MAAO+F,IAAiB,WACtB/F,EAASoQ,WACR5J,EAAQ9M,YAAc8M,EAAQinB,UAAUld,OAAO/J,EAAQinB,UAAUnd,QAAQtQ,GAAW,KAIzF,QAASM,GAAUN,GACjB,GAAI6tB,GAAK,GAAIjS,IAAkBniB,KAAKgF,UAAWuB,GAC7CG,EAAeytB,EAA0Bn0B,KAAMo0B,EACjDr0B,GAAcgB,KAAKf,MACnBA,KAAKq0B,MAAMr0B,KAAKgF,UAAUsL,OAC1BtQ,KAAKg0B,UAAU1yB,KAAK8yB,EAIpB,KAAK,GAFD9mB,GAAItN,KAAK+Q,EAAEnQ,OAENgE,EAAI,EAAGgB,EAAM5F,KAAK+Q,EAAEnQ,OAAYgF,EAAJhB,EAASA,IAC5CwvB,EAAGttB,OAAO9G,KAAK+Q,EAAEnM,GAAGvE,MAYtB,OATIL,MAAKs0B,UACPhnB,IACA8mB,EAAGjtB,QAAQnH,KAAKkM,QACPlM,KAAKyhB,YACdnU,IACA8mB,EAAG9sB,eAGL8sB,EAAG9R,aAAahV,GACT5G,EAWT,QAASmtB,GAAcD,EAAYW,EAAYvvB,GAC7ChF,KAAK4zB,WAA2B,MAAdA,EAAqBY,OAAOC,UAAYb,EAC1D5zB,KAAKu0B,WAA2B,MAAdA,EAAqBC,OAAOC,UAAYF,EAC1Dv0B,KAAKgF,UAAYA,GAAaqW,GAC9Brb,KAAK+Q,KACL/Q,KAAKg0B,aACLh0B,KAAKyhB,WAAY,EACjBzhB,KAAKC,YAAa,EAClBD,KAAKs0B,UAAW,EAChBt0B,KAAKkM,MAAQ,KACb0S,EAAU7d,KAAKf,KAAM6G,GAmFvB,MArGAoO,IAAS4e,EAAejV,GAqBxBvJ,GAAcwe,EAAchyB,UAAWgf,IAKrCoT,aAAc,WACZ,MAAOj0B,MAAKg0B,UAAUpzB,OAAS,GAEjCyzB,MAAO,SAAU/jB,GACf,KAAOtQ,KAAK+Q,EAAEnQ,OAASZ,KAAK4zB,YAC1B5zB,KAAK+Q,EAAES,OAET,MAAOxR,KAAK+Q,EAAEnQ,OAAS,GAAM0P,EAAMtQ,KAAK+Q,EAAE,GAAG2jB,SAAY10B,KAAKu0B,YAC5Dv0B,KAAK+Q,EAAES,SAOX1K,OAAQ,SAAUzG,GAEhB,GADAN,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACA,GAAInR,GAAMtQ,KAAKgF,UAAUsL,KACzBtQ,MAAK+Q,EAAEzP,MAAOozB,SAAUpkB,EAAKjQ,MAAOA,IACpCL,KAAKq0B,MAAM/jB,EAGX,KAAK,GADDhL,GAAItF,KAAKg0B,UAAUlzB,MAAM,GACpB8D,EAAI,EAAGgB,EAAMN,EAAE1E,OAAYgF,EAAJhB,EAASA,IAAK,CAC5C,GAAI2B,GAAWjB,EAAEV,EACjB2B,GAASO,OAAOzG,GAChBkG,EAAS+b,kBAObnb,QAAS,SAAU+E,GAEjB,GADAnM,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACAzhB,KAAKyhB,WAAY,EACjBzhB,KAAKkM,MAAQA,EACblM,KAAKs0B,UAAW,CAChB,IAAIhkB,GAAMtQ,KAAKgF,UAAUsL,KACzBtQ,MAAKq0B,MAAM/jB,EAEX,KAAK,GADDhL,GAAItF,KAAKg0B,UAAUlzB,MAAM,GACpB8D,EAAI,EAAGgB,EAAMN,EAAE1E,OAAYgF,EAAJhB,EAASA,IAAK,CAC5C,GAAI2B,GAAWjB,EAAEV,EACjB2B,GAASY,QAAQ+E,GACjB3F,EAAS+b,eAEXtiB,KAAKg0B,eAKP1sB,YAAa,WAEX,GADAvH,EAAcgB,KAAKf,OACfA,KAAKyhB,UAAT,CACAzhB,KAAKyhB,WAAY,CACjB,IAAInR,GAAMtQ,KAAKgF,UAAUsL,KACzBtQ,MAAKq0B,MAAM/jB,EAEX,KAAK,GADDhL,GAAItF,KAAKg0B,UAAUlzB,MAAM,GACpB8D,EAAI,EAAGgB,EAAMN,EAAE1E,OAAYgF,EAAJhB,EAASA,IAAK,CAC5C,GAAI2B,GAAWjB,EAAEV,EACjB2B,GAASe,cACTf,EAAS+b,eAEXtiB,KAAKg0B,eAKPrd,QAAS,WACP3W,KAAKC,YAAa,EAClBD,KAAKg0B,UAAY,QAIdH,GACPpR,IAEE2Q,GAAwBtgB,GAAGsgB,sBAAyB,SAAUxU,GAGhE,QAASwU,GAAsBhtB,EAAQ2G,GACrC,GACErG,GADEiuB,GAAkB,EAEpBC,EAAmBxuB,EAAO8hB,cAE5BloB,MAAK2xB,QAAU,WAOb,MANKgD,KACHA,GAAkB,EAClBjuB,EAAe,GAAIkG,IAAoBgoB,EAAiB/tB,UAAUkG,GAAUT,GAAiB,WAC3FqoB,GAAkB,MAGfjuB,GAGTkY,EAAU7d,KAAKf,KAAM+M,EAAQlG,UAAUE,KAAKgG,IAgB9C,MAjCAkI,IAASme,EAAuBxU,GAoBhCwU,EAAsBvxB,UAAU+tB,SAAW,WACzC,GAAIiF,GAAyBnwB,EAAQ,EAAG0B,EAASpG,IACjD,OAAO,IAAIsG,IAAoB,SAAUC,GACrC,GAAIuuB,GAA4B,MAAVpwB,EACpBgC,EAAeN,EAAOS,UAAUN,EAElC,OADAuuB,KAAkBD,EAA0BzuB,EAAOurB,WAC5C,WACLjrB,EAAaiQ,UACD,MAAVjS,GAAemwB,EAAwBle,cAK1Cyc,GACP3Q,IAEE6I,GAAc,WAMhB,QAASyJ,GAAQC,GACf,GAAIA,GAAY,EAAW,MAAqB,KAAdA,CAGlC,KAFA,GAAIC,GAAOpvB,KAAKqvB,KAAKF,GACnBG,EAAO,EACMF,GAARE,GAAc,CACnB,GAAIH,EAAYG,IAAS,EAAK,OAAO,CACrCA,IAAQ,EAEV,OAAO,EAGT,QAASC,GAAS3H,GAChB,GAAI9rB,GAAO0zB,EAAKL,CAChB,KAAKrzB,EAAQ,EAAGA,EAAQ2zB,EAAO10B,SAAUe,EAEvC,GADA0zB,EAAMC,EAAO3zB,GACT0zB,GAAO5H,EAAO,MAAO4H,EAG3B,KADAL,EAAkB,EAANvH,EACLuH,EAAYM,EAAOA,EAAO10B,OAAS,IAAI,CAC5C,GAAIm0B,EAAQC,GAAc,MAAOA,EACjCA,IAAa,EAEf,MAAOvH,GAGT,QAAS8H,GAAaC,GACpB,GAAIC,GAAO,SACX,KAAKD,EAAI50B,OAAU,MAAO60B,EAC1B,KAAK,GAAI7wB,GAAI,EAAGgB,EAAM4vB,EAAI50B,OAAYgF,EAAJhB,EAASA,IAAK,CAC9C,GAAI8wB,GAAYF,EAAIG,WAAW/wB,EAC/B6wB,IAASA,GAAM,GAAGA,EAAMC,EACxBD,GAAcA,EAEhB,MAAOA,GAGT,QAASG,GAAav0B,GACpB,GAAIw0B,GAAK,SAMT,OALAx0B,GAAa,GAANA,EAAaA,IAAQ,GAC5BA,GAAaA,GAAO,EACpBA,GAAaA,IAAQ,EACrBA,GAAYw0B,EACZx0B,GAAaA,IAAQ,GA8BvB,QAASy0B,KACP,OAASz0B,IAAK,KAAMhB,MAAO,KAAM0L,KAAM,EAAGgqB,SAAU,GAGtD,QAASzK,GAAWxV,EAAUtN,GAC5B,GAAe,EAAXsN,EAAgB,KAAM,IAAI5V,OAAM,eAChC4V,GAAW,GAAK9V,KAAKg2B,YAAYlgB,GAErC9V,KAAKwI,SAAWA,GAAYmL,GAC5B3T,KAAKi2B,UAAY,EACjBj2B,KAAKkE,KAAO,EACZlE,KAAKk2B,SAAW,GAvFlB,GAAIZ,IAAU,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,UAAW,UAAW,UAAW,WAAY,YACpOa,EAAY,cACZC,EAAe,gBAgDbC,EAAe,WACjB,GAAIC,GAAkB,CAEtB,OAAO,UAAUjsB,GACf,GAAW,MAAPA,EAAe,KAAM,IAAInK,OAAMi2B,EAGnC,IAAmB,gBAAR9rB,GAAoB,MAAOkrB,GAAalrB,EACnD,IAAmB,gBAARA,GAAoB,MAAOurB,GAAavrB,EACnD,IAAmB,iBAARA,GAAqB,MAAOA,MAAQ,EAAO,EAAI,CAC1D,IAAIA,YAAeqJ,MAAQ,MAAOkiB,GAAavrB,EAAI0K,UACnD,IAAI1K,YAAe+S,QAAU,MAAOmY,GAAalrB,EAAInI,WACrD,IAA2B,kBAAhBmI,GAAI0K,QAAwB,CAErC,GAAIA,GAAU1K,EAAI0K,SAClB,IAAuB,gBAAZA,GAAwB,MAAO6gB,GAAa7gB,EACvD,IAAmB,gBAAR1K,GAAoB,MAAOkrB,GAAaxgB,GAErD,GAAI1K,EAAIgsB,YAAe,MAAOhsB,GAAIgsB,aAElC,IAAIvxB,GAAK,GAAKwxB,GAEd,OADAjsB,GAAIgsB,YAAc,WAAc,MAAOvxB;EAChCA,MAkBPyxB,EAAkBjL,EAAWzpB,SAyJjC,OAvJA00B,GAAgBP,YAAc,SAAUlgB,GACtC,GAAgClR,GAA5B4xB,EAAQpB,EAAStf,EAGrB,KAFA9V,KAAKy2B,QAAU,GAAIlyB,OAAMiyB,GACzBx2B,KAAK02B,QAAU,GAAInyB,OAAMiyB,GACpB5xB,EAAI,EAAO4xB,EAAJ5xB,EAAWA,IACrB5E,KAAKy2B,QAAQ7xB,GAAK,GAClB5E,KAAK02B,QAAQ9xB,GAAKkxB,GAEpB91B,MAAKk2B,SAAW,IAGlBK,EAAgB1pB,IAAM,SAAUxL,EAAKhB,GACnC,MAAOL,MAAK22B,QAAQt1B,EAAKhB,GAAO,IAGlCk2B,EAAgBI,QAAU,SAAUt1B,EAAKhB,EAAOwM,GACzC7M,KAAKy2B,SAAWz2B,KAAKg2B,YAAY,EAItC,KAAK,GAHDY,GACFvB,EAAyB,WAAnBgB,EAAYh1B,GAClBw1B,EAASxB,EAAMr1B,KAAKy2B,QAAQ71B,OACrBk2B,EAAS92B,KAAKy2B,QAAQI,GAASC,GAAU,EAAGA,EAAS92B,KAAK02B,QAAQI,GAAQ/qB,KACjF,GAAI/L,KAAK02B,QAAQI,GAAQf,WAAaV,GAAOr1B,KAAKwI,SAASxI,KAAK02B,QAAQI,GAAQz1B,IAAKA,GAAM,CACzF,GAAIwL,EAAO,KAAM,IAAI3M,OAAMk2B,EAE3B,aADAp2B,KAAK02B,QAAQI,GAAQz2B,MAAQA,GAI7BL,KAAKi2B,UAAY,GACnBW,EAAS52B,KAAKk2B,SACdl2B,KAAKk2B,SAAWl2B,KAAK02B,QAAQE,GAAQ7qB,OACnC/L,KAAKi2B,YAEHj2B,KAAKkE,OAASlE,KAAK02B,QAAQ91B,SAC7BZ,KAAK+2B,UACLF,EAASxB,EAAMr1B,KAAKy2B,QAAQ71B,QAE9Bg2B,EAAS52B,KAAKkE,OACZlE,KAAKkE,MAETlE,KAAK02B,QAAQE,GAAQb,SAAWV,EAChCr1B,KAAK02B,QAAQE,GAAQ7qB,KAAO/L,KAAKy2B,QAAQI,GACzC72B,KAAK02B,QAAQE,GAAQv1B,IAAMA,EAC3BrB,KAAK02B,QAAQE,GAAQv2B,MAAQA,EAC7BL,KAAKy2B,QAAQI,GAAUD,GAGzBL,EAAgBQ,QAAU,WACxB,GAAIP,GAAQpB,EAAqB,EAAZp1B,KAAKkE,MACxB8yB,EAAW,GAAIzyB,OAAMiyB,EACvB,KAAK70B,EAAQ,EAAGA,EAAQq1B,EAASp2B,SAAUe,EAAUq1B,EAASr1B,GAAS,EACvE,IAAIs1B,GAAa,GAAI1yB,OAAMiyB,EAC3B,KAAK70B,EAAQ,EAAGA,EAAQ3B,KAAKkE,OAAQvC,EAASs1B,EAAWt1B,GAAS3B,KAAK02B,QAAQ/0B,EAC/E,KAAK,GAAIA,GAAQ3B,KAAKkE,KAAcsyB,EAAR70B,IAAiBA,EAASs1B,EAAWt1B,GAASm0B,GAC1E,KAAK,GAAIe,GAAS,EAAGA,EAAS72B,KAAKkE,OAAQ2yB,EAAQ,CACjD,GAAIC,GAASG,EAAWJ,GAAQd,SAAWS,CAC3CS,GAAWJ,GAAQ9qB,KAAOirB,EAASF,GACnCE,EAASF,GAAUD,EAErB72B,KAAKy2B,QAAUO,EACfh3B,KAAK02B,QAAUO,GAGjBV,EAAgB9f,OAAS,SAAUpV,GACjC,GAAIrB,KAAKy2B,QAIP,IAAK,GAHDpB,GAAyB,WAAnBgB,EAAYh1B,GACpBw1B,EAASxB,EAAMr1B,KAAKy2B,QAAQ71B,OAC5Bk2B,EAAS,GACFF,EAAS52B,KAAKy2B,QAAQI,GAASD,GAAU,EAAGA,EAAS52B,KAAK02B,QAAQE,GAAQ7qB,KAAM,CACvF,GAAI/L,KAAK02B,QAAQE,GAAQb,WAAaV,GAAOr1B,KAAKwI,SAASxI,KAAK02B,QAAQE,GAAQv1B,IAAKA,GAYnF,MAXa,GAATy1B,EACF92B,KAAKy2B,QAAQI,GAAU72B,KAAK02B,QAAQE,GAAQ7qB,KAE5C/L,KAAK02B,QAAQI,GAAQ/qB,KAAO/L,KAAK02B,QAAQE,GAAQ7qB,KAEnD/L,KAAK02B,QAAQE,GAAQb,SAAW,GAChC/1B,KAAK02B,QAAQE,GAAQ7qB,KAAO/L,KAAKk2B,SACjCl2B,KAAK02B,QAAQE,GAAQv1B,IAAM,KAC3BrB,KAAK02B,QAAQE,GAAQv2B,MAAQ,KAC7BL,KAAKk2B,SAAWU,IACd52B,KAAKi2B,WACA,CAEPa,GAASF,EAIf,OAAO,GAGTL,EAAgBW,MAAQ,WACtB,GAAIv1B,GAAOiE,CACX,MAAI5F,KAAKkE,MAAQ,GAAjB,CACA,IAAKvC,EAAQ,EAAGiE,EAAM5F,KAAKy2B,QAAQ71B,OAAgBgF,EAARjE,IAAeA,EACxD3B,KAAKy2B,QAAQ90B,GAAS,EAExB,KAAKA,EAAQ,EAAGA,EAAQ3B,KAAKkE,OAAQvC,EACnC3B,KAAK02B,QAAQ/0B,GAASm0B,GAExB91B,MAAKk2B,SAAW,GAChBl2B,KAAKkE,KAAO,IAGdqyB,EAAgBY,WAAa,SAAU91B,GACrC,GAAIrB,KAAKy2B,QAEP,IAAK,GADDpB,GAAyB,WAAnBgB,EAAYh1B,GACbM,EAAQ3B,KAAKy2B,QAAQpB,EAAMr1B,KAAKy2B,QAAQ71B,QAASe,GAAS,EAAGA,EAAQ3B,KAAK02B,QAAQ/0B,GAAOoK,KAChG,GAAI/L,KAAK02B,QAAQ/0B,GAAOo0B,WAAaV,GAAOr1B,KAAKwI,SAASxI,KAAK02B,QAAQ/0B,GAAON,IAAKA,GACjF,MAAOM,EAIb,OAAO,IAGT40B,EAAgB7xB,MAAQ,WACtB,MAAO1E,MAAKkE,KAAOlE,KAAKi2B,WAG1BM,EAAgB5K,YAAc,SAAUtqB,GACtC,GAAIgO,GAAQrP,KAAKm3B,WAAW91B,EAC5B,OAAOgO,IAAS,EACdrP,KAAK02B,QAAQrnB,GAAOhP,MACpBP,GAGJy2B,EAAgB/K,UAAY,WAC1B,GAAI7pB,GAAQ,EAAGwJ,IACf,IAAInL,KAAK02B,QACP,IAAK,GAAIG,GAAS,EAAGA,EAAS72B,KAAKkE,KAAM2yB,IACnC72B,KAAK02B,QAAQG,GAAQd,UAAY,IACnC5qB,EAAQxJ,KAAW3B,KAAK02B,QAAQG,GAAQx2B,MAI9C,OAAO8K,IAGTorB,EAAgBjnB,IAAM,SAAUjO,GAC9B,GAAIgO,GAAQrP,KAAKm3B,WAAW91B,EAC5B,IAAIgO,GAAS,EAAK,MAAOrP,MAAK02B,QAAQrnB,GAAOhP,KAC7C,MAAM,IAAIH,OAAMi2B,IAGlBI,EAAgB7tB,IAAM,SAAUrH,EAAKhB,GACnCL,KAAK22B,QAAQt1B,EAAKhB,GAAO,IAG3Bk2B,EAAgBa,YAAc,SAAU/1B,GACtC,MAAOrB,MAAKm3B,WAAW91B,IAAQ,GAG1BiqB,IAYT/J,IAAgB8V,KAAO,SAAUzvB,EAAO0vB,EAAsBC,EAAuB9vB,GACnF,GAAIE,GAAO3H,IACX,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI0S,GAAQ,GAAIrM,IACZ4qB,GAAW,EAAOC,GAAY,EAC9BC,EAAS,EAAGC,EAAU,EACtBC,EAAU,GAAItM,IAAcuM,EAAW,GAAIvM,GAqF/C,OAnFArS,GAAMpM,IAAIlF,EAAKd,UACb,SAAUxG,GACR,GAAIyE,GAAK4yB,IACL3L,EAAK,GAAItlB,GAEbmxB,GAAQ/qB,IAAI/H,EAAIzE,GAChB4Y,EAAMpM,IAAIkf,EAEV,IAKID,GALAE,EAAS,WACX4L,EAAQnhB,OAAO3R,IAA2B,IAApB8yB,EAAQlzB,SAAiB8yB,GAAYjxB,EAASe,cACpE2R,EAAMxC,OAAOsV,GAIf,KACED,EAAWwL,EAAqBj3B,GAChC,MAAOwH,GAEP,WADAtB,GAASY,QAAQU,GAInBkkB,EAAGnlB,cAAcklB,EAASrd,KAAK,GAAG5H,UAAU6H,GAAMnI,EAASY,QAAQJ,KAAKR,GAAWylB,IAEnF6L,EAASrM,YAAY7I,QAAQ,SAAUhX,GACrC,GAAIlL,EACJ,KACEA,EAASgH,EAAepH,EAAOsL,GAC/B,MAAO4U,GAEP,WADAha,GAASY,QAAQoZ,GAInBha,EAASO,OAAOrG,MAGpB8F,EAASY,QAAQJ,KAAKR,GACtB,WACEixB,GAAW,GACVC,GAAiC,IAApBG,EAAQlzB,UAAkB6B,EAASe,iBAIrD2R,EAAMpM,IAAIjF,EAAMf,UACd,SAAUxG,GACR,GAAIyE,GAAK6yB,IACL5L,EAAK,GAAItlB,GAEboxB,GAAShrB,IAAI/H,EAAIzE,GACjB4Y,EAAMpM,IAAIkf,EAEV,IAKID,GALAE,EAAS,WACX6L,EAASphB,OAAO3R,IAA4B,IAArB+yB,EAASnzB,SAAiB+yB,GAAalxB,EAASe,cACvE2R,EAAMxC,OAAOsV,GAIf,KACED,EAAWyL,EAAsBl3B,GACjC,MAAOwH,GAEP,WADAtB,GAASY,QAAQU,GAInBkkB,EAAGnlB,cAAcklB,EAASrd,KAAK,GAAG5H,UAAU6H,GAAMnI,EAASY,QAAQJ,KAAKR,GAAWylB,IAEnF4L,EAAQpM,YAAY7I,QAAQ,SAAUhX,GACpC,GAAIlL,EACJ,KACEA,EAASgH,EAAekE,EAAGtL,GAC3B,MAAMkgB,GAEN,WADAha,GAASY,QAAQoZ,GAInBha,EAASO,OAAOrG,MAGpB8F,EAASY,QAAQJ,KAAKR,GACtB,WACEkxB,GAAY,GACXD,GAAiC,IAArBK,EAASnzB,UAAkB6B,EAASe,iBAG9C2R,KAaXsI,GAAgB7T,UAAY,SAAU9F,EAAO0vB,EAAsBC,EAAuB9vB,GACxF,GAAIE,GAAO3H,IACX,OAAO,IAAIsG,IAAoB,SAAUC,GAMvC,QAAS8kB,GAAYxjB,GAAK,MAAO,UAAU8D,GAAKA,EAAExE,QAAQU,IAL1D,GAAIoR,GAAQ,GAAIrM,IACZqB,EAAI,GAAIC,IAAmB+K,GAC3B2e,EAAU,GAAItM,IAAcuM,EAAW,GAAIvM,IAC3CoM,EAAS,EAAGC,EAAU,CA6F1B,OAzFA1e,GAAMpM,IAAIlF,EAAKd,UACb,SAAUxG,GACR,GAAI4Z,GAAI,GAAIjM,IACRlJ,EAAK4yB,GACTE,GAAQ/qB,IAAI/H,EAAImV,EAEhB,IAAIxZ,EACJ,KACEA,EAASgH,EAAepH,EAAO8N,GAAO8L,EAAGhM,IACzC,MAAOpG,GAGP,MAFA+vB,GAAQpM,YAAY7I,QAAQ0I,EAAYxjB,QACxCtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,GAEhBo3B,EAASrM,YAAY7I,QAAQ,SAAUhX,GAAKsO,EAAEnT,OAAO6E,IAErD,IAAIogB,GAAK,GAAItlB,GACbwS,GAAMpM,IAAIkf,EAEV,IAKID,GALAE,EAAS,WACX4L,EAAQnhB,OAAO3R,IAAOmV,EAAE3S,cACxB2R,EAAMxC,OAAOsV,GAIf,KACED,EAAWwL,EAAqBj3B,GAChC,MAAOwH,GAGP,MAFA+vB,GAAQpM,YAAY7I,QAAQ0I,EAAYxjB,QACxCtB,GAASY,QAAQU,GAInBkkB,EAAGnlB,cAAcklB,EAASrd,KAAK,GAAG5H,UAChC6H,GACA,SAAU7G,GACR+vB,EAAQpM,YAAY7I,QAAQ0I,EAAYxjB,IACxCtB,EAASY,QAAQU,IAEnBmkB,KAGJ,SAAUnkB,GACR+vB,EAAQpM,YAAY7I,QAAQ0I,EAAYxjB,IACxCtB,EAASY,QAAQU,IAEnBtB,EAASe,YAAYP,KAAKR,KAG5B0S,EAAMpM,IAAIjF,EAAMf,UACd,SAAUxG,GACR,GAAIyE,GAAK6yB,GACTE,GAAShrB,IAAI/H,EAAIzE,EAEjB,IAAI0rB,GAAK,GAAItlB,GACbwS,GAAMpM,IAAIkf,EAEV,IAKID,GALAE,EAAS,WACX6L,EAASphB,OAAO3R,GAChBmU,EAAMxC,OAAOsV,GAIf,KACED,EAAWyL,EAAsBl3B,GACjC,MAAOwH,GAGP,MAFA+vB,GAAQpM,YAAY7I,QAAQ0I,EAAYxjB,QACxCtB,GAASY,QAAQU,GAGnBkkB,EAAGnlB,cAAcklB,EAASrd,KAAK,GAAG5H,UAChC6H,GACA,SAAU7G,GACR+vB,EAAQpM,YAAY7I,QAAQ0I,EAAYxjB,IACxCtB,EAASY,QAAQU,IAEnBmkB,IAGF4L,EAAQpM,YAAY7I,QAAQ,SAAUhX,GAAKA,EAAE7E,OAAOzG,MAEtD,SAAUwH,GACR+vB,EAAQpM,YAAY7I,QAAQ0I,EAAYxjB,IACxCtB,EAASY,QAAQU,MAIdoG,KAWTsT,GAAgBuW,OAAS,WACrB,MAAO93B,MAAKqS,OAAOjF,MAAMpN,KAAMmU,WAAWmU,WAAW,SAAUpgB,GAAK,MAAOA,GAAE8O,aAUnFuK,GAAgBlP,OAAS,SAAU0lB,EAAiCtqB,GAClE,MAAyB,KAArB0G,UAAUvT,QAAwC,kBAAjBuT,WAAU,GACtCrG,EAA8B/M,KAAKf,KAAM+3B,GAEA,kBAApCA,GACZ3pB,EAAoCrN,KAAKf,KAAM+3B,GAC/CxqB,EAA6BxM,KAAKf,KAAM+3B,EAAiCtqB,IAmG7E8T,GAAgByW,SAAW,WACzB,GAAI5xB,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIyf,GAAUiS,GAAc,CAC5B,OAAO7xB,GAAOS,UACZ,SAAUqB,GACJ+vB,EACF1xB,EAASO,QAAQkf,EAAU9d,IAE3B+vB,GAAc,EAEhBjS,EAAW9d,GAEb3B,EAASY,QAAQJ,KAAKR,GACtBA,EAASe,YAAYP,KAAKR,OAiBhCgb,GAAgB2W,UAAY,SAASjuB,EAAWjC,GAC9C,GAAImwB,GAAYn4B,KAAKgxB,UAAUpB,UAC/B,QACEuI,EAAU7R,OAAOrc,EAAWjC,GAC5BmwB,EAAU7R,OAAO,SAAUpe,EAAGtD,EAAGU,GAAK,OAAQ2E,EAAUlJ,KAAKiH,EAASE,EAAGtD,EAAGU,OAqB9Eic,GAAgB6W,QAAU7W,GAAqB,IAAI,SAAUwE,GACzD,MAAOA,GAAK/lB,OAelByiB,GAAW,MAAQA,GAAW4V,OAAS,SAAUzpB,EAAW0pB,EAAYC,GACtE,MAAO5nB,IAAgB,WAQrB,MAPA4nB,KAA0BA,EAAwB5qB,MAElDvG,GAAUkxB,KAAgBA,EAAajxB,GAAsBixB,IAC7DlxB,GAAUmxB,KAA2BA,EAAwBlxB,GAAsBkxB,IAG9C,kBAA9BA,GAAsBjoB,MAAuBioB,EAAwB5qB,GAAgB4qB,IACrF3pB,IAAc0pB,EAAaC,KAWtC9V,GAAW,OAASA,GAAW+V,MAAQ,SAAUljB,EAAS7N,EAAgBO,GACxE,MAAO2Y,IAAarL,EAAS7N,EAAgBO,GAASkY,SAWxD,IAAIuY,IAAoBhW,GAAW,SAAWA,GAAWiW,QAAU,SAAU9pB,EAAWxI,GAEtF,MADAgB,IAAUhB,KAAYA,EAASiB,GAAsBjB,IAC9CuI,EAAgBC,EAAWxI,GAAQ8Z,SAU1CqB,IAAgBoX,QAAU,SAAU/pB,GAChC,MAAO+X,KAAkB3mB,KAAMy4B,GAAkB7pB,EAAW5O,SAkBlEyiB,GAAW,QAAUA,GAAWmW,WAAa,SAAU7wB,EAAUuN,EAASujB,GACxE,MAAOloB,IAAgB,WACrBvJ,GAAUyxB,KAA8BA,EAA2BxxB,GAAsBwxB,IACzFA,IAA6BA,EAA2BlrB,MAEhB,kBAAjCkrB,GAAyBvoB,MAAuBuoB,EAA2BlrB,GAAgBkrB,GAElG,IAAIp4B,GAAS6U,EAAQvN,IAGrB,OAFAX,IAAU3G,KAAYA,EAAS4G,GAAsB5G,IAE9CA,GAAUo4B,KAWrBtX,GAAgBuX,OAAS,SAAU/wB,EAAU/C,GAC3CmO,GAAYnO,KAAeA,EAAYkW,GACvC,IAAI9U,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIwK,MACFvC,EAAI,GAAI7H,IACRM,EAAI,GAAI2F,IAAoB4B,GAC5BwY,EAAc,EACd5E,GAAa,EAEXE,EAAe,WACjB,GAAIC,IAAU,CACVxR,GAAEnQ,OAAS,IACX2hB,GAAWH,EACXA,GAAa,GAEbG,GACF/T,EAAE5H,cAAc5B,EAAU6U,kBAAkB,SAAUxJ,GACpD,GAAImS,EACJ,MAAIzR,EAAEnQ,OAAS,GAIb,YADAwhB,GAAa,EAFbI,GAAOzR,EAAES,OAKX,IAAIjD,GAAK,GAAI9H,GACbQ,GAAE4F,IAAI0B,GACNA,EAAG3H,cAAc4b,EAAK3b,UAAU,SAAUqB,GACxC3B,EAASO,OAAOoB,EAChB,IAAIzH,GAAS,IACb,KACEA,EAASsH,EAASG,GAClB,MAAOL,GACPtB,EAASY,QAAQU,GAEnBkJ,EAAEzP,KAAKb,GACPumB,IACA1E,KACC/b,EAASY,QAAQJ,KAAKR,GAAW,WAClCU,EAAEwP,OAAOlI,GACTyY,IACoB,IAAhBA,GACFzgB,EAASe,iBAGb+I,OAQN,OAHAU,GAAEzP,KAAK8E,GACP4gB,IACA1E,IACOrb,KAYXwb,GAAWsW,SAAW,WACpB,GAAIC,GAAa50B,EAAY+P,UAAW,EACxC,OAAO,IAAI7N,IAAoB,SAAU2yB,GACvC,GAAIv0B,GAAQs0B,EAAWp4B,MACvB,IAAc,IAAV8D,EAEF,MADAu0B,GAAW3xB,cACJ8P,EAQT,KAAK,GAND6B,GAAQ,GAAIrM,IACd1B,GAAW,EACXguB,EAAa,GAAI30B,OAAMG,GACvBmuB,EAAe,GAAItuB,OAAMG,GACzByG,EAAU,GAAI5G,OAAMG,GAEbJ,EAAM,EAASI,EAANJ,EAAaA,KAC7B,SAAWM,GACT,GAAIwB,GAAS4yB,EAAWp0B,EACxBwC,IAAUhB,KAAYA,EAASiB,GAAsBjB,IACrD6S,EAAMpM,IACJzG,EAAOS,UACL,SAAUxG,GACL6K,IACHguB,EAAWt0B,IAAK,EAChBuG,EAAQvG,GAAKvE,IAGjB,SAAUwH,GACRqD,GAAW,EACX+tB,EAAW9xB,QAAQU,GACnBoR,EAAMtC,WAER,WACE,IAAKzL,EAAU,CACb,IAAKguB,EAAWt0B,GAEZ,WADAq0B,GAAW3xB,aAGfurB,GAAajuB,IAAK,CAClB,KAAK,GAAIu0B,GAAK,EAAQz0B,EAALy0B,EAAYA,IAC3B,IAAKtG,EAAasG,GAAO,MAE3BjuB,IAAW,EACX+tB,EAAWnyB,OAAOqE,GAClB8tB,EAAW3xB,mBAGhBhD,EAGL,OAAO2U,MAWXsI,GAAgBwX,SAAW,SAAUvxB,EAAQC,GAC3C,GAAIC,GAAQ1H,IAEZ,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAEE6yB,GAAUC,EAFRC,GAAc,EAAOC,GAAe,EACtCC,GAAU,EAAOC,GAAW,EAE5B3T,EAAmB,GAAIrf,IAA8Bkf,EAAoB,GAAIlf,GA8D/E,OA5DAW,IAAUI,KAAYA,EAASH,GAAsBG,IAErDse,EAAiBlf,cACbc,EAAMb,UAAU,SAAUc,GACxB6xB,GAAU,EACVJ,EAAWzxB,GACV,SAAU0D,GACXsa,EAAkBhP,UAClBpQ,EAASY,QAAQkE,IAChB,WAED,GADAiuB,GAAc,EACVC,EACF,GAAKC,EAEE,GAAKC,EAEL,CACL,GAAIh5B,EACJ,KACEA,EAASgH,EAAe2xB,EAAUC,GAClC,MAAOxxB,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,GAChB8F,EAASe,kBAVPf,GAASe,kBAFTf,GAASe,iBAkBrBqe,EAAkB/e,cAChBY,EAAOX,UAAU,SAAUe,GACzB6xB,GAAW,EACXJ,EAAYzxB,GACX,SAAUyD,GACXya,EAAiBnP,UACjBpQ,EAASY,QAAQkE,IAChB,WAED,GADAkuB,GAAe,EACXD,EACF,GAAKE,EAEE,GAAKC,EAEL,CACL,GAAIh5B,EACJ,KACEA,EAASgH,EAAe2xB,EAAUC,GAClC,MAAOxxB,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,GAChB8F,EAASe,kBAVTf,GAASe,kBAFTf,GAASe,iBAkBV,GAAIsF,IAAoBkZ,EAAkBH,MAUrDpE,GAAgBmY,WAAa,SAAU3xB,EAAU/C,GAC/CmO,GAAYnO,KAAeA,EAAYkW,GACvC,IAAI9U,GAASpG,IACb,OAAO2Q,IAAgB,WACrB,GAAIgpB,EAEJ,OAAOvzB,GACJ6B,IAAI,SAAUC,GACb,GAAIqlB,GAAO,GAAIqM,IAAgB1xB,EAK/B,OAHAyxB,IAASA,EAAM7yB,OAAOoB,GACtByxB,EAAQpM,EAEDA,IAERzE,IACCpa,GACA,SAAU7G,GAAK8xB,GAASA,EAAMxyB,QAAQU,IACtC,WAAc8xB,GAASA,EAAMryB,gBAE9Byb,UAAU/d,GACViD,IAAIF,KAIX,IAAI6xB,IAAmB,SAAUhb,GAE/B,QAAS/X,GAAWN,GAClB,GAAI8J,GAAOrQ,KAAM65B,EAAI,GAAIjtB,GAMzB,OALAitB,GAAEhtB,IAAIwO,GAAuB5P,SAAS,WACpClF,EAASO,OAAOuJ,EAAKypB,MACrBD,EAAEhtB,IAAIwD,EAAK0pB,KAAKnxB,kBAAkB/B,UAAUN,OAGvCszB,EAKT,QAASD,GAAgBE,GACvBlb,EAAU7d,KAAKf,KAAM6G,GACrB7G,KAAK85B,KAAOA,EACZ95B,KAAK+5B,KAAO,GAAI7W,IAgBlB,MArBAjO,IAAS2kB,EAAiBhb,GAQ1BvJ,GAAcukB,EAAgB/3B,UAAWgf,IACvCvZ,YAAa,WACXtH,KAAK8G,OAAO2b,GAAWpL,UAEzBlQ,QAAS,SAAUU,GACjB7H,KAAK8G,OAAO2b,GAAWuC,eAAend,KAExCf,OAAQ,SAAU6E,GAChB3L,KAAK+5B,KAAKjzB,OAAO6E,GACjB3L,KAAK+5B,KAAKzyB,iBAIPsyB,GAEPnX,IAGE9S,GAAMxK,GAAKwK,KAAQ,WAErB,QAASA,KACP3P,KAAKg6B,SACLh6B,KAAKi6B,WAoBP,MAjBAtqB,GAAI9N,UAAUyN,IAAM,SAAUjO,GAC5B,GAAIuD,GAAI5E,KAAKg6B,MAAMnjB,QAAQxV,EAC3B,OAAa,KAANuD,EAAW5E,KAAKi6B,QAAQr1B,GAAK9E,GAGtC6P,EAAI9N,UAAU6G,IAAM,SAAUrH,EAAKhB,GACjC,GAAIuE,GAAI5E,KAAKg6B,MAAMnjB,QAAQxV,EACrB,MAANuD,IAAa5E,KAAKi6B,QAAQr1B,GAAKvE,GAC/BL,KAAKi6B,QAAQj6B,KAAKg6B,MAAM14B,KAAKD,GAAO,GAAKhB,GAG3CsP,EAAI9N,UAAU8gB,QAAU,SAAUpgB,EAAUyF,GAC1C,IAAK,GAAIpD,GAAI,EAAGgB,EAAM5F,KAAKg6B,MAAMp5B,OAAYgF,EAAJhB,EAASA,IAChDrC,EAASxB,KAAKiH,EAAShI,KAAKi6B,QAAQr1B,GAAI5E,KAAKg6B,MAAMp1B,KAIhD+K,IAgBTZ,GAAQlN,UAAUq4B,IAAM,SAAUvkB,GAChC,MAAO,IAAI5G,GAAQ/O,KAAKgP,SAASkR,OAAOvK,KAQ1C5G,EAAQlN,UAAUs4B,OAAS,SAAUpyB,GACnC,MAAO,IAAIkH,GAAKjP,KAAM+H,IAQxBkH,EAAKpN,UAAUu4B,SAAW,SAAUhrB,EAAuB7I,EAAU8zB,GAGnE,IAAK,GAFDhqB,GAAOrQ,KACP0P,KACK9K,EAAI,EAAGgB,EAAM5F,KAAKkP,WAAWF,SAASpO,OAAYgF,EAAJhB,EAASA,IAC9D8K,EAAcpO,KAAK6N,EAAmBC,EAAuBpP,KAAKkP,WAAWF,SAASpK,GAAI2B,EAASY,QAAQJ,KAAKR,IAElH,IAAI+zB,GAAa,GAAI9qB,GAAWE,EAAe,WAC7C,GAAIjP,EACJ,KACEA,EAAS4P,EAAKtI,SAASqF,MAAMiD,EAAM8D,WACnC,MAAOtM,GAEP,WADAtB,GAASY,QAAQU,GAGnBtB,EAASO,OAAOrG,IACf,WACD,IAAK,GAAI8lB,GAAI,EAAGgU,EAAO7qB,EAAc9O,OAAY25B,EAAJhU,EAAUA,IACrD7W,EAAc6W,GAAGiU,iBAAiBF,EAEpCD,GAAWC,IAEb,KAAK11B,EAAI,EAAGgB,EAAM8J,EAAc9O,OAAYgF,EAAJhB,EAASA,IAC/C8K,EAAc9K,GAAG61B,cAAcH,EAEjC,OAAOA,IAwBT9qB,EAAW3N,UAAU0U,QAAU,WAC7BvW,KAAK0P,cAAciT,QAAQ,SAAUhX,GAAKA,EAAE8P,MAAMjK,WAGpDhC,EAAW3N,UAAU64B,MAAQ,WAC3B,GAAI91B,GAAGgB,EAAK+0B,GAAY,CACxB,KAAK/1B,EAAI,EAAGgB,EAAM5F,KAAKyP,kBAAkB7O,OAAYgF,EAAJhB,EAASA,IACxD,GAA+C,IAA3C5E,KAAKyP,kBAAkB7K,GAAG6W,MAAM7a,OAAc,CAChD+5B,GAAY,CACZ,OAGJ,GAAIA,EAAW,CACb,GAAIC,MACAC,GAAc,CAClB,KAAKj2B,EAAI,EAAGgB,EAAM5F,KAAKyP,kBAAkB7O,OAAYgF,EAAJhB,EAASA,IACxDg2B,EAAYt5B,KAAKtB,KAAKyP,kBAAkB7K,GAAG6W,MAAM,IACL,MAA5Czb,KAAKyP,kBAAkB7K,GAAG6W,MAAM,GAAGrK,OAAiBypB,GAAc,EAEpE,IAAIA,EACF76B,KAAKsH,kBACA,CACLtH,KAAKuW,SACL,IAAIvJ,KACJ,KAAKpI,EAAI,EAAGgB,EAAMg1B,EAAYh6B,OAAQgE,EAAIg2B,EAAYh6B,OAAQgE,IAC5DoI,EAAO1L,KAAKs5B,EAAYh2B,GAAGvE,MAE7BL,MAAK8G,OAAOsG,MAAMpN,KAAMgN,KAK9B,IAAIuC,IAAgB,SAAUqP,GAI5B,QAASrP,GAAanJ,EAAQe,GAC5ByX,EAAU7d,KAAKf,MACfA,KAAKoG,OAASA,EACdpG,KAAKmH,QAAUA,EACfnH,KAAKyb,SACLzb,KAAK86B,eACL96B,KAAK0G,aAAe,GAAID,IACxBzG,KAAKC,YAAa,EATpBgV,GAAS1F,EAAcqP,EAYvB,IAAImc,GAAwBxrB,EAAa1N,SAwCzC,OAtCAk5B,GAAsBhvB,KAAO,SAAUoF,GACrC,IAAKnR,KAAKC,WAAY,CACpB,GAA0B,MAAtBkR,EAAaC,KAEf,WADApR,MAAKmH,QAAQgK,EAAanK,UAG5BhH,MAAKyb,MAAMna,KAAK6P,EAEhB,KAAK,GADD2pB,GAAc96B,KAAK86B,YAAYh6B,MAAM,GAChC8D,EAAI,EAAGgB,EAAMk1B,EAAYl6B,OAAYgF,EAAJhB,EAASA,IACjDk2B,EAAYl2B,GAAG81B,UAKrBK,EAAsB7uB,MAAQwC,GAC9BqsB,EAAsBrZ,UAAYhT,GAElCqsB,EAAsBN,cAAgB,SAAUH,GAC9Ct6B,KAAK86B,YAAYx5B,KAAKg5B,IAGxBS,EAAsBl0B,UAAY,WAChC7G,KAAK0G,aAAaE,cAAc5G,KAAKoG,OAAO6K,cAAcpK,UAAU7G,QAGtE+6B,EAAsBP,iBAAmB,SAAUF,GACjDt6B,KAAK86B,YAAYhkB,OAAO9W,KAAK86B,YAAYjkB,QAAQyjB,GAAa,GAClC,IAA5Bt6B,KAAK86B,YAAYl6B,QAAgBZ,KAAK2W,WAGxCokB,EAAsBpkB,QAAU,WAC9BiI,EAAU/c,UAAU8U,QAAQ5V,KAAKf,MAC5BA,KAAKC,aACRD,KAAKC,YAAa,EAClBD,KAAK0G,aAAaiQ,YAIfpH,GACNiS,GAQHD,IAAgB2Y,IAAM,SAAUtyB,GAC9B,MAAO,IAAImH,IAAS/O,KAAM4H,KAS5B2Z,GAAgB4Y,OAAS,SAAUpyB,GACjC,MAAO,IAAIgH,IAAS/O,OAAOm6B,OAAOpyB,IASpC0a,GAAWuY,KAAO,WAChB,GAAIC,GAAQ72B,EAAY+P,UAAW,EACnC,OAAO,IAAI7N,IAAoB,SAAUC,GACvC,GAAIu0B,MACA1rB,EAAwB,GAAIO,IAC5BurB,EAAc/Z,GAChB5a,EAASO,OAAOC,KAAKR,GACrB,SAAU8E,GACR+D,EAAsBuT,QAAQ,SAAUhX,GAAKA,EAAExE,QAAQkE,KACvD9E,EAASY,QAAQkE,IAEnB9E,EAASe,YAAYP,KAAKR,GAE5B,KACE,IAAK,GAAI3B,GAAI,EAAGgB,EAAMq1B,EAAMr6B,OAAYgF,EAAJhB,EAASA,IAC3Ck2B,EAAYx5B,KAAK25B,EAAMr2B,GAAGw1B,SAAShrB,EAAuB8rB,EAAa,SAAUZ,GAC/E,GAAIh2B,GAAMw2B,EAAYjkB,QAAQyjB,EAC9BQ,GAAYhkB,OAAOxS,EAAK,GACD,IAAvBw2B,EAAYl6B,QAAgB2F,EAASe,iBAGzC,MAAOO,GACP+b,GAAgB/b,GAAGhB,UAAUN,GAE/B,GAAI0S,GAAQ,GAAIrM,GAMhB,OALAwC,GAAsBuT,QAAQ,SAAU/S,GACtCA,EAAa/I,YACboS,EAAMpM,IAAI+C,KAGLqJ,IA6DX,IAAIkiB,IAAqB1Y,GAAWiS,SAAW,SAAUzkB,EAAQjL,GAC/D,MAAOyL,IAAiCR,EAAQA,EAAQkD,GAAYnO,GAAaA,EAAYwG,KAU3F4vB,GAAkB3Y,GAAW4Y,MAAQ,SAAUvrB,EAASwrB,EAAmBt2B,GAC7E,GAAIiL,EAOJ,OANAkD,IAAYnO,KAAeA,EAAYwG,IACnC8vB,IAAsBx7B,GAA0C,gBAAtBw7B,GAC5CrrB,EAASqrB,EACAnoB,GAAYmoB,KACrBt2B,EAAYs2B,GAEVxrB,YAAmB4D,OAAQzD,IAAWnQ,EACjC+P,EAAoBC,EAAQyrB,UAAWv2B,GAE5C8K,YAAmB4D,OAAQzD,IAAWnQ,GACxCmQ,EAASqrB,EACFtrB,EAA6BF,EAAQyrB,UAAWtrB,EAAQjL,IAE1DiL,IAAWnQ,EAChByQ,EAAwBT,EAAS9K,GACjCyL,GAAiCX,EAASG,EAAQjL,GAuFtDuc,IAAgBia,MAAQ,SAAU1rB,EAAS9K,GAEzC,MADAmO,IAAYnO,KAAeA,EAAYwG,IAChCsE,YAAmB4D,MACxB/B,GAAoB3R,KAAM8P,EAAQyrB,UAAWv2B,GAC7C4L,GAAwB5Q,KAAM8P,EAAS9K,IAc3Cuc,GAAgBka,SAAW,SAAU3rB,EAAS9K,GAC5CmO,GAAYnO,KAAeA,EAAYwG,GACvC,IAAIpF,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAA2DlG,GAAvDyQ,EAAa,GAAInK,IAAoB+0B,GAAW,EAAc52B,EAAK,EACnE4B,EAAeN,EAAOS,UACxB,SAAUqB,GACRwzB,GAAW,EACXr7B,EAAQ6H,EACRpD,GACA,IAAI+Y,GAAY/Y,EACdmC,EAAI,GAAIR,GACVqK,GAAWlK,cAAcK,GACzBA,EAAEL,cAAc5B,EAAUwL,qBAAqBV,EAAS,WACtD4rB,GAAY52B,IAAO+Y,GAAatX,EAASO,OAAOzG,GAChDq7B,GAAW,MAGf,SAAU7zB,GACRiJ,EAAW6F,UACXpQ,EAASY,QAAQU,GACjB6zB,GAAW,EACX52B,KAEF,WACEgM,EAAW6F,UACX+kB,GAAYn1B,EAASO,OAAOzG,GAC5BkG,EAASe,cACTo0B,GAAW,EACX52B,KAEJ,OAAO,IAAI8H,IAAoBlG,EAAcoK,MAWjDyQ,GAAgBoa,eAAiB,SAAU7iB,EAAU8iB,EAAsB52B,GACzE,GAAmB62B,GAAfz1B,EAASpG,IASb,OARwB,OAAxB47B,IAAiCC,EAAY/iB,GAC7C3F,GAAYnO,KAAeA,EAAYwG,IACH,gBAAzBowB,GACTC,EAAYD,EACHzoB,GAAYyoB,KACrBC,EAAY/iB,EACZ9T,EAAY42B,GAEP,GAAIt1B,IAAoB,SAAUC,GAWtC,QAASu1B,KACR,GAAIttB,GAAI,GAAI/H,IACVs1B,GAAS,EACTC,GAAU,CACZC,GAAOr1B,cAAc4H,GACjB0tB,IAAaC,GACfJ,GAAS,EACTC,GAAU,GACUG,EAAXD,EACPH,GAAS,EAEXC,GAAU,CAEZ,IAAII,GAAeL,EAASG,EAAWC,EACrCE,EAAKD,EAAeE,CACtBA,GAAYF,EACRL,IACFG,GAAYL,GAEVG,IACFG,GAAaN,GAEfrtB,EAAE5H,cAAc5B,EAAUwL,qBAAqB6rB,EAAI,WACjD,GAAIL,EAAS,CACX,GAAI/hB,GAAI,GAAIjM,GACZ+C,GAAEzP,KAAK2Y,GACP1T,EAASO,OAAOqH,GAAO8L,EAAGqQ,IAE5ByR,GAAUhrB,EAAES,QAAQlK,cACpBw0B,OAvCJ,GAAIvQ,GAIFjB,EAHA6R,EAAYN,EACZK,EAAWpjB,EACX/H,KAEAkrB,EAAS,GAAIt1B,IACb21B,EAAY,CAoDd,OAnDE/Q,GAAkB,GAAI3e,IAAoBqvB,GAC1C3R,EAAqB,GAAIpc,IAAmBqd,GAkC9Cxa,EAAEzP,KAAK,GAAI0M,KACXzH,EAASO,OAAOqH,GAAO4C,EAAE,GAAIuZ,IAC7BwR,IACAvQ,EAAgB1e,IAAIzG,EAAOS,UACzB,SAAUqB,GACR,IAAK,GAAItD,GAAI,EAAGgB,EAAMmL,EAAEnQ,OAAYgF,EAAJhB,EAASA,IAAOmM,EAAEnM,GAAGkC,OAAOoB,IAE9D,SAAUL,GACR,IAAK,GAAIjD,GAAI,EAAGgB,EAAMmL,EAAEnQ,OAAYgF,EAAJhB,EAASA,IAAOmM,EAAEnM,GAAGuC,QAAQU,EAC7DtB,GAASY,QAAQU,IAEnB,WACE,IAAK,GAAIjD,GAAI,EAAGgB,EAAMmL,EAAEnQ,OAAYgF,EAAJhB,EAASA,IAAOmM,EAAEnM,GAAG0C,aACrDf,GAASe,iBAGNgjB,KAWX/I,GAAgBgb,sBAAwB,SAAUzjB,EAAUpU,EAAOM,GACjE,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GAQvC,QAASu1B,GAAYh3B,GACnB,GAAI0J,GAAI,GAAI/H,GACZw1B,GAAOr1B,cAAc4H,GACrBA,EAAE5H,cAAc5B,EAAUwL,qBAAqBsI,EAAU,WACvD,GAAIhU,IAAO03B,EAAX,CACAlvB,EAAI,CACJ,IAAImvB,KAAUD,CACdviB,GAAE3S,cACF2S,EAAI,GAAIjM,IACRzH,EAASO,OAAOqH,GAAO8L,EAAGqQ,IAC1BwR,EAAYW,OAjBhB,GAAIR,GAAS,GAAIt1B,IACb4kB,EAAkB,GAAI3e,IAAoBqvB,GAC1C3R,EAAqB,GAAIpc,IAAmBqd,GAC5Cje,EAAI,EACJkvB,EAAW,EACXviB,EAAI,GAAIjM,GAyCZ,OAzBAzH,GAASO,OAAOqH,GAAO8L,EAAGqQ,IAC1BwR,EAAY,GAEZvQ,EAAgB1e,IAAIzG,EAAOS,UACzB,SAAUqB,GACR,GAAIu0B,GAAQ,EAAGC,GAAY,CAC3BziB,GAAEnT,OAAOoB,KACHoF,IAAM5I,IACVg4B,GAAY,EACZpvB,EAAI,EACJmvB,IAAUD,EACVviB,EAAE3S,cACF2S,EAAI,GAAIjM,IACRzH,EAASO,OAAOqH,GAAO8L,EAAGqQ,KAE5BoS,GAAaZ,EAAYW,IAE3B,SAAU50B,GACRoS,EAAE9S,QAAQU,GACVtB,EAASY,QAAQU,IAChB,WACDoS,EAAE3S,cACFf,EAASe,iBAGNgjB,KAgBT/I,GAAgBob,eAAiB,WAC7B,MAAO38B,MAAK27B,eAAevuB,MAAMpN,KAAMmU,WAAWmU,WAAW,SAAUpgB,GAAK,MAAOA,GAAE8O,aAezFuK,GAAgBqb,sBAAwB,SAAU9jB,EAAUpU,EAAOM,GAC/D,MAAOhF,MAAKu8B,sBAAsBzjB,EAAUpU,EAAOM,GAAWsjB,WAAW,SAAUpgB,GAC/E,MAAOA,GAAE8O,aAcnBuK,GAAgBsb,aAAe,SAAU73B,GACvC,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChCmF,GAAgB,WACrB,GAAI6d,GAAOxpB,EAAUsL,KACrB,OAAOlK,GAAO6B,IAAI,SAAUC,GAC1B,GAAIoI,GAAMtL,EAAUsL,MAAOwsB,EAAOxsB,EAAMke,CAExC,OADAA,GAAOle,GACEjQ,MAAO6H,EAAGwsB,SAAUoI,QAenCvb,GAAgBrQ,UAAY,SAAUlM,GAEpC,MADAmO,IAAYnO,KAAeA,EAAYwG,IAChCxL,KAAKiI,IAAI,SAAUC,GACxB,OAAS7H,MAAO6H,EAAGgJ,UAAWlM,EAAUsL,UAyC5CiR,GAAgBwb,OAAS,SAAUC,EAAmBh4B,GAEpD,MADAmO,IAAYnO,KAAeA,EAAYwG,IACH,gBAAtBwxB,GACZprB,GAAiB5R,KAAMm7B,GAAmB6B,EAAmBh4B,IAC7D4M,GAAiB5R,KAAMg9B,IAU3Bzb,GAAgB5C,QAAU,SAAU7O,EAAS6F,EAAO3Q,IACxC,MAAT2Q,GAAkC,gBAAVA,MAAwBA,EAAQiO,GAAgB,GAAI1jB,OAAMyV,GAAS,aAC5FxC,GAAYnO,KAAeA,EAAYwG,GAEvC,IAAIpF,GAASpG,KAAMi9B,EAAkBntB,YAAmB4D,MACtD,uBACA,sBAEF,OAAO,IAAIpN,IAAoB,SAAUC,GASvC,QAASu1B,KACP,GAAIoB,GAAOp4B,CACXu2B,GAAMz0B,cAAc5B,EAAUi4B,GAAiBntB,EAAS,WAClDhL,IAAOo4B,IACT91B,GAAUuO,KAAWA,EAAQtO,GAAsBsO,IACnDjP,EAAaE,cAAc+O,EAAM9O,UAAUN,QAbjD,GAAIzB,GAAK,EACPq4B,EAAW,GAAI12B,IACfC,EAAe,GAAIC,IACnBy2B,GAAW,EACX/B,EAAQ,GAAI10B,GAiCd,OA/BAD,GAAaE,cAAcu2B,GAY3BrB,IAEAqB,EAASv2B,cAAcR,EAAOS,UAAU,SAAUqB,GAC3Ck1B,IACHt4B,IACAyB,EAASO,OAAOoB,GAChB4zB,MAED,SAAUj0B,GACNu1B,IACHt4B,IACAyB,EAASY,QAAQU,KAElB,WACIu1B,IACHt4B,IACAyB,EAASe,kBAGN,GAAIsF,IAAoBlG,EAAc20B,MAuBjD5Y,GAAW4a,yBAA2B,SAAU9Y,EAAc3V,EAAW4V,EAAS/c,EAAgB61B,EAAct4B,GAE9G,MADAmO,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,GAEE9F,GAEAwb,EAJEvU,GAAQ,EACV+c,GAAY,EAEZ1M,EAAQwM,CAEV,OAAOvf,GAAUoL,8BAA8BpL,EAAUsL,MAAO,SAAUD,GACxEoU,GAAale,EAASO,OAAOrG,EAE7B,KACMiH,EACFA,GAAQ,EAERqQ,EAAQyM,EAAQzM,GAElB0M,EAAY7V,EAAUmJ,GAClB0M,IACFhkB,EAASgH,EAAesQ,GACxBkE,EAAOqhB,EAAavlB,IAEtB,MAAOlQ,GAEP,WADAtB,GAASY,QAAQU,GAGf4c,EACFpU,EAAK4L,GAEL1V,EAASe,mBAyBjBmb,GAAW8a,yBAA2B,SAAUhZ,EAAc3V,EAAW4V,EAAS/c,EAAgB61B,EAAct4B,GAE9G,MADAmO,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,GAEE9F,GAEAwb,EAJEvU,GAAQ,EACV+c,GAAY,EAEZ1M,EAAQwM,CAEV,OAAOvf,GAAUqM,8BAA8B,EAAG,SAAUhB,GAC1DoU,GAAale,EAASO,OAAOrG,EAE7B,KACMiH,EACFA,GAAQ,EAERqQ,EAAQyM,EAAQzM,GAElB0M,EAAY7V,EAAUmJ,GAClB0M,IACFhkB,EAASgH,EAAesQ,GACxBkE,EAAOqhB,EAAavlB,IAEtB,MAAOlQ,GAEP,WADAtB,GAASY,QAAQU,GAGf4c,EACFpU,EAAK4L,GAEL1V,EAASe,mBAiBjBia,GAAgBic,kBAAoB,SAAU1tB,EAAS9K,GACrD,MAAOhF,MAAKy9B,kBAAkBrC,GAAgBtrB,EAASqD,GAAYnO,GAAaA,EAAYwG,IAAmBmC,KAc/G4T,GAAgBkc,kBAAoB,SAAUC,EAAmBC,GAC7D,GAAmBC,GAAU71B,EAAzB3B,EAASpG,IAOb,OANiC,kBAAtB09B,GACP31B,EAAW21B,GAEXE,EAAWF,EACX31B,EAAW41B,GAER,GAAIr3B,IAAoB,SAAUC,GACrC,GAAIs3B,GAAS,GAAIjxB,IAAuBmF,GAAQ,EAAOhH,EAAO,WACtDgH,GAA2B,IAAlB8rB,EAAOj9B,QAChB2F,EAASe,eAEdZ,EAAe,GAAIC,IAAoBsU,EAAQ,WAC9CvU,EAAaE,cAAcR,EAAOS,UAAU,SAAUqB,GAClD,GAAIszB,EACJ,KACIA,EAAQzzB,EAASG,GACnB,MAAOgE,GAEL,WADA3F,GAASY,QAAQ+E,GAGrB,GAAIjF,GAAI,GAAIR,GACZo3B,GAAOhxB,IAAI5F,GACXA,EAAEL,cAAc40B,EAAM30B,UAAU,WAC5BN,EAASO,OAAOoB,GAChB21B,EAAOpnB,OAAOxP,GACd8D,KACDxE,EAASY,QAAQJ,KAAKR,GAAW,WAChCA,EAASO,OAAOoB,GAChB21B,EAAOpnB,OAAOxP,GACd8D,QAELxE,EAASY,QAAQJ,KAAKR,GAAW,WAChCwL,GAAQ,EACRrL,EAAaiQ,UACb5L,OAYR,OARK6yB,GAGDl3B,EAAaE,cAAcg3B,EAAS/2B,UAAU,WAC1CoU,KACD1U,EAASY,QAAQJ,KAAKR,GAAW,WAAc0U,OAJlDA,IAOG,GAAIrO,IAAoBlG,EAAcm3B,MAWrDtc,GAAgBuc,oBAAsB,SAAUC,EAAcC,EAAyBroB,GAC5D,IAArBxB,UAAUvT,SACVo9B,EAA0BD,EAC1BA,EAAerZ,MAEnB/O,IAAUA,EAAQiO,GAAgB,GAAI1jB,OAAM,YAC5C,IAAIkG,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GAOvC,QAAS03B,GAAStf,GAGhB,QAASuf,KACP,MAAOp5B,KAAOo4B,EAHhB,GAAIA,GAAOp4B,EAMPmC,EAAI,GAAIR,GACZ40B,GAAMz0B,cAAcK,GACpBA,EAAEL,cAAc+X,EAAQ9X,UAAU,WAChCq3B,KAAex3B,EAAaE,cAAc+O,EAAM9O,UAAUN,IAC1DU,EAAE0P,WACD,SAAU9O,GACXq2B,KAAe33B,EAASY,QAAQU,IAC/B,WACDq2B,KAAex3B,EAAaE,cAAc+O,EAAM9O,UAAUN,OAM9D,QAAS43B,KACP,GAAI7yB,IAAO8xB,CAEX,OADI9xB,IAAOxG,IACJwG,EA9BT,GAAI5E,GAAe,GAAIC,IAAoB00B,EAAQ,GAAI10B,IAAoBw2B,EAAW,GAAI12B,GAE1FC,GAAaE,cAAcu2B,EAE3B,IAAIr4B,GAAK,EAAGs4B,GAAW,CA8CvB,OAzBAa,GAASF,GAQTZ,EAASv2B,cAAcR,EAAOS,UAAU,SAAUqB,GAChD,GAAIi2B,IAAgB,CAClB53B,EAASO,OAAOoB,EAChB,IAAIyW,EACJ,KACEA,EAAUqf,EAAwB91B,GAClC,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAGnBo2B,EAAS72B,GAAUuX,GAAWtX,GAAsBsX,GAAWA,KAEhE,SAAU9W,GACXs2B,KAAkB53B,EAASY,QAAQU,IAClC,WACDs2B,KAAkB53B,EAASe,iBAEtB,GAAIsF,IAAoBlG,EAAc20B,MAanD9Z,GAAgB6c,qBAAuB,SAAUC,GAC/C,GAAIj4B,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIlG,GAAO0I,GAAW,EAAO+H,EAAa,GAAInK,IAAoB7B,EAAK,EACnE4B,EAAeN,EAAOS,UAAU,SAAUqB,GAC5C,GAAIuzB,EACJ,KACEA,EAAW4C,EAAyBn2B,GACpC,MAAOL,GAEP,WADAtB,GAASY,QAAQU,GAInBT,GAAUq0B,KAAcA,EAAWp0B,GAAsBo0B,IAEzD1yB,GAAW,EACX1I,EAAQ6H,EACRpD,GACA,IAAIw5B,GAAYx5B,EAAImC,EAAI,GAAIR,GAC5BqK,GAAWlK,cAAcK,GACzBA,EAAEL,cAAc60B,EAAS50B,UAAU,WACjCkC,GAAYjE,IAAOw5B,GAAa/3B,EAASO,OAAOzG,GAChD0I,GAAW,EACX9B,EAAE0P,WACDpQ,EAASY,QAAQJ,KAAKR,GAAW,WAClCwC,GAAYjE,IAAOw5B,GAAa/3B,EAASO,OAAOzG,GAChD0I,GAAW,EACX9B,EAAE0P,cAEH,SAAU9O,GACXiJ,EAAW6F,UACXpQ,EAASY,QAAQU,GACjBkB,GAAW,EACXjE,KACC,WACDgM,EAAW6F,UACX5N,GAAYxC,EAASO,OAAOzG,GAC5BkG,EAASe,cACTyB,GAAW,EACXjE,KAEF,OAAO,IAAI8H,IAAoBlG,EAAcoK,MAkBjDyQ,GAAgBgd,iBAAmB,SAAUzS,EAAU9mB,GACrDmO,GAAYnO,KAAeA,EAAYwG,GACvC,IAAIpF,GAASpG,IACb,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC,GAAIoI,GAAMtL,EAAUsL,KAEpB,KADAS,EAAEzP,MAAOozB,SAAUpkB,EAAKjQ,MAAO6H,IACxB6I,EAAEnQ,OAAS,GAAK0P,EAAMS,EAAE,GAAG2jB,UAAY5I,GAC5CvlB,EAASO,OAAOiK,EAAES,QAAQnR,QAE3BkG,EAASY,QAAQJ,KAAKR,GAAW,WAElC,IADA,GAAI+J,GAAMtL,EAAUsL,MACbS,EAAEnQ,OAAS,GAAK0P,EAAMS,EAAE,GAAG2jB,UAAY5I,GAC5CvlB,EAASO,OAAOiK,EAAES,QAAQnR,MAE5BkG,GAASe,mBAefia,GAAgBid,iBAAmB,SAAU1S,EAAU9mB,GACrD,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC,GAAIoI,GAAMtL,EAAUsL,KAEpB,KADAS,EAAEzP,MAAOozB,SAAUpkB,EAAKjQ,MAAO6H,IACxB6I,EAAEnQ,OAAS,GAAK0P,EAAMS,EAAE,GAAG2jB,UAAY5I,GAC5C/a,EAAES,SAEHjL,EAASY,QAAQJ,KAAKR,GAAW,WAElC,IADA,GAAI+J,GAAMtL,EAAUsL,MACbS,EAAEnQ,OAAS,GAAG,CACnB,GAAImL,GAAOgF,EAAES,OACTlB,GAAMvE,EAAK2oB,UAAY5I,GAAYvlB,EAASO,OAAOiF,EAAK1L,OAE9DkG,EAASe,mBAefia,GAAgBkd,uBAAyB,SAAU3S,EAAU9mB,GAC3D,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,GAAIwK,KACJ,OAAO3K,GAAOS,UAAU,SAAUqB,GAChC,GAAIoI,GAAMtL,EAAUsL,KAEpB,KADAS,EAAEzP,MAAOozB,SAAUpkB,EAAKjQ,MAAO6H,IACxB6I,EAAEnQ,OAAS,GAAK0P,EAAMS,EAAE,GAAG2jB,UAAY5I,GAC5C/a,EAAES,SAEHjL,EAASY,QAAQJ,KAAKR,GAAW,WAElC,IADA,GAAI+J,GAAMtL,EAAUsL,MAAOhF,KACpByF,EAAEnQ,OAAS,GAAG,CACnB,GAAImL,GAAOgF,EAAES,OACTlB,GAAMvE,EAAK2oB,UAAY5I,GAAYxgB,EAAIhK,KAAKyK,EAAK1L,OAEvDkG,EAASO,OAAOwE,GAChB/E,EAASe,mBAkBfia,GAAgBmd,aAAe,SAAU5S,EAAU9mB,GACjD,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,MAAO,IAAIqG,IAAoB5H,EAAUwL,qBAAqBsb,EAAUvlB,EAASe,YAAYP,KAAKR,IAAYH,EAAOS,UAAUN,OAoBnIgb,GAAgBod,aAAe,SAAU7S,EAAU9mB,GACjD,GAAIoB,GAASpG,IAEb,OADAmT,IAAYnO,KAAeA,EAAYwG,IAChC,GAAIlF,IAAoB,SAAUC,GACvC,GAAIq4B,IAAO,CACX,OAAO,IAAIhyB,IACT5H,EAAUwL,qBAAqBsb,EAAU,WAAc8S,GAAO,IAC9Dx4B,EAAOS,UAAU,SAAUqB,GAAK02B,GAAQr4B,EAASO,OAAOoB,IAAO3B,EAASY,QAAQJ,KAAKR,GAAWA,EAASe,YAAYP,KAAKR,QAehIgb,GAAgBsd,kBAAoB,SAAUC,EAAW95B,GACvDmO,GAAYnO,KAAeA,EAAYwG,GACvC,IAAIpF,GAASpG,KAAMi9B,EAAkB6B,YAAqBprB,MACxD,uBACA,sBACF,OAAO,IAAIpN,IAAoB,SAAUC,GACvC,GAAIq4B,IAAO,CAEX,OAAO,IAAIhyB,IACT5H,EAAUi4B,GAAiB6B,EAAW,WAAcF,GAAO,IAC3Dx4B,EAAOS,UACL,SAAUqB,GAAK02B,GAAQr4B,EAASO,OAAOoB,IACvC3B,EAASY,QAAQJ,KAAKR,GACtBA,EAASe,YAAYP,KAAKR,QAUlCgb,GAAgBwd,kBAAoB,SAAUC,EAASh6B,GACrDmO,GAAYnO,KAAeA,EAAYwG,GACvC,IAAIpF,GAASpG,KAAMi9B,EAAkB+B,YAAmBtrB,MACtD,uBACA,sBACF,OAAO,IAAIpN,IAAoB,SAAUC,GACvC,MAAO,IAAIqG,IACT5H,EAAUi4B,GAAiB+B,EAASz4B,EAASe,YAAYP,KAAKR,IAC9DH,EAAOS,UAAUN,OASvBgb,GAAgB0d,UAAY,SAASC,GAGnC,QAASC,GAAqB54B,GAC5B,OACE64B,KAAM,WACJ,MAAO74B,IAET84B,KAAM,SAASC,EAAKC,GAClB,MAAOD,GAAIx4B,OAAOy4B,IAEpB9+B,OAAQ,SAAS6+B,GACf,MAAOA,GAAIh4B,gBAXjB,GAAIlB,GAASpG,IAgBb,OAAO,IAAIsG,IAAoB,SAASC,GACtC,GAAIi5B,GAAQN,EAAWC,EAAqB54B,GAC5C,OAAOH,GAAOS,UACZ,SAAS8E,GACP,IACE6zB,EAAMH,KAAK94B,EAAUoF,GACrB,MAAO9D,GACPtB,EAASY,QAAQU,KAGrBtB,EAASY,QAAQJ,KAAKR,GACtB,WAAai5B,EAAM/+B,OAAO8F,QAUhCgb,GAAgBke,UAAY,WAC1B,GAAInqB,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAIm5B,IAAa,EACfje,GAAY,EACZjT,EAAI,GAAI/H,IACRozB,EAAI,GAAIjtB,GAkCV,OAhCAitB,GAAEhtB,IAAI2B,GAENA,EAAE5H,cAAc0O,EAAQzO,UACtB,SAAUogB,GACR,IAAKyY,EAAY,CACfA,GAAa,EAEbt4B,GAAU6f,KAAiBA,EAAc5f,GAAsB4f,GAE/D,IAAIE,GAAoB,GAAI1gB,GAC5BozB,GAAEhtB,IAAIsa,GAENA,EAAkBvgB,cAAcqgB,EAAYpgB,UAC1CN,EAASO,OAAOC,KAAKR,GACrBA,EAASY,QAAQJ,KAAKR,GACtB,WACEszB,EAAEpjB,OAAO0Q,GACTuY,GAAa,EACTje,GAA0B,IAAboY,EAAEj5B,QACjB2F,EAASe,mBAKnBf,EAASY,QAAQJ,KAAKR,GACtB,WACEkb,GAAY,EACPie,GAA2B,IAAb7F,EAAEj5B,QACnB2F,EAASe,iBAIRuyB,KAWXtY,GAAgBoe,aAAe,SAAU53B,EAAUC,GACjD,GAAIsN,GAAUtV,IACd,OAAO,IAAIsG,IAAoB,SAAUC,GACvC,GAAI5E,GAAQ,EACV+9B,GAAa,EACbje,GAAY,EACZjT,EAAI,GAAI/H,IACRozB,EAAI,GAAIjtB,GA6CV,OA3CAitB,GAAEhtB,IAAI2B,GAENA,EAAE5H,cAAc0O,EAAQzO,UACtB,SAAUogB,GAEHyY,IACHA,GAAa,EAEbvY,kBAAoB,GAAI1gB,IACxBozB,EAAEhtB,IAAIsa,mBAEN/f,GAAU6f,KAAiBA,EAAc5f,GAAsB4f,IAE/DE,kBAAkBvgB,cAAcqgB,EAAYpgB,UAC1C,SAAUqB,GACR,GAAIzH,EACJ,KACEA,EAASsH,EAAShH,KAAKiH,EAASE,EAAGvG,IAASslB,GAC5C,MAAOpf,GAEP,WADAtB,GAASY,QAAQU,GAInBtB,EAASO,OAAOrG,IAElB8F,EAASY,QAAQJ,KAAKR,GACtB,WACEszB,EAAEpjB,OAAO0Q,mBACTuY,GAAa,EAETje,GAA0B,IAAboY,EAAEj5B,QACjB2F,EAASe,mBAKnBf,EAASY,QAAQJ,KAAKR,GACtB,WACEkb,GAAY,EACK,IAAboY,EAAEj5B,QAAiB8+B,GACrBn5B,EAASe,iBAGRuyB,KAKX/mB,GAAG8sB,qBAAwB,SAAUhhB,GAEnC,QAASihB,KACL,KAAM,IAAI3/B,OAAM,mBAGpB,QAAS4/B,KACP,MAAO9/B,MAAK+/B,iBAAiB//B,KAAKggC,OAGpC,QAAS5kB,GAAYrD,EAAOb,GAC1B,MAAOlX,MAAKigC,0BAA0BloB,EAAO/X,KAAKggC,MAAO9oB,GAG3D,QAASiB,GAAiBJ,EAAOjI,EAASoH,GACxC,MAAOlX,MAAKkgC,0BAA0BnoB,EAAO/X,KAAKmgC,WAAWrwB,GAAUoH,GAGzE,QAASkB,GAAiBL,EAAOjI,EAASoH,GACxC,MAAOlX,MAAKkgC,0BAA0BnoB,EAAO/X,KAAKmgC,WAAWrwB,EAAU9P,KAAKsQ,OAAQ4G,GAGtF,QAASsB,GAAaxT,EAAWkS,GAE/B,MADAA,KACOE,GAYT,QAASwoB,GAAqBQ,EAAc53B,GAC1CxI,KAAKggC,MAAQI,EACbpgC,KAAKwI,SAAWA,EAChBxI,KAAKqgC,WAAY,EACjBrgC,KAAKyb,MAAQ,GAAI5F,IAAc,MAC/B+I,EAAU7d,KAAKf,KAAM8/B,EAAU1kB,EAAajD,EAAkBC,GAdhEnD,GAAS2qB,EAAsBhhB,EAiB/B,IAAI0hB,GAAgCV,EAAqB/9B,SAsLzD,OA9KAy+B,GAA8BzzB,IAAMgzB,EAOpCS,EAA8BP,iBAAmBF,EAOjDS,EAA8BH,WAAaN,EAS3CS,EAA8B5vB,0BAA4B,SAAUqH,EAAO9H,EAAQiH,GACjF,GAAI+C,GAAI,GAAIQ,IAA0Bza,KAAM+X,EAAO9H,EAAQiH,EAC3D,OAAO+C,GAAEgB,SAUXqlB,EAA8BJ,0BAA4B,SAAUnoB,EAAOjI,EAASoH,GAClF,GAAIqpB,GAAQvgC,KAAK6M,IAAI7M,KAAKggC,MAAOlwB,EACjC,OAAO9P,MAAKigC,0BAA0BloB,EAAOwoB,EAAOrpB,IAStDopB,EAA8BnoB,iBAAmB,SAAUrI,EAASoH,GAClE,MAAOlX,MAAKkgC,0BAA0BhpB,EAAQpH,EAAS0I,IAMzD8nB,EAA8BrlB,MAAQ,WACpC,IAAKjb,KAAKqgC,UAAW,CACnBrgC,KAAKqgC,WAAY,CACjB,GAAG,CACD,GAAIt0B,GAAO/L,KAAKwgC,SACH,QAATz0B,GACF/L,KAAKwI,SAASuD,EAAK+D,QAAS9P,KAAKggC,OAAS,IAAMhgC,KAAKggC,MAAQj0B,EAAK+D,SAClE/D,EAAKiM,UAELhY,KAAKqgC,WAAY,QAEZrgC,KAAKqgC,aAOlBC,EAA8BG,KAAO,WACnCzgC,KAAKqgC,WAAY,GAOnBC,EAA8BI,UAAY,SAAUzkB,GAClD,GAAI0kB,GAAa3gC,KAAKwI,SAASxI,KAAKggC,MAAO/jB,EAC3C,IAAIjc,KAAKwI,SAASxI,KAAKggC,MAAO/jB,GAAQ,EACpC,KAAM,IAAI/b,OAAMyJ,GAElB,IAAmB,IAAfg3B,IAGC3gC,KAAKqgC,UAAW,CACnBrgC,KAAKqgC,WAAY,CACjB,GAAG,CACD,GAAIt0B,GAAO/L,KAAKwgC,SACH,QAATz0B,GAAiB/L,KAAKwI,SAASuD,EAAK+D,QAASmM,IAAS,GACxDjc,KAAKwI,SAASuD,EAAK+D,QAAS9P,KAAKggC,OAAS,IAAMhgC,KAAKggC,MAAQj0B,EAAK+D,SAClE/D,EAAKiM,UAELhY,KAAKqgC,WAAY,QAEZrgC,KAAKqgC,UACdrgC,MAAKggC,MAAQ/jB,IAQjBqkB,EAA8BM,UAAY,SAAU3kB,GAClD,GAAIrC,GAAK5Z,KAAK6M,IAAI7M,KAAKggC,MAAO/jB,GAC1B0kB,EAAa3gC,KAAKwI,SAASxI,KAAKggC,MAAOpmB,EAC3C,IAAI+mB,EAAa,EAAK,KAAM,IAAIzgC,OAAMyJ,GACnB,KAAfg3B,GAEJ3gC,KAAK0gC,UAAU9mB,IAOjB0mB,EAA8BO,MAAQ,SAAU5kB,GAC9C,GAAIrC,GAAK5Z,KAAK6M,IAAI7M,KAAKggC,MAAO/jB,EAC9B,IAAIjc,KAAKwI,SAASxI,KAAKggC,MAAOpmB,IAAO,EAAK,KAAM,IAAI1Z,OAAMyJ,GAE1D3J,MAAKggC,MAAQpmB,GAOf0mB,EAA8BE,QAAU,WACtC,KAAOxgC,KAAKyb,MAAM7a,OAAS,GAAG,CAC5B,GAAImL,GAAO/L,KAAKyb,MAAMpF,MACtB,KAAItK,EAAKmM,cAGP,MAAOnM,EAFP/L,MAAKyb,MAAMlF,UAKf,MAAO,OAUT+pB,EAA8BloB,iBAAmB,SAAUtI,EAASoH,GAClE,MAAOlX,MAAKigC,0BAA0B/oB,EAAQpH,EAAS0I,IAUzD8nB,EAA8BL,0BAA4B,SAAUloB,EAAOjI,EAASoH,GAGlF,QAASlM,GAAIhG,EAAWmU,GAEtB,MADA9I,GAAKoL,MAAMhF,OAAO+E,GACXtE,EAAOlS,EAAWmU,GAJ3B,GAAI9I,GAAOrQ,KAOPwb,EAAK,GAAI1D,IAAc9X,KAAM+X,EAAO/M,EAAK8E,EAAS9P,KAAKwI,SAG3D,OAFAxI,MAAKyb,MAAMjF,QAAQgF,GAEZA,EAAGvW,YAGL26B,GACPvsB,IAGFP,GAAGguB,oBAAuB,SAAUliB,GASlC,QAASkiB,GAAoBV,EAAc53B,GACzC,GAAIw3B,GAAwB,MAAhBI,EAAuB,EAAIA,EACnCW,EAAMv4B,GAAYsL,EACtB8K,GAAU7d,KAAKf,KAAMggC,EAAOe,GAX9B9rB,GAAS6rB,EAAqBliB,EAc9B,IAAIoiB,GAA2BF,EAAoBj/B,SA0BnD,OAlBAm/B,GAAyBn0B,IAAM,SAAUo0B,EAAUC,GACjD,MAAOD,GAAWC,GAGpBF,EAAyBjB,iBAAmB,SAAUkB,GACpD,MAAO,IAAIvtB,MAAKutB,GAAU1F,WAS5ByF,EAAyBb,WAAa,SAAUrnB,GAC9C,MAAOA,IAGFgoB,GACPhuB,GAAG8sB,qBAEL,IAAIt5B,IAAsBwM,GAAGxM,oBAAuB,SAAUsY,GAI5D,QAASuiB,GAAclI,GACrB,MAAIA,IAA4C,kBAAvBA,GAAWtiB,QAAiCsiB,EAExC,kBAAfA,GACZ3sB,GAAiB2sB,GACjB7hB,GAGJ,QAAS9Q,GAAoBO,GAK3B,QAASoT,GAAE1T,GACT,GAAIK,GAAgB,WAClB,IACEw6B,EAAmBx6B,cAAcu6B,EAAct6B,EAAUu6B,KACzD,MAAOv5B,GACP,IAAKu5B,EAAmBzf,KAAK9Z,GAC3B,KAAMA,KAKRu5B,EAAqB,GAAIC,IAAmB96B,EAOhD,OANI8U,IAAuBM,mBACzBN,GAAuB5P,SAAS7E,GAEhCA,IAGKw6B,EAtBT,MAAMphC,gBAAgBsG,OAyBtBsY,GAAU7d,KAAKf,KAAMia,GAxBZ,GAAI3T,GAAoBO,GA2BnC,MAxCAoO,IAAS3O,EAAqBsY,GAwCvBtY,GAEPmc,IAGI4e,GAAsB,SAAUtf,GAGhC,QAASsf,GAAmB96B,GACxBwb,EAAOhhB,KAAKf,MACZA,KAAKuG,SAAWA,EAChBvG,KAAKwO,EAAI,GAAI/H,IALjBwO,GAASosB,EAAoBtf,EAQ7B,IAAIuf,GAA8BD,EAAmBx/B,SAgDrD,OA9CAy/B,GAA4Bv1B,KAAO,SAAU1L,GACzC,GAAIkhC,IAAU,CACd,KACIvhC,KAAKuG,SAASO,OAAOzG,GACrBkhC,GAAU,EACZ,MAAO15B,GACL,KAAMA,GACR,QACO05B,GACDvhC,KAAK2W,YAKjB2qB,EAA4Bp1B,MAAQ,SAAUqU,GAC1C,IACIvgB,KAAKuG,SAASY,QAAQoZ,GACxB,MAAO1Y,GACL,KAAMA,GACR,QACE7H,KAAK2W,YAIb2qB,EAA4B5f,UAAY,WACpC,IACI1hB,KAAKuG,SAASe,cAChB,MAAOO,GACL,KAAMA,GACR,QACE7H,KAAK2W,YAIb2qB,EAA4B16B,cAAgB,SAAUvG,GAASL,KAAKwO,EAAE5H,cAAcvG,IACpFihC,EAA4B7rB,cAAgB,WAAmB,MAAOzV,MAAKwO,EAAEiH,iBAE7E6rB,EAA4Br8B,WAAa,SAAU5E,GAC/C,MAAO8T,WAAUvT,OAASZ,KAAKyV,gBAAkB7O,cAAcvG,IAGnEihC,EAA4B3qB,QAAU,WAClCoL,EAAOlgB,UAAU8U,QAAQ5V,KAAKf,MAC9BA,KAAKwO,EAAEmI,WAGJ0qB,GACT7f,IAEAoK,GAAqB,SAAUhN,GAGjC,QAAS/X,GAAUN,GACjB,MAAOvG,MAAKwhC,qBAAqB36B,UAAUN,GAG7C,QAASqlB,GAAkBvqB,EAAKmgC,EAAsBC,GACpD7iB,EAAU7d,KAAKf,KAAM6G,GACrB7G,KAAKqB,IAAMA,EACXrB,KAAKwhC,qBAAwBC,EAE3B,GAAIn7B,IAAoB,SAAUC,GAChC,MAAO,IAAIqG,IAAoB60B,EAAiBhsB,gBAAiB+rB,EAAqB36B,UAAUN,MAFlGi7B,EAMJ,MAhBAvsB,IAAS2W,EAAmBhN,GAgBrBgN,GACPnJ,IAMIzU,GAAU8E,GAAG9E,QAAW,SAAU+T,GAClC,QAASlb,GAAUN,GAEf,MADAxG,GAAcgB,KAAKf,MACdA,KAAKyhB,UAINzhB,KAAKgH,WACLT,EAASY,QAAQnH,KAAKgH,WACfoQ,KAEX7Q,EAASe,cACF8P,KARHpX,KAAKg0B,UAAU1yB,KAAKiF,GACb,GAAIwtB,IAAkB/zB,KAAMuG,IAgB3C,QAASyH,KACL+T,EAAOhhB,KAAKf,KAAM6G,GAClB7G,KAAKC,YAAa,EAClBD,KAAKyhB,WAAY,EACjBzhB,KAAKg0B,aA2ET,MArFA/e,IAASjH,EAAS+T,GAalB1M,GAAcrH,EAAQnM,UAAWgf,IAK7BoT,aAAc,WACV,MAAOj0B,MAAKg0B,UAAUpzB,OAAS,GAKnC0G,YAAa,WAET,GADAvH,EAAcgB,KAAKf,OACdA,KAAKyhB,UAAW,CACjB,GAAIyS,GAAKl0B,KAAKg0B,UAAUlzB,MAAM,EAC9Bd,MAAKyhB,WAAY,CACjB,KAAK,GAAI7c,GAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtCsvB,EAAGtvB,GAAG0C,aAGVtH,MAAKg0B,eAOb7sB,QAAS,SAAUH,GAEf,GADAjH,EAAcgB,KAAKf,OACdA,KAAKyhB,UAAW,CACjB,GAAIyS,GAAKl0B,KAAKg0B,UAAUlzB,MAAM,EAC9Bd,MAAKyhB,WAAY,EACjBzhB,KAAKgH,UAAYA,CACjB,KAAK,GAAIpC,GAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtCsvB,EAAGtvB,GAAGuC,QAAQH,EAGlBhH,MAAKg0B,eAObltB,OAAQ,SAAUzG,GAEd,GADAN,EAAcgB,KAAKf,OACdA,KAAKyhB,UAEN,IAAK,GADDyS,GAAKl0B,KAAKg0B,UAAUlzB,MAAM,GACrB8D,EAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACtCsvB,EAAGtvB,GAAGkC,OAAOzG,IAOzBsW,QAAS,WACL3W,KAAKC,YAAa,EAClBD,KAAKg0B,UAAY,QAUzBhmB,EAAQmJ,OAAS,SAAU5Q,EAAUmF,GACjC,MAAO,IAAIg2B,IAAiBn7B,EAAUmF,IAGnCsC,GACTyU,IAMAS,GAAepQ,GAAGoQ,aAAgB,SAAUtE,GAE9C,QAAS/X,GAAUN,GAGjB,GAFAxG,EAAcgB,KAAKf,OAEdA,KAAKyhB,UAER,MADAzhB,MAAKg0B,UAAU1yB,KAAKiF,GACb,GAAIwtB,IAAkB/zB,KAAMuG,EAGrC,IAAIW,GAAKlH,KAAKgH,UACZ26B,EAAK3hC,KAAK+I,SACV4C,EAAI3L,KAAKK,KAWX,OATI6G,GACFX,EAASY,QAAQD,GACRy6B,GACTp7B,EAASO,OAAO6E,GAChBpF,EAASe,eAETf,EAASe,cAGJ8P,GAST,QAAS8L,KACPtE,EAAU7d,KAAKf,KAAM6G,GAErB7G,KAAKC,YAAa,EAClBD,KAAKyhB,WAAY,EACjBzhB,KAAKK,MAAQ,KACbL,KAAK+I,UAAW,EAChB/I,KAAKg0B,aACLh0B,KAAKgH,UAAY,KA8EnB,MA5FAiO,IAASiO,EAActE,GAiBvBvJ,GAAc6N,EAAarhB,UAAWgf,IAKpCoT,aAAc,WAEZ,MADAl0B,GAAcgB,KAAKf,MACZA,KAAKg0B,UAAUpzB,OAAS,GAKjC0G,YAAa,WACX,GAAIhC,GAAGV,EAAGgB,CAEV,IADA7F,EAAcgB,KAAKf,OACdA,KAAKyhB,UAAW,CACnBzhB,KAAKyhB,WAAY,CACjB,IAAIyS,GAAKl0B,KAAKg0B,UAAUlzB,MAAM,GAC5B6K,EAAI3L,KAAKK,MACTshC,EAAK3hC,KAAK+I,QAEZ,IAAI44B,EACF,IAAK/8B,EAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACpCU,EAAI4uB,EAAGtvB,GACPU,EAAEwB,OAAO6E,GACTrG,EAAEgC,kBAGJ,KAAK1C,EAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACpCsvB,EAAGtvB,GAAG0C,aAIVtH,MAAKg0B,eAOT7sB,QAAS,SAAU+E,GAEjB,GADAnM,EAAcgB,KAAKf,OACdA,KAAKyhB,UAAW,CACnB,GAAIyS,GAAKl0B,KAAKg0B,UAAUlzB,MAAM,EAC9Bd,MAAKyhB,WAAY,EACjBzhB,KAAKgH,UAAYkF,CAEjB,KAAK,GAAItH,GAAI,EAAGgB,EAAMsuB,EAAGtzB,OAAYgF,EAAJhB,EAASA,IACxCsvB,EAAGtvB,GAAGuC,QAAQ+E,EAGhBlM,MAAKg0B,eAOTltB,OAAQ,SAAUzG,GAChBN,EAAcgB,KAAKf,MACfA,KAAKyhB,YACTzhB,KAAKK,MAAQA,EACbL,KAAK+I,UAAW,IAKlB4N,QAAS,WACP3W,KAAKC,YAAa,EAClBD,KAAKg0B,UAAY,KACjBh0B,KAAKgH,UAAY,KACjBhH,KAAKK,MAAQ,QAIV6iB,GACPT,IAEEif,GAAmB5uB,GAAG4uB,iBAAoB,SAAU9iB,GAGtD,QAAS8iB,GAAiBn7B,EAAUmF,GAClC1L,KAAKuG,SAAWA,EAChBvG,KAAK0L,WAAaA,EAClBkT,EAAU7d,KAAKf,KAAMA,KAAK0L,WAAW7E,UAAUE,KAAK/G,KAAK0L,aAe3D,MApBAuJ,IAASysB,EAAkB9iB,GAQ3BvJ,GAAcqsB,EAAiB7/B,UAAWgf,IACxCvZ,YAAa,WACXtH,KAAKuG,SAASe,eAEhBH,QAAS,SAAUH,GACjBhH,KAAKuG,SAASY,QAAQH,IAExBF,OAAQ,SAAUzG,GAChBL,KAAKuG,SAASO,OAAOzG,MAIlBqhC,GACPjf,GAEqB,mBAAVmf,SAA6C,gBAAdA,QAAOC,KAAmBD,OAAOC,KACvE18B,GAAK2N,GAAKA,GAEV8uB,OAAO,WACH,MAAO9uB,OAEJR,IAAeG,GAElBE,IACCF,GAAWF,QAAUO,IAAIA,GAAKA,GAEjCR,GAAYQ,GAAKA,GAInB3N,GAAK2N,GAAKA,KAGhB/R,KAAKf"} \ No newline at end of file +{"version":3,"file":"rx.all.min.js","sources":["rx.all.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","extremaBy","keySelector","hasValue","lastKey","list","comparison","ex1","firstOnly","sequenceContainsNoElements","sequenceEqualArray","equal","elementAtOrDefault","hasDefault","defaultValue","argumentOutOfRange","singleOrDefaultAsync","seenValue","firstOrDefaultAsync","lastOrDefaultAsync","findValue","predicate","yieldIndex","shouldRun","toThunk","obj","ctx","objectToThunk","isGeneratorFunction","observableSpawn","isGenerator","isObservable","observableToThunk","promiseToThunk","fnString","done","run","fn","finished","results","pending","err","res","keys","timeoutScheduler","schedule","observable","v","promise","then","name","next","throwString","val","error","createListener","element","addEventListener","disposableCreate","removeEventListener","createEventListener","el","eventName","disposables","CompositeDisposable","add","combineLatestSource","subject","values","hasValueAll","every","identity","apply","isDone","n","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBounaries","windowBoundaries","Subject","r","RefCountDisposable","addRef","observableWindowWithClosingSelector","createWindowClose","windowClose","m1","m","take","noop","enumerableWhile","condition","Enumerable","Enumerator","Pattern","patterns","Plan","expression","planCreateObserver","externalSubscriptions","entry","get","JoinObserver","ActivePlan","joinObserverArray","joinObservers","Map","joinObserver","observableTimerDate","dueTime","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","atEnd","newValue","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","not","asArray","arguments","isFn","Symbol","iterator","Set","doneEnumerator","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","sources","prop","xs","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","ScheduledItem","state","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","_next","_iterator","concat","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","fromPromise","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","arr","createWithDisposable","defer","observableFactory","observableThrow","pow","from","iterable","mapFn","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","iterate","hasResult","observableNever","ofWithScheduler","never","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","Infinity","createWindow","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","found","retValue","distinct","hashSet","groupBy","elementSelector","groupByUntil","durationSelector","handleError","Dictionary","groupDisposable","getValues","fireNewMapEntry","writer","tryGetValue","GroupedObservable","durationGroup","duration","md","expire","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","RangeError","takeWhile","finalValue","aggregate","reduce","some","any","isEmpty","all","contains","searchElement","fromIndex","sum","prev","curr","minBy","min","maxBy","average","cur","sequenceEqual","donel","doner","ql","qr","subscription1","subscription2","elementAt","single","singleOrDefault","firstOrDefault","last","lastOrDefault","find","findIndex","toSet","toMap","spawn","isGenFun","exit","ret","gen","called","hasCallback","denodify","cb","context","observableToAsync","toAsync","fromCallback","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","innerHandler","startAsync","functionAsync","PausableObservable","conn","connection","pausable","pauser","connect","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","multicast","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","subjectOrSubjectSelector","connectable","ConnectableObservable","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","InnerSubscription","observers","hasObservers","os","createRemovableDisposable","so","_trim","hasError","windowSize","Number","MAX_VALUE","interval","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","isPrime","candidate","num1","sqrt","num2","getPrime","num","primes","stringHashFn","str","hash","character","charCodeAt","numberHashFn","c2","newEntry","hashCode","_initialize","freeCount","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","dictionaryProto","prime","buckets","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","clear","_findEntry","containskey","join","leftDurationSelector","rightDurationSelector","leftDone","rightDone","leftId","rightId","leftMap","rightMap","buffer","windowOpeningsOrClosingSelector","pairwise","hasPrevious","partition","published","letBind","ifThen","thenSource","elseSourceOrScheduler","forIn","observableWhileDo","whileDo","doWhile","switchCase","defaultSourceOrScheduler","expand","forkJoin","allSources","subscriber","hasResults","ix","lastLeft","lastRight","leftStopped","rightStopped","hasLeft","hasRight","manySelect","chain","ChainObservable","g","head","tail","_keys","_values","and","thenDo","activate","deactivate","activePlan","jlen","removeActivePlan","addActivePlan","match","hasValues","firstValues","isCompleted","activePlans","JoinObserverPrototype","when","plans","outObserver","observableinterval","observableTimer","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","windowWithTime","timeShiftOrScheduler","timeShift","createTimer","isSpan","isShift","timerD","nextSpan","nextShift","newTotalTime","ts","totalTime","windowWithTimeOrCount","windowId","newId","newWindow","bufferWithTime","bufferWithTimeOrCount","timeInterval","span","sample","intervalOrSampler","schedulerMethod","myId","original","switched","generateWithAbsoluteTime","timeSelector","generateWithRelativeTime","delaySubscription","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","delays","timeoutWithSelector","firstTimeout","timeoutdurationSelector","setTimer","timerWins","observerWins","throttleWithSelector","throttleDurationSelector","currentid","skipLastWithTime","takeLastWithTime","takeLastBufferWithTime","takeWithTime","skipWithTime","open","skipUntilWithTime","startTime","takeUntilWithTime","endTime","transduce","transducer","transformForObserver","init","step","obs","input","xform","exclusive","hasCurrent","exclusiveMap","VirtualTimeScheduler","notImplemented","localNow","toDateTimeOffset","clock","scheduleAbsoluteWithState","scheduleRelativeWithState","toRelative","initialClock","isEnabled","VirtualTimeSchedulerPrototype","runAt","getNext","stop","advanceTo","dueToClock","advanceBy","sleep","HistoricalScheduler","cmp","HistoricalSchedulerProto","absolute","relative","fixSubscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","underlyingObservable","mergedDisposable","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.all.min.js b/dist/rx.all.min.js index a8d13daff..1a5dd905e 100644 --- a/dist/rx.all.min.js +++ b/dist/rx.all.min.js @@ -1,5 +1,5 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(yb)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;Vb.nonEnumArgs&&a.length&&h(a)&&(a=Xb.call(a));var d=Vb.enumPrototypes&&"function"==typeof a,e=Vb.enumErrorProps&&(a===Pb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(Vb.nonEnumShadows&&a!==Qb){var g=a.constructor,i=-1,j=Tb.length;if(a===(g&&g.prototype))var k=a===stringProto?Lb:a===Pb?Gb:Mb.call(a),l=Ub[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Xb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&gb.isFinite(a)}function o(b){return b[zb]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>Qc?Qc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new wd(function(c){var d=new gc,e=new hc;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}tb(f)&&(f=Nc(f)),d=new gc,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new wd(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e}).mergeObservable()}function y(a,b,c){return new wd(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function z(a){if(0===a.length)throw new Error(wb);return a[0]}function A(a,b,c){return new wd(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function B(a,b,c,d){if(0>b)throw new Error(xb);return new wd(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(xb))})})}function C(a,b,c){return new wd(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(wb))})})}function D(a,b,c){return new wd(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(wb))})})}function E(a,b,c){return new wd(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(wb))})})}function F(b,c,d,e){return new wd(function(f){var g=0;return b.subscribe(function(a){var h;try{h=c.call(d,a,g,b)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:a),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:a),f.onCompleted()})})}function G(a,b){return Array.isArray(a)?H.call(b,a):L(a)?bd(a.call(b)):M(a)?bd(a):K(a)?I(a):tb(a)?J(a):typeof a===_c?a:c(a)||Array.isArray(a)?H.call(b,a):a}function H(a){var b=this;return function(c){function d(a,d){if(!e)try{if(a=G(a,b),typeof a!==_c)return h[d]=a,--g||c(null,h);a.call(b,function(a,b){if(!e){if(a)return e=!0,c(a);h[d]=b,--g||c(null,h)}})}catch(f){e=!0,c(f)}}var e,f=Object.keys(a),g=f.length,h=new a.constructor;if(!g)return void uc.schedule(function(){c(null,h)});for(var i=0,j=f.length;j>i;i++)d(a[f[i]],f[i])}}function I(a){return function(b){var c,d=!1;a.subscribe(function(a){c=a,d=!0},b,function(){d&&b(null,c)})}}function J(a){return function(b){a.then(function(a){b(null,a)},b)}}function K(a){return a&&typeof a.subscribe===_c}function L(a){return a&&a.constructor&&"GeneratorFunction"===a.constructor.name}function M(a){return a&&typeof a.next===_c&&typeof a[ad]===_c}function c(a){return a&&a.constructor===Object}function N(a){a&&uc.schedule(function(){throw a})}function O(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),ec(function(){a.removeEventListener(b,c,!1)});throw new Error("No listener found")}function P(a,b,c){var d=new bc;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(P(a.item(e),b,c));else a&&d.add(O(a,b,c));return d}function Q(a,b,c){return new wd(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(ob))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new bc(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}function R(a,b){return a.groupJoin(this,b,Pc,function(a,b){return b})}function S(a){var b=this;return new wd(function(c){var d=new zd,e=new bc,f=new ic(e);return c.onNext($b(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),tb(a)&&(a=Nc(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new zd,c.onNext($b(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f})}function T(a){var b=this;return new wd(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}tb(b)&&(b=Nc(b));var i=new gc;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(mb,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new zd,c.onNext($b(h,g)),d()}))}var e=new hc,f=new bc(e),g=new ic(f),h=new zd;return c.onNext($b(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g})}function U(b,c){return new Bc(function(){return new Ac(function(){return b()?{done:!1,value:c}:{done:!0,value:a}})})}function V(a){this.patterns=a}function W(a,b){this.expression=a,this.selector=b}function X(a,b,c){var d=a.get(b);if(!d){var e=new td(b,c);return a.set(b,e),e}return d}function Y(a,b,c){this.joinObserverArray=a,this.onNext=b,this.onCompleted=c,this.joinObservers=new sd;for(var d=0,e=this.joinObserverArray.length;e>d;d++){var f=this.joinObserverArray[d];this.joinObservers.set(f,f)}}function Z(a,b){return new wd(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function $(a,b,c){return new wd(function(d){var e=0,f=a,g=lc(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function _(a,b){return new wd(function(c){return b.scheduleWithRelative(lc(a),function(){c.onNext(0),c.onCompleted()})})}function ab(a,b,c){return a===b?new wd(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):Oc(function(){return $(c.now()+a,b,c)})}function bb(a,b,c){return new wd(function(d){var e,f=!1,g=new hc,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new gc,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new bc(e,g)})}function db(a,b,c){return Oc(function(){return bb(a,b-c.now(),c)})}function eb(a,b){return new wd(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new bc(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}var fb={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},gb=fb[typeof window]&&window||this,hb=fb[typeof exports]&&exports&&!exports.nodeType&&exports,ib=fb[typeof module]&&module&&!module.nodeType&&module,jb=ib&&ib.exports===hb&&hb,kb=fb[typeof global]&&global;!kb||kb.global!==kb&&kb.window!==kb||(gb=kb);var lb={internals:{},config:{Promise:gb.Promise},helpers:{}},mb=lb.helpers.noop=function(){},nb=(lb.helpers.notDefined=function(a){return"undefined"==typeof a},lb.helpers.isScheduler=function(a){return a instanceof lb.Scheduler}),ob=lb.helpers.identity=function(a){return a},pb=(lb.helpers.pluck=function(a){return function(b){return b[a]}},lb.helpers.just=function(a){return function(){return a}},lb.helpers.defaultNow=Date.now),qb=lb.helpers.defaultComparer=function(a,b){return Wb(a,b)},rb=lb.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},sb=(lb.helpers.defaultKeySerializer=function(a){return a.toString()},lb.helpers.defaultError=function(a){throw a}),tb=lb.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},ub=(lb.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},lb.helpers.not=function(a){return!a}),vb=lb.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Mb.call(a)}),a}(),wb="Sequence contains no elements.",xb="Argument out of range",yb="Object has been disposed",zb="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";gb.Set&&"function"==typeof(new gb.Set)["@@iterator"]&&(zb="@@iterator");var Ab=lb.doneEnumerator={done:!0,value:a};lb.iterator=zb;var Bb,Cb="[object Arguments]",Db="[object Array]",Eb="[object Boolean]",Fb="[object Date]",Gb="[object Error]",Hb="[object Function]",Ib="[object Number]",Jb="[object Object]",Kb="[object RegExp]",Lb="[object String]",Mb=Object.prototype.toString,Nb=Object.prototype.hasOwnProperty,Ob=Mb.call(arguments)==Cb,Pb=Error.prototype,Qb=Object.prototype,Rb=Qb.propertyIsEnumerable;try{Bb=!(Mb.call(document)==Jb&&!({toString:0}+""))}catch(Sb){Bb=!0}var Tb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ub={};Ub[Db]=Ub[Fb]=Ub[Ib]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Ub[Eb]=Ub[Lb]={constructor:!0,toString:!0,valueOf:!0},Ub[Gb]=Ub[Hb]=Ub[Kb]={constructor:!0,toString:!0},Ub[Jb]={constructor:!0};var Vb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Vb.enumErrorProps=Rb.call(Pb,"message")||Rb.call(Pb,"name"),Vb.enumPrototypes=Rb.call(a,"prototype"),Vb.nonEnumArgs=0!=c,Vb.nonEnumShadows=!/valueOf/.test(b)}(1),Ob||(h=function(a){return a&&"object"==typeof a?Nb.call(a,"callee"):!1});var Wb=lb.internals.isEqual=function(a,b){return i(a,b,[],[])},Xb=Array.prototype.slice,Yb=({}.hasOwnProperty,this.inherits=lb.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),Zb=lb.internals.addProperties=function(a){for(var b=Xb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},$b=lb.internals.addRef=function(a,b){return new wd(function(c){return new bc(b.getDisposable(),a.subscribe(c))})};l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var _b=lb.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},ac=_b.prototype;ac.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},ac.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},ac.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},cc.toArray=function(){return this.disposables.slice(0)};var dc=lb.Disposable=function(a){this.isDisposed=!1,this.action=a||mb};dc.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var ec=dc.create=function(a){return new dc(a)},fc=dc.empty={dispose:mb},gc=lb.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),hc=lb.SerialDisposable=gc,ic=lb.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?fc:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var jc=lb.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||rb,this.disposable=new gc};jc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},jc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},jc.prototype.isCancelled=function(){return this.disposable.isDisposed},jc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var kc=lb.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),fc}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=pb,a.normalize=function(a){return 0>a&&(a=0),a},a}(),lc=kc.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new bc,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),fc});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new bc,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),fc});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(kc.prototype),function(){kc.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},kc.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof gb.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=gb.setInterval(function(){d=c(d)},b);return ec(function(){gb.clearInterval(e)})}}(kc.prototype),function(a){a.catchError=a["catch"]=function(a){return new vc(this,a)}}(kc.prototype);var mc,nc=lb.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new gc;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),oc=kc.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=lc(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new kc(pb,a,b,c)}(),pc=kc.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-kc.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+kc.normalize(c),g=new jc(this,b,d,f);if(e)e.enqueue(g);else{e=new _b(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new kc(pb,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),qc=mb,rc=function(){var a,b=mb;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!gb.setTimeout)throw new Error("No concurrency detected!");a=gb.setTimeout,b=gb.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),sc=rc.setTimeout,tc=rc.clearTimeout;!function(){function a(){if(!gb.postMessage||gb.importScripts)return!1;var a=!1,b=gb.onmessage;return gb.onmessage=function(){a=!0},gb.postMessage("","*"),gb.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(Mb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=kb&&jb&&kb.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=kb&&jb&&kb.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))mc=process.nextTick;else if("function"==typeof d)mc=d,qc=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;gb.addEventListener?gb.addEventListener("message",b,!1):gb.attachEvent("onmessage",b,!1),mc=function(a){var b=h++;g[b]=a,gb.postMessage(f+b,"*")}}else if(gb.MessageChannel){var i=new gb.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},mc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in gb&&"onreadystatechange"in gb.document.createElement("script")?mc=function(a){var b=gb.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},gb.document.documentElement.appendChild(b)}:(mc=function(a){return sc(a,0)},qc=tc)}();var uc=kc.timeout=function(){function a(a,b){var c=this,d=new gc,e=mc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new bc(d,ec(function(){qc(e)}))}function b(a,b,c){var d=this,e=kc.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new gc,g=sc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new bc(f,ec(function(){tc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new kc(pb,a,b,c)}(),vc=function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Yb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return fc}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new gc;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(kc),wc=lb.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return nb(a)||(a=oc),new wd(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),xc=wc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new wc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),yc=wc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new wc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),zc=wc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new wc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Ac=lb.internals.Enumerator=function(a){this._next=a};Ac.prototype.next=function(){return this._next()},Ac.prototype[zb]=function(){return this};var Bc=lb.internals.Enumerable=function(a){this._iterator=a};Bc.prototype[zb]=function(){return this._iterator()},Bc.prototype.concat=function(){var a=this;return new wd(function(b){var c;try{c=a[zb]()}catch(d){return void b.onError()}var e,f=new hc,g=oc.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;tb(h)&&(h=Nc(h));var i=new gc;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new bc(f,g,ec(function(){e=!0}))})},Bc.prototype.catchException=function(){var a=this;return new wd(function(b){var c;try{c=a[zb]()}catch(d){return void b.onError()}var e,f,g=new hc,h=oc.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;tb(i)&&(i=Nc(i));var j=new gc;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new bc(g,h,ec(function(){e=!0}))})};var Cc=Bc.repeat=function(a,b){return null==b&&(b=-1),new Bc(function(){var c=b;return new Ac(function(){return 0===c?Ab:(c>0&&c--,{done:!1,value:a})})})},Dc=Bc.of=function(a,b,c){return b||(b=ob),new Bc(function(){var d=-1;return new Ac(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Hc),Lc=function(a){function b(){a.apply(this,arguments)}return Yb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Kc),Mc=lb.Observable=function(){function a(a){this._subscribe=a}return Gc=a.prototype,Gc.subscribe=Gc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Fc(a,b,c))},Gc.subscribeOnNext=function(a,b){return this._subscribe(Fc(2===arguments.length?function(c){a.call(b,c)}:a))},Gc.subscribeOnError=function(a,b){return this._subscribe(Fc(null,2===arguments.length?function(c){a.call(b,c)}:a))},Gc.subscribeOnCompleted=function(a,b){return this._subscribe(Fc(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Gc.observeOn=function(a){var b=this;return new wd(function(c){return b.subscribe(new Lc(a,c))})},Gc.subscribeOn=function(a){var b=this;return new wd(function(c){var d=new gc,e=new hc;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var Nc=Mc.fromPromise=function(a){return Oc(function(){var b=new lb.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Gc.toPromise=function(a){if(a||(a=lb.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Gc.toArray=function(){var a=this;return new wd(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},Mc.create=Mc.createWithDisposable=function(a){return new wd(a)};var Oc=Mc.defer=function(a){return new wd(function(b){var c;try{c=a()}catch(d){return Vc(d).subscribe(b)}return tb(c)&&(c=Nc(c)),c.subscribe(b)})},Pc=Mc.empty=function(a){return nb(a)||(a=oc),new wd(function(b){return a.schedule(function(){b.onCompleted()})})},Qc=Math.pow(2,53)-1,Rc=Mc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return nb(d)||(d=pc),new wd(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[zb]():null,j=0; -return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},Sc=Mc.fromArray=function(a,b){return nb(b)||(b=pc),new wd(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};Mc.generate=function(a,b,c,d,e){return nb(e)||(e=pc),new wd(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})},Mc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Sc(b)};var Tc=(Mc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return Sc(c,a)},Mc.never=function(){return new wd(function(){return fc})});Mc.range=function(a,b,c){return nb(c)||(c=pc),new wd(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},Mc.repeat=function(a,b,c){return nb(c)||(c=pc),Uc(a,c).repeat(null==b?-1:b)};var Uc=Mc["return"]=Mc.returnValue=Mc.just=function(a,b){return nb(b)||(b=oc),new wd(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},Vc=Mc["throw"]=Mc.throwException=Mc.throwError=function(a,b){return nb(b)||(b=oc),new wd(function(c){return b.schedule(function(){c.onError(a)})})};Mc.using=function(a,b){return new wd(function(c){var d,e,f=fc;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new bc(Vc(g).subscribe(c),f)}return new bc(e.subscribe(c),f)})},Gc.amb=function(a){var b=this;return new wd(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new gc,j=new gc;return tb(a)&&(a=Nc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new bc(i,j)})},Mc.amb=function(){function a(a,b){return a.amb(b)}for(var b=Tc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Gc["catch"]=Gc.catchError=Gc.catchException=function(a){return"function"==typeof a?s(this,a):Wc([this,a])};var Wc=Mc.catchException=Mc.catchError=Mc["catch"]=function(){return Dc(j(arguments,0)).catchException()};Gc.combineLatest=function(){var a=Xb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),Xc.apply(this,a)};var Xc=Mc.combineLatest=function(){var a=Xb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new wd(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(ob))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(ob)&&c.onCompleted()}function e(a){j[a]=!0,j.every(ob)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new gc;tb(f)&&(f=Nc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new bc(m)})};Gc.concat=function(){var a=Xb.call(arguments,0);return a.unshift(this),Yc.apply(this,a)};var Yc=Mc.concat=function(){return Dc(j(arguments,0)).concat()};Gc.concatObservable=Gc.concatAll=function(){return this.merge(1)},Gc.merge=function(a){if("number"!=typeof a)return Zc(this,a);var b=this;return new wd(function(c){function d(a){var b=new gc;f.add(b),tb(a)&&(a=Nc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new bc,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var Zc=Mc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=Xb.call(arguments,1)):(a=oc,b=Xb.call(arguments,0)):(a=oc,b=Xb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),Sc(b,a).mergeObservable()};Gc.mergeObservable=Gc.mergeAll=function(){var a=this;return new wd(function(b){var c=new bc,d=!1,e=new gc;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new gc;c.add(e),tb(a)&&(a=Nc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Gc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return $c([this,a])};var $c=Mc.onErrorResumeNext=function(){var a=j(arguments,0);return new wd(function(b){var c=0,d=new hc,e=oc.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(ob)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new gc;tb(c)&&(c=Nc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new bc(j)})},Mc.zip=function(){var a=Xb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},Mc.zipArray=function(){var a=j(arguments,0);return new wd(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(ob))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(ob)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new gc,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new bc(h);return j.add(ec(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Gc.asObservable=function(){return new wd(this.subscribe.bind(this))},Gc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Gc.dematerialize=function(){var a=this;return new wd(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.distinctUntilChanged=function(a,b){var c=this;return a||(a=ob),b||(b=qb),new wd(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Gc["do"]=Gc.doAction=Gc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new wd(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Gc.doOnNext=Gc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Gc.doOnError=Gc.tapOnError=function(a,b){return this.tap(mb,2===arguments.length?function(c){a.call(b,c)}:a)},Gc.doOnCompleted=Gc.tapOnCompleted=function(a,b){return this.tap(mb,null,2===arguments.length?function(){a.call(b)}:a)},Gc["finally"]=Gc.finallyAction=function(a){var b=this;return new wd(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return ec(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Gc.ignoreElements=function(){var a=this;return new wd(function(b){return a.subscribe(mb,b.onError.bind(b),b.onCompleted.bind(b))})},Gc.materialize=function(){var a=this;return new wd(function(b){return a.subscribe(function(a){b.onNext(xc(a))},function(a){b.onNext(yc(a)),b.onCompleted()},function(){b.onNext(zc()),b.onCompleted()})})},Gc.repeat=function(a){return Cc(this,a).concat()},Gc.retry=function(a){return Cc(this,a).catchException()},Gc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new wd(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Gc.skipLast=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Gc.startWith=function(){var a,b,c=0;return arguments.length&&nb(arguments[0])?(b=arguments[0],c=1):b=oc,a=Xb.call(arguments,c),Dc([Sc(a,b),this]).concat()},Gc.takeLast=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Gc.takeLastBuffer=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Gc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(xb);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(xb);return new wd(function(d){function e(){var a=new zd;i.push(a),d.onNext($b(a,g))}var f=new gc,g=new ic(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Gc.selectConcat=Gc.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Gc.concatMapObserver=Gc.selectConcatObserver=function(a,b,c,d){var e=this;return new wd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}tb(a)&&(a=Nc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Gc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new wd(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Gc.distinct=function(a,b){var c=this;return b||(b=qb),new wd(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.groupBy=function(a,b,c){return this.groupByUntil(a,b,Tc,c)},Gc.groupByUntil=function(a,b,c,d){var e=this;return b||(b=ob),d||(d=qb),new wd(function(f){function g(a){return function(b){b.onError(a)}}var h=new pd(0,d),i=new bc,j=new ic(i);return i.add(e.subscribe(function(d){var e;try{e=a(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}var l=!1,m=h.tryGetValue(e);if(m||(m=new zd,h.set(e,m),l=!0),l){var n=new yd(e,m,j),o=new yd(e,m);try{duration=c(o)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}f.onNext(n);var p=new gc;i.add(p);var q=function(){h.remove(e)&&m.onCompleted(),i.remove(p)};p.setDisposable(duration.take(1).subscribe(mb,function(a){h.getValues().forEach(g(a)),f.onError(a)},q))}var r;try{r=b(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}m.onNext(r)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),j})},Gc.select=Gc.map=function(a,b){var c=this;return new wd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.pluck=function(a){return this.map(function(b){return b[a]})},Gc.selectMany=Gc.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Gc.flatMapObserver=Gc.selectManyObserver=function(a,b,c,d){var e=this;return new wd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}tb(a)&&(a=Nc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Gc.selectSwitch=Gc.flatMapLatest=Gc.switchMap=function(a,b){return this.select(a,b).switchLatest()},Gc.skip=function(a){if(0>a)throw new Error(xb);var b=this;return new wd(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Gc.skipWhile=function(a,b){var c=this;return new wd(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.take=function(a,b){if(0>a)throw new RangeError(xb);if(0===a)return Pc(b);var c=this;return new wd(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.takeWhile=function(a,b){var c=this;return new wd(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.where=Gc.filter=function(a,b){var c=this;return new wd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.finalValue=function(){var a=this;return new wd(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(wb))})})},Gc.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},Gc.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},Gc.some=Gc.any=function(a,b){var c=this;return a?c.where(a,b).any():new wd(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},Gc.isEmpty=function(){return this.any().map(ub)},Gc.every=Gc.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},Gc.contains=function(a,b){function c(a,b){return 0===a&&0===b||a===b||isNaN(a)&&isNaN(b)}var d=this;return new wd(function(e){var f=0,g=+b||0;return 1/0===Math.abs(g)&&(g=0),0>g?(e.onNext(!1),e.onCompleted(),fc):d.subscribe(function(b){f++>=g&&c(b,a)&&(e.onNext(!0),e.onCompleted())},e.onError.bind(e),function(){e.onNext(!1),e.onCompleted()})})},Gc.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},Gc.indexOf=function(a,b){var c=this;return new wd(function(d){var e=0,f=+b||0;return 1/0===Math.abs(f)&&(f=0),0>f?(d.onNext(-1),d.onCompleted(),fc):c.subscribe(function(b){e>=f&&b===a&&(d.onNext(e),d.onCompleted()),e++},d.onError.bind(d),function(){d.onNext(-1),d.onCompleted()})})},Gc.sum=function(a,b){return a&&vb(a)?this.map(a,b).sum():this.aggregate(0,function(a,b){return a+b})},Gc.minBy=function(a,b){return b||(b=rb),y(this,a,function(a,c){return-1*b(a,c)})},Gc.min=function(a){return this.minBy(ob,a).select(function(a){return z(a)})},Gc.maxBy=function(a,b){return b||(b=rb),y(this,a,b)},Gc.max=function(a){return this.maxBy(ob,a).select(function(a){return z(a)})},Gc.average=function(a,b){return a&&vb(a)?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().map(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},Gc.sequenceEqual=function(a,b){var c=this;return b||(b=qb),Array.isArray(a)?A(c,a,b):new wd(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});tb(a)&&(a=Nc(a));var j=a.subscribe(function(a){var c;if(g.length>0){var f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new bc(i,j)})},Gc.elementAt=function(a){return B(this,a,!1)},Gc.elementAtOrDefault=function(a,b){return B(this,a,!0,b)},Gc.single=function(a,b){return a&&vb(a)?this.where(a,b).single():C(this,!1)},Gc.singleOrDefault=function(a,b,c){return a&&vb(a)?this.where(a,c).singleOrDefault(null,b):C(this,!0,b)},Gc.first=function(a,b){return a?this.where(a,b).first():D(this,!1)},Gc.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):D(this,!0,b)},Gc.last=function(a,b){return a?this.where(a,b).last():E(this,!1)},Gc.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):E(this,!0,b)},Gc.find=function(a,b){return F(this,a,b,!1)},Gc.findIndex=function(a,b){return F(this,a,b,!0)},gb.Set&&(Gc.toSet=function(){var a=this;return new wd(function(b){var c=new gb.Set;return a.subscribe(c.add.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})}),gb.Map&&(Gc.toMap=function(a,b){var c=this;return new wd(function(d){var e=new gb.Map;return c.subscribe(function(c){var f;try{f=a(c)}catch(g){return void d.onError(g)}var h=c;if(b)try{h=b(c)}catch(g){return void d.onError(g)}e.set(f,h)},d.onError.bind(d),function(){d.onNext(e),d.onCompleted()})})});var _c="function",ad="throw",bd=lb.spawn=function(a){var b=L(a);return function(c){function d(a,b){uc.schedule(c.bind(f,a,b))}function e(a,b){var c;if(arguments.length>2&&(b=Xb.call(arguments,1)),a)try{c=g[ad](a)}catch(h){return d(h)}if(!a)try{c=g.next(b)}catch(h){return d(h)}if(c.done)return d(null,c.value);if(c.value=G(c.value,f),typeof c.value!==_c)e(new TypeError("Rx.spawn only supports a function, Promise, Observable, Object or Array."));else{var i=!1;try{c.value.call(f,function(){i||(i=!0,e.apply(f,arguments))})}catch(h){uc.schedule(function(){i||(i=!0,e.call(f,h))})}}}var f=this,g=a;if(b){var h=Xb.call(arguments),i=h.length,j=i&&typeof h[i-1]===_c;c=j?h.pop():N,g=a.apply(this,h)}else c=c||N;e()}};lb.denodify=function(a){return function(){var b,c,d,e=Xb.call(arguments);return e.push(function(){b=arguments,d&&!c&&(c=!0,cb.apply(this,b))}),a.apply(this,e),function(a){d=a,b&&!c&&(c=!0,a.apply(this,b))}}},Mc.start=function(a,b,c){return cd(a,b,c)()};var cd=Mc.toAsync=function(a,b,c){return nb(c)||(c=uc),function(){var d=arguments,e=new Ad;return c.schedule(function(){var c;try{c=a.apply(b,d)}catch(f){return void e.onError(f)}e.onNext(c),e.onCompleted()}),e.asObservable()}};Mc.fromCallback=function(a,b,c){return function(){var d=Xb.call(arguments,0);return new wd(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},Mc.fromNodeCallback=function(a,b,c){return function(){var d=Xb.call(arguments,0);return new wd(function(e){function f(a){if(a)return void e.onError(a);var b=Xb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},lb.config.useNativeEvents=!1;var dd=gb.angular&&angular.element?angular.element:gb.jQuery?gb.jQuery:gb.Zepto?gb.Zepto:null,ed=!!gb.Ember&&"function"==typeof gb.Ember.addListener,fd=!!gb.Backbone&&!!gb.Backbone.Marionette;Mc.fromEvent=function(a,b,c){if(a.addListener)return gd(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!lb.config.useNativeEvents){if(fd)return gd(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(ed)return gd(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(dd){var d=dd(a);return gd(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new wd(function(d){return P(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var gd=Mc.fromEventPattern=function(a,b,c){return new wd(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return ec(function(){b&&b(e,f)})}).publish().refCount()};Mc.startAsync=function(a){var b;try{b=a()}catch(c){return Vc(c)}return Nc(b)};var hd=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=fc,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=fc)});return new bc(c,d,e)}function c(c,d){this.source=c,this.controller=new zd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return Yb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(Mc);Gc.pausable=function(a){return new hd(this,a)};var id=function(b){function c(b){var c,d=[],e=Q(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new zd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return Yb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(Mc);Gc.pausableBuffered=function(a){return new id(this,a)},Gc.controlled=function(a){return null==a&&(a=!0),new jd(this,a)};var jd=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new kd(d),this.source=c.multicast(this.subject).refCount()}return Yb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(Mc),kd=lb.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new zd,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=fc,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=fc}return Yb(d,a),Zb(d.prototype,Ec,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=fc):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=fc),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?fc:(this.requestedCount=a,this.requestedDisposable=ec(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=fc},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(Mc);Gc.multicast=function(a,b){var c=this;return"function"==typeof a?new wd(function(d){var e=c.multicast(a());return new bc(b(e).subscribe(d),e.connect())}):new od(c,a)},Gc.publish=function(a){return a&&vb(a)?this.multicast(function(){return new zd},a):this.multicast(new zd)},Gc.share=function(){return this.publish().refCount()},Gc.publishLast=function(a){return a&&vb(a)?this.multicast(function(){return new Ad},a):this.multicast(new Ad)},Gc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new md(b)},a):this.multicast(new md(a))},Gc.shareValue=function(a){return this.publishValue(a).refCount()},Gc.replay=function(a,b,c,d){return a&&vb(a)?this.multicast(function(){return new nd(b,c,d)},a):this.multicast(new nd(b,c,d))},Gc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var ld=function(a,b){this.subject=a,this.observer=b};ld.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var md=lb.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new ld(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),fc}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(Mc),nd=lb.ReplaySubject=function(a){function c(a,b){return ec(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new Kc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||pc,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return Yb(e,a),Zb(e.prototype,Ec,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(Mc),od=lb.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new bc(f.subscribe(c),ec(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return Yb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new wd(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(Mc),pd=function(){function b(a){if(a&!1)return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function c(a){var c,d,e;for(c=0;c=a)return d;for(e=1|a;ec;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new Error("out of range");a>0&&this._initialize(a),this.comparer=b||qb,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return d(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return d(b.toString());if("function"==typeof b.valueOf){var c=b.valueOf();if("number"==typeof c)return e(c);if("string"==typeof b)return d(c)}if(b.getHashCode)return b.getHashCode();var f=17*a++;return b.getHashCode=function(){return f -},f}}(),l=g.prototype;return l._initialize=function(a){var b,d=c(a);for(this.buckets=new Array(d),this.entries=new Array(d),b=0;d>b;b++)this.buckets[b]=-1,this.entries[b]=f();this.freeList=-1},l.add=function(a,b){return this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=c(2*this.size),b=new Array(a);for(e=0;ee;++e)d[e]=f();for(var g=0;g=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(b){var c=this._findEntry(b);return c>=0?this.entries[c].value:a},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();Gc.join=function(a,b,c,d){var e=this;return new wd(function(f){var g=new bc,h=!1,i=!1,j=0,k=0,l=new pd,m=new pd;return g.add(e.subscribe(function(a){var c=j++,e=new gc;l.add(c,a),g.add(e);var i,k=function(){l.remove(c)&&0===l.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(n){return void f.onError(n)}e.setDisposable(i.take(1).subscribe(mb,f.onError.bind(f),k)),m.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(i||0===l.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=k++,e=new gc;m.add(b,a),g.add(e);var h,j=function(){m.remove(b)&&0===m.count()&&i&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(n){return void f.onError(n)}e.setDisposable(h.take(1).subscribe(mb,f.onError.bind(f),j)),l.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){i=!0,(h||0===m.count())&&f.onCompleted()})),g})},Gc.groupJoin=function(a,b,c,d){var e=this;return new wd(function(f){function g(a){return function(b){b.onError(a)}}var h=new bc,i=new ic(h),j=new pd,k=new pd,l=0,m=0;return h.add(e.subscribe(function(a){var c=new zd,e=l++;j.add(e,c);var m;try{m=d(a,$b(c,i))}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}f.onNext(m),k.getValues().forEach(function(a){c.onNext(a)});var o=new gc;h.add(o);var p,q=function(){j.remove(e)&&c.onCompleted(),h.remove(o)};try{p=b(a)}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}o.setDisposable(p.take(1).subscribe(mb,function(a){j.getValues().forEach(g(a)),f.onError(a)},q))},function(a){j.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=m++;k.add(b,a);var d=new gc;h.add(d);var e,i=function(){k.remove(b),h.remove(d)};try{e=c(a)}catch(l){return j.getValues().forEach(g(l)),void f.onError(l)}d.setDisposable(e.take(1).subscribe(mb,function(a){j.getValues().forEach(g(a)),f.onError(a)},i)),j.getValues().forEach(function(b){b.onNext(a)})},function(a){j.getValues().forEach(g(a)),f.onError(a)})),i})},Gc.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},Gc.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?S.call(this,a):"function"==typeof a?T.call(this,a):R.call(this,a,b)},Gc.pairwise=function(){var a=this;return new wd(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.partition=function(a,b){var c=this.publish().refCount();return[c.filter(a,b),c.filter(function(c,d,e){return!a.call(b,c,d,e)})]},Gc.letBind=Gc.let=function(a){return a(this)},Mc["if"]=Mc.ifThen=function(a,b,c){return Oc(function(){return c||(c=Pc()),tb(b)&&(b=Nc(b)),tb(c)&&(c=Nc(c)),"function"==typeof c.now&&(c=Pc(c)),a()?b:c})},Mc["for"]=Mc.forIn=function(a,b,c){return Dc(a,b,c).concat()};var qd=Mc["while"]=Mc.whileDo=function(a,b){return tb(b)&&(b=Nc(b)),U(a,b).concat()};Gc.doWhile=function(a){return Yc([this,qd(a,this)])},Mc["case"]=Mc.switchCase=function(a,b,c){return Oc(function(){tb(c)&&(c=Nc(c)),c||(c=Pc()),"function"==typeof c.now&&(c=Pc(c));var d=b[a()];return tb(d)&&(d=Nc(d)),d||c})},Gc.expand=function(a,b){nb(b)||(b=oc);var c=this;return new wd(function(d){var e=[],f=new hc,g=new bc(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new gc;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g})},Mc.forkJoin=function(){var a=j(arguments,0);return new wd(function(b){var c=a.length;if(0===c)return b.onCompleted(),fc;for(var d=new bc,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];tb(j)&&(j=Nc(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},Gc.forkJoin=function(a,b){var c=this;return new wd(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new gc,l=new gc;return tb(a)&&(a=Nc(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new bc(k,l)})},Gc.manySelect=function(a,b){nb(b)||(b=oc);var c=this;return Oc(function(){var d;return c.map(function(a){var b=new rd(a);return d&&d.onNext(a),d=b,b}).tap(mb,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).map(a)})};var rd=function(a){function b(a){var b=this,c=new bc;return c.add(pc.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeObservable().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new Ad}return Yb(c,a),Zb(c.prototype,Ec,{onCompleted:function(){this.onNext(Mc.empty())},onError:function(a){this.onNext(Mc.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(Mc),sd=gb.Map||function(){function b(){this._keys=[],this._values=[]}return b.prototype.get=function(b){var c=this._keys.indexOf(b);return-1!==c?this._values[c]:a},b.prototype.set=function(a,b){var c=this._keys.indexOf(a);-1!==c&&(this._values[c]=b),this._values[this._keys.push(a)-1]=b},b.prototype.forEach=function(a,b){for(var c=0,d=this._keys.length;d>c;c++)a.call(b,this._values[c],this._keys[c])},b}();V.prototype.and=function(a){return new V(this.patterns.concat(a))},V.prototype.thenDo=function(a){return new W(this,a)},W.prototype.activate=function(a,b,c){for(var d=this,e=[],f=0,g=this.expression.patterns.length;g>f;f++)e.push(X(a,this.expression.patterns[f],b.onError.bind(b)));var h=new Y(e,function(){var a;try{a=d.selector.apply(d,arguments)}catch(c){return void b.onError(c)}b.onNext(a)},function(){for(var a=0,b=e.length;b>a;a++)e[a].removeActivePlan(h);c(h)});for(f=0,g=e.length;g>f;f++)e[f].addActivePlan(h);return h},Y.prototype.dequeue=function(){this.joinObservers.forEach(function(a){a.queue.shift()})},Y.prototype.match=function(){var a,b,c=!0;for(a=0,b=this.joinObserverArray.length;b>a;a++)if(0===this.joinObserverArray[a].queue.length){c=!1;break}if(c){var d=[],e=!1;for(a=0,b=this.joinObserverArray.length;b>a;a++)d.push(this.joinObserverArray[a].queue[0]),"C"===this.joinObserverArray[a].queue[0].kind&&(e=!0);if(e)this.onCompleted();else{this.dequeue();var f=[];for(a=0,b=d.length;ac;c++)b[c].match()}},c.error=mb,c.completed=mb,c.addActivePlan=function(a){this.activePlans.push(a)},c.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))},c.removeActivePlan=function(a){this.activePlans.splice(this.activePlans.indexOf(a),1),0===this.activePlans.length&&this.dispose()},c.dispose=function(){a.prototype.dispose.call(this),this.isDisposed||(this.isDisposed=!0,this.subscription.dispose())},b}(Hc);Gc.and=function(a){return new V([this,a])},Gc.thenDo=function(a){return new V([this]).thenDo(a)},Mc.when=function(){var a=j(arguments,0);return new wd(function(b){var c=[],d=new sd,e=Fc(b.onNext.bind(b),function(a){d.forEach(function(b){b.onError(a)}),b.onError(a)},b.onCompleted.bind(b));try{for(var f=0,g=a.length;g>f;f++)c.push(a[f].activate(d,e,function(a){var d=c.indexOf(a);c.splice(d,1),0===c.length&&b.onCompleted()}))}catch(h){Vc(h).subscribe(b)}var i=new bc;return d.forEach(function(a){a.subscribe(),i.add(a)}),i})};var ud=Mc.interval=function(a,b){return ab(a,a,nb(b)?b:uc)},vd=Mc.timer=function(b,c,d){var e;return nb(d)||(d=uc),c!==a&&"number"==typeof c?e=c:nb(c)&&(d=c),b instanceof Date&&e===a?Z(b.getTime(),d):b instanceof Date&&e!==a?(e=c,$(b.getTime(),e,d)):e===a?_(b,d):ab(b,e,d)};Gc.delay=function(a,b){return nb(b)||(b=uc),a instanceof Date?db(this,a.getTime(),b):bb(this,a,b)},Gc.throttle=function(a,b){nb(b)||(b=uc);var c=this;return new wd(function(d){var e,f=new hc,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new gc;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new bc(i,f)})},Gc.windowWithTime=function(a,b,c){var d,e=this;return null==b&&(d=a),nb(c)||(c=uc),"number"==typeof b?d=b:nb(b)&&(d=a,c=b),new wd(function(b){function f(){var a=new gc,e=!1,g=!1;l.setDisposable(a),j===i?(e=!0,g=!0):i>j?e=!0:g=!0;var n=e?j:i,o=n-m;m=n,e&&(j+=d),g&&(i+=d),a.setDisposable(c.scheduleWithRelative(o,function(){if(g){var a=new zd;k.push(a),b.onNext($b(a,h))}e&&k.shift().onCompleted(),f()}))}var g,h,i=d,j=a,k=[],l=new hc,m=0;return g=new bc(l),h=new ic(g),k.push(new zd),b.onNext($b(k[0],h)),f(),g.add(e.subscribe(function(a){for(var b=0,c=k.length;c>b;b++)k[b].onNext(a)},function(a){for(var c=0,d=k.length;d>c;c++)k[c].onError(a);b.onError(a)},function(){for(var a=0,c=k.length;c>a;a++)k[a].onCompleted();b.onCompleted()})),h})},Gc.windowWithTimeOrCount=function(a,b,c){var d=this;return nb(c)||(c=uc),new wd(function(e){function f(b){var d=new gc;g.setDisposable(d),d.setDisposable(c.scheduleWithRelative(a,function(){if(b===k){j=0;var a=++k;l.onCompleted(),l=new zd,e.onNext($b(l,i)),f(a)}}))}var g=new hc,h=new bc(g),i=new ic(h),j=0,k=0,l=new zd;return e.onNext($b(l,i)),f(0),h.add(d.subscribe(function(a){var c=0,d=!1;l.onNext(a),++j===b&&(d=!0,j=0,c=++k,l.onCompleted(),l=new zd,e.onNext($b(l,i))),d&&f(c)},function(a){l.onError(a),e.onError(a)},function(){l.onCompleted(),e.onCompleted()})),i})},Gc.bufferWithTime=function(){return this.windowWithTime.apply(this,arguments).selectMany(function(a){return a.toArray()})},Gc.bufferWithTimeOrCount=function(a,b,c){return this.windowWithTimeOrCount(a,b,c).selectMany(function(a){return a.toArray()})},Gc.timeInterval=function(a){var b=this;return nb(a)||(a=uc),Oc(function(){var c=a.now();return b.map(function(b){var d=a.now(),e=d-c;return c=d,{value:b,interval:e}})})},Gc.timestamp=function(a){return nb(a)||(a=uc),this.map(function(b){return{value:b,timestamp:a.now()}})},Gc.sample=function(a,b){return nb(b)||(b=uc),"number"==typeof a?eb(this,ud(a,b)):eb(this,a)},Gc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Vc(new Error(b||"Timeout"))),nb(c)||(c=uc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(tb(b)&&(b=Nc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new gc,j=new hc,k=!1,l=new hc;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new bc(j,l)})},Mc.generateWithAbsoluteTime=function(a,b,c,d,e,f){return nb(f)||(f=uc),new wd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithAbsolute(f.now(),function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Mc.generateWithRelativeTime=function(a,b,c,d,e,f){return nb(f)||(f=uc),new wd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithRelative(0,function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Gc.delaySubscription=function(a,b){return this.delayWithSelector(vd(a,nb(b)?b:uc),Pc)},Gc.delayWithSelector=function(a,b){var c,d,e=this;return"function"==typeof a?d=a:(c=a,d=b),new wd(function(a){var b=new bc,f=!1,g=function(){f&&0===b.length&&a.onCompleted()},h=new hc,i=function(){h.setDisposable(e.subscribe(function(c){var e;try{e=d(c)}catch(f){return void a.onError(f)}var h=new gc;b.add(h),h.setDisposable(e.subscribe(function(){a.onNext(c),b.remove(h),g()},a.onError.bind(a),function(){a.onNext(c),b.remove(h),g()}))},a.onError.bind(a),function(){f=!0,h.dispose(),g()}))};return c?h.setDisposable(c.subscribe(function(){i()},a.onError.bind(a),function(){i()})):i(),new bc(h,b)})},Gc.timeoutWithSelector=function(a,b,c){1===arguments.length&&(b=a,a=Tc()),c||(c=Vc(new Error("Timeout")));var d=this;return new wd(function(e){function f(a){function b(){return k===d}var d=k,f=new gc;i.setDisposable(f),f.setDisposable(a.subscribe(function(){b()&&h.setDisposable(c.subscribe(e)),f.dispose()},function(a){b()&&e.onError(a)},function(){b()&&h.setDisposable(c.subscribe(e))}))}function g(){var a=!l;return a&&k++,a}var h=new hc,i=new hc,j=new gc;h.setDisposable(j);var k=0,l=!1;return f(a),j.setDisposable(d.subscribe(function(a){if(g()){e.onNext(a);var c;try{c=b(a)}catch(d){return void e.onError(d)}f(tb(c)?Nc(c):c)}},function(a){g()&&e.onError(a)},function(){g()&&e.onCompleted()})),new bc(h,i)})},Gc.throttleWithSelector=function(a){var b=this;return new wd(function(c){var d,e=!1,f=new hc,g=0,h=b.subscribe(function(b){var h;try{h=a(b)}catch(i){return void c.onError(i)}tb(h)&&(h=Nc(h)),e=!0,d=b,g++;var j=g,k=new gc;f.setDisposable(k),k.setDisposable(h.subscribe(function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()},c.onError.bind(c),function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()}))},function(a){f.dispose(),c.onError(a),e=!1,g++},function(){f.dispose(),e&&c.onNext(d),c.onCompleted(),e=!1,g++});return new bc(h,f)})},Gc.skipLastWithTime=function(a,b){nb(b)||(b=uc);var c=this;return new wd(function(d){var e=[];return c.subscribe(function(c){var f=b.now();for(e.push({interval:f,value:c});e.length>0&&f-e[0].interval>=a;)d.onNext(e.shift().value)},d.onError.bind(d),function(){for(var c=b.now();e.length>0&&c-e[0].interval>=a;)d.onNext(e.shift().value);d.onCompleted()})})},Gc.takeLastWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now();e.length>0;){var f=e.shift();c-f.interval<=a&&d.onNext(f.value)}d.onCompleted()})})},Gc.takeLastBufferWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now(),f=[];e.length>0;){var g=e.shift();c-g.interval<=a&&f.push(g.value)}d.onNext(f),d.onCompleted()})})},Gc.takeWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){return new bc(b.scheduleWithRelative(a,d.onCompleted.bind(d)),c.subscribe(d))})},Gc.skipWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=!1;return new bc(b.scheduleWithRelative(a,function(){e=!0}),c.subscribe(function(a){e&&d.onNext(a)},d.onError.bind(d),d.onCompleted.bind(d)))})},Gc.skipUntilWithTime=function(a,b){nb(b)||(b=uc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(e){var f=!1;return new bc(b[d](a,function(){f=!0}),c.subscribe(function(a){f&&e.onNext(a)},e.onError.bind(e),e.onCompleted.bind(e)))})},Gc.takeUntilWithTime=function(a,b){nb(b)||(b=uc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(e){return new bc(b[d](a,e.onCompleted.bind(e)),c.subscribe(e))})},Gc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new wd(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})},Gc.exclusive=function(){var a=this;return new wd(function(b){var c=!1,d=!1,e=new gc,f=new bc;return f.add(e),e.setDisposable(a.subscribe(function(a){if(!c){c=!0,tb(a)&&(a=Nc(a));var e=new gc;f.add(e),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){f.remove(e),c=!1,d&&1===f.length&&b.onCompleted()}))}},b.onError.bind(b),function(){d=!0,c||1!==f.length||b.onCompleted()})),f})},Gc.exclusiveMap=function(a,b){var c=this;return new wd(function(d){var e=0,f=!1,g=!0,h=new gc,i=new bc;return i.add(h),h.setDisposable(c.subscribe(function(c){f||(f=!0,innerSubscription=new gc,i.add(innerSubscription),tb(c)&&(c=Nc(c)),innerSubscription.setDisposable(c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),function(){i.remove(innerSubscription),f=!1,g&&1===i.length&&d.onCompleted()})))},d.onError.bind(d),function(){g=!0,1!==i.length||f||d.onCompleted()})),i})},lb.VirtualTimeScheduler=function(a){function b(){throw new Error("Not implemented")}function c(){return this.toDateTimeOffset(this.clock)}function d(a,b){return this.scheduleAbsoluteWithState(a,this.clock,b)}function e(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b),c)}function f(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b-this.now()),c)}function g(a,b){return b(),fc}function h(b,g){this.clock=b,this.comparer=g,this.isEnabled=!1,this.queue=new _b(1024),a.call(this,c,d,e,f)}Yb(h,a);var i=h.prototype;return i.add=b,i.toDateTimeOffset=b,i.toRelative=b,i.schedulePeriodicWithState=function(a,b,c){var d=new nc(this,a,b,c);return d.start()},i.scheduleRelativeWithState=function(a,b,c){var d=this.add(this.clock,b);return this.scheduleAbsoluteWithState(a,d,c)},i.scheduleRelative=function(a,b){return this.scheduleRelativeWithState(b,a,g)},i.start=function(){if(!this.isEnabled){this.isEnabled=!0;do{var a=this.getNext();null!==a?(this.comparer(a.dueTime,this.clock)>0&&(this.clock=a.dueTime),a.invoke()):this.isEnabled=!1}while(this.isEnabled)}},i.stop=function(){this.isEnabled=!1},i.advanceTo=function(a){var b=this.comparer(this.clock,a);if(this.comparer(this.clock,a)>0)throw new Error(xb);if(0!==b&&!this.isEnabled){this.isEnabled=!0;do{var c=this.getNext();null!==c&&this.comparer(c.dueTime,a)<=0?(this.comparer(c.dueTime,this.clock)>0&&(this.clock=c.dueTime),c.invoke()):this.isEnabled=!1}while(this.isEnabled);this.clock=a}},i.advanceBy=function(a){var b=this.add(this.clock,a),c=this.comparer(this.clock,b);if(c>0)throw new Error(xb);0!==c&&this.advanceTo(b)},i.sleep=function(a){var b=this.add(this.clock,a);if(this.comparer(this.clock,b)>=0)throw new Error(xb);this.clock=b},i.getNext=function(){for(;this.queue.length>0;){var a=this.queue.peek();if(!a.isCancelled())return a;this.queue.dequeue()}return null},i.scheduleAbsolute=function(a,b){return this.scheduleAbsoluteWithState(b,a,g)},i.scheduleAbsoluteWithState=function(a,b,c){function d(a,b){return e.queue.remove(f),c(a,b)}var e=this,f=new jc(this,a,d,b,this.comparer);return this.queue.enqueue(f),f.disposable},h}(kc),lb.HistoricalScheduler=function(a){function b(b,c){var d=null==b?0:b,e=c||rb;a.call(this,d,e)}Yb(b,a);var c=b.prototype;return c.add=function(a,b){return a+b},c.toDateTimeOffset=function(a){return new Date(a).getTime()},c.toRelative=function(a){return a},b}(lb.VirtualTimeScheduler);var wd=lb.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?ec(a):fc}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new xd(a);return pc.scheduleRequired()?pc.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return Yb(c,a),c}(Mc),xd=function(a){function b(b){a.call(this),this.observer=b,this.m=new gc}Yb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Hc),yd=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new wd(function(a){return new bc(e.getDisposable(),d.subscribe(a))}):d}return Yb(c,a),c}(Mc),zd=lb.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),fc):(a.onCompleted(),fc):(this.observers.push(a),new ld(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Bd(a,b)},d}(Mc),Ad=lb.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new ld(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),fc}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(Mc),Bd=lb.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Yb(b,a),Zb(b.prototype,Ec,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(Mc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(gb.Rx=lb,define(function(){return lb})):hb&&ib?jb?(ib.exports=lb).Rx=lb:hb.Rx=lb:gb.Rx=lb}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(yb)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;Vb.nonEnumArgs&&a.length&&h(a)&&(a=Xb.call(a));var d=Vb.enumPrototypes&&"function"==typeof a,e=Vb.enumErrorProps&&(a===Pb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(Vb.nonEnumShadows&&a!==Qb){var g=a.constructor,i=-1,j=Tb.length;if(a===(g&&g.prototype))var k=a===stringProto?Lb:a===Pb?Gb:Mb.call(a),l=Ub[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Xb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&gb.isFinite(a)}function o(b){return b[zb]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>Qc?Qc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new wd(function(c){var d=new gc,e=new hc;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}tb(f)&&(f=Nc(f)),d=new gc,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new wd(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return tb(f)&&(f=Nc(f)),(Array.isArray(f)||o(f))&&(f=Rc(f)),f}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return tb(f)&&(f=Nc(f)),(Array.isArray(f)||o(f))&&(f=Rc(f)),f}).mergeObservable()}function y(a,b,c){return new wd(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function z(a){if(0===a.length)throw new Error(wb);return a[0]}function A(a,b,c){return new wd(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function B(a,b,c,d){if(0>b)throw new Error(xb);return new wd(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(xb))})})}function C(a,b,c){return new wd(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(wb))})})}function D(a,b,c){return new wd(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(wb))})})}function E(a,b,c){return new wd(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(wb))})})}function F(b,c,d,e){return new wd(function(f){var g=0;return b.subscribe(function(a){var h;try{h=c.call(d,a,g,b)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:a),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:a),f.onCompleted()})})}function G(a,b){return Array.isArray(a)?H.call(b,a):L(a)?bd(a.call(b)):M(a)?bd(a):K(a)?I(a):tb(a)?J(a):typeof a===_c?a:c(a)||Array.isArray(a)?H.call(b,a):a}function H(a){var b=this;return function(c){function d(a,d){if(!e)try{if(a=G(a,b),typeof a!==_c)return h[d]=a,--g||c(null,h);a.call(b,function(a,b){if(!e){if(a)return e=!0,c(a);h[d]=b,--g||c(null,h)}})}catch(f){e=!0,c(f)}}var e,f=Object.keys(a),g=f.length,h=new a.constructor;if(!g)return void uc.schedule(function(){c(null,h)});for(var i=0,j=f.length;j>i;i++)d(a[f[i]],f[i])}}function I(a){return function(b){var c,d=!1;a.subscribe(function(a){c=a,d=!0},b,function(){d&&b(null,c)})}}function J(a){return function(b){a.then(function(a){b(null,a)},b)}}function K(a){return a&&typeof a.subscribe===_c}function L(a){return a&&a.constructor&&"GeneratorFunction"===a.constructor.name}function M(a){return a&&typeof a.next===_c&&typeof a[ad]===_c}function c(a){return a&&a.constructor===Object}function N(a){a&&uc.schedule(function(){throw a})}function O(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),ec(function(){a.removeEventListener(b,c,!1)});throw new Error("No listener found")}function P(a,b,c){var d=new bc;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(P(a.item(e),b,c));else a&&d.add(O(a,b,c));return d}function Q(a,b,c){return new wd(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(ob))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new bc(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}function R(a,b){return a.groupJoin(this,b,Pc,function(a,b){return b})}function S(a){var b=this;return new wd(function(c){var d=new zd,e=new bc,f=new ic(e);return c.onNext($b(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),tb(a)&&(a=Nc(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new zd,c.onNext($b(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f})}function T(a){var b=this;return new wd(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}tb(b)&&(b=Nc(b));var i=new gc;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(mb,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new zd,c.onNext($b(h,g)),d()}))}var e=new hc,f=new bc(e),g=new ic(f),h=new zd;return c.onNext($b(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g})}function U(b,c){return new Bc(function(){return new Ac(function(){return b()?{done:!1,value:c}:{done:!0,value:a}})})}function V(a){this.patterns=a}function W(a,b){this.expression=a,this.selector=b}function X(a,b,c){var d=a.get(b);if(!d){var e=new td(b,c);return a.set(b,e),e}return d}function Y(a,b,c){this.joinObserverArray=a,this.onNext=b,this.onCompleted=c,this.joinObservers=new sd;for(var d=0,e=this.joinObserverArray.length;e>d;d++){var f=this.joinObserverArray[d];this.joinObservers.set(f,f)}}function Z(a,b){return new wd(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function $(a,b,c){return new wd(function(d){var e=0,f=a,g=lc(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function _(a,b){return new wd(function(c){return b.scheduleWithRelative(lc(a),function(){c.onNext(0),c.onCompleted()})})}function ab(a,b,c){return a===b?new wd(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):Oc(function(){return $(c.now()+a,b,c)})}function bb(a,b,c){return new wd(function(d){var e,f=!1,g=new hc,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new gc,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new bc(e,g)})}function db(a,b,c){return Oc(function(){return bb(a,b-c.now(),c)})}function eb(a,b){return new wd(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new bc(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}var fb={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},gb=fb[typeof window]&&window||this,hb=fb[typeof exports]&&exports&&!exports.nodeType&&exports,ib=fb[typeof module]&&module&&!module.nodeType&&module,jb=ib&&ib.exports===hb&&hb,kb=fb[typeof global]&&global;!kb||kb.global!==kb&&kb.window!==kb||(gb=kb);var lb={internals:{},config:{Promise:gb.Promise},helpers:{}},mb=lb.helpers.noop=function(){},nb=(lb.helpers.notDefined=function(a){return"undefined"==typeof a},lb.helpers.isScheduler=function(a){return a instanceof lb.Scheduler}),ob=lb.helpers.identity=function(a){return a},pb=(lb.helpers.pluck=function(a){return function(b){return b[a]}},lb.helpers.just=function(a){return function(){return a}},lb.helpers.defaultNow=Date.now),qb=lb.helpers.defaultComparer=function(a,b){return Wb(a,b)},rb=lb.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},sb=(lb.helpers.defaultKeySerializer=function(a){return a.toString()},lb.helpers.defaultError=function(a){throw a}),tb=lb.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},ub=(lb.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},lb.helpers.not=function(a){return!a}),vb=lb.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Mb.call(a)}),a}(),wb="Sequence contains no elements.",xb="Argument out of range",yb="Object has been disposed",zb="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";gb.Set&&"function"==typeof(new gb.Set)["@@iterator"]&&(zb="@@iterator");var Ab=lb.doneEnumerator={done:!0,value:a};lb.iterator=zb;var Bb,Cb="[object Arguments]",Db="[object Array]",Eb="[object Boolean]",Fb="[object Date]",Gb="[object Error]",Hb="[object Function]",Ib="[object Number]",Jb="[object Object]",Kb="[object RegExp]",Lb="[object String]",Mb=Object.prototype.toString,Nb=Object.prototype.hasOwnProperty,Ob=Mb.call(arguments)==Cb,Pb=Error.prototype,Qb=Object.prototype,Rb=Qb.propertyIsEnumerable;try{Bb=!(Mb.call(document)==Jb&&!({toString:0}+""))}catch(Sb){Bb=!0}var Tb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ub={};Ub[Db]=Ub[Fb]=Ub[Ib]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Ub[Eb]=Ub[Lb]={constructor:!0,toString:!0,valueOf:!0},Ub[Gb]=Ub[Hb]=Ub[Kb]={constructor:!0,toString:!0},Ub[Jb]={constructor:!0};var Vb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Vb.enumErrorProps=Rb.call(Pb,"message")||Rb.call(Pb,"name"),Vb.enumPrototypes=Rb.call(a,"prototype"),Vb.nonEnumArgs=0!=c,Vb.nonEnumShadows=!/valueOf/.test(b)}(1),Ob||(h=function(a){return a&&"object"==typeof a?Nb.call(a,"callee"):!1});var Wb=lb.internals.isEqual=function(a,b){return i(a,b,[],[])},Xb=Array.prototype.slice,Yb=({}.hasOwnProperty,this.inherits=lb.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),Zb=lb.internals.addProperties=function(a){for(var b=Xb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},$b=lb.internals.addRef=function(a,b){return new wd(function(c){return new bc(b.getDisposable(),a.subscribe(c))})};l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var _b=lb.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},ac=_b.prototype;ac.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},ac.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},ac.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},cc.toArray=function(){return this.disposables.slice(0)};var dc=lb.Disposable=function(a){this.isDisposed=!1,this.action=a||mb};dc.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var ec=dc.create=function(a){return new dc(a)},fc=dc.empty={dispose:mb},gc=lb.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),hc=lb.SerialDisposable=gc,ic=lb.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?fc:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var jc=lb.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||rb,this.disposable=new gc};jc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},jc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},jc.prototype.isCancelled=function(){return this.disposable.isDisposed},jc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var kc=lb.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),fc}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=pb,a.normalize=function(a){return 0>a&&(a=0),a},a}(),lc=kc.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new bc,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),fc});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new bc,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),fc});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(kc.prototype),function(){kc.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},kc.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof gb.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=gb.setInterval(function(){d=c(d)},b);return ec(function(){gb.clearInterval(e)})}}(kc.prototype),function(a){a.catchError=a["catch"]=function(a){return new vc(this,a)}}(kc.prototype);var mc,nc=lb.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new gc;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),oc=kc.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=lc(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new kc(pb,a,b,c)}(),pc=kc.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-kc.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+kc.normalize(c),g=new jc(this,b,d,f);if(e)e.enqueue(g);else{e=new _b(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new kc(pb,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),qc=mb,rc=function(){var a,b=mb;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!gb.setTimeout)throw new Error("No concurrency detected!");a=gb.setTimeout,b=gb.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),sc=rc.setTimeout,tc=rc.clearTimeout;!function(){function a(){if(!gb.postMessage||gb.importScripts)return!1;var a=!1,b=gb.onmessage;return gb.onmessage=function(){a=!0},gb.postMessage("","*"),gb.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(Mb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=kb&&jb&&kb.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=kb&&jb&&kb.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))mc=process.nextTick;else if("function"==typeof d)mc=d,qc=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;gb.addEventListener?gb.addEventListener("message",b,!1):gb.attachEvent("onmessage",b,!1),mc=function(a){var b=h++;g[b]=a,gb.postMessage(f+b,"*")}}else if(gb.MessageChannel){var i=new gb.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},mc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in gb&&"onreadystatechange"in gb.document.createElement("script")?mc=function(a){var b=gb.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},gb.document.documentElement.appendChild(b)}:(mc=function(a){return sc(a,0)},qc=tc)}();var uc=kc.timeout=function(){function a(a,b){var c=this,d=new gc,e=mc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new bc(d,ec(function(){qc(e)}))}function b(a,b,c){var d=this,e=kc.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new gc,g=sc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new bc(f,ec(function(){tc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new kc(pb,a,b,c)}(),vc=function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Yb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return fc}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new gc;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(kc),wc=lb.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return nb(a)||(a=oc),new wd(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),xc=wc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new wc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),yc=wc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new wc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),zc=wc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new wc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Ac=lb.internals.Enumerator=function(a){this._next=a};Ac.prototype.next=function(){return this._next()},Ac.prototype[zb]=function(){return this};var Bc=lb.internals.Enumerable=function(a){this._iterator=a};Bc.prototype[zb]=function(){return this._iterator()},Bc.prototype.concat=function(){var a=this;return new wd(function(b){var c;try{c=a[zb]()}catch(d){return void b.onError()}var e,f=new hc,g=oc.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;tb(h)&&(h=Nc(h));var i=new gc;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new bc(f,g,ec(function(){e=!0}))})},Bc.prototype.catchException=function(){var a=this;return new wd(function(b){var c;try{c=a[zb]()}catch(d){return void b.onError()}var e,f,g=new hc,h=oc.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;tb(i)&&(i=Nc(i));var j=new gc;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new bc(g,h,ec(function(){e=!0}))})};var Cc=Bc.repeat=function(a,b){return null==b&&(b=-1),new Bc(function(){var c=b;return new Ac(function(){return 0===c?Ab:(c>0&&c--,{done:!1,value:a})})})},Dc=Bc.of=function(a,b,c){return b||(b=ob),new Bc(function(){var d=-1;return new Ac(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Hc),Lc=function(a){function b(){a.apply(this,arguments)}return Yb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Kc),Mc=lb.Observable=function(){function a(a){this._subscribe=a}return Gc=a.prototype,Gc.subscribe=Gc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Fc(a,b,c))},Gc.subscribeOnNext=function(a,b){return this._subscribe(Fc(2===arguments.length?function(c){a.call(b,c)}:a))},Gc.subscribeOnError=function(a,b){return this._subscribe(Fc(null,2===arguments.length?function(c){a.call(b,c)}:a))},Gc.subscribeOnCompleted=function(a,b){return this._subscribe(Fc(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Gc.observeOn=function(a){var b=this;return new wd(function(c){return b.subscribe(new Lc(a,c))})},Gc.subscribeOn=function(a){var b=this;return new wd(function(c){var d=new gc,e=new hc;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var Nc=Mc.fromPromise=function(a){return Oc(function(){var b=new lb.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Gc.toPromise=function(a){if(a||(a=lb.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Gc.toArray=function(){var a=this;return new wd(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},Mc.create=Mc.createWithDisposable=function(a){return new wd(a)};var Oc=Mc.defer=function(a){return new wd(function(b){var c;try{c=a()}catch(d){return Vc(d).subscribe(b)}return tb(c)&&(c=Nc(c)),c.subscribe(b)})},Pc=Mc.empty=function(a){return nb(a)||(a=oc),new wd(function(b){return a.schedule(function(){b.onCompleted()})})},Qc=Math.pow(2,53)-1,Rc=Mc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return nb(d)||(d=pc),new wd(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[zb]():null,j=0; +return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},Sc=Mc.fromArray=function(a,b){return nb(b)||(b=pc),new wd(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};Mc.generate=function(a,b,c,d,e){return nb(e)||(e=pc),new wd(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})},Mc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Sc(b)};var Tc=(Mc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return Sc(c,a)},Mc.never=function(){return new wd(function(){return fc})});Mc.range=function(a,b,c){return nb(c)||(c=pc),new wd(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},Mc.repeat=function(a,b,c){return nb(c)||(c=pc),Uc(a,c).repeat(null==b?-1:b)};var Uc=Mc["return"]=Mc.returnValue=Mc.just=function(a,b){return nb(b)||(b=oc),new wd(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},Vc=Mc["throw"]=Mc.throwException=Mc.throwError=function(a,b){return nb(b)||(b=oc),new wd(function(c){return b.schedule(function(){c.onError(a)})})};Mc.using=function(a,b){return new wd(function(c){var d,e,f=fc;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new bc(Vc(g).subscribe(c),f)}return new bc(e.subscribe(c),f)})},Gc.amb=function(a){var b=this;return new wd(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new gc,j=new gc;return tb(a)&&(a=Nc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new bc(i,j)})},Mc.amb=function(){function a(a,b){return a.amb(b)}for(var b=Tc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Gc["catch"]=Gc.catchError=Gc.catchException=function(a){return"function"==typeof a?s(this,a):Wc([this,a])};var Wc=Mc.catchException=Mc.catchError=Mc["catch"]=function(){return Dc(j(arguments,0)).catchException()};Gc.combineLatest=function(){var a=Xb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),Xc.apply(this,a)};var Xc=Mc.combineLatest=function(){var a=Xb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new wd(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(ob))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(ob)&&c.onCompleted()}function e(a){j[a]=!0,j.every(ob)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new gc;tb(f)&&(f=Nc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new bc(m)})};Gc.concat=function(){var a=Xb.call(arguments,0);return a.unshift(this),Yc.apply(this,a)};var Yc=Mc.concat=function(){return Dc(j(arguments,0)).concat()};Gc.concatObservable=Gc.concatAll=function(){return this.merge(1)},Gc.merge=function(a){if("number"!=typeof a)return Zc(this,a);var b=this;return new wd(function(c){function d(a){var b=new gc;f.add(b),tb(a)&&(a=Nc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new bc,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var Zc=Mc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=Xb.call(arguments,1)):(a=oc,b=Xb.call(arguments,0)):(a=oc,b=Xb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),Sc(b,a).mergeObservable()};Gc.mergeObservable=Gc.mergeAll=function(){var a=this;return new wd(function(b){var c=new bc,d=!1,e=new gc;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new gc;c.add(e),tb(a)&&(a=Nc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Gc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return $c([this,a])};var $c=Mc.onErrorResumeNext=function(){var a=j(arguments,0);return new wd(function(b){var c=0,d=new hc,e=oc.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(ob)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new gc;tb(c)&&(c=Nc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new bc(j)})},Mc.zip=function(){var a=Xb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},Mc.zipArray=function(){var a=j(arguments,0);return new wd(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(ob))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(ob)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new gc,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new bc(h);return j.add(ec(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Gc.asObservable=function(){return new wd(this.subscribe.bind(this))},Gc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Gc.dematerialize=function(){var a=this;return new wd(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.distinctUntilChanged=function(a,b){var c=this;return a||(a=ob),b||(b=qb),new wd(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Gc["do"]=Gc.doAction=Gc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new wd(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Gc.doOnNext=Gc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Gc.doOnError=Gc.tapOnError=function(a,b){return this.tap(mb,2===arguments.length?function(c){a.call(b,c)}:a)},Gc.doOnCompleted=Gc.tapOnCompleted=function(a,b){return this.tap(mb,null,2===arguments.length?function(){a.call(b)}:a)},Gc["finally"]=Gc.finallyAction=function(a){var b=this;return new wd(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return ec(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Gc.ignoreElements=function(){var a=this;return new wd(function(b){return a.subscribe(mb,b.onError.bind(b),b.onCompleted.bind(b))})},Gc.materialize=function(){var a=this;return new wd(function(b){return a.subscribe(function(a){b.onNext(xc(a))},function(a){b.onNext(yc(a)),b.onCompleted()},function(){b.onNext(zc()),b.onCompleted()})})},Gc.repeat=function(a){return Cc(this,a).concat()},Gc.retry=function(a){return Cc(this,a).catchException()},Gc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new wd(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Gc.skipLast=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Gc.startWith=function(){var a,b,c=0;return arguments.length&&nb(arguments[0])?(b=arguments[0],c=1):b=oc,a=Xb.call(arguments,c),Dc([Sc(a,b),this]).concat()},Gc.takeLast=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Gc.takeLastBuffer=function(a){var b=this;return new wd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Gc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(xb);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(xb);return new wd(function(d){function e(){var a=new zd;i.push(a),d.onNext($b(a,g))}var f=new gc,g=new ic(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Gc.selectConcat=Gc.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Gc.concatMapObserver=Gc.selectConcatObserver=function(a,b,c,d){var e=this;return new wd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}tb(a)&&(a=Nc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Gc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new wd(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Gc.distinct=function(a,b){var c=this;return b||(b=qb),new wd(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.groupBy=function(a,b,c){return this.groupByUntil(a,b,Tc,c)},Gc.groupByUntil=function(a,b,c,d){var e=this;return b||(b=ob),d||(d=qb),new wd(function(f){function g(a){return function(b){b.onError(a)}}var h=new pd(0,d),i=new bc,j=new ic(i);return i.add(e.subscribe(function(d){var e;try{e=a(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}var l=!1,m=h.tryGetValue(e);if(m||(m=new zd,h.set(e,m),l=!0),l){var n=new yd(e,m,j),o=new yd(e,m);try{duration=c(o)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}f.onNext(n);var p=new gc;i.add(p);var q=function(){h.remove(e)&&m.onCompleted(),i.remove(p)};p.setDisposable(duration.take(1).subscribe(mb,function(a){h.getValues().forEach(g(a)),f.onError(a)},q))}var r;try{r=b(d)}catch(k){return h.getValues().forEach(g(k)),void f.onError(k)}m.onNext(r)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),j})},Gc.select=Gc.map=function(a,b){var c=this;return new wd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.pluck=function(a){return this.map(function(b){return b[a]})},Gc.selectMany=Gc.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return tb(e)&&(e=Nc(e)),(Array.isArray(e)||o(e))&&(e=Rc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Gc.flatMapObserver=Gc.selectManyObserver=function(a,b,c,d){var e=this;return new wd(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}tb(c)&&(c=Nc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}tb(a)&&(a=Nc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Gc.selectSwitch=Gc.flatMapLatest=Gc.switchMap=function(a,b){return this.select(a,b).switchLatest()},Gc.skip=function(a){if(0>a)throw new Error(xb);var b=this;return new wd(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Gc.skipWhile=function(a,b){var c=this;return new wd(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.take=function(a,b){if(0>a)throw new RangeError(xb);if(0===a)return Pc(b);var c=this;return new wd(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.takeWhile=function(a,b){var c=this;return new wd(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.where=Gc.filter=function(a,b){var c=this;return new wd(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Gc.finalValue=function(){var a=this;return new wd(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(wb))})})},Gc.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},Gc.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},Gc.some=Gc.any=function(a,b){var c=this;return a?c.where(a,b).any():new wd(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},Gc.isEmpty=function(){return this.any().map(ub)},Gc.every=Gc.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},Gc.contains=function(a,b){function c(a,b){return 0===a&&0===b||a===b||isNaN(a)&&isNaN(b)}var d=this;return new wd(function(e){var f=0,g=+b||0;return 1/0===Math.abs(g)&&(g=0),0>g?(e.onNext(!1),e.onCompleted(),fc):d.subscribe(function(b){f++>=g&&c(b,a)&&(e.onNext(!0),e.onCompleted())},e.onError.bind(e),function(){e.onNext(!1),e.onCompleted()})})},Gc.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},Gc.indexOf=function(a,b){var c=this;return new wd(function(d){var e=0,f=+b||0;return 1/0===Math.abs(f)&&(f=0),0>f?(d.onNext(-1),d.onCompleted(),fc):c.subscribe(function(b){e>=f&&b===a&&(d.onNext(e),d.onCompleted()),e++},d.onError.bind(d),function(){d.onNext(-1),d.onCompleted()})})},Gc.sum=function(a,b){return a&&vb(a)?this.map(a,b).sum():this.aggregate(0,function(a,b){return a+b})},Gc.minBy=function(a,b){return b||(b=rb),y(this,a,function(a,c){return-1*b(a,c)})},Gc.min=function(a){return this.minBy(ob,a).select(function(a){return z(a)})},Gc.maxBy=function(a,b){return b||(b=rb),y(this,a,b)},Gc.max=function(a){return this.maxBy(ob,a).select(function(a){return z(a)})},Gc.average=function(a,b){return a&&vb(a)?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().map(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},Gc.sequenceEqual=function(a,b){var c=this;return b||(b=qb),Array.isArray(a)?A(c,a,b):new wd(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});tb(a)&&(a=Nc(a));var j=a.subscribe(function(a){var c;if(g.length>0){var f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new bc(i,j)})},Gc.elementAt=function(a){return B(this,a,!1)},Gc.elementAtOrDefault=function(a,b){return B(this,a,!0,b)},Gc.single=function(a,b){return a&&vb(a)?this.where(a,b).single():C(this,!1)},Gc.singleOrDefault=function(a,b,c){return a&&vb(a)?this.where(a,c).singleOrDefault(null,b):C(this,!0,b)},Gc.first=function(a,b){return a?this.where(a,b).first():D(this,!1)},Gc.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):D(this,!0,b)},Gc.last=function(a,b){return a?this.where(a,b).last():E(this,!1)},Gc.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):E(this,!0,b)},Gc.find=function(a,b){return F(this,a,b,!1)},Gc.findIndex=function(a,b){return F(this,a,b,!0)},gb.Set&&(Gc.toSet=function(){var a=this;return new wd(function(b){var c=new gb.Set;return a.subscribe(c.add.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})}),gb.Map&&(Gc.toMap=function(a,b){var c=this;return new wd(function(d){var e=new gb.Map;return c.subscribe(function(c){var f;try{f=a(c)}catch(g){return void d.onError(g)}var h=c;if(b)try{h=b(c)}catch(g){return void d.onError(g)}e.set(f,h)},d.onError.bind(d),function(){d.onNext(e),d.onCompleted()})})});var _c="function",ad="throw",bd=lb.spawn=function(a){var b=L(a);return function(c){function d(a,b){uc.schedule(c.bind(f,a,b))}function e(a,b){var c;if(arguments.length>2&&(b=Xb.call(arguments,1)),a)try{c=g[ad](a)}catch(h){return d(h)}if(!a)try{c=g.next(b)}catch(h){return d(h)}if(c.done)return d(null,c.value);if(c.value=G(c.value,f),typeof c.value!==_c)e(new TypeError("Rx.spawn only supports a function, Promise, Observable, Object or Array."));else{var i=!1;try{c.value.call(f,function(){i||(i=!0,e.apply(f,arguments))})}catch(h){uc.schedule(function(){i||(i=!0,e.call(f,h))})}}}var f=this,g=a;if(b){var h=Xb.call(arguments),i=h.length,j=i&&typeof h[i-1]===_c;c=j?h.pop():N,g=a.apply(this,h)}else c=c||N;e()}};lb.denodify=function(a){return function(){var b,c,d,e=Xb.call(arguments);return e.push(function(){b=arguments,d&&!c&&(c=!0,cb.apply(this,b))}),a.apply(this,e),function(a){d=a,b&&!c&&(c=!0,a.apply(this,b))}}},Mc.start=function(a,b,c){return cd(a,b,c)()};var cd=Mc.toAsync=function(a,b,c){return nb(c)||(c=uc),function(){var d=arguments,e=new Ad;return c.schedule(function(){var c;try{c=a.apply(b,d)}catch(f){return void e.onError(f)}e.onNext(c),e.onCompleted()}),e.asObservable()}};Mc.fromCallback=function(a,b,c){return function(){var d=Xb.call(arguments,0);return new wd(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},Mc.fromNodeCallback=function(a,b,c){return function(){var d=Xb.call(arguments,0);return new wd(function(e){function f(a){if(a)return void e.onError(a);var b=Xb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},lb.config.useNativeEvents=!1;var dd=gb.angular&&angular.element?angular.element:gb.jQuery?gb.jQuery:gb.Zepto?gb.Zepto:null,ed=!!gb.Ember&&"function"==typeof gb.Ember.addListener,fd=!!gb.Backbone&&!!gb.Backbone.Marionette;Mc.fromEvent=function(a,b,c){if(a.addListener)return gd(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!lb.config.useNativeEvents){if(fd)return gd(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(ed)return gd(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(dd){var d=dd(a);return gd(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new wd(function(d){return P(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var gd=Mc.fromEventPattern=function(a,b,c){return new wd(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return ec(function(){b&&b(e,f)})}).publish().refCount()};Mc.startAsync=function(a){var b;try{b=a()}catch(c){return Vc(c)}return Nc(b)};var hd=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=fc,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=fc)});return new bc(c,d,e)}function c(c,d){this.source=c,this.controller=new zd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return Yb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(Mc);Gc.pausable=function(a){return new hd(this,a)};var id=function(b){function c(b){var c,d=[],e=Q(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new zd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return Yb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(Mc);Gc.pausableBuffered=function(a){return new id(this,a)},Gc.controlled=function(a){return null==a&&(a=!0),new jd(this,a)};var jd=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new kd(d),this.source=c.multicast(this.subject).refCount()}return Yb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(Mc),kd=lb.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new zd,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=fc,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=fc}return Yb(d,a),Zb(d.prototype,Ec,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=fc):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=fc),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?fc:(this.requestedCount=a,this.requestedDisposable=ec(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=fc},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(Mc);Gc.multicast=function(a,b){var c=this;return"function"==typeof a?new wd(function(d){var e=c.multicast(a());return new bc(b(e).subscribe(d),e.connect())}):new od(c,a)},Gc.publish=function(a){return a&&vb(a)?this.multicast(function(){return new zd},a):this.multicast(new zd)},Gc.share=function(){return this.publish().refCount()},Gc.publishLast=function(a){return a&&vb(a)?this.multicast(function(){return new Ad},a):this.multicast(new Ad)},Gc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new md(b)},a):this.multicast(new md(a))},Gc.shareValue=function(a){return this.publishValue(a).refCount()},Gc.replay=function(a,b,c,d){return a&&vb(a)?this.multicast(function(){return new nd(b,c,d)},a):this.multicast(new nd(b,c,d))},Gc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var ld=function(a,b){this.subject=a,this.observer=b};ld.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var md=lb.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new ld(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),fc}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(Mc),nd=lb.ReplaySubject=function(a){function c(a,b){return ec(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new Kc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||pc,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return Yb(e,a),Zb(e.prototype,Ec,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(Mc),od=lb.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new bc(f.subscribe(c),ec(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return Yb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new wd(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(Mc),pd=function(){function b(a){if(a&!1)return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function c(a){var c,d,e;for(c=0;c=a)return d;for(e=1|a;ec;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new Error("out of range");a>0&&this._initialize(a),this.comparer=b||qb,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return d(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return d(b.toString());if("function"==typeof b.valueOf){var c=b.valueOf();if("number"==typeof c)return e(c);if("string"==typeof b)return d(c) +}if(b.getHashCode)return b.getHashCode();var f=17*a++;return b.getHashCode=function(){return f},f}}(),l=g.prototype;return l._initialize=function(a){var b,d=c(a);for(this.buckets=new Array(d),this.entries=new Array(d),b=0;d>b;b++)this.buckets[b]=-1,this.entries[b]=f();this.freeList=-1},l.add=function(a,b){return this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=c(2*this.size),b=new Array(a);for(e=0;ee;++e)d[e]=f();for(var g=0;g=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(b){var c=this._findEntry(b);return c>=0?this.entries[c].value:a},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();Gc.join=function(a,b,c,d){var e=this;return new wd(function(f){var g=new bc,h=!1,i=!1,j=0,k=0,l=new pd,m=new pd;return g.add(e.subscribe(function(a){var c=j++,e=new gc;l.add(c,a),g.add(e);var i,k=function(){l.remove(c)&&0===l.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(n){return void f.onError(n)}e.setDisposable(i.take(1).subscribe(mb,f.onError.bind(f),k)),m.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(i||0===l.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=k++,e=new gc;m.add(b,a),g.add(e);var h,j=function(){m.remove(b)&&0===m.count()&&i&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(n){return void f.onError(n)}e.setDisposable(h.take(1).subscribe(mb,f.onError.bind(f),j)),l.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){i=!0,(h||0===m.count())&&f.onCompleted()})),g})},Gc.groupJoin=function(a,b,c,d){var e=this;return new wd(function(f){function g(a){return function(b){b.onError(a)}}var h=new bc,i=new ic(h),j=new pd,k=new pd,l=0,m=0;return h.add(e.subscribe(function(a){var c=new zd,e=l++;j.add(e,c);var m;try{m=d(a,$b(c,i))}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}f.onNext(m),k.getValues().forEach(function(a){c.onNext(a)});var o=new gc;h.add(o);var p,q=function(){j.remove(e)&&c.onCompleted(),h.remove(o)};try{p=b(a)}catch(n){return j.getValues().forEach(g(n)),void f.onError(n)}o.setDisposable(p.take(1).subscribe(mb,function(a){j.getValues().forEach(g(a)),f.onError(a)},q))},function(a){j.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=m++;k.add(b,a);var d=new gc;h.add(d);var e,i=function(){k.remove(b),h.remove(d)};try{e=c(a)}catch(l){return j.getValues().forEach(g(l)),void f.onError(l)}d.setDisposable(e.take(1).subscribe(mb,function(a){j.getValues().forEach(g(a)),f.onError(a)},i)),j.getValues().forEach(function(b){b.onNext(a)})},function(a){j.getValues().forEach(g(a)),f.onError(a)})),i})},Gc.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},Gc.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?S.call(this,a):"function"==typeof a?T.call(this,a):R.call(this,a,b)},Gc.pairwise=function(){var a=this;return new wd(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))})},Gc.partition=function(a,b){var c=this.publish().refCount();return[c.filter(a,b),c.filter(function(c,d,e){return!a.call(b,c,d,e)})]},Gc.letBind=Gc.let=function(a){return a(this)},Mc["if"]=Mc.ifThen=function(a,b,c){return Oc(function(){return c||(c=Pc()),tb(b)&&(b=Nc(b)),tb(c)&&(c=Nc(c)),"function"==typeof c.now&&(c=Pc(c)),a()?b:c})},Mc["for"]=Mc.forIn=function(a,b,c){return Dc(a,b,c).concat()};var qd=Mc["while"]=Mc.whileDo=function(a,b){return tb(b)&&(b=Nc(b)),U(a,b).concat()};Gc.doWhile=function(a){return Yc([this,qd(a,this)])},Mc["case"]=Mc.switchCase=function(a,b,c){return Oc(function(){tb(c)&&(c=Nc(c)),c||(c=Pc()),"function"==typeof c.now&&(c=Pc(c));var d=b[a()];return tb(d)&&(d=Nc(d)),d||c})},Gc.expand=function(a,b){nb(b)||(b=oc);var c=this;return new wd(function(d){var e=[],f=new hc,g=new bc(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new gc;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g})},Mc.forkJoin=function(){var a=j(arguments,0);return new wd(function(b){var c=a.length;if(0===c)return b.onCompleted(),fc;for(var d=new bc,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];tb(j)&&(j=Nc(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},Gc.forkJoin=function(a,b){var c=this;return new wd(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new gc,l=new gc;return tb(a)&&(a=Nc(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new bc(k,l)})},Gc.manySelect=function(a,b){nb(b)||(b=oc);var c=this;return Oc(function(){var d;return c.map(function(a){var b=new rd(a);return d&&d.onNext(a),d=b,b}).tap(mb,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).map(a)})};var rd=function(a){function b(a){var b=this,c=new bc;return c.add(pc.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeObservable().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new Ad}return Yb(c,a),Zb(c.prototype,Ec,{onCompleted:function(){this.onNext(Mc.empty())},onError:function(a){this.onNext(Mc.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(Mc),sd=gb.Map||function(){function b(){this._keys=[],this._values=[]}return b.prototype.get=function(b){var c=this._keys.indexOf(b);return-1!==c?this._values[c]:a},b.prototype.set=function(a,b){var c=this._keys.indexOf(a);-1!==c&&(this._values[c]=b),this._values[this._keys.push(a)-1]=b},b.prototype.forEach=function(a,b){for(var c=0,d=this._keys.length;d>c;c++)a.call(b,this._values[c],this._keys[c])},b}();V.prototype.and=function(a){return new V(this.patterns.concat(a))},V.prototype.thenDo=function(a){return new W(this,a)},W.prototype.activate=function(a,b,c){for(var d=this,e=[],f=0,g=this.expression.patterns.length;g>f;f++)e.push(X(a,this.expression.patterns[f],b.onError.bind(b)));var h=new Y(e,function(){var a;try{a=d.selector.apply(d,arguments)}catch(c){return void b.onError(c)}b.onNext(a)},function(){for(var a=0,b=e.length;b>a;a++)e[a].removeActivePlan(h);c(h)});for(f=0,g=e.length;g>f;f++)e[f].addActivePlan(h);return h},Y.prototype.dequeue=function(){this.joinObservers.forEach(function(a){a.queue.shift()})},Y.prototype.match=function(){var a,b,c=!0;for(a=0,b=this.joinObserverArray.length;b>a;a++)if(0===this.joinObserverArray[a].queue.length){c=!1;break}if(c){var d=[],e=!1;for(a=0,b=this.joinObserverArray.length;b>a;a++)d.push(this.joinObserverArray[a].queue[0]),"C"===this.joinObserverArray[a].queue[0].kind&&(e=!0);if(e)this.onCompleted();else{this.dequeue();var f=[];for(a=0,b=d.length;ac;c++)b[c].match()}},c.error=mb,c.completed=mb,c.addActivePlan=function(a){this.activePlans.push(a)},c.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))},c.removeActivePlan=function(a){this.activePlans.splice(this.activePlans.indexOf(a),1),0===this.activePlans.length&&this.dispose()},c.dispose=function(){a.prototype.dispose.call(this),this.isDisposed||(this.isDisposed=!0,this.subscription.dispose())},b}(Hc);Gc.and=function(a){return new V([this,a])},Gc.thenDo=function(a){return new V([this]).thenDo(a)},Mc.when=function(){var a=j(arguments,0);return new wd(function(b){var c=[],d=new sd,e=Fc(b.onNext.bind(b),function(a){d.forEach(function(b){b.onError(a)}),b.onError(a)},b.onCompleted.bind(b));try{for(var f=0,g=a.length;g>f;f++)c.push(a[f].activate(d,e,function(a){var d=c.indexOf(a);c.splice(d,1),0===c.length&&b.onCompleted()}))}catch(h){Vc(h).subscribe(b)}var i=new bc;return d.forEach(function(a){a.subscribe(),i.add(a)}),i})};var ud=Mc.interval=function(a,b){return ab(a,a,nb(b)?b:uc)},vd=Mc.timer=function(b,c,d){var e;return nb(d)||(d=uc),c!==a&&"number"==typeof c?e=c:nb(c)&&(d=c),b instanceof Date&&e===a?Z(b.getTime(),d):b instanceof Date&&e!==a?(e=c,$(b.getTime(),e,d)):e===a?_(b,d):ab(b,e,d)};Gc.delay=function(a,b){return nb(b)||(b=uc),a instanceof Date?db(this,a.getTime(),b):bb(this,a,b)},Gc.throttle=function(a,b){nb(b)||(b=uc);var c=this;return new wd(function(d){var e,f=new hc,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new gc;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new bc(i,f)})},Gc.windowWithTime=function(a,b,c){var d,e=this;return null==b&&(d=a),nb(c)||(c=uc),"number"==typeof b?d=b:nb(b)&&(d=a,c=b),new wd(function(b){function f(){var a=new gc,e=!1,g=!1;l.setDisposable(a),j===i?(e=!0,g=!0):i>j?e=!0:g=!0;var n=e?j:i,o=n-m;m=n,e&&(j+=d),g&&(i+=d),a.setDisposable(c.scheduleWithRelative(o,function(){if(g){var a=new zd;k.push(a),b.onNext($b(a,h))}e&&k.shift().onCompleted(),f()}))}var g,h,i=d,j=a,k=[],l=new hc,m=0;return g=new bc(l),h=new ic(g),k.push(new zd),b.onNext($b(k[0],h)),f(),g.add(e.subscribe(function(a){for(var b=0,c=k.length;c>b;b++)k[b].onNext(a)},function(a){for(var c=0,d=k.length;d>c;c++)k[c].onError(a);b.onError(a)},function(){for(var a=0,c=k.length;c>a;a++)k[a].onCompleted();b.onCompleted()})),h})},Gc.windowWithTimeOrCount=function(a,b,c){var d=this;return nb(c)||(c=uc),new wd(function(e){function f(b){var d=new gc;g.setDisposable(d),d.setDisposable(c.scheduleWithRelative(a,function(){if(b===k){j=0;var a=++k;l.onCompleted(),l=new zd,e.onNext($b(l,i)),f(a)}}))}var g=new hc,h=new bc(g),i=new ic(h),j=0,k=0,l=new zd;return e.onNext($b(l,i)),f(0),h.add(d.subscribe(function(a){var c=0,d=!1;l.onNext(a),++j===b&&(d=!0,j=0,c=++k,l.onCompleted(),l=new zd,e.onNext($b(l,i))),d&&f(c)},function(a){l.onError(a),e.onError(a)},function(){l.onCompleted(),e.onCompleted()})),i})},Gc.bufferWithTime=function(){return this.windowWithTime.apply(this,arguments).selectMany(function(a){return a.toArray()})},Gc.bufferWithTimeOrCount=function(a,b,c){return this.windowWithTimeOrCount(a,b,c).selectMany(function(a){return a.toArray()})},Gc.timeInterval=function(a){var b=this;return nb(a)||(a=uc),Oc(function(){var c=a.now();return b.map(function(b){var d=a.now(),e=d-c;return c=d,{value:b,interval:e}})})},Gc.timestamp=function(a){return nb(a)||(a=uc),this.map(function(b){return{value:b,timestamp:a.now()}})},Gc.sample=function(a,b){return nb(b)||(b=uc),"number"==typeof a?eb(this,ud(a,b)):eb(this,a)},Gc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Vc(new Error(b||"Timeout"))),nb(c)||(c=uc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(tb(b)&&(b=Nc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new gc,j=new hc,k=!1,l=new hc;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new bc(j,l)})},Mc.generateWithAbsoluteTime=function(a,b,c,d,e,f){return nb(f)||(f=uc),new wd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithAbsolute(f.now(),function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Mc.generateWithRelativeTime=function(a,b,c,d,e,f){return nb(f)||(f=uc),new wd(function(g){var h,i,j=!0,k=!1,l=a;return f.scheduleRecursiveWithRelative(0,function(a){k&&g.onNext(h);try{j?j=!1:l=c(l),k=b(l),k&&(h=d(l),i=e(l))}catch(f){return void g.onError(f)}k?a(i):g.onCompleted()})})},Gc.delaySubscription=function(a,b){return this.delayWithSelector(vd(a,nb(b)?b:uc),Pc)},Gc.delayWithSelector=function(a,b){var c,d,e=this;return"function"==typeof a?d=a:(c=a,d=b),new wd(function(a){var b=new bc,f=!1,g=function(){f&&0===b.length&&a.onCompleted()},h=new hc,i=function(){h.setDisposable(e.subscribe(function(c){var e;try{e=d(c)}catch(f){return void a.onError(f)}var h=new gc;b.add(h),h.setDisposable(e.subscribe(function(){a.onNext(c),b.remove(h),g()},a.onError.bind(a),function(){a.onNext(c),b.remove(h),g()}))},a.onError.bind(a),function(){f=!0,h.dispose(),g()}))};return c?h.setDisposable(c.subscribe(function(){i()},a.onError.bind(a),function(){i()})):i(),new bc(h,b)})},Gc.timeoutWithSelector=function(a,b,c){1===arguments.length&&(b=a,a=Tc()),c||(c=Vc(new Error("Timeout")));var d=this;return new wd(function(e){function f(a){function b(){return k===d}var d=k,f=new gc;i.setDisposable(f),f.setDisposable(a.subscribe(function(){b()&&h.setDisposable(c.subscribe(e)),f.dispose()},function(a){b()&&e.onError(a)},function(){b()&&h.setDisposable(c.subscribe(e))}))}function g(){var a=!l;return a&&k++,a}var h=new hc,i=new hc,j=new gc;h.setDisposable(j);var k=0,l=!1;return f(a),j.setDisposable(d.subscribe(function(a){if(g()){e.onNext(a);var c;try{c=b(a)}catch(d){return void e.onError(d)}f(tb(c)?Nc(c):c)}},function(a){g()&&e.onError(a)},function(){g()&&e.onCompleted()})),new bc(h,i)})},Gc.throttleWithSelector=function(a){var b=this;return new wd(function(c){var d,e=!1,f=new hc,g=0,h=b.subscribe(function(b){var h;try{h=a(b)}catch(i){return void c.onError(i)}tb(h)&&(h=Nc(h)),e=!0,d=b,g++;var j=g,k=new gc;f.setDisposable(k),k.setDisposable(h.subscribe(function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()},c.onError.bind(c),function(){e&&g===j&&c.onNext(d),e=!1,k.dispose()}))},function(a){f.dispose(),c.onError(a),e=!1,g++},function(){f.dispose(),e&&c.onNext(d),c.onCompleted(),e=!1,g++});return new bc(h,f)})},Gc.skipLastWithTime=function(a,b){nb(b)||(b=uc);var c=this;return new wd(function(d){var e=[];return c.subscribe(function(c){var f=b.now();for(e.push({interval:f,value:c});e.length>0&&f-e[0].interval>=a;)d.onNext(e.shift().value)},d.onError.bind(d),function(){for(var c=b.now();e.length>0&&c-e[0].interval>=a;)d.onNext(e.shift().value);d.onCompleted()})})},Gc.takeLastWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now();e.length>0;){var f=e.shift();c-f.interval<=a&&d.onNext(f.value)}d.onCompleted()})})},Gc.takeLastBufferWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=[];return c.subscribe(function(c){var d=b.now();for(e.push({interval:d,value:c});e.length>0&&d-e[0].interval>=a;)e.shift()},d.onError.bind(d),function(){for(var c=b.now(),f=[];e.length>0;){var g=e.shift();c-g.interval<=a&&f.push(g.value)}d.onNext(f),d.onCompleted()})})},Gc.takeWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){return new bc(b.scheduleWithRelative(a,d.onCompleted.bind(d)),c.subscribe(d))})},Gc.skipWithTime=function(a,b){var c=this;return nb(b)||(b=uc),new wd(function(d){var e=!1;return new bc(b.scheduleWithRelative(a,function(){e=!0}),c.subscribe(function(a){e&&d.onNext(a)},d.onError.bind(d),d.onCompleted.bind(d)))})},Gc.skipUntilWithTime=function(a,b){nb(b)||(b=uc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(e){var f=!1;return new bc(b[d](a,function(){f=!0}),c.subscribe(function(a){f&&e.onNext(a)},e.onError.bind(e),e.onCompleted.bind(e)))})},Gc.takeUntilWithTime=function(a,b){nb(b)||(b=uc);var c=this,d=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new wd(function(e){return new bc(b[d](a,e.onCompleted.bind(e)),c.subscribe(e))})},Gc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new wd(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})},Gc.exclusive=function(){var a=this;return new wd(function(b){var c=!1,d=!1,e=new gc,f=new bc;return f.add(e),e.setDisposable(a.subscribe(function(a){if(!c){c=!0,tb(a)&&(a=Nc(a));var e=new gc;f.add(e),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){f.remove(e),c=!1,d&&1===f.length&&b.onCompleted()}))}},b.onError.bind(b),function(){d=!0,c||1!==f.length||b.onCompleted()})),f})},Gc.exclusiveMap=function(a,b){var c=this;return new wd(function(d){var e=0,f=!1,g=!0,h=new gc,i=new bc;return i.add(h),h.setDisposable(c.subscribe(function(c){f||(f=!0,innerSubscription=new gc,i.add(innerSubscription),tb(c)&&(c=Nc(c)),innerSubscription.setDisposable(c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),function(){i.remove(innerSubscription),f=!1,g&&1===i.length&&d.onCompleted()})))},d.onError.bind(d),function(){g=!0,1!==i.length||f||d.onCompleted()})),i})},lb.VirtualTimeScheduler=function(a){function b(){throw new Error("Not implemented")}function c(){return this.toDateTimeOffset(this.clock)}function d(a,b){return this.scheduleAbsoluteWithState(a,this.clock,b)}function e(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b),c)}function f(a,b,c){return this.scheduleRelativeWithState(a,this.toRelative(b-this.now()),c)}function g(a,b){return b(),fc}function h(b,g){this.clock=b,this.comparer=g,this.isEnabled=!1,this.queue=new _b(1024),a.call(this,c,d,e,f)}Yb(h,a);var i=h.prototype;return i.add=b,i.toDateTimeOffset=b,i.toRelative=b,i.schedulePeriodicWithState=function(a,b,c){var d=new nc(this,a,b,c);return d.start()},i.scheduleRelativeWithState=function(a,b,c){var d=this.add(this.clock,b);return this.scheduleAbsoluteWithState(a,d,c)},i.scheduleRelative=function(a,b){return this.scheduleRelativeWithState(b,a,g)},i.start=function(){if(!this.isEnabled){this.isEnabled=!0;do{var a=this.getNext();null!==a?(this.comparer(a.dueTime,this.clock)>0&&(this.clock=a.dueTime),a.invoke()):this.isEnabled=!1}while(this.isEnabled)}},i.stop=function(){this.isEnabled=!1},i.advanceTo=function(a){var b=this.comparer(this.clock,a);if(this.comparer(this.clock,a)>0)throw new Error(xb);if(0!==b&&!this.isEnabled){this.isEnabled=!0;do{var c=this.getNext();null!==c&&this.comparer(c.dueTime,a)<=0?(this.comparer(c.dueTime,this.clock)>0&&(this.clock=c.dueTime),c.invoke()):this.isEnabled=!1}while(this.isEnabled);this.clock=a}},i.advanceBy=function(a){var b=this.add(this.clock,a),c=this.comparer(this.clock,b);if(c>0)throw new Error(xb);0!==c&&this.advanceTo(b)},i.sleep=function(a){var b=this.add(this.clock,a);if(this.comparer(this.clock,b)>=0)throw new Error(xb);this.clock=b},i.getNext=function(){for(;this.queue.length>0;){var a=this.queue.peek();if(!a.isCancelled())return a;this.queue.dequeue()}return null},i.scheduleAbsolute=function(a,b){return this.scheduleAbsoluteWithState(b,a,g)},i.scheduleAbsoluteWithState=function(a,b,c){function d(a,b){return e.queue.remove(f),c(a,b)}var e=this,f=new jc(this,a,d,b,this.comparer);return this.queue.enqueue(f),f.disposable},h}(kc),lb.HistoricalScheduler=function(a){function b(b,c){var d=null==b?0:b,e=c||rb;a.call(this,d,e)}Yb(b,a);var c=b.prototype;return c.add=function(a,b){return a+b},c.toDateTimeOffset=function(a){return new Date(a).getTime()},c.toRelative=function(a){return a},b}(lb.VirtualTimeScheduler);var wd=lb.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?ec(a):fc}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new xd(a);return pc.scheduleRequired()?pc.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return Yb(c,a),c}(Mc),xd=function(a){function b(b){a.call(this),this.observer=b,this.m=new gc}Yb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Hc),yd=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new wd(function(a){return new bc(e.getDisposable(),d.subscribe(a))}):d}return Yb(c,a),c}(Mc),zd=lb.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),fc):(a.onCompleted(),fc):(this.observers.push(a),new ld(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Bd(a,b)},d}(Mc),Ad=lb.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new ld(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),fc}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Yb(d,a),Zb(d.prototype,Ec,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(Mc),Bd=lb.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Yb(b,a),Zb(b.prototype,Ec,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(Mc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(gb.Rx=lb,define(function(){return lb})):hb&&ib?jb?(ib.exports=lb).Rx=lb:hb.Rx=lb:gb.Rx=lb}).call(this); //# sourceMappingURL=rx.all.map \ No newline at end of file diff --git a/dist/rx.compat.js b/dist/rx.compat.js index 286f0abc9..c42e437bc 100644 --- a/dist/rx.compat.js +++ b/dist/rx.compat.js @@ -1562,14 +1562,14 @@ if (!Array.prototype.forEach) { function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1578,17 +1578,17 @@ if (!Array.prototype.forEach) { */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -2340,7 +2340,13 @@ if (!Array.prototype.forEach) { if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -3632,7 +3638,7 @@ if (!Array.prototype.forEach) { function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3659,7 +3665,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -3843,7 +3849,7 @@ if (!Array.prototype.forEach) { function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3870,7 +3876,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.compat.map b/dist/rx.compat.map index 7a70ed0a8..fb5f1215c 100644 --- a/dist/rx.compat.map +++ b/dist/rx.compat.map @@ -1 +1 @@ -{"version":3,"file":"rx.compat.min.js","sources":["rx.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","identity","defaultNow","pluck","property","just","Date","now","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","p","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","CompositeDisposable","getDisposable","Function","that","target","bound","F","self","apply","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","every","fun","split","thisp","filter","predicate","results","t","arg","indexOf","searchElement","n","Number","Infinity","max","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","disposables","CompositeDisposablePrototype","add","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","disposableCreate","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","RefCountDisposable","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","schedule","ScheduledItem","state","dueTime","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelative","scheduleWithRelativeAndState","scheduleWithAbsolute","scheduleWithAbsoluteAndState","normalize","timeSpan","normalizeTime","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","isDone","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelative","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsolute","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","period","schedulePeriodicWithState","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","immediateScheduler","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","q","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","addEventListener","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","kind","hasValue","accept","observerOrOnNext","_acceptObservable","_accept","toObservable","notification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","next","_next","Enumerable","_iterator","cancelable","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","shift","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","m","fromPromise","promise","observableDefer","subject","AsyncSubject","toPromise","promiseCtor","resolve","reject","v","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","condition","iterate","hasResult","observableNever","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","res","hasValueAll","values","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","materialize","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","createWindow","Subject","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","defaultValue","found","retValue","distinct","hashSet","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","running","take","RangeError","observable","takeWhile","shouldRun","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.compat.min.js","sources":["rx.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","identity","defaultNow","pluck","property","just","Date","now","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","p","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","CompositeDisposable","getDisposable","Function","that","target","bound","F","self","apply","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","every","fun","split","thisp","filter","predicate","results","t","arg","indexOf","searchElement","n","Number","Infinity","max","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","disposables","CompositeDisposablePrototype","add","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","disposableCreate","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","RefCountDisposable","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","schedule","ScheduledItem","state","dueTime","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelative","scheduleWithRelativeAndState","scheduleWithAbsolute","scheduleWithAbsoluteAndState","normalize","timeSpan","normalizeTime","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","isDone","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelative","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsolute","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","period","schedulePeriodicWithState","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","immediateScheduler","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","q","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","addEventListener","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","kind","hasValue","accept","observerOrOnNext","_acceptObservable","_accept","toObservable","notification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","next","_next","Enumerable","_iterator","cancelable","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","shift","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","m","fromPromise","promise","observableDefer","subject","AsyncSubject","toPromise","promiseCtor","resolve","reject","v","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","condition","iterate","hasResult","observableNever","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","res","hasValueAll","values","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","materialize","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","createWindow","Subject","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","defaultValue","found","retValue","distinct","hashSet","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","running","take","RangeError","observable","takeWhile","shouldRun","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.compat.min.js b/dist/rx.compat.min.js index d4a2297b7..570a596c4 100644 --- a/dist/rx.compat.min.js +++ b/dist/rx.compat.min.js @@ -1,4 +1,4 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(P)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;kb.nonEnumArgs&&a.length&&h(a)&&(a=mb.call(a));var d=kb.enumPrototypes&&"function"==typeof a,e=kb.enumErrorProps&&(a===eb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(kb.nonEnumShadows&&a!==fb){var g=a.constructor,i=-1,j=ib.length;if(a===(g&&g.prototype))var k=a===stringProto?ab:a===eb?X:bb.call(a),l=jb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:mb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&z.isFinite(a)}function o(b){return b[Q]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>fc?fc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new qc(function(c){var d=new zb,e=new Ab;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}M(f)&&(f=cc(f)),d=new zb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new qc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e}).mergeObservable()}var y={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},z=y[typeof window]&&window||this,A=y[typeof exports]&&exports&&!exports.nodeType&&exports,B=y[typeof module]&&module&&!module.nodeType&&module,C=B&&B.exports===A&&A,D=y[typeof global]&&global;!D||D.global!==D&&D.window!==D||(z=D);var E={internals:{},config:{Promise:z.Promise},helpers:{}},F=E.helpers.noop=function(){},G=(E.helpers.notDefined=function(a){return"undefined"==typeof a},E.helpers.isScheduler=function(a){return a instanceof E.Scheduler}),H=E.helpers.identity=function(a){return a},I=(E.helpers.pluck=function(a){return function(b){return b[a]}},E.helpers.just=function(a){return function(){return a}},E.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),J=E.helpers.defaultComparer=function(a,b){return lb(a,b)},K=E.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},L=(E.helpers.defaultKeySerializer=function(a){return a.toString()},E.helpers.defaultError=function(a){throw a}),M=E.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},N=(E.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},E.helpers.not=function(a){return!a},E.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==bb.call(a)}),a}()),O="Argument out of range",P="Object has been disposed",Q="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";z.Set&&"function"==typeof(new z.Set)["@@iterator"]&&(Q="@@iterator");var R=E.doneEnumerator={done:!0,value:a};E.iterator=Q;var S,T="[object Arguments]",U="[object Array]",V="[object Boolean]",W="[object Date]",X="[object Error]",Y="[object Function]",Z="[object Number]",$="[object Object]",_="[object RegExp]",ab="[object String]",bb=Object.prototype.toString,cb=Object.prototype.hasOwnProperty,db=bb.call(arguments)==T,eb=Error.prototype,fb=Object.prototype,gb=fb.propertyIsEnumerable;try{S=!(bb.call(document)==$&&!({toString:0}+""))}catch(hb){S=!0}var ib=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],jb={};jb[U]=jb[W]=jb[Z]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},jb[V]=jb[ab]={constructor:!0,toString:!0,valueOf:!0},jb[X]=jb[Y]=jb[_]={constructor:!0,toString:!0},jb[$]={constructor:!0};var kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);kb.enumErrorProps=gb.call(eb,"message")||gb.call(eb,"name"),kb.enumPrototypes=gb.call(a,"prototype"),kb.nonEnumArgs=0!=c,kb.nonEnumShadows=!/valueOf/.test(b)}(1),db||(h=function(a){return a&&"object"==typeof a?cb.call(a,"callee"):!1});var lb=E.internals.isEqual=function(a,b){return i(a,b,[],[])},mb=Array.prototype.slice,nb=({}.hasOwnProperty,this.inherits=E.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),ob=E.internals.addProperties=function(a){for(var b=mb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},pb=E.internals.addRef=function(a,b){return new qc(function(c){return new ub(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=mb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(mb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(mb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var qb=Object("a"),rb="a"!=qb[0]||!(0 in qb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=rb&&{}.toString.call(this)==ab?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=Y)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=rb&&{}.toString.call(this)==ab?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=Y)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==U}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var sb=E.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},tb=sb.prototype;tb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},tb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},tb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},vb.toArray=function(){return this.disposables.slice(0)};var wb=E.Disposable=function(a){this.isDisposed=!1,this.action=a||F};wb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var xb=wb.create=function(a){return new wb(a)},yb=wb.empty={dispose:F},zb=E.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Ab=E.SerialDisposable=zb,Bb=E.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?yb:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var Cb=E.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||K,this.disposable=new zb};Cb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Cb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Cb.prototype.isCancelled=function(){return this.disposable.isDisposed},Cb.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Db=E.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),yb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=I,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Eb=Db.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new ub,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),yb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new ub,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),yb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Db.prototype),function(){Db.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Db.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof z.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=z.setInterval(function(){d=c(d)},b);return xb(function(){z.clearInterval(e)})}}(Db.prototype),function(a){a.catchError=a["catch"]=function(a){return new Mb(this,a)}}(Db.prototype);var Fb,Gb=(E.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new zb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),Db.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Eb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Db(I,a,b,c)}()),Hb=Db.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Db.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Db.normalize(c),g=new Cb(this,b,d,f);if(e)e.enqueue(g);else{e=new sb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Db(I,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Ib=F,Jb=function(){var a,b=F;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!z.setTimeout)throw new Error("No concurrency detected!");a=z.setTimeout,b=z.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Kb=Jb.setTimeout,Lb=Jb.clearTimeout;!function(){function a(){if(!z.postMessage||z.importScripts)return!1;var a=!1,b=z.onmessage;return z.onmessage=function(){a=!0},z.postMessage("","*"),z.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(bb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=D&&C&&D.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=D&&C&&D.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Fb=process.nextTick;else if("function"==typeof d)Fb=d,Ib=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;z.addEventListener?z.addEventListener("message",b,!1):z.attachEvent("onmessage",b,!1),Fb=function(a){var b=h++;g[b]=a,z.postMessage(f+b,"*")}}else if(z.MessageChannel){var i=new z.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Fb=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in z&&"onreadystatechange"in z.document.createElement("script")?Fb=function(a){var b=z.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},z.document.documentElement.appendChild(b)}:(Fb=function(a){return Kb(a,0)},Ib=Lb)}();var Mb=(Db.timeout=function(){function a(a,b){var c=this,d=new zb,e=Fb(function(){d.isDisposed||d.setDisposable(b(c,a))});return new ub(d,xb(function(){Ib(e)}))}function b(a,b,c){var d=this,e=Db.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new zb,g=Kb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new ub(f,xb(function(){Lb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Db(I,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return nb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return yb}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new zb;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(Db)),Nb=E.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return G(a)||(a=Gb),new qc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ob=Nb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Nb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Pb=Nb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Nb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Qb=Nb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Nb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Rb=E.internals.Enumerator=function(a){this._next=a};Rb.prototype.next=function(){return this._next()},Rb.prototype[Q]=function(){return this};var Sb=E.internals.Enumerable=function(a){this._iterator=a};Sb.prototype[Q]=function(){return this._iterator()},Sb.prototype.concat=function(){var a=this;return new qc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f=new Ab,g=Gb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;M(h)&&(h=cc(h));var i=new zb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new ub(f,g,xb(function(){e=!0}))})},Sb.prototype.catchException=function(){var a=this;return new qc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f,g=new Ab,h=Gb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;M(i)&&(i=cc(i));var j=new zb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new ub(g,h,xb(function(){e=!0}))})};var Tb=Sb.repeat=function(a,b){return null==b&&(b=-1),new Sb(function(){var c=b;return new Rb(function(){return 0===c?R:(c>0&&c--,{done:!1,value:a})})})},Ub=Sb.of=function(a,b,c){return b||(b=H),new Sb(function(){var d=-1;return new Rb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Yb),ac=function(a){function b(){a.apply(this,arguments)}return nb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(_b),bc=E.Observable=function(){function a(a){this._subscribe=a}return Xb=a.prototype,Xb.subscribe=Xb.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Wb(a,b,c))},Xb.subscribeOnNext=function(a,b){return this._subscribe(Wb(2===arguments.length?function(c){a.call(b,c)}:a))},Xb.subscribeOnError=function(a,b){return this._subscribe(Wb(null,2===arguments.length?function(c){a.call(b,c)}:a))},Xb.subscribeOnCompleted=function(a,b){return this._subscribe(Wb(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Xb.observeOn=function(a){var b=this;return new qc(function(c){return b.subscribe(new ac(a,c))})},Xb.subscribeOn=function(a){var b=this;return new qc(function(c){var d=new zb,e=new Ab;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var cc=bc.fromPromise=function(a){return dc(function(){var b=new E.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Xb.toPromise=function(a){if(a||(a=E.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Xb.toArray=function(){var a=this;return new qc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},bc.create=bc.createWithDisposable=function(a){return new qc(a)};var dc=bc.defer=function(a){return new qc(function(b){var c;try{c=a()}catch(d){return kc(d).subscribe(b)}return M(c)&&(c=cc(c)),c.subscribe(b)})},ec=bc.empty=function(a){return G(a)||(a=Gb),new qc(function(b){return a.schedule(function(){b.onCompleted()})})},fc=Math.pow(2,53)-1,gc=bc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return G(d)||(d=Hb),new qc(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Q]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},hc=bc.fromArray=function(a,b){return G(b)||(b=Hb),new qc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};bc.generate=function(a,b,c,d,e){return G(e)||(e=Hb),new qc(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var ic=bc.never=function(){return new qc(function(){return yb})};bc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return hc(b)};bc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return hc(c,a)};bc.range=function(a,b,c){return G(c)||(c=Hb),new qc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},bc.repeat=function(a,b,c){return G(c)||(c=Hb),jc(a,c).repeat(null==b?-1:b)};var jc=bc["return"]=bc.returnValue=bc.just=function(a,b){return G(b)||(b=Gb),new qc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},kc=bc["throw"]=bc.throwException=bc.throwError=function(a,b){return G(b)||(b=Gb),new qc(function(c){return b.schedule(function(){c.onError(a)})})};bc.using=function(a,b){return new qc(function(c){var d,e,f=yb;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new ub(kc(g).subscribe(c),f)}return new ub(e.subscribe(c),f)})},Xb.amb=function(a){var b=this;return new qc(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new zb,j=new zb;return M(a)&&(a=cc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new ub(i,j)})},bc.amb=function(){function a(a,b){return a.amb(b)}for(var b=ic(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Xb["catch"]=Xb.catchError=Xb.catchException=function(a){return"function"==typeof a?s(this,a):lc([this,a])};var lc=bc.catchException=bc.catchError=bc["catch"]=function(){return Ub(j(arguments,0)).catchException()};Xb.combineLatest=function(){var a=mb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),mc.apply(this,a)};var mc=bc.combineLatest=function(){var a=mb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new qc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(H))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(H)&&c.onCompleted()}function e(a){j[a]=!0,j.every(H)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new zb;M(f)&&(f=cc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new ub(m)})};Xb.concat=function(){var a=mb.call(arguments,0);return a.unshift(this),nc.apply(this,a)};var nc=bc.concat=function(){return Ub(j(arguments,0)).concat()};Xb.concatObservable=Xb.concatAll=function(){return this.merge(1)},Xb.merge=function(a){if("number"!=typeof a)return oc(this,a);var b=this;return new qc(function(c){function d(a){var b=new zb;f.add(b),M(a)&&(a=cc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new ub,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var oc=bc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=mb.call(arguments,1)):(a=Gb,b=mb.call(arguments,0)):(a=Gb,b=mb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),hc(b,a).mergeObservable()};Xb.mergeObservable=Xb.mergeAll=function(){var a=this;return new qc(function(b){var c=new ub,d=!1,e=new zb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new zb;c.add(e),M(a)&&(a=cc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Xb.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return pc([this,a])};var pc=bc.onErrorResumeNext=function(){var a=j(arguments,0);return new qc(function(b){var c=0,d=new Ab,e=Gb.scheduleRecursive(function(e){var f,g; -c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(H)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new zb;M(c)&&(c=cc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new ub(j)})},bc.zip=function(){var a=mb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},bc.zipArray=function(){var a=j(arguments,0);return new qc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(H))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(H)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new zb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new ub(h);return j.add(xb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Xb.asObservable=function(){return new qc(this.subscribe.bind(this))},Xb.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Xb.dematerialize=function(){var a=this;return new qc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Xb.distinctUntilChanged=function(a,b){var c=this;return a||(a=H),b||(b=J),new qc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Xb["do"]=Xb.doAction=Xb.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new qc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Xb.doOnNext=Xb.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Xb.doOnError=Xb.tapOnError=function(a,b){return this.tap(F,2===arguments.length?function(c){a.call(b,c)}:a)},Xb.doOnCompleted=Xb.tapOnCompleted=function(a,b){return this.tap(F,null,2===arguments.length?function(){a.call(b)}:a)},Xb["finally"]=Xb.finallyAction=function(a){var b=this;return new qc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return xb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Xb.ignoreElements=function(){var a=this;return new qc(function(b){return a.subscribe(F,b.onError.bind(b),b.onCompleted.bind(b))})},Xb.materialize=function(){var a=this;return new qc(function(b){return a.subscribe(function(a){b.onNext(Ob(a))},function(a){b.onNext(Pb(a)),b.onCompleted()},function(){b.onNext(Qb()),b.onCompleted()})})},Xb.repeat=function(a){return Tb(this,a).concat()},Xb.retry=function(a){return Tb(this,a).catchException()},Xb.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new qc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Xb.skipLast=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Xb.startWith=function(){var a,b,c=0;return arguments.length&&G(arguments[0])?(b=arguments[0],c=1):b=Gb,a=mb.call(arguments,c),Ub([hc(a,b),this]).concat()},Xb.takeLast=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Xb.takeLastBuffer=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Xb.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(O);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(O);return new qc(function(d){function e(){var a=new tc;i.push(a),d.onNext(pb(a,g))}var f=new zb,g=new Bb(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Xb.selectConcat=Xb.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Xb.concatMapObserver=Xb.selectConcatObserver=function(a,b,c,d){var e=this;return new qc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=cc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Xb.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new qc(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Xb.distinct=function(a,b){var c=this;return b||(b=J),new qc(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.select=Xb.map=function(a,b){var c=this;return new qc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.pluck=function(a){return this.map(function(b){return b[a]})},Xb.selectMany=Xb.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Xb.flatMapObserver=Xb.selectManyObserver=function(a,b,c,d){var e=this;return new qc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=cc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Xb.selectSwitch=Xb.flatMapLatest=Xb.switchMap=function(a,b){return this.select(a,b).switchLatest()},Xb.skip=function(a){if(0>a)throw new Error(O);var b=this;return new qc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Xb.skipWhile=function(a,b){var c=this;return new qc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.take=function(a,b){if(0>a)throw new RangeError(O);if(0===a)return ec(b);var c=this;return new qc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Xb.takeWhile=function(a,b){var c=this;return new qc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.where=Xb.filter=function(a,b){var c=this;return new qc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new qc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var qc=E.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?xb(a):yb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new rc(a);return Hb.scheduleRequired()?Hb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return nb(c,a),c}(bc),rc=function(a){function b(b){a.call(this),this.observer=b,this.m=new zb}nb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Yb),sc=function(a,b){this.subject=a,this.observer=b};sc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var tc=E.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),yb):(a.onCompleted(),yb):(this.observers.push(a),new sc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return nb(d,a),ob(d.prototype,Vb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new uc(a,b)},d}(bc),uc=(E.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new sc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),yb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return nb(d,a),ob(d.prototype,Vb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(bc),E.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return nb(b,a),ob(b.prototype,Vb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(bc));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(z.Rx=E,define(function(){return E})):A&&B?C?(B.exports=E).Rx=E:A.Rx=E:z.Rx=E}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(P)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;kb.nonEnumArgs&&a.length&&h(a)&&(a=mb.call(a));var d=kb.enumPrototypes&&"function"==typeof a,e=kb.enumErrorProps&&(a===eb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(kb.nonEnumShadows&&a!==fb){var g=a.constructor,i=-1,j=ib.length;if(a===(g&&g.prototype))var k=a===stringProto?ab:a===eb?X:bb.call(a),l=jb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:mb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&z.isFinite(a)}function o(b){return b[Q]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>fc?fc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new qc(function(c){var d=new zb,e=new Ab;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}M(f)&&(f=cc(f)),d=new zb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new qc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return M(f)&&(f=cc(f)),(Array.isArray(f)||o(f))&&(f=gc(f)),f}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return M(f)&&(f=cc(f)),(Array.isArray(f)||o(f))&&(f=gc(f)),f}).mergeObservable()}var y={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},z=y[typeof window]&&window||this,A=y[typeof exports]&&exports&&!exports.nodeType&&exports,B=y[typeof module]&&module&&!module.nodeType&&module,C=B&&B.exports===A&&A,D=y[typeof global]&&global;!D||D.global!==D&&D.window!==D||(z=D);var E={internals:{},config:{Promise:z.Promise},helpers:{}},F=E.helpers.noop=function(){},G=(E.helpers.notDefined=function(a){return"undefined"==typeof a},E.helpers.isScheduler=function(a){return a instanceof E.Scheduler}),H=E.helpers.identity=function(a){return a},I=(E.helpers.pluck=function(a){return function(b){return b[a]}},E.helpers.just=function(a){return function(){return a}},E.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),J=E.helpers.defaultComparer=function(a,b){return lb(a,b)},K=E.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},L=(E.helpers.defaultKeySerializer=function(a){return a.toString()},E.helpers.defaultError=function(a){throw a}),M=E.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},N=(E.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},E.helpers.not=function(a){return!a},E.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==bb.call(a)}),a}()),O="Argument out of range",P="Object has been disposed",Q="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";z.Set&&"function"==typeof(new z.Set)["@@iterator"]&&(Q="@@iterator");var R=E.doneEnumerator={done:!0,value:a};E.iterator=Q;var S,T="[object Arguments]",U="[object Array]",V="[object Boolean]",W="[object Date]",X="[object Error]",Y="[object Function]",Z="[object Number]",$="[object Object]",_="[object RegExp]",ab="[object String]",bb=Object.prototype.toString,cb=Object.prototype.hasOwnProperty,db=bb.call(arguments)==T,eb=Error.prototype,fb=Object.prototype,gb=fb.propertyIsEnumerable;try{S=!(bb.call(document)==$&&!({toString:0}+""))}catch(hb){S=!0}var ib=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],jb={};jb[U]=jb[W]=jb[Z]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},jb[V]=jb[ab]={constructor:!0,toString:!0,valueOf:!0},jb[X]=jb[Y]=jb[_]={constructor:!0,toString:!0},jb[$]={constructor:!0};var kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);kb.enumErrorProps=gb.call(eb,"message")||gb.call(eb,"name"),kb.enumPrototypes=gb.call(a,"prototype"),kb.nonEnumArgs=0!=c,kb.nonEnumShadows=!/valueOf/.test(b)}(1),db||(h=function(a){return a&&"object"==typeof a?cb.call(a,"callee"):!1});var lb=E.internals.isEqual=function(a,b){return i(a,b,[],[])},mb=Array.prototype.slice,nb=({}.hasOwnProperty,this.inherits=E.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),ob=E.internals.addProperties=function(a){for(var b=mb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},pb=E.internals.addRef=function(a,b){return new qc(function(c){return new ub(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=mb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(mb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(mb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var qb=Object("a"),rb="a"!=qb[0]||!(0 in qb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=rb&&{}.toString.call(this)==ab?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=Y)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=rb&&{}.toString.call(this)==ab?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=Y)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==U}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var sb=E.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},tb=sb.prototype;tb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},tb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},tb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},vb.toArray=function(){return this.disposables.slice(0)};var wb=E.Disposable=function(a){this.isDisposed=!1,this.action=a||F};wb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var xb=wb.create=function(a){return new wb(a)},yb=wb.empty={dispose:F},zb=E.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Ab=E.SerialDisposable=zb,Bb=E.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?yb:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var Cb=E.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||K,this.disposable=new zb};Cb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Cb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Cb.prototype.isCancelled=function(){return this.disposable.isDisposed},Cb.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Db=E.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),yb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=I,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Eb=Db.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new ub,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),yb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new ub,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),yb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Db.prototype),function(){Db.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Db.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof z.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=z.setInterval(function(){d=c(d)},b);return xb(function(){z.clearInterval(e)})}}(Db.prototype),function(a){a.catchError=a["catch"]=function(a){return new Mb(this,a)}}(Db.prototype);var Fb,Gb=(E.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new zb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),Db.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Eb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Db(I,a,b,c)}()),Hb=Db.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Db.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Db.normalize(c),g=new Cb(this,b,d,f);if(e)e.enqueue(g);else{e=new sb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Db(I,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Ib=F,Jb=function(){var a,b=F;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!z.setTimeout)throw new Error("No concurrency detected!");a=z.setTimeout,b=z.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Kb=Jb.setTimeout,Lb=Jb.clearTimeout;!function(){function a(){if(!z.postMessage||z.importScripts)return!1;var a=!1,b=z.onmessage;return z.onmessage=function(){a=!0},z.postMessage("","*"),z.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(bb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=D&&C&&D.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=D&&C&&D.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Fb=process.nextTick;else if("function"==typeof d)Fb=d,Ib=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;z.addEventListener?z.addEventListener("message",b,!1):z.attachEvent("onmessage",b,!1),Fb=function(a){var b=h++;g[b]=a,z.postMessage(f+b,"*")}}else if(z.MessageChannel){var i=new z.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Fb=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in z&&"onreadystatechange"in z.document.createElement("script")?Fb=function(a){var b=z.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},z.document.documentElement.appendChild(b)}:(Fb=function(a){return Kb(a,0)},Ib=Lb)}();var Mb=(Db.timeout=function(){function a(a,b){var c=this,d=new zb,e=Fb(function(){d.isDisposed||d.setDisposable(b(c,a))});return new ub(d,xb(function(){Ib(e)}))}function b(a,b,c){var d=this,e=Db.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new zb,g=Kb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new ub(f,xb(function(){Lb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Db(I,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return nb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return yb}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new zb;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(Db)),Nb=E.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return G(a)||(a=Gb),new qc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ob=Nb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Nb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Pb=Nb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Nb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Qb=Nb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Nb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Rb=E.internals.Enumerator=function(a){this._next=a};Rb.prototype.next=function(){return this._next()},Rb.prototype[Q]=function(){return this};var Sb=E.internals.Enumerable=function(a){this._iterator=a};Sb.prototype[Q]=function(){return this._iterator()},Sb.prototype.concat=function(){var a=this;return new qc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f=new Ab,g=Gb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;M(h)&&(h=cc(h));var i=new zb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new ub(f,g,xb(function(){e=!0}))})},Sb.prototype.catchException=function(){var a=this;return new qc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f,g=new Ab,h=Gb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;M(i)&&(i=cc(i));var j=new zb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new ub(g,h,xb(function(){e=!0}))})};var Tb=Sb.repeat=function(a,b){return null==b&&(b=-1),new Sb(function(){var c=b;return new Rb(function(){return 0===c?R:(c>0&&c--,{done:!1,value:a})})})},Ub=Sb.of=function(a,b,c){return b||(b=H),new Sb(function(){var d=-1;return new Rb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Yb),ac=function(a){function b(){a.apply(this,arguments)}return nb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(_b),bc=E.Observable=function(){function a(a){this._subscribe=a}return Xb=a.prototype,Xb.subscribe=Xb.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Wb(a,b,c))},Xb.subscribeOnNext=function(a,b){return this._subscribe(Wb(2===arguments.length?function(c){a.call(b,c)}:a))},Xb.subscribeOnError=function(a,b){return this._subscribe(Wb(null,2===arguments.length?function(c){a.call(b,c)}:a))},Xb.subscribeOnCompleted=function(a,b){return this._subscribe(Wb(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Xb.observeOn=function(a){var b=this;return new qc(function(c){return b.subscribe(new ac(a,c))})},Xb.subscribeOn=function(a){var b=this;return new qc(function(c){var d=new zb,e=new Ab;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var cc=bc.fromPromise=function(a){return dc(function(){var b=new E.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Xb.toPromise=function(a){if(a||(a=E.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Xb.toArray=function(){var a=this;return new qc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},bc.create=bc.createWithDisposable=function(a){return new qc(a)};var dc=bc.defer=function(a){return new qc(function(b){var c;try{c=a()}catch(d){return kc(d).subscribe(b)}return M(c)&&(c=cc(c)),c.subscribe(b)})},ec=bc.empty=function(a){return G(a)||(a=Gb),new qc(function(b){return a.schedule(function(){b.onCompleted()})})},fc=Math.pow(2,53)-1,gc=bc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return G(d)||(d=Hb),new qc(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Q]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},hc=bc.fromArray=function(a,b){return G(b)||(b=Hb),new qc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};bc.generate=function(a,b,c,d,e){return G(e)||(e=Hb),new qc(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var ic=bc.never=function(){return new qc(function(){return yb})};bc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return hc(b)};bc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return hc(c,a)};bc.range=function(a,b,c){return G(c)||(c=Hb),new qc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},bc.repeat=function(a,b,c){return G(c)||(c=Hb),jc(a,c).repeat(null==b?-1:b)};var jc=bc["return"]=bc.returnValue=bc.just=function(a,b){return G(b)||(b=Gb),new qc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},kc=bc["throw"]=bc.throwException=bc.throwError=function(a,b){return G(b)||(b=Gb),new qc(function(c){return b.schedule(function(){c.onError(a)})})};bc.using=function(a,b){return new qc(function(c){var d,e,f=yb;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new ub(kc(g).subscribe(c),f)}return new ub(e.subscribe(c),f)})},Xb.amb=function(a){var b=this;return new qc(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new zb,j=new zb;return M(a)&&(a=cc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new ub(i,j)})},bc.amb=function(){function a(a,b){return a.amb(b)}for(var b=ic(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Xb["catch"]=Xb.catchError=Xb.catchException=function(a){return"function"==typeof a?s(this,a):lc([this,a])};var lc=bc.catchException=bc.catchError=bc["catch"]=function(){return Ub(j(arguments,0)).catchException()};Xb.combineLatest=function(){var a=mb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),mc.apply(this,a)};var mc=bc.combineLatest=function(){var a=mb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new qc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(H))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(H)&&c.onCompleted()}function e(a){j[a]=!0,j.every(H)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new zb;M(f)&&(f=cc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new ub(m)})};Xb.concat=function(){var a=mb.call(arguments,0);return a.unshift(this),nc.apply(this,a)};var nc=bc.concat=function(){return Ub(j(arguments,0)).concat()};Xb.concatObservable=Xb.concatAll=function(){return this.merge(1)},Xb.merge=function(a){if("number"!=typeof a)return oc(this,a);var b=this;return new qc(function(c){function d(a){var b=new zb;f.add(b),M(a)&&(a=cc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new ub,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var oc=bc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=mb.call(arguments,1)):(a=Gb,b=mb.call(arguments,0)):(a=Gb,b=mb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),hc(b,a).mergeObservable()};Xb.mergeObservable=Xb.mergeAll=function(){var a=this;return new qc(function(b){var c=new ub,d=!1,e=new zb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new zb;c.add(e),M(a)&&(a=cc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Xb.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return pc([this,a])};var pc=bc.onErrorResumeNext=function(){var a=j(arguments,0); +return new qc(function(b){var c=0,d=new Ab,e=Gb.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(H)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new zb;M(c)&&(c=cc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new ub(j)})},bc.zip=function(){var a=mb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},bc.zipArray=function(){var a=j(arguments,0);return new qc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(H))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(H)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new zb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new ub(h);return j.add(xb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Xb.asObservable=function(){return new qc(this.subscribe.bind(this))},Xb.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Xb.dematerialize=function(){var a=this;return new qc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Xb.distinctUntilChanged=function(a,b){var c=this;return a||(a=H),b||(b=J),new qc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Xb["do"]=Xb.doAction=Xb.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new qc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Xb.doOnNext=Xb.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Xb.doOnError=Xb.tapOnError=function(a,b){return this.tap(F,2===arguments.length?function(c){a.call(b,c)}:a)},Xb.doOnCompleted=Xb.tapOnCompleted=function(a,b){return this.tap(F,null,2===arguments.length?function(){a.call(b)}:a)},Xb["finally"]=Xb.finallyAction=function(a){var b=this;return new qc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return xb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Xb.ignoreElements=function(){var a=this;return new qc(function(b){return a.subscribe(F,b.onError.bind(b),b.onCompleted.bind(b))})},Xb.materialize=function(){var a=this;return new qc(function(b){return a.subscribe(function(a){b.onNext(Ob(a))},function(a){b.onNext(Pb(a)),b.onCompleted()},function(){b.onNext(Qb()),b.onCompleted()})})},Xb.repeat=function(a){return Tb(this,a).concat()},Xb.retry=function(a){return Tb(this,a).catchException()},Xb.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new qc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Xb.skipLast=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Xb.startWith=function(){var a,b,c=0;return arguments.length&&G(arguments[0])?(b=arguments[0],c=1):b=Gb,a=mb.call(arguments,c),Ub([hc(a,b),this]).concat()},Xb.takeLast=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Xb.takeLastBuffer=function(a){var b=this;return new qc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Xb.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(O);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(O);return new qc(function(d){function e(){var a=new tc;i.push(a),d.onNext(pb(a,g))}var f=new zb,g=new Bb(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Xb.selectConcat=Xb.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Xb.concatMapObserver=Xb.selectConcatObserver=function(a,b,c,d){var e=this;return new qc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=cc(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Xb.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new qc(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Xb.distinct=function(a,b){var c=this;return b||(b=J),new qc(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.select=Xb.map=function(a,b){var c=this;return new qc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.pluck=function(a){return this.map(function(b){return b[a]})},Xb.selectMany=Xb.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return M(e)&&(e=cc(e)),(Array.isArray(e)||o(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Xb.flatMapObserver=Xb.selectManyObserver=function(a,b,c,d){var e=this;return new qc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=cc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=cc(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Xb.selectSwitch=Xb.flatMapLatest=Xb.switchMap=function(a,b){return this.select(a,b).switchLatest()},Xb.skip=function(a){if(0>a)throw new Error(O);var b=this;return new qc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Xb.skipWhile=function(a,b){var c=this;return new qc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.take=function(a,b){if(0>a)throw new RangeError(O);if(0===a)return ec(b);var c=this;return new qc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Xb.takeWhile=function(a,b){var c=this;return new qc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.where=Xb.filter=function(a,b){var c=this;return new qc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Xb.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new qc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var qc=E.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?xb(a):yb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new rc(a);return Hb.scheduleRequired()?Hb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return nb(c,a),c}(bc),rc=function(a){function b(b){a.call(this),this.observer=b,this.m=new zb}nb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Yb),sc=function(a,b){this.subject=a,this.observer=b};sc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var tc=E.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),yb):(a.onCompleted(),yb):(this.observers.push(a),new sc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return nb(d,a),ob(d.prototype,Vb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new uc(a,b)},d}(bc),uc=(E.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new sc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),yb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return nb(d,a),ob(d.prototype,Vb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(bc),E.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return nb(b,a),ob(b.prototype,Vb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(bc));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(z.Rx=E,define(function(){return E})):A&&B?C?(B.exports=E).Rx=E:A.Rx=E:z.Rx=E}).call(this); //# sourceMappingURL=rx.compat.map \ No newline at end of file diff --git a/dist/rx.js b/dist/rx.js index bdc9d7c19..3a3bac119 100644 --- a/dist/rx.js +++ b/dist/rx.js @@ -1411,14 +1411,14 @@ function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1427,17 +1427,17 @@ */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -2189,7 +2189,13 @@ if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -3481,7 +3487,7 @@ function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3508,7 +3514,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -3744,7 +3750,7 @@ function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3771,7 +3777,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.lite.compat.js b/dist/rx.lite.compat.js index 8307201f4..a6cd8fc6e 100644 --- a/dist/rx.lite.compat.js +++ b/dist/rx.lite.compat.js @@ -1463,14 +1463,14 @@ if (!Array.prototype.forEach) { function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1479,17 +1479,17 @@ if (!Array.prototype.forEach) { */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -2057,7 +2057,13 @@ if (!Array.prototype.forEach) { if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -3065,7 +3071,7 @@ if (!Array.prototype.forEach) { function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3092,7 +3098,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -3142,7 +3148,7 @@ if (!Array.prototype.forEach) { function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3169,7 +3175,7 @@ if (!Array.prototype.forEach) { * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.lite.compat.map b/dist/rx.lite.compat.map index 64380711d..05d50e9f1 100644 --- a/dist/rx.lite.compat.map +++ b/dist/rx.lite.compat.map @@ -1 +1 @@ -{"version":3,"file":"rx.lite.compat.min.js","sources":["rx.lite.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","flatMap","mergeObservable","fixEvent","event","stopPropagation","cancelBubble","preventDefault","bubbledKeyCode","keyCode","ctrlKey","defaultPrevented","returnValue","modified","target","srcElement","relatedTarget","fromElement","toElement","c","charCode","keyChar","fromCharCode","createListener","element","name","addEventListener","disposableCreate","removeEventListener","attachEvent","innerHandler","detachEvent","createEventListener","el","eventName","disposables","CompositeDisposable","add","item","observableTimerDate","dueTime","scheduler","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","shouldRun","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","hasValue","atEnd","newValue","combineLatestSource","subject","next","values","res","hasValueAll","every","identity","apply","isDone","n","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","getDisposable","Function","that","bound","F","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","fun","split","thisp","filter","predicate","results","t","arg","indexOf","searchElement","Number","Infinity","compareTo","other","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","ScheduledItem","RefCountDisposable","InnerDisposable","disposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","state","comparer","invoke","invokeCore","isCancelled","schedule","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","scheduleMethod","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeoutScheduler","timeout","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","_next","Enumerable","_iterator","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","observerCreate","fromNotifier","observableProto","AbstractObserver","__super__","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","array","never","ofWithScheduler","range","observableReturn","throwException","throwError","catchError","handlerOrSecond","observableCatch","combineLatest","unshift","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","m","innerSubscription","skipUntil","isOpen","rightSubscription","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","selectConcat","selectorResult","i2","select","selectMany","selectSwitch","flatMapLatest","switchMap","skip","remaining","skipWhile","take","RangeError","observable","takeWhile","where","fromCallback","func","context","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","fromPromise","promise","AsyncSubject","toPromise","promiseCtor","resolve","reject","v","startAsync","functionAsync","multicast","subjectOrSubjectSelector","connectable","connect","ConnectableObservable","Subject","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","observableinterval","interval","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","sample","intervalOrSampler","schedulerMethod","createTimer","myId","original","switched","PausableObservable","_super","conn","connection","pausable","pauser","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","createRemovableDisposable","so","_trim","hasError","windowSize","MAX_VALUE","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.lite.compat.min.js","sources":["rx.lite.compat.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","flatMap","mergeObservable","fixEvent","event","stopPropagation","cancelBubble","preventDefault","bubbledKeyCode","keyCode","ctrlKey","defaultPrevented","returnValue","modified","target","srcElement","relatedTarget","fromElement","toElement","c","charCode","keyChar","fromCharCode","createListener","element","name","addEventListener","disposableCreate","removeEventListener","attachEvent","innerHandler","detachEvent","createEventListener","el","eventName","disposables","CompositeDisposable","add","item","observableTimerDate","dueTime","scheduler","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","shouldRun","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","hasValue","atEnd","newValue","combineLatestSource","subject","next","values","res","hasValueAll","every","identity","apply","isDone","n","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","getDisposable","Function","that","bound","F","concat","forEach","T","k","TypeError","O","kValue","boxedString","splitString","fun","split","thisp","filter","predicate","results","t","arg","indexOf","searchElement","Number","Infinity","compareTo","other","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","ScheduledItem","RefCountDisposable","InnerDisposable","disposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","state","comparer","invoke","invokeCore","isCancelled","schedule","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","scheduleMethod","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeoutScheduler","timeout","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","_next","Enumerable","_iterator","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","observerCreate","fromNotifier","observableProto","AbstractObserver","__super__","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","Observable","_subscribe","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","array","never","ofWithScheduler","range","observableReturn","throwException","throwError","catchError","handlerOrSecond","observableCatch","combineLatest","unshift","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","m","innerSubscription","skipUntil","isOpen","rightSubscription","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","selectConcat","selectorResult","i2","select","selectMany","selectSwitch","flatMapLatest","switchMap","skip","remaining","skipWhile","take","RangeError","observable","takeWhile","where","fromCallback","func","context","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","fromPromise","promise","AsyncSubject","toPromise","promiseCtor","resolve","reject","v","startAsync","functionAsync","multicast","subjectOrSubjectSelector","connectable","connect","ConnectableObservable","Subject","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","observableinterval","interval","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","sample","intervalOrSampler","schedulerMethod","createTimer","myId","original","switched","PausableObservable","_super","conn","connection","pausable","pauser","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","createRemovableDisposable","so","_trim","hasError","windowSize","MAX_VALUE","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.lite.compat.min.js b/dist/rx.lite.compat.min.js index df82259f2..a15271620 100644 --- a/dist/rx.lite.compat.min.js +++ b/dist/rx.lite.compat.min.js @@ -1,4 +1,4 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(X)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;sb.nonEnumArgs&&a.length&&h(a)&&(a=ub.call(a));var d=sb.enumPrototypes&&"function"==typeof a,e=sb.enumErrorProps&&(a===mb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(sb.nonEnumShadows&&a!==nb){var g=a.constructor,i=-1,j=qb.length;if(a===(g&&g.prototype))var k=a===stringProto?ib:a===mb?db:jb.call(a),l=rb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:ub.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a){return"number"==typeof a&&H.isFinite(a)}function n(b){return b[Y]!==a}function o(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function p(a){var b=+a.length;return isNaN(b)?0:0!==b&&m(b)?(b=o(b)*Math.floor(Math.abs(b)),0>=b?0:b>ic?ic:b):b}function q(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function r(a,b){return new Cc(function(c){var d=new Gb,e=new Hb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}U(f)&&(f=vc(f)),d=new Gb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function s(a,b){var c=this;return new Cc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function t(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e}).concatAll()}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e}).mergeObservable()}function v(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=H.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function w(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),Eb(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(v(a))};return a.attachEvent("on"+b,d),Eb(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,Eb(function(){a["on"+b]=null})}function x(a,b,c){var d=new Bb;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(x(a.item(e),b,c));else a&&d.add(w(a,b,c));return d}function y(a,b){return new Cc(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function z(a,b,c){return new Cc(function(d){var e=0,f=a,g=Kb(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function A(a,b){return new Cc(function(c){return b.scheduleWithRelative(Kb(a),function(){c.onNext(0),c.onCompleted()})})}function B(a,b,c){return a===b?new Cc(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):gc(function(){return z(c.now()+a,b,c)})}function C(a,b,c){return new Cc(function(d){var e,f=!1,g=new Hb,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Gb,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new Bb(e,g)})}function D(a,b,c){return gc(function(){return C(a,b-c.now(),c)})}function E(a,b){return new Cc(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new Bb(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}function F(a,b,c){return new Cc(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(P))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new Bb(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}var G={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},H=G[typeof window]&&window||this,I=G[typeof exports]&&exports&&!exports.nodeType&&exports,J=G[typeof module]&&module&&!module.nodeType&&module,K=J&&J.exports===I&&I,L=G[typeof global]&&global;!L||L.global!==L&&L.window!==L||(H=L);var M={internals:{},config:{Promise:H.Promise},helpers:{}},N=M.helpers.noop=function(){},O=(M.helpers.notDefined=function(a){return"undefined"==typeof a},M.helpers.isScheduler=function(a){return a instanceof M.Scheduler}),P=M.helpers.identity=function(a){return a},Q=(M.helpers.pluck=function(a){return function(b){return b[a]}},M.helpers.just=function(a){return function(){return a}},M.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),R=M.helpers.defaultComparer=function(a,b){return tb(a,b)},S=M.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},T=(M.helpers.defaultKeySerializer=function(a){return a.toString()},M.helpers.defaultError=function(a){throw a}),U=M.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},V=(M.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},M.helpers.not=function(a){return!a},M.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==jb.call(a)}),a}()),W="Argument out of range",X="Object has been disposed",Y="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";H.Set&&"function"==typeof(new H.Set)["@@iterator"]&&(Y="@@iterator");var Z=M.doneEnumerator={done:!0,value:a};M.iterator=Y;var $,_="[object Arguments]",ab="[object Array]",bb="[object Boolean]",cb="[object Date]",db="[object Error]",eb="[object Function]",fb="[object Number]",gb="[object Object]",hb="[object RegExp]",ib="[object String]",jb=Object.prototype.toString,kb=Object.prototype.hasOwnProperty,lb=jb.call(arguments)==_,mb=Error.prototype,nb=Object.prototype,ob=nb.propertyIsEnumerable;try{$=!(jb.call(document)==gb&&!({toString:0}+""))}catch(pb){$=!0}var qb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],rb={};rb[ab]=rb[cb]=rb[fb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},rb[bb]=rb[ib]={constructor:!0,toString:!0,valueOf:!0},rb[db]=rb[eb]=rb[hb]={constructor:!0,toString:!0},rb[gb]={constructor:!0};var sb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);sb.enumErrorProps=ob.call(mb,"message")||ob.call(mb,"name"),sb.enumPrototypes=ob.call(a,"prototype"),sb.nonEnumArgs=0!=c,sb.nonEnumShadows=!/valueOf/.test(b)}(1),lb||(h=function(a){return a&&"object"==typeof a?kb.call(a,"callee"):!1});{var tb=M.internals.isEqual=function(a,b){return i(a,b,[],[])},ub=Array.prototype.slice,vb=({}.hasOwnProperty,this.inherits=M.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),wb=M.internals.addProperties=function(a){for(var b=ub.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}};M.internals.addRef=function(a,b){return new Cc(function(c){return new Bb(b.getDisposable(),a.subscribe(c))})}}Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=ub.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(ub.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(ub.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var xb=Object("a"),yb="a"!=xb[0]||!(0 in xb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=yb&&{}.toString.call(this)==ib?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=eb)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=yb&&{}.toString.call(this)==ib?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=eb)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==ab}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var zb=M.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Ab=zb.prototype;Ab.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Ab.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Ab.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},Cb.toArray=function(){return this.disposables.slice(0)};var Db=M.Disposable=function(a){this.isDisposed=!1,this.action=a||N};Db.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Eb=Db.create=function(a){return new Db(a)},Fb=Db.empty={dispose:N},Gb=M.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Hb=M.SerialDisposable=Gb,Ib=(M.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Fb:new a(this)},b}(),M.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||S,this.disposable=new Gb});Ib.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Ib.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Ib.prototype.isCancelled=function(){return this.disposable.isDisposed},Ib.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Jb=M.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Fb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=Q,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Kb=Jb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new Bb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Fb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new Bb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Fb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Jb.prototype),function(){Jb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Jb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof H.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=H.setInterval(function(){d=c(d)},b);return Eb(function(){H.clearInterval(e)})}}(Jb.prototype);var Lb,Mb=Jb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Kb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Jb(Q,a,b,c)}(),Nb=Jb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Jb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Jb.normalize(c),g=new Ib(this,b,d,f);if(e)e.enqueue(g);else{e=new zb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Jb(Q,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Ob=(M.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Gb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),N),Pb=function(){var a,b=N;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!H.setTimeout)throw new Error("No concurrency detected!");a=H.setTimeout,b=H.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Qb=Pb.setTimeout,Rb=Pb.clearTimeout;!function(){function a(){if(!H.postMessage||H.importScripts)return!1;var a=!1,b=H.onmessage;return H.onmessage=function(){a=!0},H.postMessage("","*"),H.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(jb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=L&&K&&L.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=L&&K&&L.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Lb=process.nextTick;else if("function"==typeof d)Lb=d,Ob=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;H.addEventListener?H.addEventListener("message",b,!1):H.attachEvent("onmessage",b,!1),Lb=function(a){var b=h++;g[b]=a,H.postMessage(f+b,"*")}}else if(H.MessageChannel){var i=new H.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Lb=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in H&&"onreadystatechange"in H.document.createElement("script")?Lb=function(a){var b=H.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},H.document.documentElement.appendChild(b)}:(Lb=function(a){return Qb(a,0)},Ob=Rb)}();var Sb=Jb.timeout=function(){function a(a,b){var c=this,d=new Gb,e=Lb(function(){d.isDisposed||d.setDisposable(b(c,a))});return new Bb(d,Eb(function(){Ob(e)}))}function b(a,b,c){var d=this,e=Jb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Gb,g=Qb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new Bb(f,Eb(function(){Rb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Jb(Q,a,b,c)}(),Tb=M.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return O(a)||(a=Mb),new Cc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ub=Tb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Tb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Vb=Tb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Tb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Wb=Tb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Tb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Xb=M.internals.Enumerator=function(a){this._next=a};Xb.prototype.next=function(){return this._next()},Xb.prototype[Y]=function(){return this};var Yb=M.internals.Enumerable=function(a){this._iterator=a};Yb.prototype[Y]=function(){return this._iterator()},Yb.prototype.concat=function(){var a=this;return new Cc(function(b){var c;try{c=a[Y]()}catch(d){return void b.onError()}var e,f=new Hb,g=Mb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;U(h)&&(h=vc(h));var i=new Gb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new Bb(f,g,Eb(function(){e=!0}))})},Yb.prototype.catchException=function(){var a=this;return new Cc(function(b){var c;try{c=a[Y]()}catch(d){return void b.onError()}var e,f,g=new Hb,h=Mb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;U(i)&&(i=vc(i));var j=new Gb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new Bb(g,h,Eb(function(){e=!0}))})};var Zb=Yb.repeat=function(a,b){return null==b&&(b=-1),new Yb(function(){var c=b;return new Xb(function(){return 0===c?Z:(c>0&&c--,{done:!1,value:a})})})},$b=Yb.of=function(a,b,c){return b||(b=P),new Yb(function(){var d=-1;return new Xb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(cc);bc.toArray=function(){var a=this;return new Cc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},ec.create=ec.createWithDisposable=function(a){return new Cc(a)};{var gc=ec.defer=function(a){return new Cc(function(b){var c;try{c=a()}catch(d){return mc(d).subscribe(b)}return U(c)&&(c=vc(c)),c.subscribe(b)})},hc=ec.empty=function(a){return O(a)||(a=Mb),new Cc(function(b){return a.schedule(function(){b.onCompleted()})})},ic=Math.pow(2,53)-1,jc=ec.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!q(b))throw new Error("mapFn when provided must be a function");return O(d)||(d=Nb),new Cc(function(e){var f=Object(a),g=n(f),h=g?0:p(f),i=g?f[Y]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&q(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},kc=ec.fromArray=function(a,b){return O(b)||(b=Nb),new Cc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};ec.never=function(){return new Cc(function(){return Fb})}}ec.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return kc(b)};ec.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return kc(c,a)};ec.range=function(a,b,c){return O(c)||(c=Nb),new Cc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},ec.repeat=function(a,b,c){return O(c)||(c=Nb),lc(a,c).repeat(null==b?-1:b)};var lc=ec["return"]=ec.returnValue=ec.just=function(a,b){return O(b)||(b=Mb),new Cc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},mc=ec["throw"]=ec.throwException=ec.throwError=function(a,b){return O(b)||(b=Mb),new Cc(function(c){return b.schedule(function(){c.onError(a)})})};bc["catch"]=bc.catchError=bc.catchException=function(a){return"function"==typeof a?r(this,a):nc([this,a])};var nc=ec.catchException=ec.catchError=ec["catch"]=function(){return $b(j(arguments,0)).catchException()};bc.combineLatest=function(){var a=ub.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),oc.apply(this,a)};var oc=ec.combineLatest=function(){var a=ub.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new Cc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(P))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(P)&&c.onCompleted()}function e(a){j[a]=!0,j.every(P)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new Gb;U(f)&&(f=vc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new Bb(m)})};bc.concat=function(){var a=ub.call(arguments,0);return a.unshift(this),pc.apply(this,a)};var pc=ec.concat=function(){return $b(j(arguments,0)).concat()};bc.concatObservable=bc.concatAll=function(){return this.merge(1)},bc.merge=function(a){if("number"!=typeof a)return qc(this,a);var b=this;return new Cc(function(c){function d(a){var b=new Gb;f.add(b),U(a)&&(a=vc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new Bb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var qc=ec.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=ub.call(arguments,1)):(a=Mb,b=ub.call(arguments,0)):(a=Mb,b=ub.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),kc(b,a).mergeObservable()};bc.mergeObservable=bc.mergeAll=function(){var a=this;return new Cc(function(b){var c=new Bb,d=!1,e=new Gb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Gb;c.add(e),U(a)&&(a=vc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},bc.skipUntil=function(a){var b=this;return new Cc(function(c){var d=!1,e=new Bb(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));U(a)&&(a=vc(a));var f=new Gb;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e})},bc["switch"]=bc.switchLatest=function(){var a=this;return new Cc(function(b){var c=!1,d=new Hb,e=!1,f=0,g=a.subscribe(function(a){var g=new Gb,h=++f;c=!0,d.setDisposable(g),U(a)&&(a=vc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new Bb(g,d)})},bc.takeUntil=function(a){var b=this;return new Cc(function(c){return U(a)&&(a=vc(a)),new Bb(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),N))})},bc.zip=function(){if(Array.isArray(arguments[0]))return s.apply(this,arguments);var a=this,b=ub.call(arguments),c=b.pop();return b.unshift(a),new Cc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(P)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new Gb;U(c)&&(c=vc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a) -},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new Bb(j)})},ec.zip=function(){var a=ub.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},ec.zipArray=function(){var a=j(arguments,0);return new Cc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(P))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(P)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Gb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new Bb(h);return j.add(Eb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},bc.asObservable=function(){return new Cc(this.subscribe.bind(this))},bc.dematerialize=function(){var a=this;return new Cc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},bc.distinctUntilChanged=function(a,b){var c=this;return a||(a=P),b||(b=R),new Cc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},bc["do"]=bc.doAction=bc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new Cc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},bc.doOnNext=bc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},bc.doOnError=bc.tapOnError=function(a,b){return this.tap(N,2===arguments.length?function(c){a.call(b,c)}:a)},bc.doOnCompleted=bc.tapOnCompleted=function(a,b){return this.tap(N,null,2===arguments.length?function(){a.call(b)}:a)},bc["finally"]=bc.finallyAction=function(a){var b=this;return new Cc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Eb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},bc.ignoreElements=function(){var a=this;return new Cc(function(b){return a.subscribe(N,b.onError.bind(b),b.onCompleted.bind(b))})},bc.materialize=function(){var a=this;return new Cc(function(b){return a.subscribe(function(a){b.onNext(Ub(a))},function(a){b.onNext(Vb(a)),b.onCompleted()},function(){b.onNext(Wb()),b.onCompleted()})})},bc.repeat=function(a){return Zb(this,a).concat()},bc.retry=function(a){return Zb(this,a).catchException()},bc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new Cc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},bc.skipLast=function(a){var b=this;return new Cc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},bc.startWith=function(){var a,b,c=0;return arguments.length&&O(arguments[0])?(b=arguments[0],c=1):b=Mb,a=ub.call(arguments,c),$b([kc(a,b),this]).concat()},bc.takeLast=function(a){var b=this;return new Cc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},bc.selectConcat=bc.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?t(this,a,c):t(this,function(){return a})},bc.select=bc.map=function(a,b){var c=this;return new Cc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.pluck=function(a){return this.map(function(b){return b[a]})},bc.selectMany=bc.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?u(this,a,c):u(this,function(){return a})},bc.selectSwitch=bc.flatMapLatest=bc.switchMap=function(a,b){return this.select(a,b).switchLatest()},bc.skip=function(a){if(0>a)throw new Error(W);var b=this;return new Cc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},bc.skipWhile=function(a,b){var c=this;return new Cc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.take=function(a,b){if(0>a)throw new RangeError(W);if(0===a)return hc(b);var c=this;return new Cc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},bc.takeWhile=function(a,b){var c=this;return new Cc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},bc.where=bc.filter=function(a,b){var c=this;return new Cc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},ec.fromCallback=function(a,b,c){return function(){var d=ub.call(arguments,0);return new Cc(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},ec.fromNodeCallback=function(a,b,c){return function(){var d=ub.call(arguments,0);return new Cc(function(e){function f(a){if(a)return void e.onError(a);var b=ub.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},M.config.useNativeEvents=!1;var rc=H.angular&&angular.element?angular.element:H.jQuery?H.jQuery:H.Zepto?H.Zepto:null,sc=!!H.Ember&&"function"==typeof H.Ember.addListener,tc=!!H.Backbone&&!!H.Backbone.Marionette;ec.fromEvent=function(a,b,c){if(a.addListener)return uc(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!M.config.useNativeEvents){if(tc)return uc(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(sc)return uc(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(rc){var d=rc(a);return uc(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new Cc(function(d){return x(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var uc=ec.fromEventPattern=function(a,b,c){return new Cc(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return Eb(function(){b&&b(e,f)})}).publish().refCount()},vc=ec.fromPromise=function(a){return gc(function(){var b=new M.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};bc.toPromise=function(a){if(a||(a=M.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},ec.startAsync=function(a){var b;try{b=a()}catch(c){return mc(c)}return vc(b)},bc.multicast=function(a,b){var c=this;return"function"==typeof a?new Cc(function(d){var e=c.multicast(a());return new Bb(b(e).subscribe(d),e.connect())}):new wc(c,a)},bc.publish=function(a){return a&&V(a)?this.multicast(function(){return new Fc},a):this.multicast(new Fc)},bc.share=function(){return this.publish().refCount()},bc.publishLast=function(a){return a&&V(a)?this.multicast(function(){return new Gc},a):this.multicast(new Gc)},bc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new Ic(b)},a):this.multicast(new Ic(a))},bc.shareValue=function(a){return this.publishValue(a).refCount()},bc.replay=function(a,b,c,d){return a&&V(a)?this.multicast(function(){return new Jc(b,c,d)},a):this.multicast(new Jc(b,c,d))},bc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var wc=M.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new Bb(f.subscribe(c),Eb(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return vb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new Cc(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(ec),xc=ec.interval=function(a,b){return B(a,a,O(b)?b:Sb)};ec.timer=function(b,c,d){var e;return O(d)||(d=Sb),c!==a&&"number"==typeof c?e=c:O(c)&&(d=c),b instanceof Date&&e===a?y(b.getTime(),d):b instanceof Date&&e!==a?(e=c,z(b.getTime(),e,d)):e===a?A(b,d):B(b,e,d)}}bc.delay=function(a,b){return O(b)||(b=Sb),a instanceof Date?D(this,a.getTime(),b):C(this,a,b)},bc.throttle=function(a,b){O(b)||(b=Sb);var c=this;return new Cc(function(d){var e,f=new Hb,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new Gb;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new Bb(i,f)})},bc.timestamp=function(a){return O(a)||(a=Sb),this.map(function(b){return{value:b,timestamp:a.now()}})},bc.sample=function(a,b){return O(b)||(b=Sb),"number"==typeof a?E(this,xc(a,b)):E(this,a)},bc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=mc(new Error(b||"Timeout"))),O(c)||(c=Sb);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new Cc(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(U(b)&&(b=vc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new Gb,j=new Hb,k=!1,l=new Hb;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new Bb(j,l)})};var yc=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=Fb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=Fb)});return new Bb(c,d,e)}function c(c,d){this.source=c,this.controller=new Fc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return vb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(ec);bc.pausable=function(a){return new yc(this,a)};var zc=function(b){function c(b){var c,d=[],e=F(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Fc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return vb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(ec);bc.pausableBuffered=function(a){return new zc(this,a)},bc.controlled=function(a){return null==a&&(a=!0),new Ac(this,a)};var Ac=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new Bc(d),this.source=c.multicast(this.subject).refCount()}return vb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(ec),Bc=M.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Fc,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=Fb,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=Fb}return vb(d,a),wb(d.prototype,_b,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=Fb):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=Fb),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?Fb:(this.requestedCount=a,this.requestedDisposable=Eb(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=Fb},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(ec);bc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new Cc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var Cc=M.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Eb(a):Fb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Dc(a);return Nb.scheduleRequired()?Nb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return vb(c,a),c}(ec),Dc=function(a){function b(b){a.call(this),this.observer=b,this.m=new Gb}vb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(cc),Ec=function(a,b){this.subject=a,this.observer=b};Ec.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Fc=M.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Fb):(a.onCompleted(),Fb):(this.observers.push(a),new Ec(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Hc(a,b)},d}(ec),Gc=M.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Ec(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Fb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(ec),Hc=M.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return vb(b,a),wb(b.prototype,_b,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(ec),Ic=M.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new Ec(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),Fb}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(ec),Jc=M.ReplaySubject=function(a){function c(a,b){return Eb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new fc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||Nb,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return vb(e,a),wb(e.prototype,_b,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(ec);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(H.Rx=M,define(function(){return M})):I&&J?K?(J.exports=M).Rx=M:I.Rx=M:H.Rx=M}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(X)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;sb.nonEnumArgs&&a.length&&h(a)&&(a=ub.call(a));var d=sb.enumPrototypes&&"function"==typeof a,e=sb.enumErrorProps&&(a===mb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(sb.nonEnumShadows&&a!==nb){var g=a.constructor,i=-1,j=qb.length;if(a===(g&&g.prototype))var k=a===stringProto?ib:a===mb?db:jb.call(a),l=rb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:ub.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a){return"number"==typeof a&&H.isFinite(a)}function n(b){return b[Y]!==a}function o(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function p(a){var b=+a.length;return isNaN(b)?0:0!==b&&m(b)?(b=o(b)*Math.floor(Math.abs(b)),0>=b?0:b>ic?ic:b):b}function q(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function r(a,b){return new Cc(function(c){var d=new Gb,e=new Hb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}U(f)&&(f=vc(f)),d=new Gb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function s(a,b){var c=this;return new Cc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function t(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return U(f)&&(f=vc(f)),(Array.isArray(f)||n(f))&&(f=jc(f)),f}).concatAll()}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return U(f)&&(f=vc(f)),(Array.isArray(f)||n(f))&&(f=jc(f)),f}).mergeObservable()}function v(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=H.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function w(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),Eb(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(v(a))};return a.attachEvent("on"+b,d),Eb(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,Eb(function(){a["on"+b]=null})}function x(a,b,c){var d=new Bb;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(x(a.item(e),b,c));else a&&d.add(w(a,b,c));return d}function y(a,b){return new Cc(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function z(a,b,c){return new Cc(function(d){var e=0,f=a,g=Kb(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function A(a,b){return new Cc(function(c){return b.scheduleWithRelative(Kb(a),function(){c.onNext(0),c.onCompleted()})})}function B(a,b,c){return a===b?new Cc(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):gc(function(){return z(c.now()+a,b,c)})}function C(a,b,c){return new Cc(function(d){var e,f=!1,g=new Hb,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Gb,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new Bb(e,g)})}function D(a,b,c){return gc(function(){return C(a,b-c.now(),c)})}function E(a,b){return new Cc(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new Bb(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}function F(a,b,c){return new Cc(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(P))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new Bb(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}var G={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},H=G[typeof window]&&window||this,I=G[typeof exports]&&exports&&!exports.nodeType&&exports,J=G[typeof module]&&module&&!module.nodeType&&module,K=J&&J.exports===I&&I,L=G[typeof global]&&global;!L||L.global!==L&&L.window!==L||(H=L);var M={internals:{},config:{Promise:H.Promise},helpers:{}},N=M.helpers.noop=function(){},O=(M.helpers.notDefined=function(a){return"undefined"==typeof a},M.helpers.isScheduler=function(a){return a instanceof M.Scheduler}),P=M.helpers.identity=function(a){return a},Q=(M.helpers.pluck=function(a){return function(b){return b[a]}},M.helpers.just=function(a){return function(){return a}},M.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),R=M.helpers.defaultComparer=function(a,b){return tb(a,b)},S=M.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},T=(M.helpers.defaultKeySerializer=function(a){return a.toString()},M.helpers.defaultError=function(a){throw a}),U=M.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},V=(M.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},M.helpers.not=function(a){return!a},M.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==jb.call(a)}),a}()),W="Argument out of range",X="Object has been disposed",Y="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";H.Set&&"function"==typeof(new H.Set)["@@iterator"]&&(Y="@@iterator");var Z=M.doneEnumerator={done:!0,value:a};M.iterator=Y;var $,_="[object Arguments]",ab="[object Array]",bb="[object Boolean]",cb="[object Date]",db="[object Error]",eb="[object Function]",fb="[object Number]",gb="[object Object]",hb="[object RegExp]",ib="[object String]",jb=Object.prototype.toString,kb=Object.prototype.hasOwnProperty,lb=jb.call(arguments)==_,mb=Error.prototype,nb=Object.prototype,ob=nb.propertyIsEnumerable;try{$=!(jb.call(document)==gb&&!({toString:0}+""))}catch(pb){$=!0}var qb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],rb={};rb[ab]=rb[cb]=rb[fb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},rb[bb]=rb[ib]={constructor:!0,toString:!0,valueOf:!0},rb[db]=rb[eb]=rb[hb]={constructor:!0,toString:!0},rb[gb]={constructor:!0};var sb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);sb.enumErrorProps=ob.call(mb,"message")||ob.call(mb,"name"),sb.enumPrototypes=ob.call(a,"prototype"),sb.nonEnumArgs=0!=c,sb.nonEnumShadows=!/valueOf/.test(b)}(1),lb||(h=function(a){return a&&"object"==typeof a?kb.call(a,"callee"):!1});{var tb=M.internals.isEqual=function(a,b){return i(a,b,[],[])},ub=Array.prototype.slice,vb=({}.hasOwnProperty,this.inherits=M.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),wb=M.internals.addProperties=function(a){for(var b=ub.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}};M.internals.addRef=function(a,b){return new Cc(function(c){return new Bb(b.getDisposable(),a.subscribe(c))})}}Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=ub.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(ub.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(ub.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var xb=Object("a"),yb="a"!=xb[0]||!(0 in xb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=yb&&{}.toString.call(this)==ib?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=eb)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=yb&&{}.toString.call(this)==ib?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=eb)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==ab}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var zb=M.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Ab=zb.prototype;Ab.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Ab.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Ab.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},Cb.toArray=function(){return this.disposables.slice(0)};var Db=M.Disposable=function(a){this.isDisposed=!1,this.action=a||N};Db.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Eb=Db.create=function(a){return new Db(a)},Fb=Db.empty={dispose:N},Gb=M.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Hb=M.SerialDisposable=Gb,Ib=(M.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Fb:new a(this)},b}(),M.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||S,this.disposable=new Gb});Ib.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Ib.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Ib.prototype.isCancelled=function(){return this.disposable.isDisposed},Ib.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Jb=M.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Fb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=Q,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Kb=Jb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new Bb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Fb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new Bb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Fb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Jb.prototype),function(){Jb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Jb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof H.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=H.setInterval(function(){d=c(d)},b);return Eb(function(){H.clearInterval(e)})}}(Jb.prototype);var Lb,Mb=Jb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Kb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Jb(Q,a,b,c)}(),Nb=Jb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Jb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Jb.normalize(c),g=new Ib(this,b,d,f);if(e)e.enqueue(g);else{e=new zb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Jb(Q,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Ob=(M.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Gb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),N),Pb=function(){var a,b=N;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!H.setTimeout)throw new Error("No concurrency detected!");a=H.setTimeout,b=H.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Qb=Pb.setTimeout,Rb=Pb.clearTimeout;!function(){function a(){if(!H.postMessage||H.importScripts)return!1;var a=!1,b=H.onmessage;return H.onmessage=function(){a=!0},H.postMessage("","*"),H.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(jb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=L&&K&&L.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=L&&K&&L.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Lb=process.nextTick;else if("function"==typeof d)Lb=d,Ob=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;H.addEventListener?H.addEventListener("message",b,!1):H.attachEvent("onmessage",b,!1),Lb=function(a){var b=h++;g[b]=a,H.postMessage(f+b,"*")}}else if(H.MessageChannel){var i=new H.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Lb=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in H&&"onreadystatechange"in H.document.createElement("script")?Lb=function(a){var b=H.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},H.document.documentElement.appendChild(b)}:(Lb=function(a){return Qb(a,0)},Ob=Rb)}();var Sb=Jb.timeout=function(){function a(a,b){var c=this,d=new Gb,e=Lb(function(){d.isDisposed||d.setDisposable(b(c,a))});return new Bb(d,Eb(function(){Ob(e)}))}function b(a,b,c){var d=this,e=Jb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Gb,g=Qb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new Bb(f,Eb(function(){Rb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Jb(Q,a,b,c)}(),Tb=M.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return O(a)||(a=Mb),new Cc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Ub=Tb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Tb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Vb=Tb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Tb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Wb=Tb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Tb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Xb=M.internals.Enumerator=function(a){this._next=a};Xb.prototype.next=function(){return this._next()},Xb.prototype[Y]=function(){return this};var Yb=M.internals.Enumerable=function(a){this._iterator=a};Yb.prototype[Y]=function(){return this._iterator()},Yb.prototype.concat=function(){var a=this;return new Cc(function(b){var c;try{c=a[Y]()}catch(d){return void b.onError()}var e,f=new Hb,g=Mb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;U(h)&&(h=vc(h));var i=new Gb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new Bb(f,g,Eb(function(){e=!0}))})},Yb.prototype.catchException=function(){var a=this;return new Cc(function(b){var c;try{c=a[Y]()}catch(d){return void b.onError()}var e,f,g=new Hb,h=Mb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;U(i)&&(i=vc(i));var j=new Gb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new Bb(g,h,Eb(function(){e=!0}))})};var Zb=Yb.repeat=function(a,b){return null==b&&(b=-1),new Yb(function(){var c=b;return new Xb(function(){return 0===c?Z:(c>0&&c--,{done:!1,value:a})})})},$b=Yb.of=function(a,b,c){return b||(b=P),new Yb(function(){var d=-1;return new Xb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(cc);bc.toArray=function(){var a=this;return new Cc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},ec.create=ec.createWithDisposable=function(a){return new Cc(a)};{var gc=ec.defer=function(a){return new Cc(function(b){var c;try{c=a()}catch(d){return mc(d).subscribe(b)}return U(c)&&(c=vc(c)),c.subscribe(b)})},hc=ec.empty=function(a){return O(a)||(a=Mb),new Cc(function(b){return a.schedule(function(){b.onCompleted()})})},ic=Math.pow(2,53)-1,jc=ec.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!q(b))throw new Error("mapFn when provided must be a function");return O(d)||(d=Nb),new Cc(function(e){var f=Object(a),g=n(f),h=g?0:p(f),i=g?f[Y]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&q(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},kc=ec.fromArray=function(a,b){return O(b)||(b=Nb),new Cc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};ec.never=function(){return new Cc(function(){return Fb})}}ec.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return kc(b)};ec.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return kc(c,a)};ec.range=function(a,b,c){return O(c)||(c=Nb),new Cc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},ec.repeat=function(a,b,c){return O(c)||(c=Nb),lc(a,c).repeat(null==b?-1:b)};var lc=ec["return"]=ec.returnValue=ec.just=function(a,b){return O(b)||(b=Mb),new Cc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},mc=ec["throw"]=ec.throwException=ec.throwError=function(a,b){return O(b)||(b=Mb),new Cc(function(c){return b.schedule(function(){c.onError(a)})})};bc["catch"]=bc.catchError=bc.catchException=function(a){return"function"==typeof a?r(this,a):nc([this,a])};var nc=ec.catchException=ec.catchError=ec["catch"]=function(){return $b(j(arguments,0)).catchException()};bc.combineLatest=function(){var a=ub.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),oc.apply(this,a)};var oc=ec.combineLatest=function(){var a=ub.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new Cc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(P))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(P)&&c.onCompleted()}function e(a){j[a]=!0,j.every(P)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new Gb;U(f)&&(f=vc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new Bb(m)})};bc.concat=function(){var a=ub.call(arguments,0);return a.unshift(this),pc.apply(this,a)};var pc=ec.concat=function(){return $b(j(arguments,0)).concat()};bc.concatObservable=bc.concatAll=function(){return this.merge(1)},bc.merge=function(a){if("number"!=typeof a)return qc(this,a);var b=this;return new Cc(function(c){function d(a){var b=new Gb;f.add(b),U(a)&&(a=vc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new Bb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var qc=ec.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=ub.call(arguments,1)):(a=Mb,b=ub.call(arguments,0)):(a=Mb,b=ub.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),kc(b,a).mergeObservable()};bc.mergeObservable=bc.mergeAll=function(){var a=this;return new Cc(function(b){var c=new Bb,d=!1,e=new Gb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Gb;c.add(e),U(a)&&(a=vc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},bc.skipUntil=function(a){var b=this;return new Cc(function(c){var d=!1,e=new Bb(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));U(a)&&(a=vc(a));var f=new Gb;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e})},bc["switch"]=bc.switchLatest=function(){var a=this;return new Cc(function(b){var c=!1,d=new Hb,e=!1,f=0,g=a.subscribe(function(a){var g=new Gb,h=++f;c=!0,d.setDisposable(g),U(a)&&(a=vc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new Bb(g,d)})},bc.takeUntil=function(a){var b=this;return new Cc(function(c){return U(a)&&(a=vc(a)),new Bb(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),N))})},bc.zip=function(){if(Array.isArray(arguments[0]))return s.apply(this,arguments);var a=this,b=ub.call(arguments),c=b.pop();return b.unshift(a),new Cc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(P)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new Gb; +U(c)&&(c=vc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new Bb(j)})},ec.zip=function(){var a=ub.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},ec.zipArray=function(){var a=j(arguments,0);return new Cc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(P))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(P)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Gb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new Bb(h);return j.add(Eb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},bc.asObservable=function(){return new Cc(this.subscribe.bind(this))},bc.dematerialize=function(){var a=this;return new Cc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},bc.distinctUntilChanged=function(a,b){var c=this;return a||(a=P),b||(b=R),new Cc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},bc["do"]=bc.doAction=bc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new Cc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},bc.doOnNext=bc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},bc.doOnError=bc.tapOnError=function(a,b){return this.tap(N,2===arguments.length?function(c){a.call(b,c)}:a)},bc.doOnCompleted=bc.tapOnCompleted=function(a,b){return this.tap(N,null,2===arguments.length?function(){a.call(b)}:a)},bc["finally"]=bc.finallyAction=function(a){var b=this;return new Cc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Eb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},bc.ignoreElements=function(){var a=this;return new Cc(function(b){return a.subscribe(N,b.onError.bind(b),b.onCompleted.bind(b))})},bc.materialize=function(){var a=this;return new Cc(function(b){return a.subscribe(function(a){b.onNext(Ub(a))},function(a){b.onNext(Vb(a)),b.onCompleted()},function(){b.onNext(Wb()),b.onCompleted()})})},bc.repeat=function(a){return Zb(this,a).concat()},bc.retry=function(a){return Zb(this,a).catchException()},bc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new Cc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},bc.skipLast=function(a){var b=this;return new Cc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},bc.startWith=function(){var a,b,c=0;return arguments.length&&O(arguments[0])?(b=arguments[0],c=1):b=Mb,a=ub.call(arguments,c),$b([kc(a,b),this]).concat()},bc.takeLast=function(a){var b=this;return new Cc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},bc.selectConcat=bc.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?t(this,a,c):t(this,function(){return a})},bc.select=bc.map=function(a,b){var c=this;return new Cc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.pluck=function(a){return this.map(function(b){return b[a]})},bc.selectMany=bc.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return U(e)&&(e=vc(e)),(Array.isArray(e)||n(e))&&(e=jc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?u(this,a,c):u(this,function(){return a})},bc.selectSwitch=bc.flatMapLatest=bc.switchMap=function(a,b){return this.select(a,b).switchLatest()},bc.skip=function(a){if(0>a)throw new Error(W);var b=this;return new Cc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},bc.skipWhile=function(a,b){var c=this;return new Cc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.take=function(a,b){if(0>a)throw new RangeError(W);if(0===a)return hc(b);var c=this;return new Cc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},bc.takeWhile=function(a,b){var c=this;return new Cc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},bc.where=bc.filter=function(a,b){var c=this;return new Cc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},ec.fromCallback=function(a,b,c){return function(){var d=ub.call(arguments,0);return new Cc(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},ec.fromNodeCallback=function(a,b,c){return function(){var d=ub.call(arguments,0);return new Cc(function(e){function f(a){if(a)return void e.onError(a);var b=ub.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},M.config.useNativeEvents=!1;var rc=H.angular&&angular.element?angular.element:H.jQuery?H.jQuery:H.Zepto?H.Zepto:null,sc=!!H.Ember&&"function"==typeof H.Ember.addListener,tc=!!H.Backbone&&!!H.Backbone.Marionette;ec.fromEvent=function(a,b,c){if(a.addListener)return uc(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!M.config.useNativeEvents){if(tc)return uc(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(sc)return uc(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(rc){var d=rc(a);return uc(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new Cc(function(d){return x(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var uc=ec.fromEventPattern=function(a,b,c){return new Cc(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return Eb(function(){b&&b(e,f)})}).publish().refCount()},vc=ec.fromPromise=function(a){return gc(function(){var b=new M.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};bc.toPromise=function(a){if(a||(a=M.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},ec.startAsync=function(a){var b;try{b=a()}catch(c){return mc(c)}return vc(b)},bc.multicast=function(a,b){var c=this;return"function"==typeof a?new Cc(function(d){var e=c.multicast(a());return new Bb(b(e).subscribe(d),e.connect())}):new wc(c,a)},bc.publish=function(a){return a&&V(a)?this.multicast(function(){return new Fc},a):this.multicast(new Fc)},bc.share=function(){return this.publish().refCount()},bc.publishLast=function(a){return a&&V(a)?this.multicast(function(){return new Gc},a):this.multicast(new Gc)},bc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new Ic(b)},a):this.multicast(new Ic(a))},bc.shareValue=function(a){return this.publishValue(a).refCount()},bc.replay=function(a,b,c,d){return a&&V(a)?this.multicast(function(){return new Jc(b,c,d)},a):this.multicast(new Jc(b,c,d))},bc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var wc=M.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new Bb(f.subscribe(c),Eb(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return vb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new Cc(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(ec),xc=ec.interval=function(a,b){return B(a,a,O(b)?b:Sb)};ec.timer=function(b,c,d){var e;return O(d)||(d=Sb),c!==a&&"number"==typeof c?e=c:O(c)&&(d=c),b instanceof Date&&e===a?y(b.getTime(),d):b instanceof Date&&e!==a?(e=c,z(b.getTime(),e,d)):e===a?A(b,d):B(b,e,d)}}bc.delay=function(a,b){return O(b)||(b=Sb),a instanceof Date?D(this,a.getTime(),b):C(this,a,b)},bc.throttle=function(a,b){O(b)||(b=Sb);var c=this;return new Cc(function(d){var e,f=new Hb,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new Gb;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new Bb(i,f)})},bc.timestamp=function(a){return O(a)||(a=Sb),this.map(function(b){return{value:b,timestamp:a.now()}})},bc.sample=function(a,b){return O(b)||(b=Sb),"number"==typeof a?E(this,xc(a,b)):E(this,a)},bc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=mc(new Error(b||"Timeout"))),O(c)||(c=Sb);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new Cc(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(U(b)&&(b=vc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new Gb,j=new Hb,k=!1,l=new Hb;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new Bb(j,l)})};var yc=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=Fb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=Fb)});return new Bb(c,d,e)}function c(c,d){this.source=c,this.controller=new Fc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return vb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(ec);bc.pausable=function(a){return new yc(this,a)};var zc=function(b){function c(b){var c,d=[],e=F(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Fc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return vb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(ec);bc.pausableBuffered=function(a){return new zc(this,a)},bc.controlled=function(a){return null==a&&(a=!0),new Ac(this,a)};var Ac=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new Bc(d),this.source=c.multicast(this.subject).refCount()}return vb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(ec),Bc=M.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Fc,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=Fb,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=Fb}return vb(d,a),wb(d.prototype,_b,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=Fb):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=Fb),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?Fb:(this.requestedCount=a,this.requestedDisposable=Eb(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=Fb},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(ec);bc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new Cc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var Cc=M.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Eb(a):Fb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Dc(a);return Nb.scheduleRequired()?Nb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return vb(c,a),c}(ec),Dc=function(a){function b(b){a.call(this),this.observer=b,this.m=new Gb}vb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(cc),Ec=function(a,b){this.subject=a,this.observer=b};Ec.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Fc=M.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Fb):(a.onCompleted(),Fb):(this.observers.push(a),new Ec(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Hc(a,b)},d}(ec),Gc=M.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Ec(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Fb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(ec),Hc=M.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return vb(b,a),wb(b.prototype,_b,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(ec),Ic=M.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new Ec(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),Fb}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return vb(d,a),wb(d.prototype,_b,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(ec),Jc=M.ReplaySubject=function(a){function c(a,b){return Eb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new fc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||Nb,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return vb(e,a),wb(e.prototype,_b,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(ec);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(H.Rx=M,define(function(){return M})):I&&J?K?(J.exports=M).Rx=M:I.Rx=M:H.Rx=M}).call(this); //# sourceMappingURL=rx.lite.compat.map \ No newline at end of file diff --git a/dist/rx.lite.js b/dist/rx.lite.js index b2982dada..8f229aa5d 100644 --- a/dist/rx.lite.js +++ b/dist/rx.lite.js @@ -1312,14 +1312,14 @@ function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -1328,17 +1328,17 @@ */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); var Enumerator = Rx.internals.Enumerator = function (next) { @@ -1906,7 +1906,13 @@ if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; @@ -2914,7 +2920,7 @@ function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -2941,7 +2947,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectConcat = observableProto.concatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.concatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); @@ -2991,7 +2997,7 @@ function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; @@ -3018,7 +3024,7 @@ * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. */ observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector, thisArg) { - if (resultSelector) { + if (typeof selector === 'function' && typeof resultSelector === 'function') { return this.flatMap(function (x, i) { var selectorResult = selector(x, i); isPromise(selectorResult) && (selectorResult = observableFromPromise(selectorResult)); diff --git a/dist/rx.lite.map b/dist/rx.lite.map index 6b75f9e5c..5fcd6639b 100644 --- a/dist/rx.lite.map +++ b/dist/rx.lite.map @@ -1 +1 @@ -{"version":3,"file":"rx.lite.min.js","sources":["rx.lite.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","flatMap","mergeObservable","createListener","element","name","addEventListener","disposableCreate","removeEventListener","createEventListener","el","eventName","disposables","CompositeDisposable","add","item","observableTimerDate","dueTime","scheduler","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","shouldRun","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","hasValue","atEnd","newValue","combineLatestSource","subject","next","values","res","hasValueAll","every","identity","apply","isDone","n","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","ScheduledItem","RefCountDisposable","InnerDisposable","disposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","state","comparer","invoke","invokeCore","isCancelled","schedule","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","scheduleMethod","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeoutScheduler","timeout","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","_next","Enumerable","_iterator","concat","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","observerCreate","fromNotifier","observableProto","AbstractObserver","__super__","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","array","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","catchError","handlerOrSecond","observableCatch","combineLatest","unshift","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","m","innerSubscription","skipUntil","isOpen","rightSubscription","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","selectConcat","selectorResult","i2","select","selectMany","selectSwitch","flatMapLatest","switchMap","skip","remaining","skipWhile","predicate","take","RangeError","observable","takeWhile","where","fromCallback","func","context","results","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","innerHandler","fromPromise","promise","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","v","startAsync","functionAsync","multicast","subjectOrSubjectSelector","connectable","connect","ConnectableObservable","Subject","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","observableinterval","interval","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","sample","intervalOrSampler","schedulerMethod","createTimer","myId","original","switched","PausableObservable","_super","conn","connection","pausable","pauser","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","createRemovableDisposable","so","_trim","hasError","windowSize","Number","MAX_VALUE","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.lite.min.js","sources":["rx.lite.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","flatMap","mergeObservable","createListener","element","name","addEventListener","disposableCreate","removeEventListener","createEventListener","el","eventName","disposables","CompositeDisposable","add","item","observableTimerDate","dueTime","scheduler","scheduleWithAbsolute","observableTimerDateAndPeriod","period","p","normalizeTime","scheduleRecursiveWithAbsolute","self","now","observableTimerTimeSpan","scheduleWithRelative","observableTimerTimeSpanAndPeriod","schedulePeriodicWithState","observableDefer","observableDelayTimeSpan","active","cancelable","q","running","materialize","timestamp","notification","shouldRun","kind","scheduleRecursiveWithRelative","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayDate","sampleObservable","sampler","sampleSubscribe","hasValue","atEnd","newValue","combineLatestSource","subject","next","values","res","hasValueAll","every","identity","apply","isDone","n","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","defaultNow","pluck","property","just","Date","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","CompositeDisposablePrototype","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","ScheduledItem","RefCountDisposable","InnerDisposable","disposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","state","comparer","invoke","invokeCore","isCancelled","schedule","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelativeAndState","scheduleWithAbsoluteAndState","normalize","timeSpan","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","setInterval","clearInterval","scheduleMethod","immediateScheduler","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeoutScheduler","timeout","Notification","observerOrOnNext","_acceptObservable","_accept","toObservable","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","_next","Enumerable","_iterator","concat","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","asObserver","AnonymousObserver","observerCreate","fromNotifier","observableProto","AbstractObserver","__super__","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","array","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","catchError","handlerOrSecond","observableCatch","combineLatest","unshift","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","m","innerSubscription","skipUntil","isOpen","rightSubscription","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","selectConcat","selectorResult","i2","select","selectMany","selectSwitch","flatMapLatest","switchMap","skip","remaining","skipWhile","predicate","take","RangeError","observable","takeWhile","where","fromCallback","func","context","results","publishLast","refCount","fromNodeCallback","useNativeEvents","jq","angular","jQuery","Zepto","ember","Ember","addListener","marionette","Backbone","Marionette","fromEvent","fromEventPattern","h","removeListener","on","off","$elem","publish","addHandler","removeHandler","innerHandler","fromPromise","promise","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","v","startAsync","functionAsync","multicast","subjectOrSubjectSelector","connectable","connect","ConnectableObservable","Subject","share","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","hasSubscription","sourceObservable","connectableSubscription","shouldConnect","observableinterval","interval","timer","periodOrScheduler","getTime","delay","throttle","hasvalue","sample","intervalOrSampler","schedulerMethod","createTimer","myId","original","switched","PausableObservable","_super","conn","connection","pausable","pauser","controller","pause","resume","PausableBufferedObservable","previousShouldFire","shouldFire","pausableBuffered","controlled","enableQueue","ControlledObservable","ControlledSubject","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","controlledDisposable","hasRequested","disposeCurrentRequest","_processRequest","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","createRemovableDisposable","so","_trim","hasError","windowSize","Number","MAX_VALUE","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.lite.min.js b/dist/rx.lite.min.js index 31b5556e9..821d321f6 100644 --- a/dist/rx.lite.min.js +++ b/dist/rx.lite.min.js @@ -1,4 +1,4 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(W)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;rb.nonEnumArgs&&a.length&&h(a)&&(a=tb.call(a));var d=rb.enumPrototypes&&"function"==typeof a,e=rb.enumErrorProps&&(a===lb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(rb.nonEnumShadows&&a!==mb){var g=a.constructor,i=-1,j=pb.length;if(a===(g&&g.prototype))var k=a===stringProto?hb:a===lb?cb:ib.call(a),l=qb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:tb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a){return"number"==typeof a&&G.isFinite(a)}function n(b){return b[X]!==a}function o(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function p(a){var b=+a.length;return isNaN(b)?0:0!==b&&m(b)?(b=o(b)*Math.floor(Math.abs(b)),0>=b?0:b>fc?fc:b):b}function q(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function r(a,b){return new zc(function(c){var d=new Db,e=new Eb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}T(f)&&(f=sc(f)),d=new Db,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function s(a,b){var c=this;return new zc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function t(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e}).concatAll()}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e}).mergeObservable()}function v(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),Bb(function(){a.removeEventListener(b,c,!1)});throw new Error("No listener found")}function w(a,b,c){var d=new yb;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(w(a.item(e),b,c));else a&&d.add(v(a,b,c));return d}function x(a,b){return new zc(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function y(a,b,c){return new zc(function(d){var e=0,f=a,g=Hb(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function z(a,b){return new zc(function(c){return b.scheduleWithRelative(Hb(a),function(){c.onNext(0),c.onCompleted()})})}function A(a,b,c){return a===b?new zc(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):dc(function(){return y(c.now()+a,b,c)})}function B(a,b,c){return new zc(function(d){var e,f=!1,g=new Eb,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Db,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new yb(e,g)})}function C(a,b,c){return dc(function(){return B(a,b-c.now(),c)})}function D(a,b){return new zc(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new yb(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}function E(a,b,c){return new zc(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(O))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new yb(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}var F={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},G=F[typeof window]&&window||this,H=F[typeof exports]&&exports&&!exports.nodeType&&exports,I=F[typeof module]&&module&&!module.nodeType&&module,J=I&&I.exports===H&&H,K=F[typeof global]&&global;!K||K.global!==K&&K.window!==K||(G=K);var L={internals:{},config:{Promise:G.Promise},helpers:{}},M=L.helpers.noop=function(){},N=(L.helpers.notDefined=function(a){return"undefined"==typeof a},L.helpers.isScheduler=function(a){return a instanceof L.Scheduler}),O=L.helpers.identity=function(a){return a},P=(L.helpers.pluck=function(a){return function(b){return b[a]}},L.helpers.just=function(a){return function(){return a}},L.helpers.defaultNow=Date.now),Q=L.helpers.defaultComparer=function(a,b){return sb(a,b)},R=L.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},S=(L.helpers.defaultKeySerializer=function(a){return a.toString()},L.helpers.defaultError=function(a){throw a}),T=L.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},U=(L.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},L.helpers.not=function(a){return!a},L.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==ib.call(a)}),a}()),V="Argument out of range",W="Object has been disposed",X="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";G.Set&&"function"==typeof(new G.Set)["@@iterator"]&&(X="@@iterator");var Y=L.doneEnumerator={done:!0,value:a};L.iterator=X;var Z,$="[object Arguments]",_="[object Array]",ab="[object Boolean]",bb="[object Date]",cb="[object Error]",db="[object Function]",eb="[object Number]",fb="[object Object]",gb="[object RegExp]",hb="[object String]",ib=Object.prototype.toString,jb=Object.prototype.hasOwnProperty,kb=ib.call(arguments)==$,lb=Error.prototype,mb=Object.prototype,nb=mb.propertyIsEnumerable;try{Z=!(ib.call(document)==fb&&!({toString:0}+""))}catch(ob){Z=!0}var pb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],qb={};qb[_]=qb[bb]=qb[eb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},qb[ab]=qb[hb]={constructor:!0,toString:!0,valueOf:!0},qb[cb]=qb[db]=qb[gb]={constructor:!0,toString:!0},qb[fb]={constructor:!0};var rb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);rb.enumErrorProps=nb.call(lb,"message")||nb.call(lb,"name"),rb.enumPrototypes=nb.call(a,"prototype"),rb.nonEnumArgs=0!=c,rb.nonEnumShadows=!/valueOf/.test(b)}(1),kb||(h=function(a){return a&&"object"==typeof a?jb.call(a,"callee"):!1});{var sb=L.internals.isEqual=function(a,b){return i(a,b,[],[])},tb=Array.prototype.slice,ub=({}.hasOwnProperty,this.inherits=L.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),vb=L.internals.addProperties=function(a){for(var b=tb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}};L.internals.addRef=function(a,b){return new zc(function(c){return new yb(b.getDisposable(),a.subscribe(c))})}}l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var wb=L.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},xb=wb.prototype;xb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},xb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},xb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},zb.toArray=function(){return this.disposables.slice(0)};var Ab=L.Disposable=function(a){this.isDisposed=!1,this.action=a||M};Ab.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Bb=Ab.create=function(a){return new Ab(a)},Cb=Ab.empty={dispose:M},Db=L.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Eb=L.SerialDisposable=Db,Fb=(L.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Cb:new a(this)},b}(),L.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||R,this.disposable=new Db});Fb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Fb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Fb.prototype.isCancelled=function(){return this.disposable.isDisposed},Fb.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Gb=L.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Cb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=P,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Hb=Gb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new yb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Cb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new yb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Cb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Gb.prototype),function(){Gb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Gb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof G.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=G.setInterval(function(){d=c(d)},b);return Bb(function(){G.clearInterval(e)})}}(Gb.prototype);var Ib,Jb=Gb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Hb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Gb(P,a,b,c)}(),Kb=Gb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Gb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Gb.normalize(c),g=new Fb(this,b,d,f);if(e)e.enqueue(g);else{e=new wb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Gb(P,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Lb=(L.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Db;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),M),Mb=function(){var a,b=M;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!G.setTimeout)throw new Error("No concurrency detected!");a=G.setTimeout,b=G.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Nb=Mb.setTimeout,Ob=Mb.clearTimeout;!function(){function a(){if(!G.postMessage||G.importScripts)return!1;var a=!1,b=G.onmessage;return G.onmessage=function(){a=!0},G.postMessage("","*"),G.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(ib).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=K&&J&&K.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=K&&J&&K.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Ib=process.nextTick;else if("function"==typeof d)Ib=d,Lb=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;G.addEventListener?G.addEventListener("message",b,!1):G.attachEvent("onmessage",b,!1),Ib=function(a){var b=h++;g[b]=a,G.postMessage(f+b,"*")}}else if(G.MessageChannel){var i=new G.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Ib=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in G&&"onreadystatechange"in G.document.createElement("script")?Ib=function(a){var b=G.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},G.document.documentElement.appendChild(b)}:(Ib=function(a){return Nb(a,0)},Lb=Ob)}();var Pb=Gb.timeout=function(){function a(a,b){var c=this,d=new Db,e=Ib(function(){d.isDisposed||d.setDisposable(b(c,a))});return new yb(d,Bb(function(){Lb(e)}))}function b(a,b,c){var d=this,e=Gb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Db,g=Nb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new yb(f,Bb(function(){Ob(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Gb(P,a,b,c)}(),Qb=L.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return N(a)||(a=Jb),new zc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Rb=Qb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Qb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Sb=Qb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Qb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Tb=Qb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Qb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Ub=L.internals.Enumerator=function(a){this._next=a};Ub.prototype.next=function(){return this._next()},Ub.prototype[X]=function(){return this};var Vb=L.internals.Enumerable=function(a){this._iterator=a};Vb.prototype[X]=function(){return this._iterator()},Vb.prototype.concat=function(){var a=this;return new zc(function(b){var c;try{c=a[X]()}catch(d){return void b.onError()}var e,f=new Eb,g=Jb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;T(h)&&(h=sc(h));var i=new Db;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new yb(f,g,Bb(function(){e=!0}))})},Vb.prototype.catchException=function(){var a=this;return new zc(function(b){var c;try{c=a[X]()}catch(d){return void b.onError()}var e,f,g=new Eb,h=Jb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;T(i)&&(i=sc(i));var j=new Db;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new yb(g,h,Bb(function(){e=!0}))})};var Wb=Vb.repeat=function(a,b){return null==b&&(b=-1),new Vb(function(){var c=b;return new Ub(function(){return 0===c?Y:(c>0&&c--,{done:!1,value:a})})})},Xb=Vb.of=function(a,b,c){return b||(b=O),new Vb(function(){var d=-1;return new Ub(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(_b);$b.toArray=function(){var a=this;return new zc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},bc.create=bc.createWithDisposable=function(a){return new zc(a)};{var dc=bc.defer=function(a){return new zc(function(b){var c;try{c=a()}catch(d){return jc(d).subscribe(b)}return T(c)&&(c=sc(c)),c.subscribe(b)})},ec=bc.empty=function(a){return N(a)||(a=Jb),new zc(function(b){return a.schedule(function(){b.onCompleted()})})},fc=Math.pow(2,53)-1,gc=bc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!q(b))throw new Error("mapFn when provided must be a function");return N(d)||(d=Kb),new zc(function(e){var f=Object(a),g=n(f),h=g?0:p(f),i=g?f[X]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&q(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},hc=bc.fromArray=function(a,b){return N(b)||(b=Kb),new zc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};bc.never=function(){return new zc(function(){return Cb})}}bc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return hc(b)};bc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return hc(c,a)};bc.range=function(a,b,c){return N(c)||(c=Kb),new zc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},bc.repeat=function(a,b,c){return N(c)||(c=Kb),ic(a,c).repeat(null==b?-1:b)};var ic=bc["return"]=bc.returnValue=bc.just=function(a,b){return N(b)||(b=Jb),new zc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},jc=bc["throw"]=bc.throwException=bc.throwError=function(a,b){return N(b)||(b=Jb),new zc(function(c){return b.schedule(function(){c.onError(a)})})};$b["catch"]=$b.catchError=$b.catchException=function(a){return"function"==typeof a?r(this,a):kc([this,a])};var kc=bc.catchException=bc.catchError=bc["catch"]=function(){return Xb(j(arguments,0)).catchException()};$b.combineLatest=function(){var a=tb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),lc.apply(this,a)};var lc=bc.combineLatest=function(){var a=tb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new zc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(O))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(O)&&c.onCompleted()}function e(a){j[a]=!0,j.every(O)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new Db;T(f)&&(f=sc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new yb(m)})};$b.concat=function(){var a=tb.call(arguments,0);return a.unshift(this),mc.apply(this,a)};var mc=bc.concat=function(){return Xb(j(arguments,0)).concat()};$b.concatObservable=$b.concatAll=function(){return this.merge(1)},$b.merge=function(a){if("number"!=typeof a)return nc(this,a);var b=this;return new zc(function(c){function d(a){var b=new Db;f.add(b),T(a)&&(a=sc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new yb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var nc=bc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=tb.call(arguments,1)):(a=Jb,b=tb.call(arguments,0)):(a=Jb,b=tb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),hc(b,a).mergeObservable()};$b.mergeObservable=$b.mergeAll=function(){var a=this;return new zc(function(b){var c=new yb,d=!1,e=new Db;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Db;c.add(e),T(a)&&(a=sc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},$b.skipUntil=function(a){var b=this;return new zc(function(c){var d=!1,e=new yb(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));T(a)&&(a=sc(a));var f=new Db;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e})},$b["switch"]=$b.switchLatest=function(){var a=this;return new zc(function(b){var c=!1,d=new Eb,e=!1,f=0,g=a.subscribe(function(a){var g=new Db,h=++f;c=!0,d.setDisposable(g),T(a)&&(a=sc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new yb(g,d)})},$b.takeUntil=function(a){var b=this;return new zc(function(c){return T(a)&&(a=sc(a)),new yb(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),M))})},$b.zip=function(){if(Array.isArray(arguments[0]))return s.apply(this,arguments);var a=this,b=tb.call(arguments),c=b.pop();return b.unshift(a),new zc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(O)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new Db;T(c)&&(c=sc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new yb(j)})},bc.zip=function(){var a=tb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},bc.zipArray=function(){var a=j(arguments,0);return new zc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(O))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(O)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Db,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new yb(h);return j.add(Bb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},$b.asObservable=function(){return new zc(this.subscribe.bind(this))},$b.dematerialize=function(){var a=this;return new zc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},$b.distinctUntilChanged=function(a,b){var c=this;return a||(a=O),b||(b=Q),new zc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},$b["do"]=$b.doAction=$b.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new zc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},$b.doOnNext=$b.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},$b.doOnError=$b.tapOnError=function(a,b){return this.tap(M,2===arguments.length?function(c){a.call(b,c)}:a)},$b.doOnCompleted=$b.tapOnCompleted=function(a,b){return this.tap(M,null,2===arguments.length?function(){a.call(b)}:a)},$b["finally"]=$b.finallyAction=function(a){var b=this;return new zc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Bb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},$b.ignoreElements=function(){var a=this;return new zc(function(b){return a.subscribe(M,b.onError.bind(b),b.onCompleted.bind(b))})},$b.materialize=function(){var a=this;return new zc(function(b){return a.subscribe(function(a){b.onNext(Rb(a))},function(a){b.onNext(Sb(a)),b.onCompleted()},function(){b.onNext(Tb()),b.onCompleted()})})},$b.repeat=function(a){return Wb(this,a).concat()},$b.retry=function(a){return Wb(this,a).catchException() -},$b.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new zc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},$b.skipLast=function(a){var b=this;return new zc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},$b.startWith=function(){var a,b,c=0;return arguments.length&&N(arguments[0])?(b=arguments[0],c=1):b=Jb,a=tb.call(arguments,c),Xb([hc(a,b),this]).concat()},$b.takeLast=function(a){var b=this;return new zc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},$b.selectConcat=$b.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?t(this,a,c):t(this,function(){return a})},$b.select=$b.map=function(a,b){var c=this;return new zc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},$b.pluck=function(a){return this.map(function(b){return b[a]})},$b.selectMany=$b.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?u(this,a,c):u(this,function(){return a})},$b.selectSwitch=$b.flatMapLatest=$b.switchMap=function(a,b){return this.select(a,b).switchLatest()},$b.skip=function(a){if(0>a)throw new Error(V);var b=this;return new zc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},$b.skipWhile=function(a,b){var c=this;return new zc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},$b.take=function(a,b){if(0>a)throw new RangeError(V);if(0===a)return ec(b);var c=this;return new zc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},$b.takeWhile=function(a,b){var c=this;return new zc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},$b.where=$b.filter=function(a,b){var c=this;return new zc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.fromCallback=function(a,b,c){return function(){var d=tb.call(arguments,0);return new zc(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},bc.fromNodeCallback=function(a,b,c){return function(){var d=tb.call(arguments,0);return new zc(function(e){function f(a){if(a)return void e.onError(a);var b=tb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},L.config.useNativeEvents=!1;var oc=G.angular&&angular.element?angular.element:G.jQuery?G.jQuery:G.Zepto?G.Zepto:null,pc=!!G.Ember&&"function"==typeof G.Ember.addListener,qc=!!G.Backbone&&!!G.Backbone.Marionette;bc.fromEvent=function(a,b,c){if(a.addListener)return rc(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!L.config.useNativeEvents){if(qc)return rc(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(pc)return rc(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(oc){var d=oc(a);return rc(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new zc(function(d){return w(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var rc=bc.fromEventPattern=function(a,b,c){return new zc(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return Bb(function(){b&&b(e,f)})}).publish().refCount()},sc=bc.fromPromise=function(a){return dc(function(){var b=new L.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};$b.toPromise=function(a){if(a||(a=L.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},bc.startAsync=function(a){var b;try{b=a()}catch(c){return jc(c)}return sc(b)},$b.multicast=function(a,b){var c=this;return"function"==typeof a?new zc(function(d){var e=c.multicast(a());return new yb(b(e).subscribe(d),e.connect())}):new tc(c,a)},$b.publish=function(a){return a&&U(a)?this.multicast(function(){return new Cc},a):this.multicast(new Cc)},$b.share=function(){return this.publish().refCount()},$b.publishLast=function(a){return a&&U(a)?this.multicast(function(){return new Dc},a):this.multicast(new Dc)},$b.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new Fc(b)},a):this.multicast(new Fc(a))},$b.shareValue=function(a){return this.publishValue(a).refCount()},$b.replay=function(a,b,c,d){return a&&U(a)?this.multicast(function(){return new Gc(b,c,d)},a):this.multicast(new Gc(b,c,d))},$b.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var tc=L.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new yb(f.subscribe(c),Bb(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return ub(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new zc(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(bc),uc=bc.interval=function(a,b){return A(a,a,N(b)?b:Pb)};bc.timer=function(b,c,d){var e;return N(d)||(d=Pb),c!==a&&"number"==typeof c?e=c:N(c)&&(d=c),b instanceof Date&&e===a?x(b.getTime(),d):b instanceof Date&&e!==a?(e=c,y(b.getTime(),e,d)):e===a?z(b,d):A(b,e,d)}}$b.delay=function(a,b){return N(b)||(b=Pb),a instanceof Date?C(this,a.getTime(),b):B(this,a,b)},$b.throttle=function(a,b){N(b)||(b=Pb);var c=this;return new zc(function(d){var e,f=new Eb,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new Db;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new yb(i,f)})},$b.timestamp=function(a){return N(a)||(a=Pb),this.map(function(b){return{value:b,timestamp:a.now()}})},$b.sample=function(a,b){return N(b)||(b=Pb),"number"==typeof a?D(this,uc(a,b)):D(this,a)},$b.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=jc(new Error(b||"Timeout"))),N(c)||(c=Pb);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zc(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(T(b)&&(b=sc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new Db,j=new Eb,k=!1,l=new Eb;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new yb(j,l)})};var vc=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=Cb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=Cb)});return new yb(c,d,e)}function c(c,d){this.source=c,this.controller=new Cc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return ub(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(bc);$b.pausable=function(a){return new vc(this,a)};var wc=function(b){function c(b){var c,d=[],e=E(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Cc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return ub(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(bc);$b.pausableBuffered=function(a){return new wc(this,a)},$b.controlled=function(a){return null==a&&(a=!0),new xc(this,a)};var xc=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new yc(d),this.source=c.multicast(this.subject).refCount()}return ub(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(bc),yc=L.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Cc,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=Cb,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=Cb}return ub(d,a),vb(d.prototype,Yb,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=Cb):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=Cb),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?Cb:(this.requestedCount=a,this.requestedDisposable=Bb(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=Cb},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(bc);$b.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new zc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var zc=L.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Bb(a):Cb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Ac(a);return Kb.scheduleRequired()?Kb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return ub(c,a),c}(bc),Ac=function(a){function b(b){a.call(this),this.observer=b,this.m=new Db}ub(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(_b),Bc=function(a,b){this.subject=a,this.observer=b};Bc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Cc=L.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Cb):(a.onCompleted(),Cb):(this.observers.push(a),new Bc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Ec(a,b)},d}(bc),Dc=L.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Bc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Cb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(bc),Ec=L.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return ub(b,a),vb(b.prototype,Yb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(bc),Fc=L.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new Bc(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),Cb}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(bc),Gc=L.ReplaySubject=function(a){function c(a,b){return Bb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new cc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||Kb,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return ub(e,a),vb(e.prototype,Yb,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(bc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(G.Rx=L,define(function(){return L})):H&&I?J?(I.exports=L).Rx=L:H.Rx=L:G.Rx=L}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(W)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;rb.nonEnumArgs&&a.length&&h(a)&&(a=tb.call(a));var d=rb.enumPrototypes&&"function"==typeof a,e=rb.enumErrorProps&&(a===lb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(rb.nonEnumShadows&&a!==mb){var g=a.constructor,i=-1,j=pb.length;if(a===(g&&g.prototype))var k=a===stringProto?hb:a===lb?cb:ib.call(a),l=qb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:tb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a){return"number"==typeof a&&G.isFinite(a)}function n(b){return b[X]!==a}function o(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function p(a){var b=+a.length;return isNaN(b)?0:0!==b&&m(b)?(b=o(b)*Math.floor(Math.abs(b)),0>=b?0:b>fc?fc:b):b}function q(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function r(a,b){return new zc(function(c){var d=new Db,e=new Eb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}T(f)&&(f=sc(f)),d=new Db,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function s(a,b){var c=this;return new zc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function t(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return T(f)&&(f=sc(f)),(Array.isArray(f)||n(f))&&(f=gc(f)),f}).concatAll()}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return T(f)&&(f=sc(f)),(Array.isArray(f)||n(f))&&(f=gc(f)),f}).mergeObservable()}function v(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),Bb(function(){a.removeEventListener(b,c,!1)});throw new Error("No listener found")}function w(a,b,c){var d=new yb;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(w(a.item(e),b,c));else a&&d.add(v(a,b,c));return d}function x(a,b){return new zc(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function y(a,b,c){return new zc(function(d){var e=0,f=a,g=Hb(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function z(a,b){return new zc(function(c){return b.scheduleWithRelative(Hb(a),function(){c.onNext(0),c.onCompleted()})})}function A(a,b,c){return a===b?new zc(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):dc(function(){return y(c.now()+a,b,c)})}function B(a,b,c){return new zc(function(d){var e,f=!1,g=new Eb,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Db,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new yb(e,g)})}function C(a,b,c){return dc(function(){return B(a,b-c.now(),c)})}function D(a,b){return new zc(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new yb(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))})}function E(a,b,c){return new zc(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(O))){try{e=c.apply(null,j)}catch(f){return void d.onError(f)}d.onNext(e)}else i&&d.onCompleted()}var f=2,g=[!1,!1],h=!1,i=!1,j=new Array(f);return new yb(a.subscribe(function(a){e(a,0)},d.onError.bind(d),function(){i=!0,d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d)))})}var F={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},G=F[typeof window]&&window||this,H=F[typeof exports]&&exports&&!exports.nodeType&&exports,I=F[typeof module]&&module&&!module.nodeType&&module,J=I&&I.exports===H&&H,K=F[typeof global]&&global;!K||K.global!==K&&K.window!==K||(G=K);var L={internals:{},config:{Promise:G.Promise},helpers:{}},M=L.helpers.noop=function(){},N=(L.helpers.notDefined=function(a){return"undefined"==typeof a},L.helpers.isScheduler=function(a){return a instanceof L.Scheduler}),O=L.helpers.identity=function(a){return a},P=(L.helpers.pluck=function(a){return function(b){return b[a]}},L.helpers.just=function(a){return function(){return a}},L.helpers.defaultNow=Date.now),Q=L.helpers.defaultComparer=function(a,b){return sb(a,b)},R=L.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},S=(L.helpers.defaultKeySerializer=function(a){return a.toString()},L.helpers.defaultError=function(a){throw a}),T=L.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},U=(L.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},L.helpers.not=function(a){return!a},L.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==ib.call(a)}),a}()),V="Argument out of range",W="Object has been disposed",X="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";G.Set&&"function"==typeof(new G.Set)["@@iterator"]&&(X="@@iterator");var Y=L.doneEnumerator={done:!0,value:a};L.iterator=X;var Z,$="[object Arguments]",_="[object Array]",ab="[object Boolean]",bb="[object Date]",cb="[object Error]",db="[object Function]",eb="[object Number]",fb="[object Object]",gb="[object RegExp]",hb="[object String]",ib=Object.prototype.toString,jb=Object.prototype.hasOwnProperty,kb=ib.call(arguments)==$,lb=Error.prototype,mb=Object.prototype,nb=mb.propertyIsEnumerable;try{Z=!(ib.call(document)==fb&&!({toString:0}+""))}catch(ob){Z=!0}var pb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],qb={};qb[_]=qb[bb]=qb[eb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},qb[ab]=qb[hb]={constructor:!0,toString:!0,valueOf:!0},qb[cb]=qb[db]=qb[gb]={constructor:!0,toString:!0},qb[fb]={constructor:!0};var rb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);rb.enumErrorProps=nb.call(lb,"message")||nb.call(lb,"name"),rb.enumPrototypes=nb.call(a,"prototype"),rb.nonEnumArgs=0!=c,rb.nonEnumShadows=!/valueOf/.test(b)}(1),kb||(h=function(a){return a&&"object"==typeof a?jb.call(a,"callee"):!1});{var sb=L.internals.isEqual=function(a,b){return i(a,b,[],[])},tb=Array.prototype.slice,ub=({}.hasOwnProperty,this.inherits=L.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),vb=L.internals.addProperties=function(a){for(var b=tb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}};L.internals.addRef=function(a,b){return new zc(function(c){return new yb(b.getDisposable(),a.subscribe(c))})}}l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var wb=L.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},xb=wb.prototype;xb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},xb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},xb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},zb.toArray=function(){return this.disposables.slice(0)};var Ab=L.Disposable=function(a){this.isDisposed=!1,this.action=a||M};Ab.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Bb=Ab.create=function(a){return new Ab(a)},Cb=Ab.empty={dispose:M},Db=L.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Eb=L.SerialDisposable=Db,Fb=(L.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Cb:new a(this)},b}(),L.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||R,this.disposable=new Db});Fb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Fb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Fb.prototype.isCancelled=function(){return this.disposable.isDisposed},Fb.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Gb=L.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Cb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=P,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Hb=Gb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new yb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Cb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new yb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Cb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Gb.prototype),function(){Gb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Gb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof G.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=G.setInterval(function(){d=c(d)},b);return Bb(function(){G.clearInterval(e)})}}(Gb.prototype);var Ib,Jb=Gb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Hb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Gb(P,a,b,c)}(),Kb=Gb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Gb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Gb.normalize(c),g=new Fb(this,b,d,f);if(e)e.enqueue(g);else{e=new wb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Gb(P,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Lb=(L.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Db;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),M),Mb=function(){var a,b=M;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!G.setTimeout)throw new Error("No concurrency detected!");a=G.setTimeout,b=G.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Nb=Mb.setTimeout,Ob=Mb.clearTimeout;!function(){function a(){if(!G.postMessage||G.importScripts)return!1;var a=!1,b=G.onmessage;return G.onmessage=function(){a=!0},G.postMessage("","*"),G.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(ib).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=K&&J&&K.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=K&&J&&K.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Ib=process.nextTick;else if("function"==typeof d)Ib=d,Lb=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;G.addEventListener?G.addEventListener("message",b,!1):G.attachEvent("onmessage",b,!1),Ib=function(a){var b=h++;g[b]=a,G.postMessage(f+b,"*")}}else if(G.MessageChannel){var i=new G.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Ib=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in G&&"onreadystatechange"in G.document.createElement("script")?Ib=function(a){var b=G.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},G.document.documentElement.appendChild(b)}:(Ib=function(a){return Nb(a,0)},Lb=Ob)}();var Pb=Gb.timeout=function(){function a(a,b){var c=this,d=new Db,e=Ib(function(){d.isDisposed||d.setDisposable(b(c,a))});return new yb(d,Bb(function(){Lb(e)}))}function b(a,b,c){var d=this,e=Gb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Db,g=Nb(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new yb(f,Bb(function(){Ob(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Gb(P,a,b,c)}(),Qb=L.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return N(a)||(a=Jb),new zc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Rb=Qb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Qb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Sb=Qb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Qb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Tb=Qb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Qb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Ub=L.internals.Enumerator=function(a){this._next=a};Ub.prototype.next=function(){return this._next()},Ub.prototype[X]=function(){return this};var Vb=L.internals.Enumerable=function(a){this._iterator=a};Vb.prototype[X]=function(){return this._iterator()},Vb.prototype.concat=function(){var a=this;return new zc(function(b){var c;try{c=a[X]()}catch(d){return void b.onError()}var e,f=new Eb,g=Jb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;T(h)&&(h=sc(h));var i=new Db;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new yb(f,g,Bb(function(){e=!0}))})},Vb.prototype.catchException=function(){var a=this;return new zc(function(b){var c;try{c=a[X]()}catch(d){return void b.onError()}var e,f,g=new Eb,h=Jb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;T(i)&&(i=sc(i));var j=new Db;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new yb(g,h,Bb(function(){e=!0}))})};var Wb=Vb.repeat=function(a,b){return null==b&&(b=-1),new Vb(function(){var c=b;return new Ub(function(){return 0===c?Y:(c>0&&c--,{done:!1,value:a})})})},Xb=Vb.of=function(a,b,c){return b||(b=O),new Vb(function(){var d=-1;return new Ub(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(_b);$b.toArray=function(){var a=this;return new zc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},bc.create=bc.createWithDisposable=function(a){return new zc(a)};{var dc=bc.defer=function(a){return new zc(function(b){var c;try{c=a()}catch(d){return jc(d).subscribe(b)}return T(c)&&(c=sc(c)),c.subscribe(b)})},ec=bc.empty=function(a){return N(a)||(a=Jb),new zc(function(b){return a.schedule(function(){b.onCompleted()})})},fc=Math.pow(2,53)-1,gc=bc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!q(b))throw new Error("mapFn when provided must be a function");return N(d)||(d=Kb),new zc(function(e){var f=Object(a),g=n(f),h=g?0:p(f),i=g?f[X]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&q(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},hc=bc.fromArray=function(a,b){return N(b)||(b=Kb),new zc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};bc.never=function(){return new zc(function(){return Cb})}}bc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return hc(b)};bc.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return hc(c,a)};bc.range=function(a,b,c){return N(c)||(c=Kb),new zc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},bc.repeat=function(a,b,c){return N(c)||(c=Kb),ic(a,c).repeat(null==b?-1:b)};var ic=bc["return"]=bc.returnValue=bc.just=function(a,b){return N(b)||(b=Jb),new zc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},jc=bc["throw"]=bc.throwException=bc.throwError=function(a,b){return N(b)||(b=Jb),new zc(function(c){return b.schedule(function(){c.onError(a)})})};$b["catch"]=$b.catchError=$b.catchException=function(a){return"function"==typeof a?r(this,a):kc([this,a])};var kc=bc.catchException=bc.catchError=bc["catch"]=function(){return Xb(j(arguments,0)).catchException()};$b.combineLatest=function(){var a=tb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),lc.apply(this,a)};var lc=bc.combineLatest=function(){var a=tb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new zc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(O))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(O)&&c.onCompleted()}function e(a){j[a]=!0,j.every(O)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new Db;T(f)&&(f=sc(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new yb(m)})};$b.concat=function(){var a=tb.call(arguments,0);return a.unshift(this),mc.apply(this,a)};var mc=bc.concat=function(){return Xb(j(arguments,0)).concat()};$b.concatObservable=$b.concatAll=function(){return this.merge(1)},$b.merge=function(a){if("number"!=typeof a)return nc(this,a);var b=this;return new zc(function(c){function d(a){var b=new Db;f.add(b),T(a)&&(a=sc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new yb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var nc=bc.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=tb.call(arguments,1)):(a=Jb,b=tb.call(arguments,0)):(a=Jb,b=tb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),hc(b,a).mergeObservable()};$b.mergeObservable=$b.mergeAll=function(){var a=this;return new zc(function(b){var c=new yb,d=!1,e=new Db;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Db;c.add(e),T(a)&&(a=sc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},$b.skipUntil=function(a){var b=this;return new zc(function(c){var d=!1,e=new yb(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));T(a)&&(a=sc(a));var f=new Db;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e})},$b["switch"]=$b.switchLatest=function(){var a=this;return new zc(function(b){var c=!1,d=new Eb,e=!1,f=0,g=a.subscribe(function(a){var g=new Db,h=++f;c=!0,d.setDisposable(g),T(a)&&(a=sc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new yb(g,d)})},$b.takeUntil=function(a){var b=this;return new zc(function(c){return T(a)&&(a=sc(a)),new yb(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),M))})},$b.zip=function(){if(Array.isArray(arguments[0]))return s.apply(this,arguments);var a=this,b=tb.call(arguments),c=b.pop();return b.unshift(a),new zc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(O)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new Db;T(c)&&(c=sc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new yb(j)})},bc.zip=function(){var a=tb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},bc.zipArray=function(){var a=j(arguments,0);return new zc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(O))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(O)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Db,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new yb(h);return j.add(Bb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},$b.asObservable=function(){return new zc(this.subscribe.bind(this))},$b.dematerialize=function(){var a=this;return new zc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},$b.distinctUntilChanged=function(a,b){var c=this;return a||(a=O),b||(b=Q),new zc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},$b["do"]=$b.doAction=$b.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new zc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},$b.doOnNext=$b.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},$b.doOnError=$b.tapOnError=function(a,b){return this.tap(M,2===arguments.length?function(c){a.call(b,c)}:a)},$b.doOnCompleted=$b.tapOnCompleted=function(a,b){return this.tap(M,null,2===arguments.length?function(){a.call(b)}:a)},$b["finally"]=$b.finallyAction=function(a){var b=this;return new zc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Bb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},$b.ignoreElements=function(){var a=this;return new zc(function(b){return a.subscribe(M,b.onError.bind(b),b.onCompleted.bind(b))})},$b.materialize=function(){var a=this;return new zc(function(b){return a.subscribe(function(a){b.onNext(Rb(a))},function(a){b.onNext(Sb(a)),b.onCompleted()},function(){b.onNext(Tb()),b.onCompleted()})})},$b.repeat=function(a){return Wb(this,a).concat() +},$b.retry=function(a){return Wb(this,a).catchException()},$b.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new zc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},$b.skipLast=function(a){var b=this;return new zc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},$b.startWith=function(){var a,b,c=0;return arguments.length&&N(arguments[0])?(b=arguments[0],c=1):b=Jb,a=tb.call(arguments,c),Xb([hc(a,b),this]).concat()},$b.takeLast=function(a){var b=this;return new zc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},$b.selectConcat=$b.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?t(this,a,c):t(this,function(){return a})},$b.select=$b.map=function(a,b){var c=this;return new zc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},$b.pluck=function(a){return this.map(function(b){return b[a]})},$b.selectMany=$b.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return T(e)&&(e=sc(e)),(Array.isArray(e)||n(e))&&(e=gc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?u(this,a,c):u(this,function(){return a})},$b.selectSwitch=$b.flatMapLatest=$b.switchMap=function(a,b){return this.select(a,b).switchLatest()},$b.skip=function(a){if(0>a)throw new Error(V);var b=this;return new zc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},$b.skipWhile=function(a,b){var c=this;return new zc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},$b.take=function(a,b){if(0>a)throw new RangeError(V);if(0===a)return ec(b);var c=this;return new zc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},$b.takeWhile=function(a,b){var c=this;return new zc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},$b.where=$b.filter=function(a,b){var c=this;return new zc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},bc.fromCallback=function(a,b,c){return function(){var d=tb.call(arguments,0);return new zc(function(e){function f(a){var b=a;if(c){try{b=c(arguments)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},bc.fromNodeCallback=function(a,b,c){return function(){var d=tb.call(arguments,0);return new zc(function(e){function f(a){if(a)return void e.onError(a);var b=tb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},L.config.useNativeEvents=!1;var oc=G.angular&&angular.element?angular.element:G.jQuery?G.jQuery:G.Zepto?G.Zepto:null,pc=!!G.Ember&&"function"==typeof G.Ember.addListener,qc=!!G.Backbone&&!!G.Backbone.Marionette;bc.fromEvent=function(a,b,c){if(a.addListener)return rc(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!L.config.useNativeEvents){if(qc)return rc(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(pc)return rc(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(oc){var d=oc(a);return rc(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new zc(function(d){return w(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var rc=bc.fromEventPattern=function(a,b,c){return new zc(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return Bb(function(){b&&b(e,f)})}).publish().refCount()},sc=bc.fromPromise=function(a){return dc(function(){var b=new L.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};$b.toPromise=function(a){if(a||(a=L.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},bc.startAsync=function(a){var b;try{b=a()}catch(c){return jc(c)}return sc(b)},$b.multicast=function(a,b){var c=this;return"function"==typeof a?new zc(function(d){var e=c.multicast(a());return new yb(b(e).subscribe(d),e.connect())}):new tc(c,a)},$b.publish=function(a){return a&&U(a)?this.multicast(function(){return new Cc},a):this.multicast(new Cc)},$b.share=function(){return this.publish().refCount()},$b.publishLast=function(a){return a&&U(a)?this.multicast(function(){return new Dc},a):this.multicast(new Dc)},$b.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new Fc(b)},a):this.multicast(new Fc(a))},$b.shareValue=function(a){return this.publishValue(a).refCount()},$b.replay=function(a,b,c,d){return a&&U(a)?this.multicast(function(){return new Gc(b,c,d)},a):this.multicast(new Gc(b,c,d))},$b.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var tc=L.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new yb(f.subscribe(c),Bb(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return ub(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new zc(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(bc),uc=bc.interval=function(a,b){return A(a,a,N(b)?b:Pb)};bc.timer=function(b,c,d){var e;return N(d)||(d=Pb),c!==a&&"number"==typeof c?e=c:N(c)&&(d=c),b instanceof Date&&e===a?x(b.getTime(),d):b instanceof Date&&e!==a?(e=c,y(b.getTime(),e,d)):e===a?z(b,d):A(b,e,d)}}$b.delay=function(a,b){return N(b)||(b=Pb),a instanceof Date?C(this,a.getTime(),b):B(this,a,b)},$b.throttle=function(a,b){N(b)||(b=Pb);var c=this;return new zc(function(d){var e,f=new Eb,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new Db;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new yb(i,f)})},$b.timestamp=function(a){return N(a)||(a=Pb),this.map(function(b){return{value:b,timestamp:a.now()}})},$b.sample=function(a,b){return N(b)||(b=Pb),"number"==typeof a?D(this,uc(a,b)):D(this,a)},$b.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=jc(new Error(b||"Timeout"))),N(c)||(c=Pb);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new zc(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(T(b)&&(b=sc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new Db,j=new Eb,k=!1,l=new Eb;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new yb(j,l)})};var vc=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=Cb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=Cb)});return new yb(c,d,e)}function c(c,d){this.source=c,this.controller=new Cc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b)}return ub(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(bc);$b.pausable=function(a){return new vc(this,a)};var wc=function(b){function c(b){var c,d=[],e=E(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Cc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c)}return ub(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(bc);$b.pausableBuffered=function(a){return new wc(this,a)},$b.controlled=function(a){return null==a&&(a=!0),new xc(this,a)};var xc=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b),this.subject=new yc(d),this.source=c.multicast(this.subject).refCount()}return ub(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(bc),yc=L.ControlledSubject=function(a){function c(a){return this.subject.subscribe(a)}function d(b){null==b&&(b=!0),a.call(this,c),this.subject=new Cc,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=Cb,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=Cb}return ub(d,a),vb(d.prototype,Yb,{onCompleted:function(){b.call(this),this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length||this.subject.onCompleted()},onError:function(a){b.call(this),this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length||this.subject.onError(a)},onNext:function(a){b.call(this);var c=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),c=!0),c&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=Cb):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=Cb),{numberOfItems:a,returnValue:!1}},request:function(a){b.call(this),this.disposeCurrentRequest();var c=this,d=this._processRequest(a);return a=d.numberOfItems,d.returnValue?Cb:(this.requestedCount=a,this.requestedDisposable=Bb(function(){c.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=Cb},dispose:function(){this.isDisposed=!0,this.error=null,this.subject.dispose(),this.requestedDisposable.dispose()}}),d}(bc);$b.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new zc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var zc=L.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Bb(a):Cb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Ac(a);return Kb.scheduleRequired()?Kb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return ub(c,a),c}(bc),Ac=function(a){function b(b){a.call(this),this.observer=b,this.m=new Db}ub(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(_b),Bc=function(a,b){this.subject=a,this.observer=b};Bc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Cc=L.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Cb):(a.onCompleted(),Cb):(this.observers.push(a),new Bc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Ec(a,b)},d}(bc),Dc=L.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Bc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Cb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(bc),Ec=L.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return ub(b,a),vb(b.prototype,Yb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(bc),Fc=L.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new Bc(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),Cb}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return ub(d,a),vb(d.prototype,Yb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(bc),Gc=L.ReplaySubject=function(a){function c(a,b){return Bb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new cc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=this.q.length,g=0,h=this.q.length;h>g;g++)d.onNext(this.q[g].value);return this.hasError?(f++,d.onError(this.error)):this.isStopped&&(f++,d.onCompleted()),d.ensureActive(f),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||Kb,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return ub(e,a),vb(e.prototype,Yb,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(bc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(G.Rx=L,define(function(){return L})):H&&I?J?(I.exports=L).Rx=L:H.Rx=L:G.Rx=L}).call(this); //# sourceMappingURL=rx.lite.map \ No newline at end of file diff --git a/dist/rx.map b/dist/rx.map index db841f13d..6c7514abe 100644 --- a/dist/rx.map +++ b/dist/rx.map @@ -1 +1 @@ -{"version":3,"file":"rx.min.js","sources":["rx.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","identity","defaultNow","pluck","property","just","Date","now","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","p","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","CompositeDisposable","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","disposables","CompositeDisposablePrototype","add","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","disposableCreate","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","RefCountDisposable","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","schedule","ScheduledItem","state","dueTime","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelative","scheduleWithRelativeAndState","scheduleWithAbsolute","scheduleWithAbsoluteAndState","normalize","timeSpan","normalizeTime","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","isDone","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","self","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelative","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsolute","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","period","schedulePeriodicWithState","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","immediateScheduler","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","q","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","addEventListener","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","kind","hasValue","accept","observerOrOnNext","_acceptObservable","_accept","toObservable","notification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","next","_next","Enumerable","_iterator","concat","cancelable","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","n","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","shift","apply","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","m","fromPromise","promise","observableDefer","subject","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","v","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","condition","iterate","hasResult","observableNever","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","res","hasValueAll","every","values","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","materialize","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","Infinity","createWindow","Subject","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","defaultValue","found","retValue","distinct","hashSet","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","predicate","running","take","RangeError","observable","takeWhile","shouldRun","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.min.js","sources":["rx.js"],"names":["undefined","checkDisposed","this","isDisposed","Error","objectDisposed","isObject","value","type","keysIn","object","result","support","nonEnumArgs","length","isArguments","slice","call","skipProto","enumPrototypes","skipErrorProps","enumErrorProps","errorProto","key","push","nonEnumShadows","objectProto","ctor","constructor","index","shadowedProps","prototype","className","stringProto","stringClass","errorClass","toString","nonEnum","nonEnumProps","hasOwnProperty","internalFor","callback","keysFunc","props","internalForIn","isNode","argsClass","deepEquals","a","b","stackA","stackB","otherType","otherClass","objectClass","boolClass","dateClass","numberClass","regexpClass","String","isArr","arrayClass","nodeClass","ctorA","argsObject","Object","ctorB","isFunction","size","pop","argsOrArray","args","idx","Array","isArray","arrayInitialize","count","factory","i","IndexedItem","id","ScheduledDisposable","scheduler","disposable","numberIsFinite","root","isFinite","isIterable","o","$iterator$","sign","number","isNaN","toLength","len","Math","floor","abs","maxSafeInteger","isCallable","f","observableCatchHandler","source","handler","AnonymousObservable","observer","d1","SingleAssignmentDisposable","subscription","SerialDisposable","setDisposable","subscribe","onNext","bind","exception","d","ex","onError","isPromise","observableFromPromise","onCompleted","zipArray","second","resultSelector","first","left","right","e","concatMap","selector","thisArg","map","x","observableFrom","concatAll","arrayIndexOfComparer","array","item","comparer","HashSet","set","flatMap","mergeObservable","objectTypes","boolean","function","string","window","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","Rx","internals","config","Promise","helpers","noop","isScheduler","notDefined","Scheduler","identity","defaultNow","pluck","property","just","Date","now","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","err","p","then","asArray","arguments","not","isFn","argumentOutOfRange","Symbol","iterator","Set","doneEnumerator","done","suportNodeClass","funcClass","supportsArgsClass","propertyIsEnumerable","document","toLocaleString","valueOf","test","inherits","child","parent","__","addProperties","obj","sources","prop","addRef","xs","r","CompositeDisposable","getDisposable","compareTo","other","c","PriorityQueue","capacity","items","priorityProto","isHigherPriority","percolate","temp","heapify","peek","removeAt","dequeue","enqueue","remove","disposables","CompositeDisposablePrototype","add","dispose","shouldDispose","indexOf","splice","currentDisposables","toArray","Disposable","action","disposableCreate","create","disposableEmpty","empty","BooleanDisposable","current","booleanDisposablePrototype","old","RefCountDisposable","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","schedule","ScheduledItem","state","dueTime","invoke","invokeCore","isCancelled","scheduleRelative","scheduleAbsolute","_schedule","_scheduleRelative","_scheduleAbsolute","invokeAction","schedulerProto","scheduleWithState","scheduleWithRelative","scheduleWithRelativeAndState","scheduleWithAbsolute","scheduleWithAbsoluteAndState","normalize","timeSpan","normalizeTime","invokeRecImmediate","pair","group","recursiveAction","state1","state2","isAdded","isDone","scheduler1","state3","invokeRecDate","method","dueTime1","scheduleInnerRecursive","self","dt","scheduleRecursive","scheduleRecursiveWithState","_action","scheduleRecursiveWithRelative","scheduleRecursiveWithRelativeAndState","s","scheduleRecursiveWithAbsolute","scheduleRecursiveWithAbsoluteAndState","schedulePeriodic","period","schedulePeriodicWithState","setInterval","clearInterval","catchError","CatchScheduler","scheduleMethod","immediateScheduler","SchedulePeriodicRecursive","tick","command","recurse","_period","_state","_cancel","_scheduler","start","immediate","scheduleNow","currentThreadScheduler","currentThread","runTrampoline","q","si","queue","currentScheduler","scheduleRequired","ensureTrampoline","clearMethod","localTimer","localSetTimeout","localClearTimeout","fn","time","WScript","Sleep","setTimeout","clearTimeout","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","onGlobalPostMessage","event","data","substring","MSG_PREFIX","handleId","tasks","reNative","RegExp","replace","setImmediate","clearImmediate","process","nextTick","random","taskId","addEventListener","attachEvent","currentId","MessageChannel","channel","channelTasks","channelTaskId","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","__super__","_wrap","_handler","_recursiveOriginal","_recursiveWrapper","_clone","_getRecursiveWrapper","wrapper","failed","Notification","kind","hasValue","accept","observerOrOnNext","_acceptObservable","_accept","toObservable","notification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Enumerator","next","_next","Enumerable","_iterator","concat","cancelable","currentItem","currentValue","catchException","lastException","exn","enumerableRepeat","repeat","repeatCount","enumerableOf","of","Observer","toNotifier","n","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","notifyOn","ObserveOnObserver","observableProto","AbstractObserver","isStopped","error","completed","fail","_onNext","_onError","_onCompleted","_super","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","ensureActive","isOwner","work","shift","apply","Observable","_subscribe","forEach","subscribeOnNext","subscribeOnError","subscribeOnCompleted","observeOn","subscribeOn","m","fromPromise","promise","observableDefer","subject","AsyncSubject","toPromise","promiseCtor","TypeError","resolve","reject","v","arr","createWithDisposable","defer","observableFactory","observableThrow","observableEmpty","pow","from","iterable","mapFn","list","objIsIterable","it","charAt","observableFromArray","fromArray","generate","initialState","condition","iterate","hasResult","observableNever","never","ofWithScheduler","range","observableReturn","returnValue","throwException","throwError","using","resourceFactory","resource","amb","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","func","previous","acc","handlerOrSecond","observableCatch","combineLatest","unshift","res","hasValueAll","every","values","filter","j","falseFactory","subscriptions","sad","observableConcat","concatObservable","merge","maxConcurrentOrOther","observableMerge","activeCount","innerSource","mergeAll","innerSubscription","onErrorResumeNext","pos","skipUntil","isOpen","switchLatest","hasLatest","latest","takeUntil","zip","queuedValues","queues","compositeDisposable","qIdx","qLen","asObservable","bufferWithCount","skip","windowWithCount","selectMany","where","dematerialize","distinctUntilChanged","keySelector","currentKey","hasCurrentKey","comparerEquals","doAction","tap","onNextFunc","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","finallyAction","ignoreElements","materialize","retry","retryCount","scan","seed","accumulator","hasSeed","hasAccumulation","accumulation","skipLast","startWith","takeLast","takeLastBuffer","Infinity","createWindow","Subject","refCountDisposable","selectConcat","selectorResult","i2","concatMapObserver","selectConcatObserver","defaultIfEmpty","defaultValue","found","retValue","distinct","hashSet","select","flatMapObserver","selectManyObserver","selectSwitch","flatMapLatest","switchMap","remaining","skipWhile","predicate","running","take","RangeError","observable","takeWhile","shouldRun","transduce","transducer","transformForObserver","init","step","obs","input","xform","fixSubscriber","subscriber","autoDetachObserver","AutoDetachObserver","AutoDetachObserverPrototype","noError","InnerSubscription","observers","hasObservers","os","AnonymousSubject","hv","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.min.js b/dist/rx.min.js index ac2ea586d..3393053c1 100644 --- a/dist/rx.min.js +++ b/dist/rx.min.js @@ -1,4 +1,4 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(){if(this.isDisposed)throw new Error(P)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;kb.nonEnumArgs&&a.length&&h(a)&&(a=mb.call(a));var d=kb.enumPrototypes&&"function"==typeof a,e=kb.enumErrorProps&&(a===eb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(kb.nonEnumShadows&&a!==fb){var g=a.constructor,i=-1,j=ib.length;if(a===(g&&g.prototype))var k=a===stringProto?ab:a===eb?X:bb.call(a),l=jb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:mb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&z.isFinite(a)}function o(b){return b[Q]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>dc?dc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new oc(function(c){var d=new xb,e=new yb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}M(f)&&(f=ac(f)),d=new xb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new oc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(a,d){var e=b.call(c,a,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e}).mergeObservable()}var y={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},z=y[typeof window]&&window||this,A=y[typeof exports]&&exports&&!exports.nodeType&&exports,B=y[typeof module]&&module&&!module.nodeType&&module,C=B&&B.exports===A&&A,D=y[typeof global]&&global;!D||D.global!==D&&D.window!==D||(z=D);var E={internals:{},config:{Promise:z.Promise},helpers:{}},F=E.helpers.noop=function(){},G=(E.helpers.notDefined=function(a){return"undefined"==typeof a},E.helpers.isScheduler=function(a){return a instanceof E.Scheduler}),H=E.helpers.identity=function(a){return a},I=(E.helpers.pluck=function(a){return function(b){return b[a]}},E.helpers.just=function(a){return function(){return a}},E.helpers.defaultNow=Date.now),J=E.helpers.defaultComparer=function(a,b){return lb(a,b)},K=E.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},L=(E.helpers.defaultKeySerializer=function(a){return a.toString()},E.helpers.defaultError=function(a){throw a}),M=E.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},N=(E.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},E.helpers.not=function(a){return!a},E.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==bb.call(a)}),a}()),O="Argument out of range",P="Object has been disposed",Q="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";z.Set&&"function"==typeof(new z.Set)["@@iterator"]&&(Q="@@iterator");var R=E.doneEnumerator={done:!0,value:a};E.iterator=Q;var S,T="[object Arguments]",U="[object Array]",V="[object Boolean]",W="[object Date]",X="[object Error]",Y="[object Function]",Z="[object Number]",$="[object Object]",_="[object RegExp]",ab="[object String]",bb=Object.prototype.toString,cb=Object.prototype.hasOwnProperty,db=bb.call(arguments)==T,eb=Error.prototype,fb=Object.prototype,gb=fb.propertyIsEnumerable;try{S=!(bb.call(document)==$&&!({toString:0}+""))}catch(hb){S=!0}var ib=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],jb={};jb[U]=jb[W]=jb[Z]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},jb[V]=jb[ab]={constructor:!0,toString:!0,valueOf:!0},jb[X]=jb[Y]=jb[_]={constructor:!0,toString:!0},jb[$]={constructor:!0};var kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);kb.enumErrorProps=gb.call(eb,"message")||gb.call(eb,"name"),kb.enumPrototypes=gb.call(a,"prototype"),kb.nonEnumArgs=0!=c,kb.nonEnumShadows=!/valueOf/.test(b)}(1),db||(h=function(a){return a&&"object"==typeof a?cb.call(a,"callee"):!1});var lb=E.internals.isEqual=function(a,b){return i(a,b,[],[])},mb=Array.prototype.slice,nb=({}.hasOwnProperty,this.inherits=E.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),ob=E.internals.addProperties=function(a){for(var b=mb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},pb=E.internals.addRef=function(a,b){return new oc(function(c){return new sb(b.getDisposable(),a.subscribe(c))})};l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var qb=E.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},rb=qb.prototype;rb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},rb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},rb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},tb.toArray=function(){return this.disposables.slice(0)};var ub=E.Disposable=function(a){this.isDisposed=!1,this.action=a||F};ub.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var vb=ub.create=function(a){return new ub(a)},wb=ub.empty={dispose:F},xb=E.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),yb=E.SerialDisposable=xb,zb=E.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?wb:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var Ab=E.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||K,this.disposable=new xb};Ab.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Ab.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Ab.prototype.isCancelled=function(){return this.disposable.isDisposed},Ab.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Bb=E.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),wb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=I,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Cb=Bb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new sb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),wb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new sb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),wb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Bb.prototype),function(){Bb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Bb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof z.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=z.setInterval(function(){d=c(d)},b);return vb(function(){z.clearInterval(e)})}}(Bb.prototype),function(a){a.catchError=a["catch"]=function(a){return new Kb(this,a)}}(Bb.prototype);var Db,Eb=(E.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new xb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),Bb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Cb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Bb(I,a,b,c)}()),Fb=Bb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Bb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Bb.normalize(c),g=new Ab(this,b,d,f);if(e)e.enqueue(g);else{e=new qb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Bb(I,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Gb=F,Hb=function(){var a,b=F;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!z.setTimeout)throw new Error("No concurrency detected!");a=z.setTimeout,b=z.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Ib=Hb.setTimeout,Jb=Hb.clearTimeout;!function(){function a(){if(!z.postMessage||z.importScripts)return!1;var a=!1,b=z.onmessage;return z.onmessage=function(){a=!0},z.postMessage("","*"),z.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(bb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=D&&C&&D.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=D&&C&&D.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Db=process.nextTick;else if("function"==typeof d)Db=d,Gb=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;z.addEventListener?z.addEventListener("message",b,!1):z.attachEvent("onmessage",b,!1),Db=function(a){var b=h++;g[b]=a,z.postMessage(f+b,"*")}}else if(z.MessageChannel){var i=new z.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Db=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in z&&"onreadystatechange"in z.document.createElement("script")?Db=function(a){var b=z.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},z.document.documentElement.appendChild(b)}:(Db=function(a){return Ib(a,0)},Gb=Jb)}();var Kb=(Bb.timeout=function(){function a(a,b){var c=this,d=new xb,e=Db(function(){d.isDisposed||d.setDisposable(b(c,a))});return new sb(d,vb(function(){Gb(e)}))}function b(a,b,c){var d=this,e=Bb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new xb,g=Ib(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new sb(f,vb(function(){Jb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Bb(I,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return nb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return wb}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new xb;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(Bb)),Lb=E.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return G(a)||(a=Eb),new oc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Mb=Lb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Lb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Nb=Lb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Lb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Ob=Lb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Lb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Pb=E.internals.Enumerator=function(a){this._next=a};Pb.prototype.next=function(){return this._next()},Pb.prototype[Q]=function(){return this};var Qb=E.internals.Enumerable=function(a){this._iterator=a};Qb.prototype[Q]=function(){return this._iterator()},Qb.prototype.concat=function(){var a=this;return new oc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f=new yb,g=Eb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;M(h)&&(h=ac(h));var i=new xb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new sb(f,g,vb(function(){e=!0}))})},Qb.prototype.catchException=function(){var a=this;return new oc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f,g=new yb,h=Eb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;M(i)&&(i=ac(i));var j=new xb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new sb(g,h,vb(function(){e=!0}))})};var Rb=Qb.repeat=function(a,b){return null==b&&(b=-1),new Qb(function(){var c=b;return new Pb(function(){return 0===c?R:(c>0&&c--,{done:!1,value:a})})})},Sb=Qb.of=function(a,b,c){return b||(b=H),new Qb(function(){var d=-1;return new Pb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Wb),$b=function(a){function b(){a.apply(this,arguments)}return nb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Zb),_b=E.Observable=function(){function a(a){this._subscribe=a}return Vb=a.prototype,Vb.subscribe=Vb.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Ub(a,b,c))},Vb.subscribeOnNext=function(a,b){return this._subscribe(Ub(2===arguments.length?function(c){a.call(b,c)}:a))},Vb.subscribeOnError=function(a,b){return this._subscribe(Ub(null,2===arguments.length?function(c){a.call(b,c)}:a))},Vb.subscribeOnCompleted=function(a,b){return this._subscribe(Ub(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Vb.observeOn=function(a){var b=this;return new oc(function(c){return b.subscribe(new $b(a,c))})},Vb.subscribeOn=function(a){var b=this;return new oc(function(c){var d=new xb,e=new yb;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var ac=_b.fromPromise=function(a){return bc(function(){var b=new E.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Vb.toPromise=function(a){if(a||(a=E.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Vb.toArray=function(){var a=this;return new oc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},_b.create=_b.createWithDisposable=function(a){return new oc(a)};var bc=_b.defer=function(a){return new oc(function(b){var c;try{c=a()}catch(d){return ic(d).subscribe(b)}return M(c)&&(c=ac(c)),c.subscribe(b)})},cc=_b.empty=function(a){return G(a)||(a=Eb),new oc(function(b){return a.schedule(function(){b.onCompleted()})})},dc=Math.pow(2,53)-1,ec=_b.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return G(d)||(d=Fb),new oc(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Q]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k=i.next();if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},fc=_b.fromArray=function(a,b){return G(b)||(b=Fb),new oc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};_b.generate=function(a,b,c,d,e){return G(e)||(e=Fb),new oc(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var gc=_b.never=function(){return new oc(function(){return wb})};_b.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return fc(b)};_b.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return fc(c,a)};_b.range=function(a,b,c){return G(c)||(c=Fb),new oc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},_b.repeat=function(a,b,c){return G(c)||(c=Fb),hc(a,c).repeat(null==b?-1:b)};var hc=_b["return"]=_b.returnValue=_b.just=function(a,b){return G(b)||(b=Eb),new oc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},ic=_b["throw"]=_b.throwException=_b.throwError=function(a,b){return G(b)||(b=Eb),new oc(function(c){return b.schedule(function(){c.onError(a)})})};_b.using=function(a,b){return new oc(function(c){var d,e,f=wb;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new sb(ic(g).subscribe(c),f)}return new sb(e.subscribe(c),f)})},Vb.amb=function(a){var b=this;return new oc(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new xb,j=new xb;return M(a)&&(a=ac(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new sb(i,j)})},_b.amb=function(){function a(a,b){return a.amb(b)}for(var b=gc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Vb["catch"]=Vb.catchError=Vb.catchException=function(a){return"function"==typeof a?s(this,a):jc([this,a])};var jc=_b.catchException=_b.catchError=_b["catch"]=function(){return Sb(j(arguments,0)).catchException()};Vb.combineLatest=function(){var a=mb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),kc.apply(this,a)};var kc=_b.combineLatest=function(){var a=mb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new oc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(H))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(H)&&c.onCompleted()}function e(a){j[a]=!0,j.every(H)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new xb;M(f)&&(f=ac(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new sb(m)})};Vb.concat=function(){var a=mb.call(arguments,0);return a.unshift(this),lc.apply(this,a)};var lc=_b.concat=function(){return Sb(j(arguments,0)).concat()};Vb.concatObservable=Vb.concatAll=function(){return this.merge(1)},Vb.merge=function(a){if("number"!=typeof a)return mc(this,a);var b=this;return new oc(function(c){function d(a){var b=new xb;f.add(b),M(a)&&(a=ac(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new sb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var mc=_b.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=mb.call(arguments,1)):(a=Eb,b=mb.call(arguments,0)):(a=Eb,b=mb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),fc(b,a).mergeObservable()};Vb.mergeObservable=Vb.mergeAll=function(){var a=this;return new oc(function(b){var c=new sb,d=!1,e=new xb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new xb;c.add(e),M(a)&&(a=ac(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Vb.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return nc([this,a])};var nc=_b.onErrorResumeNext=function(){var a=j(arguments,0);return new oc(function(b){var c=0,d=new yb,e=Eb.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(H)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new xb;M(c)&&(c=ac(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new sb(j)})},_b.zip=function(){var a=mb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},_b.zipArray=function(){var a=j(arguments,0); -return new oc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(H))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(H)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new xb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new sb(h);return j.add(vb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Vb.asObservable=function(){return new oc(this.subscribe.bind(this))},Vb.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Vb.dematerialize=function(){var a=this;return new oc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Vb.distinctUntilChanged=function(a,b){var c=this;return a||(a=H),b||(b=J),new oc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Vb["do"]=Vb.doAction=Vb.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new oc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Vb.doOnNext=Vb.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Vb.doOnError=Vb.tapOnError=function(a,b){return this.tap(F,2===arguments.length?function(c){a.call(b,c)}:a)},Vb.doOnCompleted=Vb.tapOnCompleted=function(a,b){return this.tap(F,null,2===arguments.length?function(){a.call(b)}:a)},Vb["finally"]=Vb.finallyAction=function(a){var b=this;return new oc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return vb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Vb.ignoreElements=function(){var a=this;return new oc(function(b){return a.subscribe(F,b.onError.bind(b),b.onCompleted.bind(b))})},Vb.materialize=function(){var a=this;return new oc(function(b){return a.subscribe(function(a){b.onNext(Mb(a))},function(a){b.onNext(Nb(a)),b.onCompleted()},function(){b.onNext(Ob()),b.onCompleted()})})},Vb.repeat=function(a){return Rb(this,a).concat()},Vb.retry=function(a){return Rb(this,a).catchException()},Vb.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new oc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Vb.skipLast=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Vb.startWith=function(){var a,b,c=0;return arguments.length&&G(arguments[0])?(b=arguments[0],c=1):b=Eb,a=mb.call(arguments,c),Sb([fc(a,b),this]).concat()},Vb.takeLast=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Vb.takeLastBuffer=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Vb.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(O);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(O);return new oc(function(d){function e(){var a=new rc;i.push(a),d.onNext(pb(a,g))}var f=new xb,g=new zb(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Vb.selectConcat=Vb.concatMap=function(a,b,c){return b?this.concatMap(function(c,d){var e=a(c,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Vb.concatMapObserver=Vb.selectConcatObserver=function(a,b,c,d){var e=this;return new oc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=ac(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Vb.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new oc(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Vb.distinct=function(a,b){var c=this;return b||(b=J),new oc(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.select=Vb.map=function(a,b){var c=this;return new oc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.pluck=function(a){return this.map(function(b){return b[a]})},Vb.flatMapObserver=Vb.selectManyObserver=function(a,b,c,d){var e=this;return new oc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=ac(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Vb.selectMany=Vb.flatMap=function(a,b,c){return b?this.flatMap(function(c,d){var e=a(c,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Vb.selectSwitch=Vb.flatMapLatest=Vb.switchMap=function(a,b){return this.select(a,b).switchLatest()},Vb.skip=function(a){if(0>a)throw new Error(O);var b=this;return new oc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Vb.skipWhile=function(a,b){var c=this;return new oc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.take=function(a,b){if(0>a)throw new RangeError(O);if(0===a)return cc(b);var c=this;return new oc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Vb.takeWhile=function(a,b){var c=this;return new oc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.where=Vb.filter=function(a,b){var c=this;return new oc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new oc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var oc=E.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?vb(a):wb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new pc(a);return Fb.scheduleRequired()?Fb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return nb(c,a),c}(_b),pc=function(a){function b(b){a.call(this),this.observer=b,this.m=new xb}nb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Wb),qc=function(a,b){this.subject=a,this.observer=b};qc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var rc=E.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),wb):(a.onCompleted(),wb):(this.observers.push(a),new qc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return nb(d,a),ob(d.prototype,Tb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new sc(a,b)},d}(_b),sc=(E.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new qc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),wb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return nb(d,a),ob(d.prototype,Tb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(_b),E.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return nb(b,a),ob(b.prototype,Tb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(_b));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(z.Rx=E,define(function(){return E})):A&&B?C?(B.exports=E).Rx=E:A.Rx=E:z.Rx=E}).call(this); +(function(a){function b(){if(this.isDisposed)throw new Error(P)}function c(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function d(a){var b=[];if(!c(a))return b;kb.nonEnumArgs&&a.length&&h(a)&&(a=mb.call(a));var d=kb.enumPrototypes&&"function"==typeof a,e=kb.enumErrorProps&&(a===eb||a instanceof Error);for(var f in a)d&&"prototype"==f||e&&("message"==f||"name"==f)||b.push(f);if(kb.nonEnumShadows&&a!==fb){var g=a.constructor,i=-1,j=ib.length;if(a===(g&&g.prototype))var k=a===stringProto?ab:a===eb?X:bb.call(a),l=jb[k];for(;++i-1:void 0});return c.pop(),d.pop(),r}function j(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:mb.call(a)}function k(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function l(a,b){this.id=a,this.value=b}function m(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function n(a){return"number"==typeof a&&z.isFinite(a)}function o(b){return b[Q]!==a}function p(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function q(a){var b=+a.length;return isNaN(b)?0:0!==b&&n(b)?(b=p(b)*Math.floor(Math.abs(b)),0>=b?0:b>dc?dc:b):b}function r(a){return"[object Function]"===Object.prototype.toString.call(a)&&"function"==typeof a}function s(a,b){return new oc(function(c){var d=new xb,e=new yb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}M(f)&&(f=ac(f)),d=new xb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e})}function t(a,b){var c=this;return new oc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))})}function u(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return M(f)&&(f=ac(f)),(Array.isArray(f)||o(f))&&(f=ec(f)),f}).concatAll()}function v(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function w(a){this.comparer=a,this.set=[]}function x(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return M(f)&&(f=ac(f)),(Array.isArray(f)||o(f))&&(f=ec(f)),f}).mergeObservable()}var y={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},z=y[typeof window]&&window||this,A=y[typeof exports]&&exports&&!exports.nodeType&&exports,B=y[typeof module]&&module&&!module.nodeType&&module,C=B&&B.exports===A&&A,D=y[typeof global]&&global;!D||D.global!==D&&D.window!==D||(z=D);var E={internals:{},config:{Promise:z.Promise},helpers:{}},F=E.helpers.noop=function(){},G=(E.helpers.notDefined=function(a){return"undefined"==typeof a},E.helpers.isScheduler=function(a){return a instanceof E.Scheduler}),H=E.helpers.identity=function(a){return a},I=(E.helpers.pluck=function(a){return function(b){return b[a]}},E.helpers.just=function(a){return function(){return a}},E.helpers.defaultNow=Date.now),J=E.helpers.defaultComparer=function(a,b){return lb(a,b)},K=E.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},L=(E.helpers.defaultKeySerializer=function(a){return a.toString()},E.helpers.defaultError=function(a){throw a}),M=E.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},N=(E.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},E.helpers.not=function(a){return!a},E.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==bb.call(a)}),a}()),O="Argument out of range",P="Object has been disposed",Q="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";z.Set&&"function"==typeof(new z.Set)["@@iterator"]&&(Q="@@iterator");var R=E.doneEnumerator={done:!0,value:a};E.iterator=Q;var S,T="[object Arguments]",U="[object Array]",V="[object Boolean]",W="[object Date]",X="[object Error]",Y="[object Function]",Z="[object Number]",$="[object Object]",_="[object RegExp]",ab="[object String]",bb=Object.prototype.toString,cb=Object.prototype.hasOwnProperty,db=bb.call(arguments)==T,eb=Error.prototype,fb=Object.prototype,gb=fb.propertyIsEnumerable;try{S=!(bb.call(document)==$&&!({toString:0}+""))}catch(hb){S=!0}var ib=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],jb={};jb[U]=jb[W]=jb[Z]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},jb[V]=jb[ab]={constructor:!0,toString:!0,valueOf:!0},jb[X]=jb[Y]=jb[_]={constructor:!0,toString:!0},jb[$]={constructor:!0};var kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);kb.enumErrorProps=gb.call(eb,"message")||gb.call(eb,"name"),kb.enumPrototypes=gb.call(a,"prototype"),kb.nonEnumArgs=0!=c,kb.nonEnumShadows=!/valueOf/.test(b)}(1),db||(h=function(a){return a&&"object"==typeof a?cb.call(a,"callee"):!1});var lb=E.internals.isEqual=function(a,b){return i(a,b,[],[])},mb=Array.prototype.slice,nb=({}.hasOwnProperty,this.inherits=E.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),ob=E.internals.addProperties=function(a){for(var b=mb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},pb=E.internals.addRef=function(a,b){return new oc(function(c){return new sb(b.getDisposable(),a.subscribe(c))})};l.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var qb=E.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},rb=qb.prototype;rb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},rb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},rb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(bb;b++)a[b].dispose()}},tb.toArray=function(){return this.disposables.slice(0)};var ub=E.Disposable=function(a){this.isDisposed=!1,this.action=a||F};ub.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var vb=ub.create=function(a){return new ub(a)},wb=ub.empty={dispose:F},xb=E.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),yb=E.SerialDisposable=xb,zb=E.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?wb:new a(this)},b}();m.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var Ab=E.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||K,this.disposable=new xb};Ab.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Ab.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Ab.prototype.isCancelled=function(){return this.disposable.isDisposed},Ab.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Bb=E.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),wb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=I,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Cb=Bb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new sb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),wb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new sb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),wb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Bb.prototype),function(){Bb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Bb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof z.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=z.setInterval(function(){d=c(d)},b);return vb(function(){z.clearInterval(e)})}}(Bb.prototype),function(a){a.catchError=a["catch"]=function(a){return new Kb(this,a)}}(Bb.prototype);var Db,Eb=(E.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new xb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),Bb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Cb(d);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Bb(I,a,b,c)}()),Fb=Bb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Bb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Bb.normalize(c),g=new Ab(this,b,d,f);if(e)e.enqueue(g);else{e=new qb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Bb(I,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),Gb=F,Hb=function(){var a,b=F;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!z.setTimeout)throw new Error("No concurrency detected!");a=z.setTimeout,b=z.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),Ib=Hb.setTimeout,Jb=Hb.clearTimeout;!function(){function a(){if(!z.postMessage||z.importScripts)return!1;var a=!1,b=z.onmessage;return z.onmessage=function(){a=!0},z.postMessage("","*"),z.onmessage=b,a}function b(a){if("string"==typeof a.data&&a.data.substring(0,f.length)===f){var b=a.data.substring(f.length),c=g[b];c(),delete g[b]}}var c=RegExp("^"+String(bb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),d="function"==typeof(d=D&&C&&D.setImmediate)&&!c.test(d)&&d,e="function"==typeof(e=D&&C&&D.clearImmediate)&&!c.test(e)&&e;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Db=process.nextTick;else if("function"==typeof d)Db=d,Gb=e;else if(a()){var f="ms.rx.schedule"+Math.random(),g={},h=0;z.addEventListener?z.addEventListener("message",b,!1):z.attachEvent("onmessage",b,!1),Db=function(a){var b=h++;g[b]=a,z.postMessage(f+b,"*")}}else if(z.MessageChannel){var i=new z.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Db=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in z&&"onreadystatechange"in z.document.createElement("script")?Db=function(a){var b=z.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},z.document.documentElement.appendChild(b)}:(Db=function(a){return Ib(a,0)},Gb=Jb)}();var Kb=(Bb.timeout=function(){function a(a,b){var c=this,d=new xb,e=Db(function(){d.isDisposed||d.setDisposable(b(c,a))});return new sb(d,vb(function(){Gb(e)}))}function b(a,b,c){var d=this,e=Bb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new xb,g=Ib(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new sb(f,vb(function(){Jb(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Bb(I,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return nb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return wb}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new xb;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(Bb)),Lb=E.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return G(a)||(a=Eb),new oc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),Mb=Lb.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new Lb("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Nb=Lb.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new Lb("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),Ob=Lb.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new Lb("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),Pb=E.internals.Enumerator=function(a){this._next=a};Pb.prototype.next=function(){return this._next()},Pb.prototype[Q]=function(){return this};var Qb=E.internals.Enumerable=function(a){this._iterator=a};Qb.prototype[Q]=function(){return this._iterator()},Qb.prototype.concat=function(){var a=this;return new oc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f=new yb,g=Eb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;M(h)&&(h=ac(h));var i=new xb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new sb(f,g,vb(function(){e=!0}))})},Qb.prototype.catchException=function(){var a=this;return new oc(function(b){var c;try{c=a[Q]()}catch(d){return void b.onError()}var e,f,g=new yb,h=Eb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;M(i)&&(i=ac(i));var j=new xb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new sb(g,h,vb(function(){e=!0}))})};var Rb=Qb.repeat=function(a,b){return null==b&&(b=-1),new Qb(function(){var c=b;return new Pb(function(){return 0===c?R:(c>0&&c--,{done:!1,value:a})})})},Sb=Qb.of=function(a,b,c){return b||(b=H),new Qb(function(){var d=-1;return new Pb(function(){return++d0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Wb),$b=function(a){function b(){a.apply(this,arguments)}return nb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b}(Zb),_b=E.Observable=function(){function a(a){this._subscribe=a}return Vb=a.prototype,Vb.subscribe=Vb.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Ub(a,b,c))},Vb.subscribeOnNext=function(a,b){return this._subscribe(Ub(2===arguments.length?function(c){a.call(b,c)}:a))},Vb.subscribeOnError=function(a,b){return this._subscribe(Ub(null,2===arguments.length?function(c){a.call(b,c)}:a))},Vb.subscribeOnCompleted=function(a,b){return this._subscribe(Ub(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();Vb.observeOn=function(a){var b=this;return new oc(function(c){return b.subscribe(new $b(a,c))})},Vb.subscribeOn=function(a){var b=this;return new oc(function(c){var d=new xb,e=new yb;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new m(a,b.subscribe(c)))})),e})};var ac=_b.fromPromise=function(a){return bc(function(){var b=new E.AsyncSubject;return a.then(function(a){b.isDisposed||(b.onNext(a),b.onCompleted())},b.onError.bind(b)),b})};Vb.toPromise=function(a){if(a||(a=E.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Vb.toArray=function(){var a=this;return new oc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})})},_b.create=_b.createWithDisposable=function(a){return new oc(a)};var bc=_b.defer=function(a){return new oc(function(b){var c;try{c=a()}catch(d){return ic(d).subscribe(b)}return M(c)&&(c=ac(c)),c.subscribe(b)})},cc=_b.empty=function(a){return G(a)||(a=Eb),new oc(function(b){return a.schedule(function(){b.onCompleted()})})},dc=Math.pow(2,53)-1,ec=_b.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!r(b))throw new Error("mapFn when provided must be a function");return G(d)||(d=Fb),new oc(function(e){var f=Object(a),g=o(f),h=g?0:q(f),i=g?f[Q]():null,j=0;return d.scheduleRecursive(function(a){if(h>j||g){var d;if(g){var k;try{k=i.next()}catch(l){return void e.onError(l)}if(k.done)return void e.onCompleted();d=k.value}else d=f.charAt?f.charAt(j):f[j];if(b&&r(b))try{d=c?b.call(c,d,j):b(d,j)}catch(l){return void e.onError(l)}e.onNext(d),j++,a()}else e.onCompleted()})})},fc=_b.fromArray=function(a,b){return G(b)||(b=Fb),new oc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};_b.generate=function(a,b,c,d,e){return G(e)||(e=Fb),new oc(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var gc=_b.never=function(){return new oc(function(){return wb})};_b.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return fc(b)};_b.ofWithScheduler=function(a){for(var b=arguments.length-1,c=new Array(b),d=0;b>d;d++)c[d]=arguments[d+1];return fc(c,a)};_b.range=function(a,b,c){return G(c)||(c=Fb),new oc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},_b.repeat=function(a,b,c){return G(c)||(c=Fb),hc(a,c).repeat(null==b?-1:b)};var hc=_b["return"]=_b.returnValue=_b.just=function(a,b){return G(b)||(b=Eb),new oc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})},ic=_b["throw"]=_b.throwException=_b.throwError=function(a,b){return G(b)||(b=Eb),new oc(function(c){return b.schedule(function(){c.onError(a)})})};_b.using=function(a,b){return new oc(function(c){var d,e,f=wb;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new sb(ic(g).subscribe(c),f)}return new sb(e.subscribe(c),f)})},Vb.amb=function(a){var b=this;return new oc(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new xb,j=new xb;return M(a)&&(a=ac(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new sb(i,j)})},_b.amb=function(){function a(a,b){return a.amb(b)}for(var b=gc(),c=j(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},Vb["catch"]=Vb.catchError=Vb.catchException=function(a){return"function"==typeof a?s(this,a):jc([this,a])};var jc=_b.catchException=_b.catchError=_b["catch"]=function(){return Sb(j(arguments,0)).catchException()};Vb.combineLatest=function(){var a=mb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),kc.apply(this,a)};var kc=_b.combineLatest=function(){var a=mb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new oc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(H))){try{d=b.apply(null,l)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(H)&&c.onCompleted()}function e(a){j[a]=!0,j.every(H)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=k(g,f),i=!1,j=k(g,f),l=new Array(g),m=new Array(g),n=0;g>n;n++)!function(b){var f=a[b],g=new xb;M(f)&&(f=ac(f)),g.setDisposable(f.subscribe(function(a){l[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),m[b]=g}(n);return new sb(m)})};Vb.concat=function(){var a=mb.call(arguments,0);return a.unshift(this),lc.apply(this,a)};var lc=_b.concat=function(){return Sb(j(arguments,0)).concat()};Vb.concatObservable=Vb.concatAll=function(){return this.merge(1)},Vb.merge=function(a){if("number"!=typeof a)return mc(this,a);var b=this;return new oc(function(c){function d(a){var b=new xb;f.add(b),M(a)&&(a=ac(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new sb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f})};var mc=_b.merge=function(){var a,b;return arguments[0]?arguments[0].now?(a=arguments[0],b=mb.call(arguments,1)):(a=Eb,b=mb.call(arguments,0)):(a=Eb,b=mb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),fc(b,a).mergeObservable()};Vb.mergeObservable=Vb.mergeAll=function(){var a=this;return new oc(function(b){var c=new sb,d=!1,e=new xb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new xb;c.add(e),M(a)&&(a=ac(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c})},Vb.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return nc([this,a])};var nc=_b.onErrorResumeNext=function(){var a=j(arguments,0);return new oc(function(b){var c=0,d=new yb,e=Eb.scheduleRecursive(function(e){var f,g;c0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(H)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=k(g,function(){return[]}),i=k(g,function(){return!1}),j=new Array(g),l=0;g>l;l++)!function(a){var c=b[a],g=new xb;M(c)&&(c=ac(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(l);return new sb(j)})},_b.zip=function(){var a=mb.call(arguments,0),b=a.shift(); +return b.zip.apply(b,a)},_b.zipArray=function(){var a=j(arguments,0);return new oc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(H))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(H)?void b.onCompleted():void 0}for(var e=a.length,f=k(e,function(){return[]}),g=k(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new xb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new sb(h);return j.add(vb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},Vb.asObservable=function(){return new oc(this.subscribe.bind(this))},Vb.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},Vb.dematerialize=function(){var a=this;return new oc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))})},Vb.distinctUntilChanged=function(a,b){var c=this;return a||(a=H),b||(b=J),new oc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))})},Vb["do"]=Vb.doAction=Vb.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new oc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})})},Vb.doOnNext=Vb.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},Vb.doOnError=Vb.tapOnError=function(a,b){return this.tap(F,2===arguments.length?function(c){a.call(b,c)}:a)},Vb.doOnCompleted=Vb.tapOnCompleted=function(a,b){return this.tap(F,null,2===arguments.length?function(){a.call(b)}:a)},Vb["finally"]=Vb.finallyAction=function(a){var b=this;return new oc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return vb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})})},Vb.ignoreElements=function(){var a=this;return new oc(function(b){return a.subscribe(F,b.onError.bind(b),b.onCompleted.bind(b))})},Vb.materialize=function(){var a=this;return new oc(function(b){return a.subscribe(function(a){b.onNext(Mb(a))},function(a){b.onNext(Nb(a)),b.onCompleted()},function(){b.onNext(Ob()),b.onCompleted()})})},Vb.repeat=function(a){return Rb(this,a).concat()},Vb.retry=function(a){return Rb(this,a).catchException()},Vb.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new oc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})})},Vb.skipLast=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))})},Vb.startWith=function(){var a,b,c=0;return arguments.length&&G(arguments[0])?(b=arguments[0],c=1):b=Eb,a=mb.call(arguments,c),Sb([fc(a,b),this]).concat()},Vb.takeLast=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})})},Vb.takeLastBuffer=function(a){var b=this;return new oc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})},Vb.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(O);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(O);return new oc(function(d){function e(){var a=new rc;i.push(a),d.onNext(pb(a,g))}var f=new xb,g=new zb(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g})},Vb.selectConcat=Vb.concatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.concatMap(function(c,d){var e=a(c,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e.map(function(a,e){return b(c,a,d,e)})}):"function"==typeof a?u(this,a,c):u(this,function(){return a})},Vb.concatMapObserver=Vb.selectConcatObserver=function(a,b,c,d){var e=this;return new oc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=ac(a)),f.onNext(a),f.onCompleted()})}).concatAll()},Vb.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new oc(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){d||a.onNext(b),a.onCompleted()})})},w.prototype.push=function(a){var b=-1===v(this.set,a,this.comparer);return b&&this.set.push(a),b},Vb.distinct=function(a,b){var c=this;return b||(b=J),new oc(function(d){var e=new w(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.select=Vb.map=function(a,b){var c=this;return new oc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.pluck=function(a){return this.map(function(b){return b[a]})},Vb.flatMapObserver=Vb.selectManyObserver=function(a,b,c,d){var e=this;return new oc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}M(c)&&(c=ac(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}M(a)&&(a=ac(a)),f.onNext(a),f.onCompleted()})}).mergeAll()},Vb.selectMany=Vb.flatMap=function(a,b,c){return"function"==typeof a&&"function"==typeof b?this.flatMap(function(c,d){var e=a(c,d);return M(e)&&(e=ac(e)),(Array.isArray(e)||o(e))&&(e=ec(e)),e.map(function(a,e){return b(c,a,d,e)})},c):"function"==typeof a?x(this,a,c):x(this,function(){return a})},Vb.selectSwitch=Vb.flatMapLatest=Vb.switchMap=function(a,b){return this.select(a,b).switchLatest()},Vb.skip=function(a){if(0>a)throw new Error(O);var b=this;return new oc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))})},Vb.skipWhile=function(a,b){var c=this;return new oc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.take=function(a,b){if(0>a)throw new RangeError(O);if(0===a)return cc(b);var c=this;return new oc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))})},Vb.takeWhile=function(a,b){var c=this;return new oc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.where=Vb.filter=function(a,b){var c=this;return new oc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))})},Vb.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new oc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})})};var oc=E.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?vb(a):wb}function c(d){function e(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new pc(a);return Fb.scheduleRequired()?Fb.schedule(c):c(),e}return this instanceof c?void a.call(this,e):new c(d)}return nb(c,a),c}(_b),pc=function(a){function b(b){a.call(this),this.observer=b,this.m=new xb}nb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{b||this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.disposable=function(a){return arguments.length?this.getDisposable():setDisposable(a)},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Wb),qc=function(a,b){this.subject=a,this.observer=b};qc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var rc=E.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),wb):(a.onCompleted(),wb):(this.observers.push(a),new qc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return nb(d,a),ob(d.prototype,Tb,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new sc(a,b)},d}(_b),sc=(E.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new qc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),wb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return nb(d,a),ob(d.prototype,Tb,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(_b),E.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return nb(b,a),ob(b.prototype,Tb,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(_b));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(z.Rx=E,define(function(){return E})):A&&B?C?(B.exports=E).Rx=E:A.Rx=E:z.Rx=E}).call(this); //# sourceMappingURL=rx.map \ No newline at end of file diff --git a/dist/rx.testing.js b/dist/rx.testing.js index 50ca721fa..34ce3d4f3 100644 --- a/dist/rx.testing.js +++ b/dist/rx.testing.js @@ -53,88 +53,86 @@ slice.call(args); } - function OnNextPredicate(predicate) { - this.predicate = predicate; - }; - - OnNextPredicate.prototype.equals = function (other) { - if (other === this) { return true; } - if (other == null) { return false; } - if (other.kind !== 'N') { return false; } - return this.predicate(other.value); - }; - - function OnErrorPredicate(predicate) { - this.predicate = predicate; - }; +function OnNextPredicate(predicate) { + this.predicate = predicate; +}; + +OnNextPredicate.prototype.equals = function (other) { + if (other === this) { return true; } + if (other == null) { return false; } + if (other.kind !== 'N') { return false; } + return this.predicate(other.value); +}; + +function OnErrorPredicate(predicate) { + this.predicate = predicate; +}; + +OnErrorPredicate.prototype.equals = function (other) { + if (other === this) { return true; } + if (other == null) { return false; } + if (other.kind !== 'E') { return false; } + return this.predicate(other.exception); +}; + +var ReactiveTest = Rx.ReactiveTest = { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: 100, + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: 200, + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: 1000, - OnErrorPredicate.prototype.equals = function (other) { - if (other === this) { return true; } - if (other == null) { return false; } - if (other.kind !== 'E') { return false; } - return this.predicate(other.exception); - }; - - var ReactiveTest = Rx.ReactiveTest = { - /** Default virtual time used for creation of observable sequences in unit tests. */ - created: 100, - /** Default virtual time used to subscribe to observable sequences in unit tests. */ - subscribed: 200, - /** Default virtual time used to dispose subscriptions in unit tests. */ - disposed: 1000, - - /** - * Factory method for an OnNext notification record at a given time with a given value or a predicate function. - * - * 1 - ReactiveTest.onNext(200, 42); - * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); - * - * @param ticks Recorded virtual time the OnNext notification occurs. - * @param value Recorded value stored in the OnNext notification or a predicate. - * @return Recorded OnNext notification. - */ - onNext: function (ticks, value) { - if (typeof value === 'function') { - return new Recorded(ticks, new OnNextPredicate(value)); - } - return new Recorded(ticks, Notification.createOnNext(value)); - }, - /** - * Factory method for an OnError notification record at a given time with a given error. - * - * 1 - ReactiveTest.onNext(200, new Error('error')); - * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); - * - * @param ticks Recorded virtual time the OnError notification occurs. - * @param exception Recorded exception stored in the OnError notification. - * @return Recorded OnError notification. - */ - onError: function (ticks, exception) { - if (typeof exception === 'function') { - return new Recorded(ticks, new OnErrorPredicate(exception)); - } - return new Recorded(ticks, Notification.createOnError(exception)); - }, - /** - * Factory method for an OnCompleted notification record at a given time. - * - * @param ticks Recorded virtual time the OnCompleted notification occurs. - * @return Recorded OnCompleted notification. - */ - onCompleted: function (ticks) { - return new Recorded(ticks, Notification.createOnCompleted()); - }, - /** - * Factory method for a subscription record based on a given subscription and disposal time. - * - * @param start Virtual time indicating when the subscription was created. - * @param end Virtual time indicating when the subscription was disposed. - * @return Subscription object. - */ - subscribe: function (start, end) { - return new Subscription(start, end); - } - }; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext: function (ticks, value) { + return typeof value === 'function' ? + new Recorded(ticks, new OnNextPredicate(value)) : + new Recorded(ticks, Notification.createOnNext(value)); + }, + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError: function (ticks, error) { + return typeof error === 'function' ? + new Recorded(ticks, new OnErrorPredicate(error)) : + new Recorded(ticks, Notification.createOnError(error)); + }, + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted: function (ticks) { + return new Recorded(ticks, Notification.createOnCompleted()); + }, + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe: function (start, end) { + return new Subscription(start, end); + } +}; /** * Creates a new object recording the production of the specified value at the given virtual time. @@ -256,52 +254,47 @@ return MockObserver; })(Observer); - /** @private */ - var HotObservable = (function (_super) { - - function subscribe(observer) { - var observable = this; - this.observers.push(observer); - this.subscriptions.push(new Subscription(this.scheduler.clock)); - var index = this.subscriptions.length - 1; - return disposableCreate(function () { - var idx = observable.observers.indexOf(observer); - observable.observers.splice(idx, 1); - observable.subscriptions[index] = new Subscription(observable.subscriptions[index].subscribe, observable.scheduler.clock); - }); - } - - inherits(HotObservable, _super); - - /** - * @private - * @constructor - */ - function HotObservable(scheduler, messages) { - _super.call(this, subscribe); - var message, notification, observable = this; - this.scheduler = scheduler; - this.messages = messages; - this.subscriptions = []; - this.observers = []; - for (var i = 0, len = this.messages.length; i < len; i++) { - message = this.messages[i]; - notification = message.value; - (function (innerNotification) { - scheduler.scheduleAbsoluteWithState(null, message.time, function () { - var obs = observable.observers.slice(0); + var HotObservable = (function (__super__) { + + function subscribe(observer) { + var observable = this; + this.observers.push(observer); + this.subscriptions.push(new Subscription(this.scheduler.clock)); + var index = this.subscriptions.length - 1; + return disposableCreate(function () { + var idx = observable.observers.indexOf(observer); + observable.observers.splice(idx, 1); + observable.subscriptions[index] = new Subscription(observable.subscriptions[index].subscribe, observable.scheduler.clock); + }); + } - for (var j = 0, jLen = obs.length; j < jLen; j++) { - innerNotification.accept(obs[j]); - } - return disposableEmpty; - }); - })(notification); + inherits(HotObservable, __super__); + + function HotObservable(scheduler, messages) { + __super__.call(this, subscribe); + var message, notification, observable = this; + this.scheduler = scheduler; + this.messages = messages; + this.subscriptions = []; + this.observers = []; + for (var i = 0, len = this.messages.length; i < len; i++) { + message = this.messages[i]; + notification = message.value; + (function (innerNotification) { + scheduler.scheduleAbsoluteWithState(null, message.time, function () { + var obs = observable.observers.slice(0); + + for (var j = 0, jLen = obs.length; j < jLen; j++) { + innerNotification.accept(obs[j]); } - } + return disposableEmpty; + }); + })(notification); + } + } - return HotObservable; - })(Observable); + return HotObservable; + })(Observable); /** @private */ var ColdObservable = (function (_super) { @@ -343,138 +336,162 @@ return ColdObservable; })(Observable); - /** Virtual time scheduler used for testing applications and libraries built using Reactive Extensions. */ - Rx.TestScheduler = (function (_super) { - inherits(TestScheduler, _super); + /** Virtual time scheduler used for testing applications and libraries built using Reactive Extensions. */ + Rx.TestScheduler = (function (__super__) { + inherits(TestScheduler, __super__); - function baseComparer(x, y) { - return x > y ? 1 : (x < y ? -1 : 0); - } + function baseComparer(x, y) { + return x > y ? 1 : (x < y ? -1 : 0); + } - /** @constructor */ - function TestScheduler() { - _super.call(this, 0, baseComparer); - } + function TestScheduler() { + __super__.call(this, 0, baseComparer); + } - /** - * Schedules an action to be executed at the specified virtual time. - * - * @param state State passed to the action to be executed. - * @param dueTime Absolute virtual time at which to execute the action. - * @param action Action to be executed. - * @return Disposable object used to cancel the scheduled action (best effort). - */ - TestScheduler.prototype.scheduleAbsoluteWithState = function (state, dueTime, action) { - if (dueTime <= this.clock) { - dueTime = this.clock + 1; - } - return _super.prototype.scheduleAbsoluteWithState.call(this, state, dueTime, action); - }; - /** - * Adds a relative virtual time to an absolute virtual time value. - * - * @param absolute Absolute virtual time value. - * @param relative Relative virtual time value to add. - * @return Resulting absolute virtual time sum value. - */ - TestScheduler.prototype.add = function (absolute, relative) { - return absolute + relative; - }; - /** - * Converts the absolute virtual time value to a DateTimeOffset value. - * - * @param absolute Absolute virtual time value to convert. - * @return Corresponding DateTimeOffset value. - */ - TestScheduler.prototype.toDateTimeOffset = function (absolute) { - return new Date(absolute).getTime(); - }; - /** - * Converts the TimeSpan value to a relative virtual time value. - * - * @param timeSpan TimeSpan value to convert. - * @return Corresponding relative virtual time value. - */ - TestScheduler.prototype.toRelative = function (timeSpan) { - return timeSpan; - }; - /** - * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. - * - * @param create Factory method to create an observable sequence. - * @param created Virtual time at which to invoke the factory to create an observable sequence. - * @param subscribed Virtual time at which to subscribe to the created observable sequence. - * @param disposed Virtual time at which to dispose the subscription. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithTiming = function (create, created, subscribed, disposed) { - var observer = this.createObserver(), source, subscription; - this.scheduleAbsoluteWithState(null, created, function () { - source = create(); - return disposableEmpty; - }); - this.scheduleAbsoluteWithState(null, subscribed, function () { - subscription = source.subscribe(observer); - return disposableEmpty; - }); - this.scheduleAbsoluteWithState(null, disposed, function () { - subscription.dispose(); - return disposableEmpty; - }); - this.start(); - return observer; - }; - /** - * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. - * Default virtual times are used for factory invocation and sequence subscription. - * - * @param create Factory method to create an observable sequence. - * @param disposed Virtual time at which to dispose the subscription. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithDispose = function (create, disposed) { - return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, disposed); - }; - /** - * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. - * - * @param create Factory method to create an observable sequence. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithCreate = function (create) { - return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, ReactiveTest.disposed); - }; - /** - * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. - * - * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. - * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. - */ - TestScheduler.prototype.createHotObservable = function () { - var messages = argsOrArray(arguments, 0); - return new HotObservable(this, messages); - }; - /** - * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. - * - * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. - * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. - */ - TestScheduler.prototype.createColdObservable = function () { - var messages = argsOrArray(arguments, 0); - return new ColdObservable(this, messages); - }; - /** - * Creates an observer that records received notification messages and timestamps those. - * - * @return Observer that can be used to assert the timing of received notifications. - */ - TestScheduler.prototype.createObserver = function () { - return new MockObserver(this); - }; + /** + * Schedules an action to be executed at the specified virtual time. + * + * @param state State passed to the action to be executed. + * @param dueTime Absolute virtual time at which to execute the action. + * @param action Action to be executed. + * @return Disposable object used to cancel the scheduled action (best effort). + */ + TestScheduler.prototype.scheduleAbsoluteWithState = function (state, dueTime, action) { + dueTime <= this.clock && (dueTime = this.clock + 1); + return __super__.prototype.scheduleAbsoluteWithState.call(this, state, dueTime, action); + }; + /** + * Adds a relative virtual time to an absolute virtual time value. + * + * @param absolute Absolute virtual time value. + * @param relative Relative virtual time value to add. + * @return Resulting absolute virtual time sum value. + */ + TestScheduler.prototype.add = function (absolute, relative) { + return absolute + relative; + }; + /** + * Converts the absolute virtual time value to a DateTimeOffset value. + * + * @param absolute Absolute virtual time value to convert. + * @return Corresponding DateTimeOffset value. + */ + TestScheduler.prototype.toDateTimeOffset = function (absolute) { + return new Date(absolute).getTime(); + }; + /** + * Converts the TimeSpan value to a relative virtual time value. + * + * @param timeSpan TimeSpan value to convert. + * @return Corresponding relative virtual time value. + */ + TestScheduler.prototype.toRelative = function (timeSpan) { + return timeSpan; + }; + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithTiming = function (create, created, subscribed, disposed) { + var observer = this.createObserver(), source, subscription; + + this.scheduleAbsoluteWithState(null, created, function () { + source = create(); + return disposableEmpty; + }); + + this.scheduleAbsoluteWithState(null, subscribed, function () { + subscription = source.subscribe(observer); + return disposableEmpty; + }); + + this.scheduleAbsoluteWithState(null, disposed, function () { + subscription.dispose(); + return disposableEmpty; + }); + + this.start(); + + return observer; + }; + + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithDispose = function (create, disposed) { + return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, disposed); + }; + + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithCreate = function (create) { + return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, ReactiveTest.disposed); + }; + + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + TestScheduler.prototype.createHotObservable = function () { + var messages = argsOrArray(arguments, 0); + return new HotObservable(this, messages); + }; + + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + TestScheduler.prototype.createColdObservable = function () { + var messages = argsOrArray(arguments, 0); + return new ColdObservable(this, messages); + }; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + TestScheduler.prototype.createResolvedPromise = function (ticks, value) { + return new MockPromise(this, [Rx.ReactiveTest.onNext(ticks, value), Rx.ReactiveTest.onCompleted(ticks)]); + }; + + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + TestScheduler.prototype.createRejectedPromise = function (ticks, reason) { + return new MockPromise(this, [Rx.ReactiveTest.onError(ticks, reason)]); + }; + + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + TestScheduler.prototype.createObserver = function () { + return new MockObserver(this); + }; - return TestScheduler; - })(VirtualTimeScheduler); + return TestScheduler; + })(VirtualTimeScheduler); return Rx; })); diff --git a/dist/rx.testing.map b/dist/rx.testing.map index 4ccdf6f0b..2750c4e71 100644 --- a/dist/rx.testing.map +++ b/dist/rx.testing.map @@ -1 +1 @@ -{"version":3,"file":"rx.testing.min.js","sources":["rx.testing.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","argsOrArray","args","idx","length","Array","isArray","slice","OnNextPredicate","predicate","OnErrorPredicate","Observer","Observable","Notification","VirtualTimeScheduler","Disposable","disposableEmpty","empty","disposableCreate","create","CompositeDisposable","SingleAssignmentDisposable","prototype","inherits","internals","defaultComparer","isEqual","equals","other","kind","value","exception","ReactiveTest","created","subscribed","disposed","onNext","ticks","Recorded","createOnNext","onError","createOnError","onCompleted","createOnCompleted","subscribe","start","end","Subscription","time","comparer","toString","unsubscribe","Number","MAX_VALUE","MockDisposable","scheduler","disposes","push","clock","dispose","MockObserver","_super","messages","MockObserverPrototype","HotObservable","observer","observable","observers","subscriptions","index","indexOf","splice","message","notification","i","len","innerNotification","scheduleAbsoluteWithState","obs","j","jLen","accept","ColdObservable","d","add","scheduleRelativeWithState","TestScheduler","baseComparer","x","y","state","dueTime","action","absolute","relative","toDateTimeOffset","Date","getTime","toRelative","timeSpan","startWithTiming","source","subscription","createObserver","startWithDispose","startWithCreate","createHotObservable","arguments","createColdObservable"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rx.testing.min.js","sources":["rx.testing.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","argsOrArray","args","idx","length","Array","isArray","slice","OnNextPredicate","predicate","OnErrorPredicate","Observer","Observable","Notification","VirtualTimeScheduler","Disposable","disposableEmpty","empty","disposableCreate","create","CompositeDisposable","SingleAssignmentDisposable","prototype","inherits","internals","defaultComparer","isEqual","equals","other","kind","value","exception","ReactiveTest","created","subscribed","disposed","onNext","ticks","Recorded","createOnNext","onError","error","createOnError","onCompleted","createOnCompleted","subscribe","start","end","Subscription","time","comparer","toString","unsubscribe","Number","MAX_VALUE","MockDisposable","scheduler","disposes","push","clock","dispose","MockObserver","_super","messages","MockObserverPrototype","HotObservable","__super__","observer","observable","observers","subscriptions","index","indexOf","splice","message","notification","i","len","innerNotification","scheduleAbsoluteWithState","obs","j","jLen","accept","ColdObservable","d","add","scheduleRelativeWithState","TestScheduler","baseComparer","x","y","state","dueTime","action","absolute","relative","toDateTimeOffset","Date","getTime","toRelative","timeSpan","startWithTiming","source","subscription","createObserver","startWithDispose","startWithCreate","createHotObservable","arguments","createColdObservable","createResolvedPromise","MockPromise","createRejectedPromise","reason"],"mappings":"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"} \ No newline at end of file diff --git a/dist/rx.testing.min.js b/dist/rx.testing.min.js index e62c02ac8..69da43acf 100644 --- a/dist/rx.testing.min.js +++ b/dist/rx.testing.min.js @@ -1,3 +1,3 @@ /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx.virtualtime","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx.all")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c){function d(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:o.call(a)}function e(a){this.predicate=a}function f(a){this.predicate=a}var g=c.Observer,h=c.Observable,i=c.Notification,j=c.VirtualTimeScheduler,k=c.Disposable,l=k.empty,m=k.create,n=c.CompositeDisposable,o=(c.SingleAssignmentDisposable,Array.prototype.slice),p=c.internals.inherits,q=c.internals.isEqual;e.prototype.equals=function(a){return a===this?!0:null==a?!1:"N"!==a.kind?!1:this.predicate(a.value)},f.prototype.equals=function(a){return a===this?!0:null==a?!1:"E"!==a.kind?!1:this.predicate(a.exception)};var r=c.ReactiveTest={created:100,subscribed:200,disposed:1e3,onNext:function(a,b){return"function"==typeof b?new s(a,new e(b)):new s(a,i.createOnNext(b))},onError:function(a,b){return"function"==typeof b?new s(a,new f(b)):new s(a,i.createOnError(b))},onCompleted:function(a){return new s(a,i.createOnCompleted())},subscribe:function(a,b){return new t(a,b)}},s=c.Recorded=function(a,b,c){this.time=a,this.value=b,this.comparer=c||q};s.prototype.equals=function(a){return this.time===a.time&&this.comparer(this.value,a.value)},s.prototype.toString=function(){return this.value.toString()+"@"+this.time};var t=c.Subscription=function(a,b){this.subscribe=a,this.unsubscribe=b||Number.MAX_VALUE};t.prototype.equals=function(a){return this.subscribe===a.subscribe&&this.unsubscribe===a.unsubscribe},t.prototype.toString=function(){return"("+this.subscribe+", "+(this.unsubscribe===Number.MAX_VALUE?"Infinite":this.unsubscribe)+")"};var u=c.MockDisposable=function(a){this.scheduler=a,this.disposes=[],this.disposes.push(this.scheduler.clock)};u.prototype.dispose=function(){this.disposes.push(this.scheduler.clock)};var v=function(a){function b(b){a.call(this),this.scheduler=b,this.messages=[]}p(b,a);var c=b.prototype;return c.onNext=function(a){this.messages.push(new s(this.scheduler.clock,i.createOnNext(a)))},c.onError=function(a){this.messages.push(new s(this.scheduler.clock,i.createOnError(a)))},c.onCompleted=function(){this.messages.push(new s(this.scheduler.clock,i.createOnCompleted()))},b}(g),w=function(a){function b(a){var b=this;this.observers.push(a),this.subscriptions.push(new t(this.scheduler.clock));var c=this.subscriptions.length-1;return m(function(){var d=b.observers.indexOf(a);b.observers.splice(d,1),b.subscriptions[c]=new t(b.subscriptions[c].subscribe,b.scheduler.clock)})}function c(c,d){a.call(this,b);var e,f,g=this;this.scheduler=c,this.messages=d,this.subscriptions=[],this.observers=[];for(var h=0,i=this.messages.length;i>h;h++)e=this.messages[h],f=e.value,function(a){c.scheduleAbsoluteWithState(null,e.time,function(){for(var b=g.observers.slice(0),c=0,d=b.length;d>c;c++)a.accept(b[c]);return l})}(f)}return p(c,a),c}(h),x=function(a){function b(a){var b,c,d=this;this.subscriptions.push(new t(this.scheduler.clock));for(var e=this.subscriptions.length-1,f=new n,g=0,h=this.messages.length;h>g;g++)b=this.messages[g],c=b.value,function(c){f.add(d.scheduler.scheduleRelativeWithState(null,b.time,function(){return c.accept(a),l}))}(c);return m(function(){d.subscriptions[e]=new t(d.subscriptions[e].subscribe,d.scheduler.clock),f.dispose()})}function c(c,d){a.call(this,b),this.scheduler=c,this.messages=d,this.subscriptions=[]}return p(c,a),c}(h);return c.TestScheduler=function(a){function b(a,b){return a>b?1:b>a?-1:0}function c(){a.call(this,0,b)}return p(c,a),c.prototype.scheduleAbsoluteWithState=function(b,c,d){return c<=this.clock&&(c=this.clock+1),a.prototype.scheduleAbsoluteWithState.call(this,b,c,d)},c.prototype.add=function(a,b){return a+b},c.prototype.toDateTimeOffset=function(a){return new Date(a).getTime()},c.prototype.toRelative=function(a){return a},c.prototype.startWithTiming=function(a,b,c,d){var e,f,g=this.createObserver();return this.scheduleAbsoluteWithState(null,b,function(){return e=a(),l}),this.scheduleAbsoluteWithState(null,c,function(){return f=e.subscribe(g),l}),this.scheduleAbsoluteWithState(null,d,function(){return f.dispose(),l}),this.start(),g},c.prototype.startWithDispose=function(a,b){return this.startWithTiming(a,r.created,r.subscribed,b)},c.prototype.startWithCreate=function(a){return this.startWithTiming(a,r.created,r.subscribed,r.disposed)},c.prototype.createHotObservable=function(){var a=d(arguments,0);return new w(this,a)},c.prototype.createColdObservable=function(){var a=d(arguments,0);return new x(this,a)},c.prototype.createObserver=function(){return new v(this)},c}(j),c}); +(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx.virtualtime","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx.all")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c){function d(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:o.call(a)}function e(a){this.predicate=a}function f(a){this.predicate=a}var g=c.Observer,h=c.Observable,i=c.Notification,j=c.VirtualTimeScheduler,k=c.Disposable,l=k.empty,m=k.create,n=c.CompositeDisposable,o=(c.SingleAssignmentDisposable,Array.prototype.slice),p=c.internals.inherits,q=c.internals.isEqual;e.prototype.equals=function(a){return a===this?!0:null==a?!1:"N"!==a.kind?!1:this.predicate(a.value)},f.prototype.equals=function(a){return a===this?!0:null==a?!1:"E"!==a.kind?!1:this.predicate(a.exception)};var r=c.ReactiveTest={created:100,subscribed:200,disposed:1e3,onNext:function(a,b){return"function"==typeof b?new s(a,new e(b)):new s(a,i.createOnNext(b))},onError:function(a,b){return"function"==typeof b?new s(a,new f(b)):new s(a,i.createOnError(b))},onCompleted:function(a){return new s(a,i.createOnCompleted())},subscribe:function(a,b){return new t(a,b)}},s=c.Recorded=function(a,b,c){this.time=a,this.value=b,this.comparer=c||q};s.prototype.equals=function(a){return this.time===a.time&&this.comparer(this.value,a.value)},s.prototype.toString=function(){return this.value.toString()+"@"+this.time};var t=c.Subscription=function(a,b){this.subscribe=a,this.unsubscribe=b||Number.MAX_VALUE};t.prototype.equals=function(a){return this.subscribe===a.subscribe&&this.unsubscribe===a.unsubscribe},t.prototype.toString=function(){return"("+this.subscribe+", "+(this.unsubscribe===Number.MAX_VALUE?"Infinite":this.unsubscribe)+")"};var u=c.MockDisposable=function(a){this.scheduler=a,this.disposes=[],this.disposes.push(this.scheduler.clock)};u.prototype.dispose=function(){this.disposes.push(this.scheduler.clock)};var v=function(a){function b(b){a.call(this),this.scheduler=b,this.messages=[]}p(b,a);var c=b.prototype;return c.onNext=function(a){this.messages.push(new s(this.scheduler.clock,i.createOnNext(a)))},c.onError=function(a){this.messages.push(new s(this.scheduler.clock,i.createOnError(a)))},c.onCompleted=function(){this.messages.push(new s(this.scheduler.clock,i.createOnCompleted()))},b}(g),w=function(a){function b(a){var b=this;this.observers.push(a),this.subscriptions.push(new t(this.scheduler.clock));var c=this.subscriptions.length-1;return m(function(){var d=b.observers.indexOf(a);b.observers.splice(d,1),b.subscriptions[c]=new t(b.subscriptions[c].subscribe,b.scheduler.clock)})}function c(c,d){a.call(this,b);var e,f,g=this;this.scheduler=c,this.messages=d,this.subscriptions=[],this.observers=[];for(var h=0,i=this.messages.length;i>h;h++)e=this.messages[h],f=e.value,function(a){c.scheduleAbsoluteWithState(null,e.time,function(){for(var b=g.observers.slice(0),c=0,d=b.length;d>c;c++)a.accept(b[c]);return l})}(f)}return p(c,a),c}(h),x=function(a){function b(a){var b,c,d=this;this.subscriptions.push(new t(this.scheduler.clock));for(var e=this.subscriptions.length-1,f=new n,g=0,h=this.messages.length;h>g;g++)b=this.messages[g],c=b.value,function(c){f.add(d.scheduler.scheduleRelativeWithState(null,b.time,function(){return c.accept(a),l}))}(c);return m(function(){d.subscriptions[e]=new t(d.subscriptions[e].subscribe,d.scheduler.clock),f.dispose()})}function c(c,d){a.call(this,b),this.scheduler=c,this.messages=d,this.subscriptions=[]}return p(c,a),c}(h);return c.TestScheduler=function(a){function b(a,b){return a>b?1:b>a?-1:0}function e(){a.call(this,0,b)}return p(e,a),e.prototype.scheduleAbsoluteWithState=function(b,c,d){return c<=this.clock&&(c=this.clock+1),a.prototype.scheduleAbsoluteWithState.call(this,b,c,d)},e.prototype.add=function(a,b){return a+b},e.prototype.toDateTimeOffset=function(a){return new Date(a).getTime()},e.prototype.toRelative=function(a){return a},e.prototype.startWithTiming=function(a,b,c,d){var e,f,g=this.createObserver();return this.scheduleAbsoluteWithState(null,b,function(){return e=a(),l}),this.scheduleAbsoluteWithState(null,c,function(){return f=e.subscribe(g),l}),this.scheduleAbsoluteWithState(null,d,function(){return f.dispose(),l}),this.start(),g},e.prototype.startWithDispose=function(a,b){return this.startWithTiming(a,r.created,r.subscribed,b)},e.prototype.startWithCreate=function(a){return this.startWithTiming(a,r.created,r.subscribed,r.disposed)},e.prototype.createHotObservable=function(){var a=d(arguments,0);return new w(this,a)},e.prototype.createColdObservable=function(){var a=d(arguments,0);return new x(this,a)},e.prototype.createResolvedPromise=function(a,b){return new MockPromise(this,[c.ReactiveTest.onNext(a,b),c.ReactiveTest.onCompleted(a)])},e.prototype.createRejectedPromise=function(a,b){return new MockPromise(this,[c.ReactiveTest.onError(a,b)])},e.prototype.createObserver=function(){return new v(this)},e}(j),c}); //# sourceMappingURL=rx.testing.map \ No newline at end of file diff --git a/doc/api/core/operators/concatmap.md b/doc/api/core/operators/concatmap.md index fd1e99aa4..e942ed3f7 100644 --- a/doc/api/core/operators/concatmap.md +++ b/doc/api/core/operators/concatmap.md @@ -4,30 +4,41 @@ This is an alias for the `selectConcat` method. This can be one of the following: -Projects each element of an observable sequence to an observable sequence and concatenates the resulting observable sequences or Promises into one observable sequence. +Projects each element of an observable sequence to an observable sequence and concatenates the resulting observable sequences or Promises or array/iterable into one observable sequence. ```js source.concatMap(function (x, i) { return Rx.Observable.range(0, x); }); source.concatMap(function (x, i) { return Promise.resolve(x + 1}; }); +source.concatMap(function (x, i) { return [x, i]; }); ``` Projects each element of an observable sequence or Promise to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and concatenates the results into one observable sequence. ```js -source.concatMap(function (x, i) { return Rx.Observable.range(0, x); }, function (x, y, i) { return x + y + i; }); -source.concatMap(function (x, i) { return Promise.resolve(x + i); }, function (x, y, i) { return x + y + i; }); +source.concatMap(function (x, i) { return Rx.Observable.range(0, x); }, function (x, y, ix, iy) { return x + y + ix + iy; }); +source.concatMap(function (x, i) { return Promise.resolve(x + i); }, function (x, y, ix, iy) { return x + y + ix + iy; }); +source.concatMap(function (x, i) { return [x, i]; }, function (x, y, ix, iy) { return x + y + ix + iy; }); ``` -Projects each element of the source observable sequence to the other observable sequence or Promise and merges the resulting observable sequences into one observable sequence. +Projects each element of the source observable sequence to the other observable sequence or Promise or array/iterable and merges the resulting observable sequences into one observable sequence. ```js -source.concatMap(Rx.Observable.fromArray([1,2,3])); +source.concatMap(Rx.Observable.of(1,2,3)); source.concatMap(Promise.resolve(42)); +source.concatMap([1,2,3]); ``` #### Arguments -1. `selector` *(`Function`)*: A transform function to apply to each element or an observable sequence to project each element from the source sequence onto. -2. `[resultSelector]` *(`Function`)*: A transform function to apply to each element of the intermediate sequence. +1. `selector` *(`Function` | `Iterable` | `Promise`)*: An Object to project to the sequence or a transform function to apply to each element or an observable sequence to project each element from the source sequence onto. The selector is called with the following information: + 1. the value of the element + 2. the index of the element + 3. the Observable object being subscribed + +2. `[resultSelector]` *(`Function`)*: A transform function to apply to each element of the intermediate sequence. The resultSelector is called with the following information: + 1. the value of the outer element + 2. the value of the inner element + 3. the index of the outer element + 4. the index of the inner element #### Returns *(`Observable`)*: An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. @@ -43,10 +54,10 @@ var source = Rx.Observable.range(0, 5) var subscription = source.subscribe( function (x) { - console.log('Next: ' + x); + console.log('Next: %s', x); }, function (err) { - console.log('Error: ' + err); + console.log('Error: %s', err); }, function () { console.log('Completed'); @@ -65,17 +76,17 @@ var subscription = source.subscribe( // => Completed /* Using a promise */ -var source = Rx.Observable.fromArray([1,2,3,4]) +var source = Rx.Observable.of(1,2,3,4) .concatMap(function (x, i) { return Promise.resolve(x + i); }); var subscription = source.subscribe( function (x) { - console.log('Next: ' + x); + console.log('Next: %s', x); }, function (err) { - console.log('Error: ' + err); + console.log('Error: %s', err); }, function () { console.log('Completed'); @@ -86,6 +97,32 @@ var subscription = source.subscribe( // => Next: 4 // => Next: 4 // => Completed + +/* Using an array */ +Rx.Observable.of(1,2,3) + .flatMap( + function (x, i) { return [x,i]; }, + function (x, y, ix, iy) { return x + y + ix + iy; } + ); + +var subscription = source.subscribe( + function (x) { + console.log('Next: %s', x); + }, + function (err) { + console.log('Error: %s', err); + }, + function () { + console.log('Completed'); + }); + +// => Next: 2 +// => Next: 2 +// => Next: 5 +// => Next: 5 +// => Next: 8 +// => Next: 8 +// => Completed ``` ### Location diff --git a/doc/api/core/operators/selectmany.md b/doc/api/core/operators/selectmany.md index 003b7fcf4..cffbddfcf 100644 --- a/doc/api/core/operators/selectmany.md +++ b/doc/api/core/operators/selectmany.md @@ -4,30 +4,41 @@ One of the following: -Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences or Promises into one observable sequence. +Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences or Promises or array/iterable into one observable sequence. ```js source.selectMany(function (x, i) { return Rx.Observable.range(0, x); }); source.selectMany(function (x, i) { return Promise.resolve(x + 1); }); +source.selectMany(function (x, i) { return [x, i]; }); ``` Projects each element of an observable sequence or Promise to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. ```js -source.selectMany(function (x, i) { return Rx.Observable.range(0, x); }, function (x, y, i) { return x + y + i; }); -source.selectMany(function (x, i) { return Promise.resolve(x + i); }, function (x, y, i) { return x + y + i; }); +source.selectMany(function (x, i) { return Rx.Observable.range(0, x); }, function (x, y, ix, iy) { return x + y + ix + iy; }); +source.selectMany(function (x, i) { return Promise.resolve(x + i); }, function (x, y, ix, iy) { return x + y + ix + iy; }); +source.selectMany(function (x, i) { return [x, i]; }, function (x, y, ix, iy) { return x + y + ix + iy; }); ``` -Projects each element of the source observable sequence to the other observable sequence or Promise and merges the resulting observable sequences into one observable sequence. +Projects each element of the source observable sequence to the other observable sequence or Promise, or array/iterable and merges the resulting observable sequences into one observable sequence. ```js -source.selectMany(Rx.Observable.fromArray([1,2,3])); +source.selectMany(Rx.Observable.of(1,2,3)); source.selectMany(Promise.resolve(42)); +source.selectMany([1,2,3]); ``` #### Arguments -1. `selector` *(`Function`)*: A transform function to apply to each element or an observable sequence to project each element from the source sequence onto. -2. `[resultSelector]` *(`Function`)*: A transform function to apply to each element of the intermediate sequence. +1. `selector` *(`Function` | `Iterable` | `Promise`)*: An Object to project to the sequence or a transform function to apply to each element or an observable sequence to project each element from the source sequence onto. The selector is called with the following information: + 1. the value of the element + 2. the index of the element + 3. the Observable object being subscribed + +2. `[resultSelector]` *(`Function`)*: A transform function to apply to each element of the intermediate sequence. The resultSelector is called with the following information: + 1. the value of the outer element + 2. the value of the inner element + 3. the index of the outer element + 4. the index of the inner element #### Returns *(`Observable`)*: An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. @@ -58,7 +69,7 @@ var subscription = source.subscribe( // => Completed /* Using a promise */ -var source = Rx.Observable.fromArray([1,2,3,4]) +var source = Rx.Observable.of(1,2,3,4) .selectMany(function (x, i) { return Promise.resolve(x + i); }); @@ -79,6 +90,32 @@ var subscription = source.subscribe( // => Next: 4 // => Next: 4 // => Completed + +/* Using an array */ +Rx.Observable.of(1,2,3) + .flatMap( + function (x, i) { return [x,i]; }, + function (x, y, ix, iy) { return x + y + ix + iy; } + ); + +var subscription = source.subscribe( + function (x) { + console.log('Next: ' + x); + }, + function (err) { + console.log('Error: ' + err); + }, + function () { + console.log('Completed'); + }); + +// => Next: 2 +// => Next: 2 +// => Next: 5 +// => Next: 5 +// => Next: 8 +// => Next: 8 +// => Completed ``` ### Location diff --git a/src/core/linq/observable/concatmap.js b/src/core/linq/observable/concatmap.js index c355a62e9..c9dc3f141 100644 --- a/src/core/linq/observable/concatmap.js +++ b/src/core/linq/observable/concatmap.js @@ -1,6 +1,6 @@ function concatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; diff --git a/src/core/linq/observable/from.js b/src/core/linq/observable/from.js index 4d91b202f..6e369d64e 100644 --- a/src/core/linq/observable/from.js +++ b/src/core/linq/observable/from.js @@ -58,7 +58,13 @@ if (i < len || objIsIterable) { var result; if (objIsIterable) { - var next = it.next(); + var next; + try { + next = it.next(); + } catch (e) { + observer.onError(e); + return; + } if (next.done) { observer.onCompleted(); return; diff --git a/src/core/linq/observable/selectmany.js b/src/core/linq/observable/selectmany.js index 0eb8c64bf..849eb268e 100644 --- a/src/core/linq/observable/selectmany.js +++ b/src/core/linq/observable/selectmany.js @@ -1,6 +1,6 @@ function flatMap(source, selector, thisArg) { return source.map(function (x, i) { - var result = selector.call(thisArg, x, i); + var result = selector.call(thisArg, x, i, source); isPromise(result) && (result = observableFromPromise(result)); (Array.isArray(result) || isIterable(result)) && (result = observableFrom(result)); return result; diff --git a/src/core/notification.js b/src/core/notification.js index 5d1b2e7e7..e295a33eb 100644 --- a/src/core/notification.js +++ b/src/core/notification.js @@ -75,14 +75,14 @@ function _acceptObservable(observer) { return observer.onError(this.exception); } function toString () { return 'OnError(' + this.exception + ')'; } - return function (exception) { + return function (e) { var notification = new Notification('E'); - notification.exception = exception; + notification.exception = e; notification._accept = _accept; notification._acceptObservable = _acceptObservable; notification.toString = toString; return notification; - }; + }; }()); /** @@ -91,15 +91,15 @@ */ var notificationCreateOnCompleted = Notification.createOnCompleted = (function () { - function _accept (onNext, onError, onCompleted) { return onCompleted(); } - function _acceptObservable(observer) { return observer.onCompleted(); } - function toString () { return 'OnCompleted()'; } + function _accept (onNext, onError, onCompleted) { return onCompleted(); } + function _acceptObservable(observer) { return observer.onCompleted(); } + function toString () { return 'OnCompleted()'; } - return function () { - var notification = new Notification('C'); - notification._accept = _accept; - notification._acceptObservable = _acceptObservable; - notification.toString = toString; - return notification; - }; + return function () { + var notification = new Notification('C'); + notification._accept = _accept; + notification._acceptObservable = _acceptObservable; + notification.toString = toString; + return notification; + }; }()); diff --git a/src/core/testing/hotobservable.js b/src/core/testing/hotobservable.js index 926257c6f..d86b750be 100644 --- a/src/core/testing/hotobservable.js +++ b/src/core/testing/hotobservable.js @@ -1,46 +1,41 @@ - /** @private */ - var HotObservable = (function (_super) { + var HotObservable = (function (__super__) { - function subscribe(observer) { - var observable = this; - this.observers.push(observer); - this.subscriptions.push(new Subscription(this.scheduler.clock)); - var index = this.subscriptions.length - 1; - return disposableCreate(function () { - var idx = observable.observers.indexOf(observer); - observable.observers.splice(idx, 1); - observable.subscriptions[index] = new Subscription(observable.subscriptions[index].subscribe, observable.scheduler.clock); - }); - } + function subscribe(observer) { + var observable = this; + this.observers.push(observer); + this.subscriptions.push(new Subscription(this.scheduler.clock)); + var index = this.subscriptions.length - 1; + return disposableCreate(function () { + var idx = observable.observers.indexOf(observer); + observable.observers.splice(idx, 1); + observable.subscriptions[index] = new Subscription(observable.subscriptions[index].subscribe, observable.scheduler.clock); + }); + } - inherits(HotObservable, _super); + inherits(HotObservable, __super__); - /** - * @private - * @constructor - */ - function HotObservable(scheduler, messages) { - _super.call(this, subscribe); - var message, notification, observable = this; - this.scheduler = scheduler; - this.messages = messages; - this.subscriptions = []; - this.observers = []; - for (var i = 0, len = this.messages.length; i < len; i++) { - message = this.messages[i]; - notification = message.value; - (function (innerNotification) { - scheduler.scheduleAbsoluteWithState(null, message.time, function () { - var obs = observable.observers.slice(0); + function HotObservable(scheduler, messages) { + __super__.call(this, subscribe); + var message, notification, observable = this; + this.scheduler = scheduler; + this.messages = messages; + this.subscriptions = []; + this.observers = []; + for (var i = 0, len = this.messages.length; i < len; i++) { + message = this.messages[i]; + notification = message.value; + (function (innerNotification) { + scheduler.scheduleAbsoluteWithState(null, message.time, function () { + var obs = observable.observers.slice(0); - for (var j = 0, jLen = obs.length; j < jLen; j++) { - innerNotification.accept(obs[j]); - } - return disposableEmpty; - }); - })(notification); + for (var j = 0, jLen = obs.length; j < jLen; j++) { + innerNotification.accept(obs[j]); } - } + return disposableEmpty; + }); + })(notification); + } + } - return HotObservable; - })(Observable); + return HotObservable; + })(Observable); diff --git a/src/core/testing/mockpromise.js b/src/core/testing/mockpromise.js new file mode 100644 index 000000000..826da4e45 --- /dev/null +++ b/src/core/testing/mockpromise.js @@ -0,0 +1,26 @@ + function MockPromise(scheduler, messages) { + var promise = this; + this.scheduler = scheduler; + this.messages = messages; + this.resolvers = []; + + for (var i = 0, len = this.messages.length; i < len; i++) { + var message = this.messages[i], + notification = message.value; + (function (innerNotification) { + scheduler.scheduleAbsoluteWithState(null, message.time, function () { + var resolvers = promise.resolvers.slice(0); + + for (var j = 0, jLen = resolvers.length; j < jLen; j++) { + innerNotification.accept(resolvers[j]); + } + return disposableEmpty; + }); + })(notification); + } + } + + MockPromise.prototype.then = function (onResolved, onRejected) { + this.resolvers.push({onResolved: onResolved, onRejected: onRejected}); + return new MockPromise(this.scheduler, []); + }; diff --git a/src/core/testing/reactivetest.js b/src/core/testing/reactivetest.js index 2ff4cd9e8..983d7d24d 100644 --- a/src/core/testing/reactivetest.js +++ b/src/core/testing/reactivetest.js @@ -1,82 +1,80 @@ - function OnNextPredicate(predicate) { - this.predicate = predicate; - }; +function OnNextPredicate(predicate) { + this.predicate = predicate; +}; - OnNextPredicate.prototype.equals = function (other) { - if (other === this) { return true; } - if (other == null) { return false; } - if (other.kind !== 'N') { return false; } - return this.predicate(other.value); - }; +OnNextPredicate.prototype.equals = function (other) { + if (other === this) { return true; } + if (other == null) { return false; } + if (other.kind !== 'N') { return false; } + return this.predicate(other.value); +}; - function OnErrorPredicate(predicate) { - this.predicate = predicate; - }; +function OnErrorPredicate(predicate) { + this.predicate = predicate; +}; - OnErrorPredicate.prototype.equals = function (other) { - if (other === this) { return true; } - if (other == null) { return false; } - if (other.kind !== 'E') { return false; } - return this.predicate(other.exception); - }; +OnErrorPredicate.prototype.equals = function (other) { + if (other === this) { return true; } + if (other == null) { return false; } + if (other.kind !== 'E') { return false; } + return this.predicate(other.exception); +}; - var ReactiveTest = Rx.ReactiveTest = { - /** Default virtual time used for creation of observable sequences in unit tests. */ - created: 100, - /** Default virtual time used to subscribe to observable sequences in unit tests. */ - subscribed: 200, - /** Default virtual time used to dispose subscriptions in unit tests. */ - disposed: 1000, +var ReactiveTest = Rx.ReactiveTest = { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: 100, + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: 200, + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: 1000, - /** - * Factory method for an OnNext notification record at a given time with a given value or a predicate function. - * - * 1 - ReactiveTest.onNext(200, 42); - * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); - * - * @param ticks Recorded virtual time the OnNext notification occurs. - * @param value Recorded value stored in the OnNext notification or a predicate. - * @return Recorded OnNext notification. - */ - onNext: function (ticks, value) { - if (typeof value === 'function') { - return new Recorded(ticks, new OnNextPredicate(value)); - } - return new Recorded(ticks, Notification.createOnNext(value)); - }, - /** - * Factory method for an OnError notification record at a given time with a given error. - * - * 1 - ReactiveTest.onNext(200, new Error('error')); - * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); - * - * @param ticks Recorded virtual time the OnError notification occurs. - * @param exception Recorded exception stored in the OnError notification. - * @return Recorded OnError notification. - */ - onError: function (ticks, exception) { - if (typeof exception === 'function') { - return new Recorded(ticks, new OnErrorPredicate(exception)); - } - return new Recorded(ticks, Notification.createOnError(exception)); - }, - /** - * Factory method for an OnCompleted notification record at a given time. - * - * @param ticks Recorded virtual time the OnCompleted notification occurs. - * @return Recorded OnCompleted notification. - */ - onCompleted: function (ticks) { - return new Recorded(ticks, Notification.createOnCompleted()); - }, - /** - * Factory method for a subscription record based on a given subscription and disposal time. - * - * @param start Virtual time indicating when the subscription was created. - * @param end Virtual time indicating when the subscription was disposed. - * @return Subscription object. - */ - subscribe: function (start, end) { - return new Subscription(start, end); - } - }; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext: function (ticks, value) { + return typeof value === 'function' ? + new Recorded(ticks, new OnNextPredicate(value)) : + new Recorded(ticks, Notification.createOnNext(value)); + }, + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError: function (ticks, error) { + return typeof error === 'function' ? + new Recorded(ticks, new OnErrorPredicate(error)) : + new Recorded(ticks, Notification.createOnError(error)); + }, + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted: function (ticks) { + return new Recorded(ticks, Notification.createOnCompleted()); + }, + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe: function (start, end) { + return new Subscription(start, end); + } +}; diff --git a/src/core/testing/testscheduler.js b/src/core/testing/testscheduler.js index b8e36d9a0..85a852c40 100644 --- a/src/core/testing/testscheduler.js +++ b/src/core/testing/testscheduler.js @@ -1,132 +1,156 @@ - /** Virtual time scheduler used for testing applications and libraries built using Reactive Extensions. */ - Rx.TestScheduler = (function (_super) { - inherits(TestScheduler, _super); + /** Virtual time scheduler used for testing applications and libraries built using Reactive Extensions. */ + Rx.TestScheduler = (function (__super__) { + inherits(TestScheduler, __super__); - function baseComparer(x, y) { - return x > y ? 1 : (x < y ? -1 : 0); - } + function baseComparer(x, y) { + return x > y ? 1 : (x < y ? -1 : 0); + } - /** @constructor */ - function TestScheduler() { - _super.call(this, 0, baseComparer); - } + function TestScheduler() { + __super__.call(this, 0, baseComparer); + } - /** - * Schedules an action to be executed at the specified virtual time. - * - * @param state State passed to the action to be executed. - * @param dueTime Absolute virtual time at which to execute the action. - * @param action Action to be executed. - * @return Disposable object used to cancel the scheduled action (best effort). - */ - TestScheduler.prototype.scheduleAbsoluteWithState = function (state, dueTime, action) { - if (dueTime <= this.clock) { - dueTime = this.clock + 1; - } - return _super.prototype.scheduleAbsoluteWithState.call(this, state, dueTime, action); - }; - /** - * Adds a relative virtual time to an absolute virtual time value. - * - * @param absolute Absolute virtual time value. - * @param relative Relative virtual time value to add. - * @return Resulting absolute virtual time sum value. - */ - TestScheduler.prototype.add = function (absolute, relative) { - return absolute + relative; - }; - /** - * Converts the absolute virtual time value to a DateTimeOffset value. - * - * @param absolute Absolute virtual time value to convert. - * @return Corresponding DateTimeOffset value. - */ - TestScheduler.prototype.toDateTimeOffset = function (absolute) { - return new Date(absolute).getTime(); - }; - /** - * Converts the TimeSpan value to a relative virtual time value. - * - * @param timeSpan TimeSpan value to convert. - * @return Corresponding relative virtual time value. - */ - TestScheduler.prototype.toRelative = function (timeSpan) { - return timeSpan; - }; - /** - * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. - * - * @param create Factory method to create an observable sequence. - * @param created Virtual time at which to invoke the factory to create an observable sequence. - * @param subscribed Virtual time at which to subscribe to the created observable sequence. - * @param disposed Virtual time at which to dispose the subscription. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithTiming = function (create, created, subscribed, disposed) { - var observer = this.createObserver(), source, subscription; - this.scheduleAbsoluteWithState(null, created, function () { - source = create(); - return disposableEmpty; - }); - this.scheduleAbsoluteWithState(null, subscribed, function () { - subscription = source.subscribe(observer); - return disposableEmpty; - }); - this.scheduleAbsoluteWithState(null, disposed, function () { - subscription.dispose(); - return disposableEmpty; - }); - this.start(); - return observer; - }; - /** - * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. - * Default virtual times are used for factory invocation and sequence subscription. - * - * @param create Factory method to create an observable sequence. - * @param disposed Virtual time at which to dispose the subscription. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithDispose = function (create, disposed) { - return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, disposed); - }; - /** - * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. - * - * @param create Factory method to create an observable sequence. - * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. - */ - TestScheduler.prototype.startWithCreate = function (create) { - return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, ReactiveTest.disposed); - }; - /** - * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. - * - * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. - * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. - */ - TestScheduler.prototype.createHotObservable = function () { - var messages = argsOrArray(arguments, 0); - return new HotObservable(this, messages); - }; - /** - * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. - * - * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. - * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. - */ - TestScheduler.prototype.createColdObservable = function () { - var messages = argsOrArray(arguments, 0); - return new ColdObservable(this, messages); - }; - /** - * Creates an observer that records received notification messages and timestamps those. - * - * @return Observer that can be used to assert the timing of received notifications. - */ - TestScheduler.prototype.createObserver = function () { - return new MockObserver(this); - }; + /** + * Schedules an action to be executed at the specified virtual time. + * + * @param state State passed to the action to be executed. + * @param dueTime Absolute virtual time at which to execute the action. + * @param action Action to be executed. + * @return Disposable object used to cancel the scheduled action (best effort). + */ + TestScheduler.prototype.scheduleAbsoluteWithState = function (state, dueTime, action) { + dueTime <= this.clock && (dueTime = this.clock + 1); + return __super__.prototype.scheduleAbsoluteWithState.call(this, state, dueTime, action); + }; + /** + * Adds a relative virtual time to an absolute virtual time value. + * + * @param absolute Absolute virtual time value. + * @param relative Relative virtual time value to add. + * @return Resulting absolute virtual time sum value. + */ + TestScheduler.prototype.add = function (absolute, relative) { + return absolute + relative; + }; + /** + * Converts the absolute virtual time value to a DateTimeOffset value. + * + * @param absolute Absolute virtual time value to convert. + * @return Corresponding DateTimeOffset value. + */ + TestScheduler.prototype.toDateTimeOffset = function (absolute) { + return new Date(absolute).getTime(); + }; + /** + * Converts the TimeSpan value to a relative virtual time value. + * + * @param timeSpan TimeSpan value to convert. + * @return Corresponding relative virtual time value. + */ + TestScheduler.prototype.toRelative = function (timeSpan) { + return timeSpan; + }; + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithTiming = function (create, created, subscribed, disposed) { + var observer = this.createObserver(), source, subscription; - return TestScheduler; - })(VirtualTimeScheduler); + this.scheduleAbsoluteWithState(null, created, function () { + source = create(); + return disposableEmpty; + }); + + this.scheduleAbsoluteWithState(null, subscribed, function () { + subscription = source.subscribe(observer); + return disposableEmpty; + }); + + this.scheduleAbsoluteWithState(null, disposed, function () { + subscription.dispose(); + return disposableEmpty; + }); + + this.start(); + + return observer; + }; + + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithDispose = function (create, disposed) { + return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, disposed); + }; + + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + TestScheduler.prototype.startWithCreate = function (create) { + return this.startWithTiming(create, ReactiveTest.created, ReactiveTest.subscribed, ReactiveTest.disposed); + }; + + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + TestScheduler.prototype.createHotObservable = function () { + var messages = argsOrArray(arguments, 0); + return new HotObservable(this, messages); + }; + + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + TestScheduler.prototype.createColdObservable = function () { + var messages = argsOrArray(arguments, 0); + return new ColdObservable(this, messages); + }; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + TestScheduler.prototype.createResolvedPromise = function (ticks, value) { + return new MockPromise(this, [Rx.ReactiveTest.onNext(ticks, value), Rx.ReactiveTest.onCompleted(ticks)]); + }; + + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + TestScheduler.prototype.createRejectedPromise = function (ticks, reason) { + return new MockPromise(this, [Rx.ReactiveTest.onError(ticks, reason)]); + }; + + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + TestScheduler.prototype.createObserver = function () { + return new MockObserver(this); + }; + + return TestScheduler; + })(VirtualTimeScheduler); diff --git a/tests/helpers/mockiterable.js b/tests/helpers/mockiterable.js new file mode 100644 index 000000000..e69de29bb diff --git a/tests/observable/concatmap.js b/tests/observable/concatmap.js index 0d28df1a8..faa303172 100644 --- a/tests/observable/concatmap.js +++ b/tests/observable/concatmap.js @@ -829,38 +829,389 @@ test('ConcatMap_Throw', function () { }); test('ConcatMap_UseFunction', function () { - var scheduler = new TestScheduler(); + var scheduler = new TestScheduler(); - var xs = scheduler.createHotObservable( - onNext(210, 4), - onNext(220, 3), - onNext(250, 5), - onNext(270, 1), - onCompleted(290)); + var xs = scheduler.createHotObservable( + onNext(210, 4), + onNext(220, 3), + onNext(250, 5), + onNext(270, 1), + onCompleted(290)); - var results = scheduler.startWithCreate(function () { - return xs.concatMap(function (x) { - return Observable.interval(10, scheduler).select(function () { - return x; - }).take(x); - }); + var results = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { + return Observable.interval(10, scheduler).select(function () { + return x; + }).take(x); }); + }); + + results.messages.assertEqual( + onNext(220, 4), + onNext(230, 4), + onNext(240, 4), + onNext(250, 4), + onNext(260, 3), + onNext(270, 3), + onNext(280, 3), + onNext(290, 5), + onNext(300, 5), + onNext(310, 5), + onNext(320, 5), + onNext(330, 5), + onNext(340, 1), + onCompleted(340)); + + xs.subscriptions.assertEqual(subscribe(200, 290)); +}); + +function arrayRepeat(value, times) { + var results = []; + for(var i = 0; i < times; i++) { + results.push(value); + } + return results; +} + +test('concatMap_Iterable_Complete', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var inners = []; + + var res = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { + var ys = arrayRepeat(x, x); + inners.push(ys); + return ys; + }); + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(420, 3), + onNext(420, 3), + onNext(420, 3), + onNext(510, 2), + onNext(510, 2), + onCompleted(600) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); + + equal(4, inners.length); +}); + +test('concatMap_Iterable_Complete_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(420, 6), + onNext(420, 6), + onNext(420, 6), + onNext(510, 4), + onNext(510, 4), + onCompleted(600) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('concatMap_Iterable_Error', function () { + var scheduler = new TestScheduler(); + + var ex = new Error(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onError(600, ex) + ); + + var res = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { return arrayRepeat(x, x); }) + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(420, 3), + onNext(420, 3), + onNext(420, 3), + onNext(510, 2), + onNext(510, 2), + onError(600, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('concatMap_Iterable_Error_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var ex = new Error(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onError(600, ex) + ); + + var res = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(420, 6), + onNext(420, 6), + onNext(420, 6), + onNext(510, 4), + onNext(510, 4), + onError(600, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('concatMap_Iterable_Dispose', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithDispose( + function () { + return xs.concatMap(function (x) { return arrayRepeat(x, x); }) + }, + 350 + ); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 350) + ); +}); + +test('concatMap_Iterable_Dispose_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithDispose( + function () { + return xs.concatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }, + 350 + ); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 350) + ); +}); + +test('concatMap_Iterable_SelectorThrows', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var invoked = 0; + var ex = new Error(); + + var res = scheduler.startWithCreate(function () { + return xs.concatMap(function (x) { + invoked++; + if (invoked === 3) { throw ex; } + return arrayRepeat(x, x); + }); + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); + + equal(3, invoked); +}); + +test('concatMap_Iterable_ResultSelectorThrows', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var ex = new Error(); + + var inners = []; + + var res = scheduler.startWithCreate(function () { + return xs.concatMap( + function (x) { + var ys = arrayRepeat(x, x); + inners.push(ys); + return ys; + }, + function (x, y) { + if (x === 3) { throw ex; } + return x + y; + } + ); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); + + equal(3, inners.length); +}); + +test('concatMap_Iterable_SelectorThrows_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var invoked = 0; + var ex = new Error(); + + var res = scheduler.startWithCreate(function () { + return xs.concatMap( + function (x) { + invoked++; + if (invoked === 3) { throw ex; } + return arrayRepeat(x, x); + }, + function (x, y) { return x + y; } + ); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); - results.messages.assertEqual( - onNext(220, 4), - onNext(230, 4), - onNext(240, 4), - onNext(250, 4), - onNext(260, 3), - onNext(270, 3), - onNext(280, 3), - onNext(290, 5), - onNext(300, 5), - onNext(310, 5), - onNext(320, 5), - onNext(330, 5), - onNext(340, 1), - onCompleted(340)); - - xs.subscriptions.assertEqual(subscribe(200, 290)); + equal(3, invoked); }); diff --git a/tests/observable/selectmany.js b/tests/observable/selectmany.js index 92d3a6846..e4516f23b 100644 --- a/tests/observable/selectmany.js +++ b/tests/observable/selectmany.js @@ -1,4 +1,4 @@ -QUnit.module('SelectMany'); +QUnit.module('FlatMap'); var Observable = Rx.Observable, TestScheduler = Rx.TestScheduler, @@ -14,13 +14,13 @@ var Observable = Rx.Observable, function noop () { } -asyncTest('SelectMany_Then_Complete_Task', function () { +asyncTest('flatMap_Then_Complete_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); var ys = new RSVP.Promise(function (res) { res(42); }); var results = []; - xs.selectMany(ys).subscribe( + xs.flatMap(ys).subscribe( function (x) { results.push(x); }, @@ -34,12 +34,12 @@ asyncTest('SelectMany_Then_Complete_Task', function () { }); }); -asyncTest('SelectMany_Then_Error_Task', function () { +asyncTest('flatMap_Then_Error_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); var ys = new RSVP.Promise(function (res, rej) { rej(42); }); - xs.selectMany(ys).subscribe( + xs.flatMap(ys).subscribe( function (x) { ok(false); start(); @@ -54,11 +54,11 @@ asyncTest('SelectMany_Then_Error_Task', function () { }); }); -asyncTest('SelectMany_Selector_Complete_Task', function () { +asyncTest('flatMap_Selector_Complete_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); var results = []; - xs.selectMany(function (x, i) { + xs.flatMap(function (x, i) { return new RSVP.Promise(function (res) { res(x + i); }); }).subscribe( function (x) { @@ -74,10 +74,10 @@ asyncTest('SelectMany_Selector_Complete_Task', function () { }); }); -asyncTest('SelectMany_Selector_Error_Task', function () { +asyncTest('flatMap_Selector_Error_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); - xs.selectMany(function (x, i) { + xs.flatMap(function (x, i) { return new RSVP.Promise(function (res, rej) { rej(x + i); }) }).subscribe( function (x) { @@ -94,11 +94,11 @@ asyncTest('SelectMany_Selector_Error_Task', function () { }); }); -asyncTest('SelectMany_ResultSelector_Complete_Task', function () { +asyncTest('flatMap_ResultSelector_Complete_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); var results = []; - xs.selectMany( + xs.flatMap( function (x, i) { return new RSVP.Promise(function (res) { res(x + i); }); }, @@ -119,10 +119,10 @@ asyncTest('SelectMany_ResultSelector_Complete_Task', function () { }); }); -asyncTest('SelectMany_ResultSelector_Error_Task', function () { +asyncTest('flatMap_ResultSelector_Error_Task', function () { var xs = Rx.Observable.fromArray([4,3,2,1]); - xs.selectMany( + xs.flatMap( function (x, i) { return new RSVP.Promise(function (res, rej) { rej(x + i); }) }, @@ -144,7 +144,7 @@ asyncTest('SelectMany_ResultSelector_Error_Task', function () { }); }); -test('SelectMany_Then_Complete_Complete', function () { +test('flatMap_Then_Complete_Complete', function () { var scheduler = new TestScheduler(); var xs = scheduler.createColdObservable( @@ -162,7 +162,7 @@ test('SelectMany_Then_Complete_Complete', function () { onCompleted(250)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -193,7 +193,7 @@ test('SelectMany_Then_Complete_Complete', function () { subscribe(600, 850)); }); -test('SelectMany_Then_Complete_Complete_2', function () { +test('flatMap_Then_Complete_Complete_2', function () { var scheduler = new TestScheduler(); var xs = scheduler.createColdObservable( @@ -211,7 +211,7 @@ test('SelectMany_Then_Complete_Complete_2', function () { onCompleted(250)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -242,7 +242,7 @@ test('SelectMany_Then_Complete_Complete_2', function () { subscribe(600, 850)); }); -test('SelectMany_Then_Never_Complete', function () { +test('flatMap_Then_Never_Complete', function () { var scheduler = new TestScheduler(); var xs = scheduler.createColdObservable( @@ -261,7 +261,7 @@ test('SelectMany_Then_Never_Complete', function () { onCompleted(250)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -298,7 +298,7 @@ test('SelectMany_Then_Never_Complete', function () { subscribe(900, 1000)); }); -test('SelectMany_Then_Complete_Never', function () { +test('flatMap_Then_Complete_Never', function () { var scheduler = new TestScheduler(); var xs = scheduler.createColdObservable( @@ -315,7 +315,7 @@ test('SelectMany_Then_Complete_Never', function () { onNext(200, "qux")); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -340,7 +340,7 @@ test('SelectMany_Then_Complete_Never', function () { ys.subscriptions.assertEqual(subscribe(300, 1000), subscribe(400, 1000), subscribe(500, 1000), subscribe(600, 1000)); }); -test('SelectMany_Then_Complete_Error', function () { +test('flatMap_Then_Complete_Error', function () { var ex = new Error('ex'); var scheduler = new TestScheduler(); @@ -360,7 +360,7 @@ test('SelectMany_Then_Complete_Error', function () { onError(300, ex)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -379,7 +379,7 @@ test('SelectMany_Then_Complete_Error', function () { ys.subscriptions.assertEqual(subscribe(300, 600), subscribe(400, 600), subscribe(500, 600), subscribe(600, 600)); }); -test('SelectMany_Then_Error_Complete', function () { +test('flatMap_Then_Error_Complete', function () { var ex = new Error('ex'); var scheduler = new TestScheduler(); @@ -399,7 +399,7 @@ test('SelectMany_Then_Error_Complete', function () { onCompleted(250)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -426,7 +426,7 @@ test('SelectMany_Then_Error_Complete', function () { subscribe(600, 700)); }); -test('SelectMany_Then_Error_Error', function () { +test('flatMap_Then_Error_Error', function () { var ex = new Error('ex'); var scheduler = new TestScheduler(); @@ -446,7 +446,7 @@ test('SelectMany_Then_Error_Error', function () { onError(250, ex)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(ys); + return xs.flatMap(ys); }); results.messages.assertEqual( @@ -466,7 +466,7 @@ test('SelectMany_Then_Error_Error', function () { subscribe(500, 550)); }); -test('SelectMany_Complete', function () { +test('flatMap_Complete', function () { var scheduler = new TestScheduler(); var xs = scheduler.createHotObservable( @@ -498,7 +498,7 @@ test('SelectMany_Complete', function () { onCompleted(900)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { + return xs.flatMap(function (x) { return x; }); }); @@ -529,7 +529,7 @@ test('SelectMany_Complete', function () { xs.messages[6].value.value.subscriptions.assertEqual(subscribe(850, 950)); }); -test('SelectMany_Complete_InnerNotComplete', function () { +test('flatMap_Complete_InnerNotComplete', function () { var scheduler = new TestScheduler(); var xs = scheduler.createHotObservable( @@ -560,7 +560,7 @@ test('SelectMany_Complete_InnerNotComplete', function () { onCompleted(900)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { + return xs.flatMap(function (x) { return x; }); }); @@ -590,7 +590,7 @@ test('SelectMany_Complete_InnerNotComplete', function () { xs.messages[6].value.value.subscriptions.assertEqual(subscribe(850, 950)); }); -test('SelectMany_Complete_OuterNotComplete', function () { +test('flatMap_Complete_OuterNotComplete', function () { var scheduler = new TestScheduler(); var xs = scheduler.createHotObservable( @@ -621,7 +621,7 @@ test('SelectMany_Complete_OuterNotComplete', function () { onCompleted(100)))); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { + return xs.flatMap(function (x) { return x; }); }); @@ -650,7 +650,7 @@ test('SelectMany_Complete_OuterNotComplete', function () { xs.messages[6].value.value.subscriptions.assertEqual(subscribe(850, 950)); }); -test('SelectMany_Error_Outer', function () { +test('flatMap_Error_Outer', function () { var ex = new Error('ex'); var scheduler = new TestScheduler(); @@ -684,7 +684,7 @@ test('SelectMany_Error_Outer', function () { onError(900, ex)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { + return xs.flatMap(function (x) { return x; }); }); @@ -713,7 +713,7 @@ test('SelectMany_Error_Outer', function () { xs.messages[6].value.value.subscriptions.assertEqual(subscribe(850, 900)); }); -test('SelectMany_Error_Inner', function () { +test('flatMap_Error_Inner', function () { var ex = new Error('ex'); var scheduler = new TestScheduler(); @@ -747,7 +747,7 @@ test('SelectMany_Error_Inner', function () { onCompleted(900)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { + return xs.flatMap(function (x) { return x; }); }); @@ -774,7 +774,7 @@ test('SelectMany_Error_Inner', function () { xs.messages[6].value.value.subscriptions.assertEqual(); }); -test('SelectMany_Dispose', function () { +test('flatMap_Dispose', function () { var scheduler = new TestScheduler(); var xs = scheduler.createHotObservable( @@ -806,9 +806,7 @@ test('SelectMany_Dispose', function () { onCompleted(900)); var results = scheduler.startWithDispose(function () { - return xs.selectMany(function (x) { - return x; - }); + return xs.flatMap(function (x) { return x; }); }, 700); results.messages.assertEqual( @@ -831,7 +829,7 @@ test('SelectMany_Dispose', function () { xs.messages[6].value.value.subscriptions.assertEqual(); }); -test('SelectMany_Throw', function () { +test('flatMap_Throw', function () { var invoked = 0; var ex = new Error('ex'); @@ -867,55 +865,424 @@ test('SelectMany_Throw', function () { onCompleted(900)); var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { - invoked++; - if (invoked === 3) { - throw ex; - } - return x; - }); + return xs.flatMap(function (x) { + invoked++; + if (invoked === 3) { throw ex; } + return x; + }); }); - results.messages.assertEqual(onNext(310, 102), onNext(390, 103), onNext(410, 104), onNext(490, 105), onError(550, ex)); + + results.messages.assertEqual( + onNext(310, 102), + onNext(390, 103), + onNext(410, 104), + onNext(490, 105), + onError(550, ex) + ); + xs.subscriptions.assertEqual(subscribe(200, 550)); - xs.messages[2].value.value.subscriptions.assertEqual(subscribe(300, 550)); - xs.messages[3].value.value.subscriptions.assertEqual(subscribe(400, 550)); + + xs.messages[2].value.value.subscriptions.assertEqual( + subscribe(300, 550) + ); + + xs.messages[3].value.value.subscriptions.assertEqual( + subscribe(400, 550) + ); + xs.messages[4].value.value.subscriptions.assertEqual(); xs.messages[5].value.value.subscriptions.assertEqual(); xs.messages[6].value.value.subscriptions.assertEqual(); }); -test('SelectMany_UseFunction', function () { - var scheduler = new TestScheduler(); +test('flatMap_UseFunction', function () { + var scheduler = new TestScheduler(); - var xs = scheduler.createHotObservable( - onNext(210, 4), - onNext(220, 3), - onNext(250, 5), - onNext(270, 1), - onCompleted(290)); + var xs = scheduler.createHotObservable( + onNext(210, 4), + onNext(220, 3), + onNext(250, 5), + onNext(270, 1), + onCompleted(290) + ); - var results = scheduler.startWithCreate(function () { - return xs.selectMany(function (x) { - return Observable.interval(10, scheduler).select(function () { - return x; - }).take(x); - }); + var results = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { + return Observable.interval(10, scheduler).select(function () { + return x; + }).take(x); }); + }); - results.messages.assertEqual( - onNext(220, 4), - onNext(230, 3), - onNext(230, 4), - onNext(240, 3), - onNext(240, 4), - onNext(250, 3), - onNext(250, 4), - onNext(260, 5), - onNext(270, 5), - onNext(280, 1), - onNext(280, 5), - onNext(290, 5), - onNext(300, 5), - onCompleted(300)); - xs.subscriptions.assertEqual(subscribe(200, 290)); + results.messages.assertEqual( + onNext(220, 4), + onNext(230, 3), + onNext(230, 4), + onNext(240, 3), + onNext(240, 4), + onNext(250, 3), + onNext(250, 4), + onNext(260, 5), + onNext(270, 5), + onNext(280, 1), + onNext(280, 5), + onNext(290, 5), + onNext(300, 5), + onCompleted(300) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 290) + ); +}); + +function arrayRepeat(value, times) { + var results = []; + for(var i = 0; i < times; i++) { + results.push(value); + } + return results; +} + +test('flatMap_Iterable_Complete', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var inners = []; + + var res = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { + var ys = arrayRepeat(x, x); + inners.push(ys); + return ys; + }); + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(420, 3), + onNext(420, 3), + onNext(420, 3), + onNext(510, 2), + onNext(510, 2), + onCompleted(600) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); + + equal(4, inners.length); +}); + +test('flatMap_Iterable_Complete_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(420, 6), + onNext(420, 6), + onNext(420, 6), + onNext(510, 4), + onNext(510, 4), + onCompleted(600) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('flatMap_Iterable_Error', function () { + var scheduler = new TestScheduler(); + + var ex = new Error(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onError(600, ex) + ); + + var res = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { return arrayRepeat(x, x); }) + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(420, 3), + onNext(420, 3), + onNext(420, 3), + onNext(510, 2), + onNext(510, 2), + onError(600, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('flatMap_Iterable_Error_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var ex = new Error(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onError(600, ex) + ); + + var res = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(420, 6), + onNext(420, 6), + onNext(420, 6), + onNext(510, 4), + onNext(510, 4), + onError(600, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 600) + ); +}); + +test('flatMap_Iterable_Dispose', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithDispose( + function () { + return xs.flatMap(function (x) { return arrayRepeat(x, x); }) + }, + 350 + ); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 350) + ); +}); + +test('flatMap_Iterable_Dispose_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var res = scheduler.startWithDispose( + function () { + return xs.flatMap(function (x) { return arrayRepeat(x, x); }, function (x, y) { return x + y; }); + }, + 350 + ); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 350) + ); +}); + +test('flatMap_Iterable_SelectorThrows', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var invoked = 0; + var ex = new Error(); + + var res = scheduler.startWithCreate(function () { + return xs.flatMap(function (x) { + invoked++; + if (invoked === 3) { throw ex; } + return arrayRepeat(x, x); + }); + }); + + res.messages.assertEqual( + onNext(210, 2), + onNext(210, 2), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onNext(340, 4), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); + + equal(3, invoked); +}); + +test('flatMap_Iterable_ResultSelectorThrows', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var ex = new Error(); + + var inners = []; + + var res = scheduler.startWithCreate(function () { + return xs.flatMap( + function (x) { + var ys = arrayRepeat(x, x); + inners.push(ys); + return ys; + }, + function (x, y) { + if (x === 3) { throw ex; } + return x + y; + } + ); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); + + equal(3, inners.length); +}); + +test('flatMap_Iterable_SelectorThrows_ResultSelector', function () { + var scheduler = new TestScheduler(); + + var xs = scheduler.createHotObservable( + onNext(210, 2), + onNext(340, 4), + onNext(420, 3), + onNext(510, 2), + onCompleted(600) + ); + + var invoked = 0; + var ex = new Error(); + + var res = scheduler.startWithCreate(function () { + return xs.flatMap( + function (x) { + invoked++; + if (invoked === 3) { throw ex; } + return arrayRepeat(x, x); + }, + function (x, y) { return x + y; } + ); + }); + + res.messages.assertEqual( + onNext(210, 4), + onNext(210, 4), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onNext(340, 8), + onError(420, ex) + ); + + xs.subscriptions.assertEqual( + subscribe(200, 420) + ); + + equal(3, invoked); });