From 4023acd35463d32d75d11c72be1b119e4e346cc6 Mon Sep 17 00:00:00 2001 From: fchasen Date: Tue, 22 Sep 2015 22:22:10 -0400 Subject: [PATCH] Updates hypothesis example to init on chapter change --- books | 2 +- build/epub.js | 1404 +++++++++++++++--------------- build/epub.js.map | 2 +- build/epub.min.js | 9 +- build/epub.min.map | 2 +- build/hooks.js | 72 +- build/hooks.js.map | 2 +- build/hooks.min.js | 2 +- build/hooks.min.map | 2 +- build/reader.js.map | 2 +- examples/hypothesis.html | 5 - hooks/default/endnotes.js | 72 +- hooks/extensions/hypothesis.js | 11 +- reader/css/annotations.css | 9 +- reader/css/main.css | 5 + reader/js/epub.js.map | 2 +- reader/js/epub.min.js | 1404 +++++++++++++++--------------- reader/js/hooks.js.map | 2 +- reader/js/hooks.min.js | 2 +- reader/js/plugins/hypothesis.js | 2 +- reader_src/plugins/hypothesis.js | 2 +- src/base.js | 2 +- 22 files changed, 1521 insertions(+), 1496 deletions(-) diff --git a/books b/books index 8d6c46ef2..e9790315c 160000 --- a/books +++ b/books @@ -1 +1 @@ -Subproject commit 8d6c46ef23ca637d89e66b18b2146ccef93c1ac4 +Subproject commit e9790315c2510315e270a7a4c4921825e9918039 diff --git a/build/epub.js b/build/epub.js index c2d9bf990..d1c4f6b8c 100644 --- a/build/epub.js +++ b/build/epub.js @@ -3,49 +3,13 @@ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors * @license Licensed under MIT license * See https://raw.githubusercontent.com/tildeio/rsvp.js/master/LICENSE - * @version 3.1.0 + * @version 3.0.14 */ (function() { "use strict"; - function lib$rsvp$utils$$objectOrFunction(x) { - return typeof x === 'function' || (typeof x === 'object' && x !== null); - } - - function lib$rsvp$utils$$isFunction(x) { - return typeof x === 'function'; - } - - function lib$rsvp$utils$$isMaybeThenable(x) { - return typeof x === 'object' && x !== null; - } - - var lib$rsvp$utils$$_isArray; - if (!Array.isArray) { - lib$rsvp$utils$$_isArray = function (x) { - return Object.prototype.toString.call(x) === '[object Array]'; - }; - } else { - lib$rsvp$utils$$_isArray = Array.isArray; - } - var lib$rsvp$utils$$isArray = lib$rsvp$utils$$_isArray; - - var lib$rsvp$utils$$now = Date.now || function() { return new Date().getTime(); }; - - function lib$rsvp$utils$$F() { } - - var lib$rsvp$utils$$o_create = (Object.create || function (o) { - if (arguments.length > 1) { - throw new Error('Second argument not supported'); - } - if (typeof o !== 'object') { - throw new TypeError('Argument must be an object'); - } - lib$rsvp$utils$$F.prototype = o; - return new lib$rsvp$utils$$F(); - }); - function lib$rsvp$events$$indexOf(callbacks, callback) { + function $$rsvp$events$$indexOf(callbacks, callback) { for (var i=0, l=callbacks.length; i 1) { + throw new Error('Second argument not supported'); + } + if (typeof o !== 'object') { + throw new TypeError('Argument must be an object'); + } + $$utils$$F.prototype = o; + return new $$utils$$F(); + }); + + var $$instrument$$queue = []; + + var $$instrument$$default = function instrument(eventName, promise, child) { + if (1 === $$instrument$$queue.push({ + name: eventName, + payload: { + guid: promise._guidKey + promise._id, + eventName: eventName, + detail: promise._result, + childGuid: child && promise._guidKey + child._id, + label: promise._label, + timeStamp: $$utils$$now(), + stack: new Error(promise._label).stack + }})) { + + setTimeout(function() { + var entry; + for (var i = 0; i < $$instrument$$queue.length; i++) { + entry = $$instrument$$queue[i]; + $$rsvp$config$$config.trigger(entry.name, entry.payload); + } + $$instrument$$queue.length = 0; + }, 50); + } + }; - var lib$rsvp$$internal$$GET_THEN_ERROR = new lib$rsvp$$internal$$ErrorObject(); + function $$$internal$$noop() {} + var $$$internal$$PENDING = void 0; + var $$$internal$$FULFILLED = 1; + var $$$internal$$REJECTED = 2; + var $$$internal$$GET_THEN_ERROR = new $$$internal$$ErrorObject(); - function lib$rsvp$$internal$$getThen(promise) { + function $$$internal$$getThen(promise) { try { return promise.then; } catch(error) { - lib$rsvp$$internal$$GET_THEN_ERROR.error = error; - return lib$rsvp$$internal$$GET_THEN_ERROR; + $$$internal$$GET_THEN_ERROR.error = error; + return $$$internal$$GET_THEN_ERROR; } } - function lib$rsvp$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) { + function $$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) { try { then.call(value, fulfillmentHandler, rejectionHandler); } catch(e) { @@ -339,129 +316,129 @@ } } - function lib$rsvp$$internal$$handleForeignThenable(promise, thenable, then) { - lib$rsvp$config$$config.async(function(promise) { + function $$$internal$$handleForeignThenable(promise, thenable, then) { + $$rsvp$config$$config.async(function(promise) { var sealed = false; - var error = lib$rsvp$$internal$$tryThen(then, thenable, function(value) { + var error = $$$internal$$tryThen(then, thenable, function(value) { if (sealed) { return; } sealed = true; if (thenable !== value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } }, function(reason) { if (sealed) { return; } sealed = true; - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }, 'Settle: ' + (promise._label || ' unknown promise')); if (!sealed && error) { sealed = true; - lib$rsvp$$internal$$reject(promise, error); + $$$internal$$reject(promise, error); } }, promise); } - function lib$rsvp$$internal$$handleOwnThenable(promise, thenable) { - if (thenable._state === lib$rsvp$$internal$$FULFILLED) { - lib$rsvp$$internal$$fulfill(promise, thenable._result); - } else if (thenable._state === lib$rsvp$$internal$$REJECTED) { - thenable._onError = null; - lib$rsvp$$internal$$reject(promise, thenable._result); + function $$$internal$$handleOwnThenable(promise, thenable) { + if (thenable._state === $$$internal$$FULFILLED) { + $$$internal$$fulfill(promise, thenable._result); + } else if (promise._state === $$$internal$$REJECTED) { + $$$internal$$reject(promise, thenable._result); } else { - lib$rsvp$$internal$$subscribe(thenable, undefined, function(value) { + $$$internal$$subscribe(thenable, undefined, function(value) { if (thenable !== value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } }, function(reason) { - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }); } } - function lib$rsvp$$internal$$handleMaybeThenable(promise, maybeThenable) { + function $$$internal$$handleMaybeThenable(promise, maybeThenable) { if (maybeThenable.constructor === promise.constructor) { - lib$rsvp$$internal$$handleOwnThenable(promise, maybeThenable); + $$$internal$$handleOwnThenable(promise, maybeThenable); } else { - var then = lib$rsvp$$internal$$getThen(maybeThenable); + var then = $$$internal$$getThen(maybeThenable); - if (then === lib$rsvp$$internal$$GET_THEN_ERROR) { - lib$rsvp$$internal$$reject(promise, lib$rsvp$$internal$$GET_THEN_ERROR.error); + if (then === $$$internal$$GET_THEN_ERROR) { + $$$internal$$reject(promise, $$$internal$$GET_THEN_ERROR.error); } else if (then === undefined) { - lib$rsvp$$internal$$fulfill(promise, maybeThenable); - } else if (lib$rsvp$utils$$isFunction(then)) { - lib$rsvp$$internal$$handleForeignThenable(promise, maybeThenable, then); + $$$internal$$fulfill(promise, maybeThenable); + } else if ($$utils$$isFunction(then)) { + $$$internal$$handleForeignThenable(promise, maybeThenable, then); } else { - lib$rsvp$$internal$$fulfill(promise, maybeThenable); + $$$internal$$fulfill(promise, maybeThenable); } } } - function lib$rsvp$$internal$$resolve(promise, value) { + function $$$internal$$resolve(promise, value) { if (promise === value) { - lib$rsvp$$internal$$fulfill(promise, value); - } else if (lib$rsvp$utils$$objectOrFunction(value)) { - lib$rsvp$$internal$$handleMaybeThenable(promise, value); + $$$internal$$fulfill(promise, value); + } else if ($$utils$$objectOrFunction(value)) { + $$$internal$$handleMaybeThenable(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } } - function lib$rsvp$$internal$$publishRejection(promise) { - if (promise._onError) { - promise._onError(promise._result); + function $$$internal$$publishRejection(promise) { + if (promise._onerror) { + promise._onerror(promise._result); } - lib$rsvp$$internal$$publish(promise); + $$$internal$$publish(promise); } - function lib$rsvp$$internal$$fulfill(promise, value) { - if (promise._state !== lib$rsvp$$internal$$PENDING) { return; } + function $$$internal$$fulfill(promise, value) { + if (promise._state !== $$$internal$$PENDING) { return; } promise._result = value; - promise._state = lib$rsvp$$internal$$FULFILLED; + promise._state = $$$internal$$FULFILLED; if (promise._subscribers.length === 0) { - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('fulfilled', promise); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('fulfilled', promise); } } else { - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publish, promise); + $$rsvp$config$$config.async($$$internal$$publish, promise); } } - function lib$rsvp$$internal$$reject(promise, reason) { - if (promise._state !== lib$rsvp$$internal$$PENDING) { return; } - promise._state = lib$rsvp$$internal$$REJECTED; + function $$$internal$$reject(promise, reason) { + if (promise._state !== $$$internal$$PENDING) { return; } + promise._state = $$$internal$$REJECTED; promise._result = reason; - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publishRejection, promise); + + $$rsvp$config$$config.async($$$internal$$publishRejection, promise); } - function lib$rsvp$$internal$$subscribe(parent, child, onFulfillment, onRejection) { + function $$$internal$$subscribe(parent, child, onFulfillment, onRejection) { var subscribers = parent._subscribers; var length = subscribers.length; - parent._onError = null; + parent._onerror = null; subscribers[length] = child; - subscribers[length + lib$rsvp$$internal$$FULFILLED] = onFulfillment; - subscribers[length + lib$rsvp$$internal$$REJECTED] = onRejection; + subscribers[length + $$$internal$$FULFILLED] = onFulfillment; + subscribers[length + $$$internal$$REJECTED] = onRejection; if (length === 0 && parent._state) { - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publish, parent); + $$rsvp$config$$config.async($$$internal$$publish, parent); } } - function lib$rsvp$$internal$$publish(promise) { + function $$$internal$$publish(promise) { var subscribers = promise._subscribers; var settled = promise._state; - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default(settled === lib$rsvp$$internal$$FULFILLED ? 'fulfilled' : 'rejected', promise); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default(settled === $$$internal$$FULFILLED ? 'fulfilled' : 'rejected', promise); } if (subscribers.length === 0) { return; } @@ -473,7 +450,7 @@ callback = subscribers[i + settled]; if (child) { - lib$rsvp$$internal$$invokeCallback(settled, child, callback, detail); + $$$internal$$invokeCallback(settled, child, callback, detail); } else { callback(detail); } @@ -482,29 +459,29 @@ promise._subscribers.length = 0; } - function lib$rsvp$$internal$$ErrorObject() { + function $$$internal$$ErrorObject() { this.error = null; } - var lib$rsvp$$internal$$TRY_CATCH_ERROR = new lib$rsvp$$internal$$ErrorObject(); + var $$$internal$$TRY_CATCH_ERROR = new $$$internal$$ErrorObject(); - function lib$rsvp$$internal$$tryCatch(callback, detail) { + function $$$internal$$tryCatch(callback, detail) { try { return callback(detail); } catch(e) { - lib$rsvp$$internal$$TRY_CATCH_ERROR.error = e; - return lib$rsvp$$internal$$TRY_CATCH_ERROR; + $$$internal$$TRY_CATCH_ERROR.error = e; + return $$$internal$$TRY_CATCH_ERROR; } } - function lib$rsvp$$internal$$invokeCallback(settled, promise, callback, detail) { - var hasCallback = lib$rsvp$utils$$isFunction(callback), + function $$$internal$$invokeCallback(settled, promise, callback, detail) { + var hasCallback = $$utils$$isFunction(callback), value, error, succeeded, failed; if (hasCallback) { - value = lib$rsvp$$internal$$tryCatch(callback, detail); + value = $$$internal$$tryCatch(callback, detail); - if (value === lib$rsvp$$internal$$TRY_CATCH_ERROR) { + if (value === $$$internal$$TRY_CATCH_ERROR) { failed = true; error = value.error; value = null; @@ -513,7 +490,7 @@ } if (promise === value) { - lib$rsvp$$internal$$reject(promise, lib$rsvp$$internal$$withOwnPromise()); + $$$internal$$reject(promise, new TypeError('A promises callback cannot return that same promise.')); return; } @@ -522,184 +499,175 @@ succeeded = true; } - if (promise._state !== lib$rsvp$$internal$$PENDING) { + if (promise._state !== $$$internal$$PENDING) { // noop } else if (hasCallback && succeeded) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else if (failed) { - lib$rsvp$$internal$$reject(promise, error); - } else if (settled === lib$rsvp$$internal$$FULFILLED) { - lib$rsvp$$internal$$fulfill(promise, value); - } else if (settled === lib$rsvp$$internal$$REJECTED) { - lib$rsvp$$internal$$reject(promise, value); + $$$internal$$reject(promise, error); + } else if (settled === $$$internal$$FULFILLED) { + $$$internal$$fulfill(promise, value); + } else if (settled === $$$internal$$REJECTED) { + $$$internal$$reject(promise, value); } } - function lib$rsvp$$internal$$initializePromise(promise, resolver) { - var resolved = false; + function $$$internal$$initializePromise(promise, resolver) { try { resolver(function resolvePromise(value){ - if (resolved) { return; } - resolved = true; - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); }, function rejectPromise(reason) { - if (resolved) { return; } - resolved = true; - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }); } catch(e) { - lib$rsvp$$internal$$reject(promise, e); + $$$internal$$reject(promise, e); } } - function lib$rsvp$enumerator$$makeSettledResult(state, position, value) { - if (state === lib$rsvp$$internal$$FULFILLED) { + function $$enumerator$$makeSettledResult(state, position, value) { + if (state === $$$internal$$FULFILLED) { return { state: 'fulfilled', value: value }; } else { - return { + return { state: 'rejected', reason: value }; } } - function lib$rsvp$enumerator$$Enumerator(Constructor, input, abortOnReject, label) { - var enumerator = this; - - enumerator._instanceConstructor = Constructor; - enumerator.promise = new Constructor(lib$rsvp$$internal$$noop, label); - enumerator._abortOnReject = abortOnReject; + function $$enumerator$$Enumerator(Constructor, input, abortOnReject, label) { + this._instanceConstructor = Constructor; + this.promise = new Constructor($$$internal$$noop, label); + this._abortOnReject = abortOnReject; - if (enumerator._validateInput(input)) { - enumerator._input = input; - enumerator.length = input.length; - enumerator._remaining = input.length; + if (this._validateInput(input)) { + this._input = input; + this.length = input.length; + this._remaining = input.length; - enumerator._init(); + this._init(); - if (enumerator.length === 0) { - lib$rsvp$$internal$$fulfill(enumerator.promise, enumerator._result); + if (this.length === 0) { + $$$internal$$fulfill(this.promise, this._result); } else { - enumerator.length = enumerator.length || 0; - enumerator._enumerate(); - if (enumerator._remaining === 0) { - lib$rsvp$$internal$$fulfill(enumerator.promise, enumerator._result); + this.length = this.length || 0; + this._enumerate(); + if (this._remaining === 0) { + $$$internal$$fulfill(this.promise, this._result); } } } else { - lib$rsvp$$internal$$reject(enumerator.promise, enumerator._validationError()); + $$$internal$$reject(this.promise, this._validationError()); } } - var lib$rsvp$enumerator$$default = lib$rsvp$enumerator$$Enumerator; - - lib$rsvp$enumerator$$Enumerator.prototype._validateInput = function(input) { - return lib$rsvp$utils$$isArray(input); + $$enumerator$$Enumerator.prototype._validateInput = function(input) { + return $$utils$$isArray(input); }; - lib$rsvp$enumerator$$Enumerator.prototype._validationError = function() { + $$enumerator$$Enumerator.prototype._validationError = function() { return new Error('Array Methods must be provided an Array'); }; - lib$rsvp$enumerator$$Enumerator.prototype._init = function() { + $$enumerator$$Enumerator.prototype._init = function() { this._result = new Array(this.length); }; - lib$rsvp$enumerator$$Enumerator.prototype._enumerate = function() { - var enumerator = this; - var length = enumerator.length; - var promise = enumerator.promise; - var input = enumerator._input; + var $$enumerator$$default = $$enumerator$$Enumerator; + + $$enumerator$$Enumerator.prototype._enumerate = function() { + var length = this.length; + var promise = this.promise; + var input = this._input; - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { - enumerator._eachEntry(input[i], i); + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { + this._eachEntry(input[i], i); } }; - lib$rsvp$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { - var enumerator = this; - var c = enumerator._instanceConstructor; - if (lib$rsvp$utils$$isMaybeThenable(entry)) { - if (entry.constructor === c && entry._state !== lib$rsvp$$internal$$PENDING) { - entry._onError = null; - enumerator._settledAt(entry._state, i, entry._result); + $$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { + var c = this._instanceConstructor; + if ($$utils$$isMaybeThenable(entry)) { + if (entry.constructor === c && entry._state !== $$$internal$$PENDING) { + entry._onerror = null; + this._settledAt(entry._state, i, entry._result); } else { - enumerator._willSettleAt(c.resolve(entry), i); + this._willSettleAt(c.resolve(entry), i); } } else { - enumerator._remaining--; - enumerator._result[i] = enumerator._makeResult(lib$rsvp$$internal$$FULFILLED, i, entry); + this._remaining--; + this._result[i] = this._makeResult($$$internal$$FULFILLED, i, entry); } }; - lib$rsvp$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { - var enumerator = this; - var promise = enumerator.promise; + $$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { + var promise = this.promise; - if (promise._state === lib$rsvp$$internal$$PENDING) { - enumerator._remaining--; + if (promise._state === $$$internal$$PENDING) { + this._remaining--; - if (enumerator._abortOnReject && state === lib$rsvp$$internal$$REJECTED) { - lib$rsvp$$internal$$reject(promise, value); + if (this._abortOnReject && state === $$$internal$$REJECTED) { + $$$internal$$reject(promise, value); } else { - enumerator._result[i] = enumerator._makeResult(state, i, value); + this._result[i] = this._makeResult(state, i, value); } } - if (enumerator._remaining === 0) { - lib$rsvp$$internal$$fulfill(promise, enumerator._result); + if (this._remaining === 0) { + $$$internal$$fulfill(promise, this._result); } }; - lib$rsvp$enumerator$$Enumerator.prototype._makeResult = function(state, i, value) { + $$enumerator$$Enumerator.prototype._makeResult = function(state, i, value) { return value; }; - lib$rsvp$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { + $$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { var enumerator = this; - lib$rsvp$$internal$$subscribe(promise, undefined, function(value) { - enumerator._settledAt(lib$rsvp$$internal$$FULFILLED, i, value); + $$$internal$$subscribe(promise, undefined, function(value) { + enumerator._settledAt($$$internal$$FULFILLED, i, value); }, function(reason) { - enumerator._settledAt(lib$rsvp$$internal$$REJECTED, i, reason); + enumerator._settledAt($$$internal$$REJECTED, i, reason); }); }; - function lib$rsvp$promise$all$$all(entries, label) { - return new lib$rsvp$enumerator$$default(this, entries, true /* abort on reject */, label).promise; - } - var lib$rsvp$promise$all$$default = lib$rsvp$promise$all$$all; - function lib$rsvp$promise$race$$race(entries, label) { + + var $$promise$all$$default = function all(entries, label) { + return new $$enumerator$$default(this, entries, true /* abort on reject */, label).promise; + }; + + var $$promise$race$$default = function race(entries, label) { /*jshint validthis:true */ var Constructor = this; - var promise = new Constructor(lib$rsvp$$internal$$noop, label); + var promise = new Constructor($$$internal$$noop, label); - if (!lib$rsvp$utils$$isArray(entries)) { - lib$rsvp$$internal$$reject(promise, new TypeError('You must pass an array to race.')); + if (!$$utils$$isArray(entries)) { + $$$internal$$reject(promise, new TypeError('You must pass an array to race.')); return promise; } var length = entries.length; function onFulfillment(value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } function onRejection(reason) { - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); } - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { - lib$rsvp$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection); + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { + $$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection); } return promise; - } - var lib$rsvp$promise$race$$default = lib$rsvp$promise$race$$race; - function lib$rsvp$promise$resolve$$resolve(object, label) { + }; + + var $$promise$resolve$$default = function resolve(object, label) { /*jshint validthis:true */ var Constructor = this; @@ -707,78 +675,175 @@ return object; } - var promise = new Constructor(lib$rsvp$$internal$$noop, label); - lib$rsvp$$internal$$resolve(promise, object); + var promise = new Constructor($$$internal$$noop, label); + $$$internal$$resolve(promise, object); return promise; - } - var lib$rsvp$promise$resolve$$default = lib$rsvp$promise$resolve$$resolve; - function lib$rsvp$promise$reject$$reject(reason, label) { + }; + + var $$promise$reject$$default = function reject(reason, label) { /*jshint validthis:true */ var Constructor = this; - var promise = new Constructor(lib$rsvp$$internal$$noop, label); - lib$rsvp$$internal$$reject(promise, reason); + var promise = new Constructor($$$internal$$noop, label); + $$$internal$$reject(promise, reason); return promise; - } - var lib$rsvp$promise$reject$$default = lib$rsvp$promise$reject$$reject; + }; - var lib$rsvp$promise$$guidKey = 'rsvp_' + lib$rsvp$utils$$now() + '-'; - var lib$rsvp$promise$$counter = 0; + var $$rsvp$promise$$guidKey = 'rsvp_' + $$utils$$now() + '-'; + var $$rsvp$promise$$counter = 0; - function lib$rsvp$promise$$needsResolver() { + function $$rsvp$promise$$needsResolver() { throw new TypeError('You must pass a resolver function as the first argument to the promise constructor'); } - function lib$rsvp$promise$$needsNew() { + function $$rsvp$promise$$needsNew() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); } - function lib$rsvp$promise$$Promise(resolver, label) { - var promise = this; + var $$rsvp$promise$$default = $$rsvp$promise$$Promise; + + /** + Promise objects represent the eventual result of an asynchronous operation. The + primary way of interacting with a promise is through its `then` method, which + registers callbacks to receive either a promise’s eventual value or the reason + why the promise cannot be fulfilled. + + Terminology + ----------- + + - `promise` is an object or function with a `then` method whose behavior conforms to this specification. + - `thenable` is an object or function that defines a `then` method. + - `value` is any legal JavaScript value (including undefined, a thenable, or a promise). + - `exception` is a value that is thrown using the throw statement. + - `reason` is a value that indicates why a promise was rejected. + - `settled` the final resting state of a promise, fulfilled or rejected. + + A promise can be in one of three states: pending, fulfilled, or rejected. + + Promises that are fulfilled have a fulfillment value and are in the fulfilled + state. Promises that are rejected have a rejection reason and are in the + rejected state. A fulfillment value is never a thenable. + + Promises can also be said to *resolve* a value. If this value is also a + promise, then the original promise's settled state will match the value's + settled state. So a promise that *resolves* a promise that rejects will + itself reject, and a promise that *resolves* a promise that fulfills will + itself fulfill. + + + Basic Usage: + ------------ + + ```js + var promise = new Promise(function(resolve, reject) { + // on success + resolve(value); + + // on failure + reject(reason); + }); + + promise.then(function(value) { + // on fulfillment + }, function(reason) { + // on rejection + }); + ``` + + Advanced Usage: + --------------- + + Promises shine when abstracting away asynchronous interactions such as + `XMLHttpRequest`s. + + ```js + function getJSON(url) { + return new Promise(function(resolve, reject){ + var xhr = new XMLHttpRequest(); + + xhr.open('GET', url); + xhr.onreadystatechange = handler; + xhr.responseType = 'json'; + xhr.setRequestHeader('Accept', 'application/json'); + xhr.send(); + + function handler() { + if (this.readyState === this.DONE) { + if (this.status === 200) { + resolve(this.response); + } else { + reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']')); + } + } + }; + }); + } + + getJSON('/posts.json').then(function(json) { + // on fulfillment + }, function(reason) { + // on rejection + }); + ``` + + Unlike callbacks, promises are great composable primitives. - promise._id = lib$rsvp$promise$$counter++; - promise._label = label; - promise._state = undefined; - promise._result = undefined; - promise._subscribers = []; + ```js + Promise.all([ + getJSON('/posts'), + getJSON('/comments') + ]).then(function(values){ + values[0] // => postsJSON + values[1] // => commentsJSON + + return values; + }); + ``` - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('created', promise); + @class RSVP.Promise + @param {function} resolver + @param {String} label optional string for labeling the promise. + Useful for tooling. + @constructor + */ + function $$rsvp$promise$$Promise(resolver, label) { + this._id = $$rsvp$promise$$counter++; + this._label = label; + this._state = undefined; + this._result = undefined; + this._subscribers = []; + + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('created', this); } - if (lib$rsvp$$internal$$noop !== resolver) { - if (!lib$rsvp$utils$$isFunction(resolver)) { - lib$rsvp$promise$$needsResolver(); + if ($$$internal$$noop !== resolver) { + if (!$$utils$$isFunction(resolver)) { + $$rsvp$promise$$needsResolver(); } - if (!(promise instanceof lib$rsvp$promise$$Promise)) { - lib$rsvp$promise$$needsNew(); + if (!(this instanceof $$rsvp$promise$$Promise)) { + $$rsvp$promise$$needsNew(); } - lib$rsvp$$internal$$initializePromise(promise, resolver); + $$$internal$$initializePromise(this, resolver); } } - var lib$rsvp$promise$$default = lib$rsvp$promise$$Promise; - // deprecated - lib$rsvp$promise$$Promise.cast = lib$rsvp$promise$resolve$$default; - lib$rsvp$promise$$Promise.all = lib$rsvp$promise$all$$default; - lib$rsvp$promise$$Promise.race = lib$rsvp$promise$race$$default; - lib$rsvp$promise$$Promise.resolve = lib$rsvp$promise$resolve$$default; - lib$rsvp$promise$$Promise.reject = lib$rsvp$promise$reject$$default; - - lib$rsvp$promise$$Promise.prototype = { - constructor: lib$rsvp$promise$$Promise, - - _guidKey: lib$rsvp$promise$$guidKey, - - _onError: function (reason) { - var promise = this; - lib$rsvp$config$$config.after(function() { - if (promise._onError) { - lib$rsvp$config$$config['trigger']('error', reason, promise._label); - } - }); + $$rsvp$promise$$Promise.cast = $$promise$resolve$$default; + + $$rsvp$promise$$Promise.all = $$promise$all$$default; + $$rsvp$promise$$Promise.race = $$promise$race$$default; + $$rsvp$promise$$Promise.resolve = $$promise$resolve$$default; + $$rsvp$promise$$Promise.reject = $$promise$reject$$default; + + $$rsvp$promise$$Promise.prototype = { + constructor: $$rsvp$promise$$Promise, + + _guidKey: $$rsvp$promise$$guidKey, + + _onerror: function (reason) { + $$rsvp$config$$config.trigger('error', reason); }, /** @@ -969,8 +1034,8 @@ ``` @method then - @param {Function} onFulfillment - @param {Function} onRejection + @param {Function} onFulfilled + @param {Function} onRejected @param {String} label optional string for labeling the promise. Useful for tooling. @return {Promise} @@ -979,29 +1044,29 @@ var parent = this; var state = parent._state; - if (state === lib$rsvp$$internal$$FULFILLED && !onFulfillment || state === lib$rsvp$$internal$$REJECTED && !onRejection) { - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('chained', parent, parent); + if (state === $$$internal$$FULFILLED && !onFulfillment || state === $$$internal$$REJECTED && !onRejection) { + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('chained', this, this); } - return parent; + return this; } - parent._onError = null; + parent._onerror = null; - var child = new parent.constructor(lib$rsvp$$internal$$noop, label); + var child = new this.constructor($$$internal$$noop, label); var result = parent._result; - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('chained', parent, child); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('chained', parent, child); } if (state) { var callback = arguments[state - 1]; - lib$rsvp$config$$config.async(function(){ - lib$rsvp$$internal$$invokeCallback(state, child, callback, result); + $$rsvp$config$$config.async(function(){ + $$$internal$$invokeCallback(state, child, callback, result); }); } else { - lib$rsvp$$internal$$subscribe(parent, child, onFulfillment, onRejection); + $$$internal$$subscribe(parent, child, onFulfillment, onRejection); } return child; @@ -1036,7 +1101,7 @@ @return {Promise} */ 'catch': function(onRejection, label) { - return this.then(undefined, onRejection, label); + return this.then(null, onRejection, label); }, /** @@ -1080,10 +1145,9 @@ @return {Promise} */ 'finally': function(callback, label) { - var promise = this; - var constructor = promise.constructor; + var constructor = this.constructor; - return promise.then(function(value) { + return this.then(function(value) { return constructor.resolve(callback()).then(function(){ return value; }); @@ -1095,210 +1159,202 @@ } }; - function lib$rsvp$all$settled$$AllSettled(Constructor, entries, label) { - this._superConstructor(Constructor, entries, false /* don't abort on reject */, label); + function $$rsvp$node$$Result() { + this.value = undefined; } - lib$rsvp$all$settled$$AllSettled.prototype = lib$rsvp$utils$$o_create(lib$rsvp$enumerator$$default.prototype); - lib$rsvp$all$settled$$AllSettled.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$all$settled$$AllSettled.prototype._makeResult = lib$rsvp$enumerator$$makeSettledResult; - lib$rsvp$all$settled$$AllSettled.prototype._validationError = function() { - return new Error('allSettled must be called with an array'); - }; + var $$rsvp$node$$ERROR = new $$rsvp$node$$Result(); + var $$rsvp$node$$GET_THEN_ERROR = new $$rsvp$node$$Result(); - function lib$rsvp$all$settled$$allSettled(entries, label) { - return new lib$rsvp$all$settled$$AllSettled(lib$rsvp$promise$$default, entries, label).promise; - } - var lib$rsvp$all$settled$$default = lib$rsvp$all$settled$$allSettled; - function lib$rsvp$all$$all(array, label) { - return lib$rsvp$promise$$default.all(array, label); - } - var lib$rsvp$all$$default = lib$rsvp$all$$all; - var lib$rsvp$asap$$len = 0; - var lib$rsvp$asap$$toString = {}.toString; - var lib$rsvp$asap$$vertxNext; - function lib$rsvp$asap$$asap(callback, arg) { - lib$rsvp$asap$$queue[lib$rsvp$asap$$len] = callback; - lib$rsvp$asap$$queue[lib$rsvp$asap$$len + 1] = arg; - lib$rsvp$asap$$len += 2; - if (lib$rsvp$asap$$len === 2) { - // If len is 1, that means that we need to schedule an async flush. - // If additional callbacks are queued before the queue is flushed, they - // will be processed by this flush that we are scheduling. - lib$rsvp$asap$$scheduleFlush(); + function $$rsvp$node$$getThen(obj) { + try { + return obj.then; + } catch(error) { + $$rsvp$node$$ERROR.value= error; + return $$rsvp$node$$ERROR; } } - var lib$rsvp$asap$$default = lib$rsvp$asap$$asap; + function $$rsvp$node$$tryApply(f, s, a) { + try { + f.apply(s, a); + } catch(error) { + $$rsvp$node$$ERROR.value = error; + return $$rsvp$node$$ERROR; + } + } - var lib$rsvp$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined; - var lib$rsvp$asap$$browserGlobal = lib$rsvp$asap$$browserWindow || {}; - var lib$rsvp$asap$$BrowserMutationObserver = lib$rsvp$asap$$browserGlobal.MutationObserver || lib$rsvp$asap$$browserGlobal.WebKitMutationObserver; - var lib$rsvp$asap$$isNode = typeof self === 'undefined' && - typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; + function $$rsvp$node$$makeObject(_, argumentNames) { + var obj = {}; + var name; + var i; + var length = _.length; + var args = new Array(length); - // test for web worker but not in IE10 - var lib$rsvp$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' && - typeof importScripts !== 'undefined' && - typeof MessageChannel !== 'undefined'; + for (var x = 0; x < length; x++) { + args[x] = _[x]; + } - // node - function lib$rsvp$asap$$useNextTick() { - var nextTick = process.nextTick; - // node version 0.10.x displays a deprecation warning when nextTick is used recursively - // setImmediate should be used instead instead - var version = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/); - if (Array.isArray(version) && version[1] === '0' && version[2] === '10') { - nextTick = setImmediate; + for (i = 0; i < argumentNames.length; i++) { + name = argumentNames[i]; + obj[name] = args[i + 1]; } - return function() { - nextTick(lib$rsvp$asap$$flush); - }; - } - // vertx - function lib$rsvp$asap$$useVertxTimer() { - return function() { - lib$rsvp$asap$$vertxNext(lib$rsvp$asap$$flush); - }; + return obj; } - function lib$rsvp$asap$$useMutationObserver() { - var iterations = 0; - var observer = new lib$rsvp$asap$$BrowserMutationObserver(lib$rsvp$asap$$flush); - var node = document.createTextNode(''); - observer.observe(node, { characterData: true }); + function $$rsvp$node$$arrayResult(_) { + var length = _.length; + var args = new Array(length - 1); - return function() { - node.data = (iterations = ++iterations % 2); - }; - } + for (var i = 1; i < length; i++) { + args[i - 1] = _[i]; + } - // web worker - function lib$rsvp$asap$$useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = lib$rsvp$asap$$flush; - return function () { - channel.port2.postMessage(0); - }; + return args; } - function lib$rsvp$asap$$useSetTimeout() { - return function() { - setTimeout(lib$rsvp$asap$$flush, 1); + function $$rsvp$node$$wrapThenable(then, promise) { + return { + then: function(onFulFillment, onRejection) { + return then.call(promise, onFulFillment, onRejection); + } }; } - var lib$rsvp$asap$$queue = new Array(1000); - function lib$rsvp$asap$$flush() { - for (var i = 0; i < lib$rsvp$asap$$len; i+=2) { - var callback = lib$rsvp$asap$$queue[i]; - var arg = lib$rsvp$asap$$queue[i+1]; + var $$rsvp$node$$default = function denodeify(nodeFunc, options) { + var fn = function() { + var self = this; + var l = arguments.length; + var args = new Array(l + 1); + var arg; + var promiseInput = false; - callback(arg); + for (var i = 0; i < l; ++i) { + arg = arguments[i]; - lib$rsvp$asap$$queue[i] = undefined; - lib$rsvp$asap$$queue[i+1] = undefined; - } + if (!promiseInput) { + // TODO: clean this up + promiseInput = $$rsvp$node$$needsPromiseInput(arg); + if (promiseInput === $$rsvp$node$$GET_THEN_ERROR) { + var p = new $$rsvp$promise$$default($$$internal$$noop); + $$$internal$$reject(p, $$rsvp$node$$GET_THEN_ERROR.value); + return p; + } else if (promiseInput && promiseInput !== true) { + arg = $$rsvp$node$$wrapThenable(promiseInput, arg); + } + } + args[i] = arg; + } - lib$rsvp$asap$$len = 0; - } + var promise = new $$rsvp$promise$$default($$$internal$$noop); - function lib$rsvp$asap$$attemptVertex() { - try { - var r = require; - var vertx = r('vertx'); - lib$rsvp$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext; - return lib$rsvp$asap$$useVertxTimer(); - } catch(e) { - return lib$rsvp$asap$$useSetTimeout(); + args[l] = function(err, val) { + if (err) + $$$internal$$reject(promise, err); + else if (options === undefined) + $$$internal$$resolve(promise, val); + else if (options === true) + $$$internal$$resolve(promise, $$rsvp$node$$arrayResult(arguments)); + else if ($$utils$$isArray(options)) + $$$internal$$resolve(promise, $$rsvp$node$$makeObject(arguments, options)); + else + $$$internal$$resolve(promise, val); + }; + + if (promiseInput) { + return $$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self); + } else { + return $$rsvp$node$$handleValueInput(promise, args, nodeFunc, self); + } + }; + + fn.__proto__ = nodeFunc; + + return fn; + }; + + function $$rsvp$node$$handleValueInput(promise, args, nodeFunc, self) { + var result = $$rsvp$node$$tryApply(nodeFunc, self, args); + if (result === $$rsvp$node$$ERROR) { + $$$internal$$reject(promise, result.value); } + return promise; } - var lib$rsvp$asap$$scheduleFlush; - // Decide what async method to use to triggering processing of queued callbacks: - if (lib$rsvp$asap$$isNode) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useNextTick(); - } else if (lib$rsvp$asap$$BrowserMutationObserver) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useMutationObserver(); - } else if (lib$rsvp$asap$$isWorker) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useMessageChannel(); - } else if (lib$rsvp$asap$$browserWindow === undefined && typeof require === 'function') { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$attemptVertex(); - } else { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useSetTimeout(); + function $$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self){ + return $$rsvp$promise$$default.all(args).then(function(args){ + var result = $$rsvp$node$$tryApply(nodeFunc, self, args); + if (result === $$rsvp$node$$ERROR) { + $$$internal$$reject(promise, result.value); + } + return promise; + }); } - function lib$rsvp$defer$$defer(label) { - var deferred = {}; - deferred['promise'] = new lib$rsvp$promise$$default(function(resolve, reject) { - deferred['resolve'] = resolve; - deferred['reject'] = reject; - }, label); - - return deferred; - } - var lib$rsvp$defer$$default = lib$rsvp$defer$$defer; - function lib$rsvp$filter$$filter(promises, filterFn, label) { - return lib$rsvp$promise$$default.all(promises, label).then(function(values) { - if (!lib$rsvp$utils$$isFunction(filterFn)) { - throw new TypeError("You must pass a function as filter's second argument."); + function $$rsvp$node$$needsPromiseInput(arg) { + if (arg && typeof arg === 'object') { + if (arg.constructor === $$rsvp$promise$$default) { + return true; + } else { + return $$rsvp$node$$getThen(arg); } + } else { + return false; + } + } - var length = values.length; - var filtered = new Array(length); + var $$rsvp$all$$default = function all(array, label) { + return $$rsvp$promise$$default.all(array, label); + }; - for (var i = 0; i < length; i++) { - filtered[i] = filterFn(values[i]); - } + function $$rsvp$all$settled$$AllSettled(Constructor, entries, label) { + this._superConstructor(Constructor, entries, false /* don't abort on reject */, label); + } - return lib$rsvp$promise$$default.all(filtered, label).then(function(filtered) { - var results = new Array(length); - var newLength = 0; + $$rsvp$all$settled$$AllSettled.prototype = $$utils$$o_create($$enumerator$$default.prototype); + $$rsvp$all$settled$$AllSettled.prototype._superConstructor = $$enumerator$$default; + $$rsvp$all$settled$$AllSettled.prototype._makeResult = $$enumerator$$makeSettledResult; - for (var i = 0; i < length; i++) { - if (filtered[i]) { - results[newLength] = values[i]; - newLength++; - } - } + $$rsvp$all$settled$$AllSettled.prototype._validationError = function() { + return new Error('allSettled must be called with an array'); + }; - results.length = newLength; + var $$rsvp$all$settled$$default = function allSettled(entries, label) { + return new $$rsvp$all$settled$$AllSettled($$rsvp$promise$$default, entries, label).promise; + }; - return results; - }); - }); - } - var lib$rsvp$filter$$default = lib$rsvp$filter$$filter; + var $$rsvp$race$$default = function race(array, label) { + return $$rsvp$promise$$default.race(array, label); + }; - function lib$rsvp$promise$hash$$PromiseHash(Constructor, object, label) { + function $$promise$hash$$PromiseHash(Constructor, object, label) { this._superConstructor(Constructor, object, true, label); } - var lib$rsvp$promise$hash$$default = lib$rsvp$promise$hash$$PromiseHash; + var $$promise$hash$$default = $$promise$hash$$PromiseHash; + $$promise$hash$$PromiseHash.prototype = $$utils$$o_create($$enumerator$$default.prototype); + $$promise$hash$$PromiseHash.prototype._superConstructor = $$enumerator$$default; - lib$rsvp$promise$hash$$PromiseHash.prototype = lib$rsvp$utils$$o_create(lib$rsvp$enumerator$$default.prototype); - lib$rsvp$promise$hash$$PromiseHash.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$promise$hash$$PromiseHash.prototype._init = function() { + $$promise$hash$$PromiseHash.prototype._init = function() { this._result = {}; }; - lib$rsvp$promise$hash$$PromiseHash.prototype._validateInput = function(input) { + $$promise$hash$$PromiseHash.prototype._validateInput = function(input) { return input && typeof input === 'object'; }; - lib$rsvp$promise$hash$$PromiseHash.prototype._validationError = function() { + $$promise$hash$$PromiseHash.prototype._validationError = function() { return new Error('Promise.hash must be called with an object'); }; - lib$rsvp$promise$hash$$PromiseHash.prototype._enumerate = function() { - var enumerator = this; - var promise = enumerator.promise; - var input = enumerator._input; - var results = []; + $$promise$hash$$PromiseHash.prototype._enumerate = function() { + var promise = this.promise; + var input = this._input; + var results = []; for (var key in input) { - if (promise._state === lib$rsvp$$internal$$PENDING && Object.prototype.hasOwnProperty.call(input, key)) { + if (promise._state === $$$internal$$PENDING && input.hasOwnProperty(key)) { results.push({ position: key, entry: input[key] @@ -1307,38 +1363,56 @@ } var length = results.length; - enumerator._remaining = length; + this._remaining = length; var result; - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { result = results[i]; - enumerator._eachEntry(result.entry, result.position); + this._eachEntry(result.entry, result.position); } }; - function lib$rsvp$hash$settled$$HashSettled(Constructor, object, label) { + var $$rsvp$hash$$default = function hash(object, label) { + return new $$promise$hash$$default($$rsvp$promise$$default, object, label).promise; + }; + + function $$rsvp$hash$settled$$HashSettled(Constructor, object, label) { this._superConstructor(Constructor, object, false, label); } - lib$rsvp$hash$settled$$HashSettled.prototype = lib$rsvp$utils$$o_create(lib$rsvp$promise$hash$$default.prototype); - lib$rsvp$hash$settled$$HashSettled.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$hash$settled$$HashSettled.prototype._makeResult = lib$rsvp$enumerator$$makeSettledResult; + $$rsvp$hash$settled$$HashSettled.prototype = $$utils$$o_create($$promise$hash$$default.prototype); + $$rsvp$hash$settled$$HashSettled.prototype._superConstructor = $$enumerator$$default; + $$rsvp$hash$settled$$HashSettled.prototype._makeResult = $$enumerator$$makeSettledResult; - lib$rsvp$hash$settled$$HashSettled.prototype._validationError = function() { + $$rsvp$hash$settled$$HashSettled.prototype._validationError = function() { return new Error('hashSettled must be called with an object'); }; - function lib$rsvp$hash$settled$$hashSettled(object, label) { - return new lib$rsvp$hash$settled$$HashSettled(lib$rsvp$promise$$default, object, label).promise; - } - var lib$rsvp$hash$settled$$default = lib$rsvp$hash$settled$$hashSettled; - function lib$rsvp$hash$$hash(object, label) { - return new lib$rsvp$promise$hash$$default(lib$rsvp$promise$$default, object, label).promise; - } - var lib$rsvp$hash$$default = lib$rsvp$hash$$hash; - function lib$rsvp$map$$map(promises, mapFn, label) { - return lib$rsvp$promise$$default.all(promises, label).then(function(values) { - if (!lib$rsvp$utils$$isFunction(mapFn)) { + var $$rsvp$hash$settled$$default = function hashSettled(object, label) { + return new $$rsvp$hash$settled$$HashSettled($$rsvp$promise$$default, object, label).promise; + }; + + var $$rsvp$rethrow$$default = function rethrow(reason) { + setTimeout(function() { + throw reason; + }); + throw reason; + }; + + var $$rsvp$defer$$default = function defer(label) { + var deferred = { }; + + deferred.promise = new $$rsvp$promise$$default(function(resolve, reject) { + deferred.resolve = resolve; + deferred.reject = reject; + }, label); + + return deferred; + }; + + var $$rsvp$map$$default = function map(promises, mapFn, label) { + return $$rsvp$promise$$default.all(promises, label).then(function(values) { + if (!$$utils$$isFunction(mapFn)) { throw new TypeError("You must pass a function as map's second argument."); } @@ -1349,257 +1423,195 @@ results[i] = mapFn(values[i]); } - return lib$rsvp$promise$$default.all(results, label); + return $$rsvp$promise$$default.all(results, label); }); - } - var lib$rsvp$map$$default = lib$rsvp$map$$map; + }; - function lib$rsvp$node$$Result() { - this.value = undefined; - } + var $$rsvp$resolve$$default = function resolve(value, label) { + return $$rsvp$promise$$default.resolve(value, label); + }; - var lib$rsvp$node$$ERROR = new lib$rsvp$node$$Result(); - var lib$rsvp$node$$GET_THEN_ERROR = new lib$rsvp$node$$Result(); + var $$rsvp$reject$$default = function reject(reason, label) { + return $$rsvp$promise$$default.reject(reason, label); + }; - function lib$rsvp$node$$getThen(obj) { - try { - return obj.then; - } catch(error) { - lib$rsvp$node$$ERROR.value= error; - return lib$rsvp$node$$ERROR; - } - } + var $$rsvp$filter$$default = function filter(promises, filterFn, label) { + return $$rsvp$promise$$default.all(promises, label).then(function(values) { + if (!$$utils$$isFunction(filterFn)) { + throw new TypeError("You must pass a function as filter's second argument."); + } + var length = values.length; + var filtered = new Array(length); - function lib$rsvp$node$$tryApply(f, s, a) { - try { - f.apply(s, a); - } catch(error) { - lib$rsvp$node$$ERROR.value = error; - return lib$rsvp$node$$ERROR; - } - } + for (var i = 0; i < length; i++) { + filtered[i] = filterFn(values[i]); + } - function lib$rsvp$node$$makeObject(_, argumentNames) { - var obj = {}; - var name; - var i; - var length = _.length; - var args = new Array(length); + return $$rsvp$promise$$default.all(filtered, label).then(function(filtered) { + var results = new Array(length); + var newLength = 0; - for (var x = 0; x < length; x++) { - args[x] = _[x]; - } + for (var i = 0; i < length; i++) { + if (filtered[i]) { + results[newLength] = values[i]; + newLength++; + } + } - for (i = 0; i < argumentNames.length; i++) { - name = argumentNames[i]; - obj[name] = args[i + 1]; - } + results.length = newLength; - return obj; - } + return results; + }); + }); + }; - function lib$rsvp$node$$arrayResult(_) { - var length = _.length; - var args = new Array(length - 1); + var $$rsvp$asap$$len = 0; - for (var i = 1; i < length; i++) { - args[i - 1] = _[i]; + var $$rsvp$asap$$default = function asap(callback, arg) { + $$rsvp$asap$$queue[$$rsvp$asap$$len] = callback; + $$rsvp$asap$$queue[$$rsvp$asap$$len + 1] = arg; + $$rsvp$asap$$len += 2; + if ($$rsvp$asap$$len === 2) { + // If len is 1, that means that we need to schedule an async flush. + // If additional callbacks are queued before the queue is flushed, they + // will be processed by this flush that we are scheduling. + $$rsvp$asap$$scheduleFlush(); } + }; - return args; - } + var $$rsvp$asap$$browserGlobal = (typeof window !== 'undefined') ? window : {}; + var $$rsvp$asap$$BrowserMutationObserver = $$rsvp$asap$$browserGlobal.MutationObserver || $$rsvp$asap$$browserGlobal.WebKitMutationObserver; - function lib$rsvp$node$$wrapThenable(then, promise) { - return { - then: function(onFulFillment, onRejection) { - return then.call(promise, onFulFillment, onRejection); - } + // test for web worker but not in IE10 + var $$rsvp$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' && + typeof importScripts !== 'undefined' && + typeof MessageChannel !== 'undefined'; + + // node + function $$rsvp$asap$$useNextTick() { + return function() { + process.nextTick($$rsvp$asap$$flush); }; } - function lib$rsvp$node$$denodeify(nodeFunc, options) { - var fn = function() { - var self = this; - var l = arguments.length; - var args = new Array(l + 1); - var arg; - var promiseInput = false; - - for (var i = 0; i < l; ++i) { - arg = arguments[i]; - - if (!promiseInput) { - // TODO: clean this up - promiseInput = lib$rsvp$node$$needsPromiseInput(arg); - if (promiseInput === lib$rsvp$node$$GET_THEN_ERROR) { - var p = new lib$rsvp$promise$$default(lib$rsvp$$internal$$noop); - lib$rsvp$$internal$$reject(p, lib$rsvp$node$$GET_THEN_ERROR.value); - return p; - } else if (promiseInput && promiseInput !== true) { - arg = lib$rsvp$node$$wrapThenable(promiseInput, arg); - } - } - args[i] = arg; - } - - var promise = new lib$rsvp$promise$$default(lib$rsvp$$internal$$noop); - - args[l] = function(err, val) { - if (err) - lib$rsvp$$internal$$reject(promise, err); - else if (options === undefined) - lib$rsvp$$internal$$resolve(promise, val); - else if (options === true) - lib$rsvp$$internal$$resolve(promise, lib$rsvp$node$$arrayResult(arguments)); - else if (lib$rsvp$utils$$isArray(options)) - lib$rsvp$$internal$$resolve(promise, lib$rsvp$node$$makeObject(arguments, options)); - else - lib$rsvp$$internal$$resolve(promise, val); - }; + function $$rsvp$asap$$useMutationObserver() { + var iterations = 0; + var observer = new $$rsvp$asap$$BrowserMutationObserver($$rsvp$asap$$flush); + var node = document.createTextNode(''); + observer.observe(node, { characterData: true }); - if (promiseInput) { - return lib$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self); - } else { - return lib$rsvp$node$$handleValueInput(promise, args, nodeFunc, self); - } + return function() { + node.data = (iterations = ++iterations % 2); }; + } - fn.__proto__ = nodeFunc; + // web worker + function $$rsvp$asap$$useMessageChannel() { + var channel = new MessageChannel(); + channel.port1.onmessage = $$rsvp$asap$$flush; + return function () { + channel.port2.postMessage(0); + }; + } - return fn; + function $$rsvp$asap$$useSetTimeout() { + return function() { + setTimeout($$rsvp$asap$$flush, 1); + }; } - var lib$rsvp$node$$default = lib$rsvp$node$$denodeify; + var $$rsvp$asap$$queue = new Array(1000); - function lib$rsvp$node$$handleValueInput(promise, args, nodeFunc, self) { - var result = lib$rsvp$node$$tryApply(nodeFunc, self, args); - if (result === lib$rsvp$node$$ERROR) { - lib$rsvp$$internal$$reject(promise, result.value); - } - return promise; - } + function $$rsvp$asap$$flush() { + for (var i = 0; i < $$rsvp$asap$$len; i+=2) { + var callback = $$rsvp$asap$$queue[i]; + var arg = $$rsvp$asap$$queue[i+1]; - function lib$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self){ - return lib$rsvp$promise$$default.all(args).then(function(args){ - var result = lib$rsvp$node$$tryApply(nodeFunc, self, args); - if (result === lib$rsvp$node$$ERROR) { - lib$rsvp$$internal$$reject(promise, result.value); - } - return promise; - }); - } + callback(arg); - function lib$rsvp$node$$needsPromiseInput(arg) { - if (arg && typeof arg === 'object') { - if (arg.constructor === lib$rsvp$promise$$default) { - return true; - } else { - return lib$rsvp$node$$getThen(arg); - } - } else { - return false; + $$rsvp$asap$$queue[i] = undefined; + $$rsvp$asap$$queue[i+1] = undefined; } + + $$rsvp$asap$$len = 0; } - var lib$rsvp$platform$$platform; - /* global self */ - if (typeof self === 'object') { - lib$rsvp$platform$$platform = self; + var $$rsvp$asap$$scheduleFlush; - /* global global */ - } else if (typeof global === 'object') { - lib$rsvp$platform$$platform = global; + // Decide what async method to use to triggering processing of queued callbacks: + if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useNextTick(); + } else if ($$rsvp$asap$$BrowserMutationObserver) { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useMutationObserver(); + } else if ($$rsvp$asap$$isWorker) { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useMessageChannel(); } else { - throw new Error('no global: `self` or `global` found'); + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useSetTimeout(); } - var lib$rsvp$platform$$default = lib$rsvp$platform$$platform; - function lib$rsvp$race$$race(array, label) { - return lib$rsvp$promise$$default.race(array, label); - } - var lib$rsvp$race$$default = lib$rsvp$race$$race; - function lib$rsvp$reject$$reject(reason, label) { - return lib$rsvp$promise$$default.reject(reason, label); - } - var lib$rsvp$reject$$default = lib$rsvp$reject$$reject; - function lib$rsvp$resolve$$resolve(value, label) { - return lib$rsvp$promise$$default.resolve(value, label); - } - var lib$rsvp$resolve$$default = lib$rsvp$resolve$$resolve; - function lib$rsvp$rethrow$$rethrow(reason) { - setTimeout(function() { - throw reason; - }); - throw reason; - } - var lib$rsvp$rethrow$$default = lib$rsvp$rethrow$$rethrow; + // default async is asap; + $$rsvp$config$$config.async = $$rsvp$asap$$default; - // defaults - lib$rsvp$config$$config.async = lib$rsvp$asap$$default; - lib$rsvp$config$$config.after = function(cb) { - setTimeout(cb, 0); - }; - var lib$rsvp$$cast = lib$rsvp$resolve$$default; - function lib$rsvp$$async(callback, arg) { - lib$rsvp$config$$config.async(callback, arg); + var $$rsvp$$cast = $$rsvp$resolve$$default; + + function $$rsvp$$async(callback, arg) { + $$rsvp$config$$config.async(callback, arg); } - function lib$rsvp$$on() { - lib$rsvp$config$$config['on'].apply(lib$rsvp$config$$config, arguments); + function $$rsvp$$on() { + $$rsvp$config$$config.on.apply($$rsvp$config$$config, arguments); } - function lib$rsvp$$off() { - lib$rsvp$config$$config['off'].apply(lib$rsvp$config$$config, arguments); + function $$rsvp$$off() { + $$rsvp$config$$config.off.apply($$rsvp$config$$config, arguments); } // Set up instrumentation through `window.__PROMISE_INTRUMENTATION__` if (typeof window !== 'undefined' && typeof window['__PROMISE_INSTRUMENTATION__'] === 'object') { - var lib$rsvp$$callbacks = window['__PROMISE_INSTRUMENTATION__']; - lib$rsvp$config$$configure('instrument', true); - for (var lib$rsvp$$eventName in lib$rsvp$$callbacks) { - if (lib$rsvp$$callbacks.hasOwnProperty(lib$rsvp$$eventName)) { - lib$rsvp$$on(lib$rsvp$$eventName, lib$rsvp$$callbacks[lib$rsvp$$eventName]); + var $$rsvp$$callbacks = window['__PROMISE_INSTRUMENTATION__']; + $$rsvp$config$$configure('instrument', true); + for (var $$rsvp$$eventName in $$rsvp$$callbacks) { + if ($$rsvp$$callbacks.hasOwnProperty($$rsvp$$eventName)) { + $$rsvp$$on($$rsvp$$eventName, $$rsvp$$callbacks[$$rsvp$$eventName]); } } } - var lib$rsvp$umd$$RSVP = { - 'race': lib$rsvp$race$$default, - 'Promise': lib$rsvp$promise$$default, - 'allSettled': lib$rsvp$all$settled$$default, - 'hash': lib$rsvp$hash$$default, - 'hashSettled': lib$rsvp$hash$settled$$default, - 'denodeify': lib$rsvp$node$$default, - 'on': lib$rsvp$$on, - 'off': lib$rsvp$$off, - 'map': lib$rsvp$map$$default, - 'filter': lib$rsvp$filter$$default, - 'resolve': lib$rsvp$resolve$$default, - 'reject': lib$rsvp$reject$$default, - 'all': lib$rsvp$all$$default, - 'rethrow': lib$rsvp$rethrow$$default, - 'defer': lib$rsvp$defer$$default, - 'EventTarget': lib$rsvp$events$$default, - 'configure': lib$rsvp$config$$configure, - 'async': lib$rsvp$$async + var rsvp$umd$$RSVP = { + 'race': $$rsvp$race$$default, + 'Promise': $$rsvp$promise$$default, + 'allSettled': $$rsvp$all$settled$$default, + 'hash': $$rsvp$hash$$default, + 'hashSettled': $$rsvp$hash$settled$$default, + 'denodeify': $$rsvp$node$$default, + 'on': $$rsvp$$on, + 'off': $$rsvp$$off, + 'map': $$rsvp$map$$default, + 'filter': $$rsvp$filter$$default, + 'resolve': $$rsvp$resolve$$default, + 'reject': $$rsvp$reject$$default, + 'all': $$rsvp$all$$default, + 'rethrow': $$rsvp$rethrow$$default, + 'defer': $$rsvp$defer$$default, + 'EventTarget': $$rsvp$events$$default, + 'configure': $$rsvp$config$$configure, + 'async': $$rsvp$$async }; /* global define:true module:true window: true */ - if (typeof define === 'function' && define['amd']) { - define(function() { return lib$rsvp$umd$$RSVP; }); - } else if (typeof module !== 'undefined' && module['exports']) { - module['exports'] = lib$rsvp$umd$$RSVP; - } else if (typeof lib$rsvp$platform$$default !== 'undefined') { - lib$rsvp$platform$$default['RSVP'] = lib$rsvp$umd$$RSVP; + if (typeof define === 'function' && define.amd) { + define(function() { return rsvp$umd$$RSVP; }); + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = rsvp$umd$$RSVP; + } else if (typeof this !== 'undefined') { + this['RSVP'] = rsvp$umd$$RSVP; } }).call(this); - - 'use strict'; var EPUBJS = EPUBJS || {}; -EPUBJS.VERSION = "0.2.7"; +EPUBJS.VERSION = "0.2.10"; EPUBJS.plugins = EPUBJS.plugins || {}; diff --git a/build/epub.js.map b/build/epub.js.map index 80b96794b..afe33065d 100644 --- a/build/epub.js.map +++ b/build/epub.js.map @@ -22,5 +22,5 @@ "libs/mime-types/mime-types.js" ], "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5jDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACryCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACheA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9sCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,K" + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,c;ACzkDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACryCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACheA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9sCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,K" } \ No newline at end of file diff --git a/build/epub.min.js b/build/epub.min.js index 0d847a37d..a9d2c8827 100644 --- a/build/epub.min.js +++ b/build/epub.min.js @@ -3,10 +3,9 @@ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors * @license Licensed under MIT license * See https://raw.githubusercontent.com/tildeio/rsvp.js/master/LICENSE - * @version 3.1.0 + * @version 3.0.14 */ -(function(){"use strict";function a(a){return"function"==typeof a||"object"==typeof a&&null!==a}function b(a){return"function"==typeof a}function c(a){return"object"==typeof a&&null!==a}function d(){}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}function f(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b}function g(a,b){return"onerror"===a?void vb.on("error",b):2!==arguments.length?vb[a]:void(vb[a]=b)}function h(){setTimeout(function(){for(var a,b=0;bh;h++)u(e.resolve(a[h]),void 0,c,d);return f}function E(a,b){var c=this;if(a&&"object"==typeof a&&a.constructor===c)return a;var d=new c(k,b);return q(d,a),d}function F(a,b){var c=this,d=new c(k,b);return t(d,a),d}function G(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function H(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function I(a,c){var d=this;d._id=Jb++,d._label=c,d._state=void 0,d._result=void 0,d._subscribers=[],vb.instrument&&xb("created",d),k!==a&&(b(a)||G(),d instanceof I||H(),z(d,a))}function J(a,b,c){this._superConstructor(a,b,!1,c)}function K(a,b){return new J(Kb,a,b).promise}function L(a,b){return Kb.all(a,b)}function M(a,b){Wb[Pb]=a,Wb[Pb+1]=b,Pb+=2,2===Pb&&Mb()}function N(){var a=process.nextTick,b=process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/);return Array.isArray(b)&&"0"===b[1]&&"10"===b[2]&&(a=setImmediate),function(){a(S)}}function O(){return function(){Lb(S)}}function P(){var a=0,b=new Tb(S),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function Q(){var a=new MessageChannel;return a.port1.onmessage=S,function(){a.port2.postMessage(0)}}function R(){return function(){setTimeout(S,1)}}function S(){for(var a=0;Pb>a;a+=2){var b=Wb[a],c=Wb[a+1];b(c),Wb[a]=void 0,Wb[a+1]=void 0}Pb=0}function T(){try{var a=require,b=a("vertx");return Lb=b.runOnLoop||b.runOnContext,O()}catch(c){return R()}}function U(a){var b={};return b.promise=new Kb(function(a,c){b.resolve=a,b.reject=c},a),b}function V(a,c,d){return Kb.all(a,d).then(function(a){if(!b(c))throw new TypeError("You must pass a function as filter's second argument.");for(var e=a.length,f=new Array(e),g=0;e>g;g++)f[g]=c(a[g]);return Kb.all(f,d).then(function(b){for(var c=new Array(e),d=0,f=0;e>f;f++)b[f]&&(c[d]=a[f],d++);return c.length=d,c})})}function W(a,b,c){this._superConstructor(a,b,!0,c)}function X(a,b,c){this._superConstructor(a,b,!1,c)}function Y(a,b){return new X(Kb,a,b).promise}function Z(a,b){return new Zb(Kb,a,b).promise}function $(a,c,d){return Kb.all(a,d).then(function(a){if(!b(c))throw new TypeError("You must pass a function as map's second argument.");for(var e=a.length,f=new Array(e),g=0;e>g;g++)f[g]=c(a[g]);return Kb.all(f,d)})}function _(){this.value=void 0}function ab(a){try{return a.then}catch(b){return cc.value=b,cc}}function bb(a,b,c){try{a.apply(b,c)}catch(d){return cc.value=d,cc}}function cb(a,b){for(var c,d,e={},f=a.length,g=new Array(f),h=0;f>h;h++)g[h]=a[h];for(d=0;dd;d++)c[d-1]=a[d];return c}function eb(a,b){return{then:function(c,d){return a.call(b,c,d)}}}function fb(a,b){var c=function(){for(var c,d=this,e=arguments.length,f=new Array(e+1),g=!1,h=0;e>h;++h){if(c=arguments[h],!g){if(g=ib(c),g===dc){var i=new Kb(k);return t(i,dc.value),i}g&&g!==!0&&(c=eb(g,c))}f[h]=c}var j=new Kb(k);return f[e]=function(a,c){a?t(j,a):void 0===b?q(j,c):b===!0?q(j,db(arguments)):rb(b)?q(j,cb(arguments,b)):q(j,c)},g?hb(j,f,a,d):gb(j,f,a,d)};return c.__proto__=a,c}function gb(a,b,c,d){var e=bb(c,d,b);return e===cc&&t(a,e.value),a}function hb(a,b,c,d){return Kb.all(b).then(function(b){var e=bb(c,d,b);return e===cc&&t(a,e.value),a})}function ib(a){return a&&"object"==typeof a?a.constructor===Kb?!0:ab(a):!1}function jb(a,b){return Kb.race(a,b)}function kb(a,b){return Kb.reject(a,b)}function lb(a,b){return Kb.resolve(a,b)}function mb(a){throw setTimeout(function(){throw a}),a}function nb(a,b){vb.async(a,b)}function ob(){vb.on.apply(vb,arguments)}function pb(){vb.off.apply(vb,arguments)}var qb;qb=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)};var rb=qb,sb=Date.now||function(){return(new Date).getTime()},tb=Object.create||function(a){if(arguments.length>1)throw new Error("Second argument not supported");if("object"!=typeof a)throw new TypeError("Argument must be an object");return d.prototype=a,new d},ub={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a._promiseCallbacks=void 0,a},on:function(a,b){if("function"!=typeof b)throw new TypeError("Callback must be a function");var c,d=f(this);c=d[a],c||(c=d[a]=[]),-1===e(c,b)&&c.push(b)},off:function(a,b){var c,d,g=f(this);return b?(c=g[a],d=e(c,b),void(-1!==d&&c.splice(d,1))):void(g[a]=[])},trigger:function(a,b,c){var d,e,g=f(this);if(d=g[a])for(var h=0;he;e++)a._eachEntry(d[e],e)},B.prototype._eachEntry=function(a,b){var d=this,e=d._instanceConstructor;c(a)?a.constructor===e&&a._state!==yb?(a._onError=null,d._settledAt(a._state,b,a._result)):d._willSettleAt(e.resolve(a),b):(d._remaining--,d._result[b]=d._makeResult(zb,b,a))},B.prototype._settledAt=function(a,b,c){var d=this,e=d.promise;e._state===yb&&(d._remaining--,d._abortOnReject&&a===Ab?t(e,c):d._result[b]=d._makeResult(a,b,c)),0===d._remaining&&s(e,d._result)},B.prototype._makeResult=function(a,b,c){return c},B.prototype._willSettleAt=function(a,b){var c=this;u(a,void 0,function(a){c._settledAt(zb,b,a)},function(a){c._settledAt(Ab,b,a)})};var Eb=C,Fb=D,Gb=E,Hb=F,Ib="rsvp_"+sb()+"-",Jb=0,Kb=I;I.cast=Gb,I.all=Eb,I.race=Fb,I.resolve=Gb,I.reject=Hb,I.prototype={constructor:I,_guidKey:Ib,_onError:function(a){var b=this;vb.after(function(){b._onError&&vb.trigger("error",a,b._label)})},then:function(a,b,c){var d=this,e=d._state;if(e===zb&&!a||e===Ab&&!b)return vb.instrument&&xb("chained",d,d),d;d._onError=null;var f=new d.constructor(k,c),g=d._result;if(vb.instrument&&xb("chained",d,f),e){var h=arguments[e-1];vb.async(function(){y(e,f,h,g)})}else u(d,f,a,b);return f},"catch":function(a,b){return this.then(void 0,a,b)},"finally":function(a,b){var c=this,d=c.constructor;return c.then(function(b){return d.resolve(a()).then(function(){return b})},function(b){return d.resolve(a()).then(function(){throw b})},b)}},J.prototype=tb(Db.prototype),J.prototype._superConstructor=Db,J.prototype._makeResult=A,J.prototype._validationError=function(){return new Error("allSettled must be called with an array")};var Lb,Mb,Nb=K,Ob=L,Pb=0,Qb=({}.toString,M),Rb="undefined"!=typeof window?window:void 0,Sb=Rb||{},Tb=Sb.MutationObserver||Sb.WebKitMutationObserver,Ub="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Vb="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Wb=new Array(1e3);Mb=Ub?N():Tb?P():Vb?Q():void 0===Rb&&"function"==typeof require?T():R();var Xb=U,Yb=V,Zb=W;W.prototype=tb(Db.prototype),W.prototype._superConstructor=Db,W.prototype._init=function(){this._result={}},W.prototype._validateInput=function(a){return a&&"object"==typeof a},W.prototype._validationError=function(){return new Error("Promise.hash must be called with an object")},W.prototype._enumerate=function(){var a=this,b=a.promise,c=a._input,d=[];for(var e in c)b._state===yb&&Object.prototype.hasOwnProperty.call(c,e)&&d.push({position:e,entry:c[e]});var f=d.length;a._remaining=f;for(var g,h=0;b._state===yb&&f>h;h++)g=d[h],a._eachEntry(g.entry,g.position)},X.prototype=tb(Zb.prototype),X.prototype._superConstructor=Db,X.prototype._makeResult=A,X.prototype._validationError=function(){return new Error("hashSettled must be called with an object")};var $b,_b=Y,ac=Z,bc=$,cc=new _,dc=new _,ec=fb;if("object"==typeof self)$b=self;else{if("object"!=typeof global)throw new Error("no global: `self` or `global` found");$b=global}var fc=$b,gc=jb,hc=kb,ic=lb,jc=mb;vb.async=Qb,vb.after=function(a){setTimeout(a,0)};if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){var kc=window.__PROMISE_INSTRUMENTATION__;g("instrument",!0);for(var lc in kc)kc.hasOwnProperty(lc)&&ob(lc,kc[lc])}var mc={race:gc,Promise:Kb,allSettled:Nb,hash:ac,hashSettled:_b,denodeify:ec,on:ob,off:pb,map:bc,filter:Yb,resolve:ic,reject:hc,all:Ob,rethrow:jc,defer:Xb,EventTarget:ub,configure:g,async:nb};"function"==typeof define&&define.amd?define(function(){return mc}):"undefined"!=typeof module&&module.exports?module.exports=mc:"undefined"!=typeof fc&&(fc.RSVP=mc)}).call(this);var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.2.7",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Render={},function(a){var b=(a.ePub||{},a.ePub=function(){var a,b;return"undefined"!=typeof arguments[0]&&"string"==typeof arguments[0]&&(a=arguments[0],arguments[1]&&"object"==typeof arguments[1]?(b=arguments[1],b.bookPath=a):b={bookPath:a}),arguments[0]&&"object"==typeof arguments[0]&&(b=arguments[0]),new EPUBJS.Book(b)});"function"==typeof define&&define.amd?define(["rsvp"],function(){return b}):"undefined"!=typeof module&&module.exports&&(module.exports=b)}(window),EPUBJS.Book=function(a){this.settings=EPUBJS.core.defaults(a||{},{bookPath:void 0,bookKey:void 0,packageUrl:void 0,storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:void 0,height:void 0,layoutOveride:void 0,orientation:void 0,minSpreadWidth:768,gap:"auto",version:1,restore:!1,reload:!1,"goto":!1,styles:{},headTags:{},withCredentials:!1,render_method:"Iframe"}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.online=this.settings.online||navigator.onLine,this.networkListeners(),this.ready={manifest:new RSVP.defer,spine:new RSVP.defer,metadata:new RSVP.defer,cover:new RSVP.defer,toc:new RSVP.defer,pageList:new RSVP.defer},this.readyPromises=[this.ready.manifest.promise,this.ready.spine.promise,this.ready.metadata.promise,this.ready.cover.promise,this.ready.toc.promise],this.pageList=[],this.pagination=new EPUBJS.Pagination,this.pageListReady=this.ready.pageList.promise,this.ready.all=RSVP.all(this.readyPromises),this.ready.all.then(this._ready.bind(this)),this.isRendered=!1,this._q=EPUBJS.core.queue(this),this._rendering=!1,this._displayQ=EPUBJS.core.queue(this),this._moving=!1,this._gotoQ=EPUBJS.core.queue(this),this.renderer=new EPUBJS.Renderer(this.settings.render_method),this.renderer.setMinSpreadWidth(this.settings.minSpreadWidth),this.renderer.setGap(this.settings.gap),this.listenToRenderer(this.renderer),this.defer_opened=new RSVP.defer,this.opened=this.defer_opened.promise,this.store=!1,this.settings.storage!==!1&&this.fromStorage(!0),"string"==typeof this.settings.bookPath&&this.open(this.settings.bookPath,this.settings.reload),window.addEventListener("beforeunload",this.unload.bind(this),!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=new RSVP.defer;return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return d.loadPackage()})):c=this.loadPackage(),c.then(this.settings.restore&&!b&&localStorage?function(a){var b=d.packageIdentifier(a),c=d.restore(b);c||d.unpack(a),e.resolve(),d.defer_opened.resolve()}:function(a){d.unpack(a),e.resolve(),d.defer_opened.resolve()}),this._registerReplacements(this.renderer),e.promise},EPUBJS.Book.prototype.loadPackage=function(a){var b,c=this,d=new EPUBJS.Parser,e=a||"META-INF/container.xml";return b=this.settings.packageUrl?c.loadXml(c.settings.packageUrl):c.loadXml(c.bookUrl+e).then(function(a){return d.container(a)}).then(function(a){return c.settings.contentsPath=c.bookUrl+a.basePath,c.settings.packageUrl=c.bookUrl+a.packagePath,c.settings.encoding=a.encoding,c.loadXml(c.settings.packageUrl)}),b.catch(function(){console.error("Could not load book at: "+e),c.trigger("book:loadFailed",e)}),b},EPUBJS.Book.prototype.packageIdentifier=function(a){var b=new EPUBJS.Parser;return b.identifier(a)},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser;b.contents=c.packageContents(a,b.settings.contentsPath),b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.settings.bookKey||(b.settings.bookKey=b.generateBookKey(b.metadata.identifier)),b.globalLayoutProperties=b.parseLayoutProperties(b.metadata),b.contents.coverPath&&(b.cover=b.contents.cover=b.settings.contentsPath+b.contents.coverPath),b.spineNodeIndex=b.contents.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.locations=new EPUBJS.Locations(b.spine,b.store,b.settings.withCredentials),b.contents.navPath?(b.settings.navUrl=b.settings.contentsPath+b.contents.navPath,b.loadXml(b.settings.navUrl).then(function(a){return c.nav(a,b.spineIndexByURL,b.spine)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)},function(){b.ready.toc.resolve(!1)}),b.loadXml(b.settings.navUrl).then(function(a){return c.pageList(a,b.spineIndexByURL,b.spine)}).then(function(a){var c=new EPUBJS.EpubCFI,d=0;0!==a.length&&(b.pageList=b.contents.pageList=a,b.pageList.forEach(function(a){a.cfi||(d+=1,c.generateCfiFromHref(a.href,b).then(function(c){a.cfi=c,a.packageUrl=b.settings.packageUrl,d-=1,0===d&&(b.pagination.process(b.pageList),b.ready.pageList.resolve(b.pageList))}))}),d||(b.pagination.process(b.pageList),b.ready.pageList.resolve(b.pageList)))},function(){b.ready.pageList.resolve([])})):b.contents.tocPath?(b.settings.tocUrl=b.settings.contentsPath+b.contents.tocPath,b.loadXml(b.settings.tocUrl).then(function(a){return c.toc(a,b.spineIndexByURL,b.spine)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)},function(){b.ready.toc.resolve(!1)})):b.ready.toc.resolve(!1)},EPUBJS.Book.prototype.createHiddenRender=function(a,b,c){var d,e,f=this.element.getBoundingClientRect(),g=b||this.settings.width||f.width,h=c||this.settings.height||f.height;return a.setMinSpreadWidth(this.settings.minSpreadWidth),a.setGap(this.settings.gap),this._registerReplacements(a),this.settings.forceSingle&&a.forceSingle(!0),d=document.createElement("div"),d.style.visibility="hidden",d.style.overflow="hidden",d.style.width="0",d.style.height="0",this.element.appendChild(d),e=document.createElement("div"),e.style.visibility="hidden",e.style.overflow="hidden",e.style.width=g+"px",e.style.height=h+"px",d.appendChild(e),a.initialize(e),d},EPUBJS.Book.prototype.generatePageList=function(a,b){{var c=[],d=new EPUBJS.Renderer(this.settings.render_method,!1),e=this.createHiddenRender(d,a,b),f=new RSVP.defer,g=-1,h=this.spine.length,i=0,j=function(a){var b,e=g+1,f=a||new RSVP.defer;return e>=h?f.resolve():(g=e,b=new EPUBJS.Chapter(this.spine[g],this.store),d.displayChapter(b,this.globalLayoutProperties).then(function(){d.pageMap.forEach(function(a){i+=1,c.push({cfi:a.start,page:i})}),d.pageMap.length%2>0&&d.spreads&&(i+=1,c.push({cfi:d.pageMap[d.pageMap.length-1].end,page:i})),setTimeout(function(){j(f)},1)})),f.promise}.bind(this);j().then(function(){d.remove(),this.element.removeChild(e),f.resolve(c)}.bind(this))}return f.promise},EPUBJS.Book.prototype.generatePagination=function(a,b){var c=this,d=new RSVP.defer;return this.ready.spine.promise.then(function(){c.generatePageList(a,b).then(function(a){c.pageList=c.contents.pageList=a,c.pagination.process(a),c.ready.pageList.resolve(c.pageList),d.resolve(c.pageList)})}),d.promise},EPUBJS.Book.prototype.loadPagination=function(a){var b=JSON.parse(a);return b&&b.length&&(this.pageList=b,this.pagination.process(this.pageList),this.ready.pageList.resolve(this.pageList)),this.pageList},EPUBJS.Book.prototype.getPageList=function(){return this.ready.pageList.promise},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata.promise},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc.promise},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.settings.storage&&a.fromStorage(!0),a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.settings.storage&&a.fromStorage(!1),a.trigger("book:online")},!1)},EPUBJS.Book.prototype.listenToRenderer=function(a){var b=this;a.Events.forEach(function(c){a.on(c,function(a){b.trigger(c,a)})}),a.on("renderer:visibleRangeChanged",function(a){var b,c,d,e=[];this.pageList.length>0&&(b=this.pagination.pageFromCfi(a.start),d=this.pagination.percentageFromPage(b),e.push(b),a.end&&(c=this.pagination.pageFromCfi(a.end),e.push(c)),this.trigger("book:pageChanged",{anchorPage:b,percentage:d,pageRange:e}))}.bind(this)),a.on("render:loaded",this.loadChange.bind(this))},EPUBJS.Book.prototype.loadChange=function(a){var b,c,d=EPUBJS.core.uri(a),e=EPUBJS.core.uri(this.currentChapter.absolute);d.path!=e.path?(console.warn("Miss Match",d.path,this.currentChapter.absolute),b=this.spineIndexByURL[d.filename],c=new EPUBJS.Chapter(this.spine[b],this.store),this.currentChapter=c,this.renderer.currentChapter=c,this.renderer.afterLoad(this.renderer.render.docEl),this.renderer.beforeDisplay(function(){this.renderer.afterDisplay()}.bind(this))):this._rendering||this.renderer.reformat()},EPUBJS.Book.prototype.unlistenToRenderer=function(a){a.Events.forEach(function(b){a.off(b)})},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.store.getXml(a,this.settings.encoding):this.settings.contained?this.zip.getXml(a,this.settings.encoding):EPUBJS.core.request(a,"xml",this.settings.withCredentials)},EPUBJS.Book.prototype.urlFrom=function(a){var b,c=EPUBJS.core.uri(a),d=c.protocol,e="/"==c.path[0],f=window.location,g=f.origin||f.protocol+"//"+f.host,h=document.getElementsByTagName("base");return h.length&&(b=h[0].href),c.protocol?c.origin+c.path:!d&&e?(b||g)+c.path:d||e?void 0:EPUBJS.core.resolveUrl(b||f.pathname,c.path)},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.store=this.zip,this.zip.open(a)},EPUBJS.Book.prototype.isContained=function(a){var b=EPUBJS.core.uri(a);return!b.extension||"epub"!=b.extension&&"zip"!=b.extension?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b;return localStorage?(b=localStorage.getItem(a),localStorage&&null!==b?!0:!1):!1},EPUBJS.Book.prototype.generateBookKey=function(a){return"epubjs:"+EPUBJS.VERSION+":"+window.location.host+":"+a},EPUBJS.Book.prototype.saveContents=function(){return localStorage?void localStorage.setItem(this.settings.bookKey,JSON.stringify(this.contents)):!1},EPUBJS.Book.prototype.removeSavedContents=function(){return localStorage?void localStorage.removeItem(this.settings.bookKey):!1},EPUBJS.Book.prototype.renderTo=function(a){var b,c=this;if(EPUBJS.core.isElement(a))this.element=a;else{if("string"!=typeof a)return void console.error("Not an Element");this.element=EPUBJS.core.getEl(a)}return b=this.opened.then(function(){return c.renderer.initialize(c.element,c.settings.width,c.settings.height),c.metadata.direction&&c.renderer.setDirection(c.metadata.direction),c._rendered(),c.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.goto?this.goto(this.settings.goto):this.settings.previousLocationCfi?this.gotoCfi(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b,c=this,d=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL","globalLayoutProperties"],e=!1,f=this.generateBookKey(a),g=localStorage.getItem(f),h=d.length;if(this.settings.clearSaved&&(e=!0),!e&&"undefined"!=g&&null!==g)for(c.contents=JSON.parse(g),b=0;h>b;b++){var i=d[b];if(!c.contents[i]){e=!0;break}c[i]=c.contents[i]}return!e&&g&&this.contents&&this.settings.contentsPath?(this.settings.bookKey=f,this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),!0):!1},EPUBJS.Book.prototype.displayChapter=function(a,b,c){var d,e,f,g,h=this,i=c||new RSVP.defer;return this.isRendered?this._rendering||this._rendering?(this._displayQ.enqueue("displayChapter",[a,b,i]),i.promise):(EPUBJS.core.isNumber(a)?f=a:(e=new EPUBJS.EpubCFI(a),f=e.spinePos),(0>f||f>=this.spine.length)&&(console.warn("Not A Valid Location"),f=0,b=!1,e=!1),g=new EPUBJS.Chapter(this.spine[f],this.store),this._rendering=!0,this._needsAssetReplacement()&&g.registerHook("beforeChapterRender",[EPUBJS.replace.head,EPUBJS.replace.resources,EPUBJS.replace.svg],!0),h.currentChapter=g,d=h.renderer.displayChapter(g,this.globalLayoutProperties),e?h.renderer.gotoCfi(e):b&&h.renderer.lastPage(),d.then(function(){h.spinePos=f,i.resolve(h.renderer),h.settings.fromStorage===!1&&h.settings.contained===!1&&h.preloadNextChapter(),h._rendering=!1,h._displayQ.dequeue(),0===h._displayQ.length()&&h._gotoQ.dequeue()},function(a){console.error("Could not load Chapter: "+g.absolute,a),h.trigger("book:chapterLoadFailed",g.absolute),h._rendering=!1,i.reject(a)}),i.promise):(this._q.enqueue("displayChapter",arguments),i.reject({message:"Rendering",stack:(new Error).stack}),i.promise)},EPUBJS.Book.prototype.nextPage=function(){var a;return this.isRendered?(a=this.renderer.nextPage(),a?void 0:this.nextChapter()):this._q.enqueue("nextPage",arguments)},EPUBJS.Book.prototype.prevPage=function(){var a;return this.isRendered?(a=this.renderer.prevPage(),a?void 0:this.prevChapter()):this._q.enqueue("prevPage",arguments)},EPUBJS.Book.prototype.nextChapter=function(){var a;if(this.spinePos0){for(a=this.spinePos-1;this.spine[a]&&this.spine[a].linear&&"no"==this.spine[a].linear;)a--;if(a>=0)return this.displayChapter(a,!0);this.trigger("book:atStart")}else this.trigger("book:atStart")},EPUBJS.Book.prototype.getCurrentLocationCfi=function(){return this.isRendered?this.renderer.currentLocationCfi:!1},EPUBJS.Book.prototype.goto=function(a){return 0===a.indexOf("epubcfi(")?this.gotoCfi(a):a.indexOf("%")===a.length-1?this.gotoPercentage(parseInt(a.substring(0,a.length-1))/100):"number"==typeof a||isNaN(a)===!1?this.gotoPage(a):this.gotoHref(a)},EPUBJS.Book.prototype.gotoCfi=function(a,b){var c,d,e,f=b||new RSVP.defer;return this.isRendered?this._moving||this._rendering?(console.warn("Renderer is moving"),this._gotoQ.enqueue("gotoCfi",[a,f]),!1):(c=new EPUBJS.EpubCFI(a),d=c.spinePos,-1==d?!1:(e=this.spine[d],promise=f.promise,this._moving=!0,this.currentChapter&&this.spinePos===d?(this.renderer.gotoCfi(c),this._moving=!1,f.resolve(this.renderer.currentLocationCfi)):(e&&-1!=d||(d=0,e=this.spine[d]),this.currentChapter=new EPUBJS.Chapter(e,this.store),this.currentChapter&&(this.spinePos=d,render=this.renderer.displayChapter(this.currentChapter,this.globalLayoutProperties),this.renderer.gotoCfi(c),render.then(function(a){this._moving=!1,f.resolve(a.currentLocationCfi)}.bind(this)))),promise.then(function(){this._gotoQ.dequeue()}.bind(this)),promise)):(console.warn("Not yet Rendered"),this.settings.previousLocationCfi=a,!1)},EPUBJS.Book.prototype.gotoHref=function(a,b){var c,d,e,f,g,h=b||new RSVP.defer;return this.isRendered?this._moving||this._rendering?(this._gotoQ.enqueue("gotoHref",[a,h]),!1):(c=a.split("#"),d=c[0],e=c[1]||!1,f=d.replace(this.settings.contentsPath,""),g=this.spineIndexByURL[f],d||(g=this.currentChapter?this.currentChapter.spinePos:0),"number"!=typeof g?!1:this.currentChapter&&g==this.currentChapter.spinePos?(e?this.renderer.section(e):this.renderer.firstPage(),h.resolve(this.renderer.currentLocationCfi),h.promise.then(function(){this._gotoQ.dequeue()}.bind(this)),h.promise):this.displayChapter(g).then(function(){e&&this.renderer.section(e),h.resolve(this.renderer.currentLocationCfi)}.bind(this))):(this.settings.goto=a,!1)},EPUBJS.Book.prototype.gotoPage=function(a){var b=this.pagination.cfiFromPage(a);return this.gotoCfi(b)},EPUBJS.Book.prototype.gotoPercentage=function(a){var b=this.pagination.pageFromPercentage(a);return this.gotoPage(b)},EPUBJS.Book.prototype.preloadNextChapter=function(){var a,b=this.spinePos+1;return b>=this.spine.length?!1:(a=new EPUBJS.Chapter(this.spine[b]),void(a&&EPUBJS.core.request(a.absolute)))},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=EPUBJS.core.values(this.manifest);return this.store.put(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.toStorage=function(){var a=this.settings.bookKey;this.store.isStored(a).then(function(b){return b===!0?(this.settings.stored=!0,!0):this.storeOffline().then(function(){this.store.token(a,!0)}.bind(this))}.bind(this))},EPUBJS.Book.prototype.fromStorage=function(a){[EPUBJS.replace.head,EPUBJS.replace.resources,EPUBJS.replace.svg];this.contained||this.settings.contained||(this.online&&this.opened.then(this.toStorage.bind(this)),this.store&&this.settings.fromStorage&&a===!1?(this.settings.fromStorage=!1,this.store.off("offline"),this.store=!1):this.settings.fromStorage||(this.store=new EPUBJS.Storage(this.settings.credentials),this.store.on("offline",function(a){a?(this.offline=!0,this.settings.fromStorage=!0,this.trigger("book:offline")):(this.offline=!1,this.settings.fromStorage=!1,this.trigger("book:online"))}.bind(this))))},EPUBJS.Book.prototype.setStyle=function(a,b,c){var d=["color","background","background-color"];return this.isRendered?(this.settings.styles[a]=b,this.renderer.setStyle(a,b,c),void(-1===d.indexOf(a)&&this.renderer.reformat())):this._q.enqueue("setStyle",arguments)},EPUBJS.Book.prototype.removeStyle=function(a){return this.isRendered?(this.renderer.removeStyle(a),this.renderer.reformat(),void delete this.settings.styles[a]):this._q.enqueue("removeStyle",arguments)},EPUBJS.Book.prototype.addHeadTag=function(a,b){return this.isRendered?void(this.settings.headTags[a]=b):this._q.enqueue("addHeadTag",arguments)},EPUBJS.Book.prototype.useSpreads=function(a){console.warn("useSpreads is deprecated, use forceSingle or set a layoutOveride instead"),this.forceSingle(a===!1?!0:!1)},EPUBJS.Book.prototype.forceSingle=function(a){var b="undefined"==typeof a?!0:a;this.renderer.forceSingle(b),this.settings.forceSingle=b,this.isRendered&&this.renderer.reformat()},EPUBJS.Book.prototype.setMinSpreadWidth=function(a){this.settings.minSpreadWidth=a,this.isRendered&&(this.renderer.setMinSpreadWidth(this.settings.minSpreadWidth),this.renderer.reformat())},EPUBJS.Book.prototype.setGap=function(a){this.settings.gap=a,this.isRendered&&(this.renderer.setGap(this.settings.gap),this.renderer.reformat())},EPUBJS.Book.prototype.chapter=function(a){var b,c,d=this.spineIndexByURL[a];return d&&(b=this.spine[d],c=new EPUBJS.Chapter(b,this.store,this.settings.withCredentials),c.load()),c},EPUBJS.Book.prototype.unload=function(){this.settings.restore&&localStorage&&this.saveContents(),this.unlistenToRenderer(this.renderer),this.trigger("book:unload")},EPUBJS.Book.prototype.destroy=function(){window.removeEventListener("beforeunload",this.unload),this.currentChapter&&this.currentChapter.unload(),this.unload(),this.renderer&&this.renderer.remove()},EPUBJS.Book.prototype._ready=function(){this.trigger("book:ready")},EPUBJS.Book.prototype._rendered=function(){this.isRendered=!0,this.trigger("book:rendered"),this._q.flush()},EPUBJS.Book.prototype.applyStyles=function(a,b){a.applyStyles(this.settings.styles),b()},EPUBJS.Book.prototype.applyHeadTags=function(a,b){a.applyHeadTags(this.settings.headTags),b()},EPUBJS.Book.prototype._registerReplacements=function(a){a.registerHook("beforeChapterDisplay",this.applyStyles.bind(this,a),!0),a.registerHook("beforeChapterDisplay",this.applyHeadTags.bind(this,a),!0),a.registerHook("beforeChapterDisplay",EPUBJS.replace.hrefs.bind(this),!0)},EPUBJS.Book.prototype._needsAssetReplacement=function(){return this.settings.fromStorage?!0:this.settings.contained?!0:!1},EPUBJS.Book.prototype.parseLayoutProperties=function(a){var b=this.layoutOveride&&this.layoutOveride.layout||a.layout||"reflowable",c=this.layoutOveride&&this.layoutOveride.spread||a.spread||"auto",d=this.layoutOveride&&this.layoutOveride.orientation||a.orientation||"auto"; -return{layout:b,spread:c,orientation:d}},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),RSVP.on("error",function(){}),RSVP.configure("instrument",!1),EPUBJS.Chapter=function(a,b,c){this.href=a.href,this.absolute=a.url,this.id=a.id,this.spinePos=a.index,this.cfiBase=a.cfiBase,this.properties=a.properties,this.manifestProperties=a.manifestProperties,this.linear=a.linear,this.pages=1,this.store=b,this.credentials=c,this.epubcfi=new EPUBJS.EpubCFI,this.deferred=new RSVP.defer,this.loaded=this.deferred.promise,EPUBJS.Hooks.mixin(this),this.getHooks("beforeChapterRender"),this.caches={}},EPUBJS.Chapter.prototype.load=function(a,b){var c,d=a||this.store,e=b||this.credentials;return c=d?d.getXml(this.absolute):EPUBJS.core.request(this.absolute,"xml",e),c.then(function(a){this.setDocument(a),this.deferred.resolve(this)}.bind(this)),c},EPUBJS.Chapter.prototype.render=function(){return this.load().then(function(a){var b=a.querySelector("head"),c=a.createElement("base");return c.setAttribute("href",this.absolute),b.insertBefore(c,b.firstChild),this.contents=a,new RSVP.Promise(function(b){this.triggerHooks("beforeChapterRender",function(){b(a)}.bind(this),this)}.bind(this))}.bind(this)).then(function(a){var b=new XMLSerializer,c=b.serializeToString(a);return c}.bind(this))},EPUBJS.Chapter.prototype.url=function(a){var b,c=new RSVP.defer,d=a||this.store,e=this;return d?this.tempUrl?(b=this.tempUrl,c.resolve(b)):d.getUrl(this.absolute).then(function(a){e.tempUrl=a,c.resolve(a)}):(b=this.absolute,c.resolve(b)),c.promise},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.document=null,this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)},EPUBJS.Chapter.prototype.setDocument=function(a){{var b=a.namespaceURI;a.doctype}this.document=a.implementation.createDocument(b,null,null),this.contents=this.document.importNode(a.documentElement,!0),this.document.appendChild(this.contents),!this.document.evaluate&&document.evaluate&&(this.document.evaluate=document.evaluate)},EPUBJS.Chapter.prototype.cfiFromRange=function(a){var b,c,d,e,f,g;if(this.document){if("undefined"!=typeof document.evaluate){if(c=EPUBJS.core.getElementXPath(a.startContainer),d=EPUBJS.core.getElementXPath(a.endContainer),e=this.document.evaluate(c,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,a.collapsed||(f=this.document.evaluate(d,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue),b=this.document.createRange(),e)try{b.setStart(e,a.startOffset),!a.collapsed&&f&&b.setEnd(f,a.endOffset)}catch(h){console.log("missed"),e=!1}e||(console.log("not found, try fuzzy match"),cleanStartTextContent=EPUBJS.core.cleanStringForXpath(a.startContainer.textContent),c="//text()[contains(.,"+cleanStartTextContent+")]",e=this.document.evaluate(c,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,e&&(b.setStart(e,a.startOffset),a.collapsed||(g=EPUBJS.core.cleanStringForXpath(a.endContainer.textContent),d="//text()[contains(.,"+g+")]",f=this.document.evaluate(d,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,f&&b.setEnd(f,a.endOffset))))}else b=a;return this.epubcfi.generateCfiFromRange(b,this.cfiBase)}},EPUBJS.Chapter.prototype.find=function(a){var b=this,c=[],d=a.toLowerCase(),e=function(a){for(var e,f,g,h=a.textContent.toLowerCase(),i=b.document.createRange(),j=-1,k=150;-1!=f;)f=h.indexOf(d,j+1),-1!=f&&(i=b.document.createRange(),i.setStart(a,f),i.setEnd(a,f+d.length),e=b.cfiFromRange(i),a.textContent.length=g&&c&&c(!0),e=!0)};b(a,f)}.bind(this))},EPUBJS.Chapter.prototype.replaceWithStored=function(a,b,c,d){var e,f={},g=this.store,h=this.caches[a],i=EPUBJS.core.uri(this.absolute),j=i.base,k=b,l=5,m=function(a,b){f[b]=a},n=function(){d&&d(),EPUBJS.core.values(e).forEach(function(a){g.revokeUrl(a)}),h=f};g&&(h||(h={}),e=EPUBJS.core.clone(h),this.replace(a,function(b,d){var h=b.getAttribute(k),i=EPUBJS.core.resolveUrl(j,h),m=function(c){var e;b.onload=function(){clearTimeout(e),d(c,i)},b.onerror=function(a){clearTimeout(e),d(c,i),console.error(a)},"image"==a&&b.setAttribute("externalResourcesRequired","true"),"link[href]"==a&&"stylesheet"!==b.getAttribute("rel")?d(c,i):e=setTimeout(function(){d(c,i)},l),b.setAttribute(k,c)};i in e?(m(e[i]),f[i]=e[i],delete e[i]):c(g,i,m,b)},n,m))};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b,c){function d(){if(this.readyState===this.DONE)if(200===this.status||0===this.status&&this.response){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):"blob"==b?e?this.response:new Blob([this.response]):this.response,g.resolve(a)}else g.reject({message:this.response,stack:(new Error).stack})}var e=window.URL,f=e?"blob":"arraybuffer",g=new RSVP.defer,h=new XMLHttpRequest,i=XMLHttpRequest.prototype;return"overrideMimeType"in i||Object.defineProperty(i,"overrideMimeType",{value:function(){}}),c&&(h.withCredentials=!0),h.open("GET",a,!0),h.onreadystatechange=d,"blob"==b&&(h.responseType=f),"json"==b&&h.setRequestHeader("Accept","application/json"),"xml"==b&&h.overrideMimeType("text/xml"),"binary"==b&&(h.responseType="arraybuffer"),h.send(),g.promise},EPUBJS.core.toArray=function(a){var b=[];for(var c in a){var d;a.hasOwnProperty(c)&&(d=a[c],d.ident=c,b.push(d))}return b},EPUBJS.core.uri=function(a){var b,c,d,e={protocol:"",host:"",path:"",origin:"",directory:"",base:"",filename:"",extension:"",fragment:"",href:a},f=a.indexOf("blob:"),g=a.indexOf("://"),h=a.indexOf("?"),i=a.indexOf("#");return 0===f?(e.protocol="blob",e.base=a.indexOf(0,i),e):(-1!=i&&(e.fragment=a.slice(i+1),a=a.slice(0,i)),-1!=h&&(e.search=a.slice(h+1),a=a.slice(0,h),href=a),-1!=g?(e.protocol=a.slice(0,g),b=a.slice(g+3),d=b.indexOf("/"),-1===d?(e.host=e.path,e.path=""):(e.host=b.slice(0,d),e.path=b.slice(d)),e.origin=e.protocol+"://"+e.host,e.directory=EPUBJS.core.folder(e.path),e.base=e.origin+e.directory):(e.path=a,e.directory=EPUBJS.core.folder(a),e.base=e.directory),e.filename=a.replace(e.base,""),c=e.filename.lastIndexOf("."),-1!=c&&(e.extension=e.filename.slice(c+1)),e)},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/");if(-1==b)var c="";return c=a.slice(0,b+1)},EPUBJS.core.dataURLToBlob=function(a){var b,c,d,e,f,g=";base64,";if(-1==a.indexOf(g))return b=a.split(","),c=b[0].split(":")[1],d=b[1],new Blob([d],{type:c});b=a.split(g),c=b[0].split(":")[1],d=window.atob(b[1]),e=d.length,f=new Uint8Array(e);for(var h=0;e>h;++h)f[h]=d.charCodeAt(h);return new Blob([f],{type:c})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.addScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length;if("undefined"!=typeof document.documentElement.style[a])return a;for(var e=0;d>e;e++)if("undefined"!=typeof document.documentElement.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=EPUBJS.core.uri(b),g=a.split("/");return f.host?b:(g.pop(),d=b.split("/"),d.forEach(function(a){".."===a?g.pop():e.push(a)}),c=g.concat(e),c.join("/"))},EPUBJS.core.uuid=function(){var a=(new Date).getTime(),b="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var c=(a+16*Math.random())%16|0;return a=Math.floor(a/16),("x"==b?c:7&c|8).toString(16)});return b},EPUBJS.core.insert=function(a,b,c){var d=EPUBJS.core.locationOf(a,b,c);return b.splice(d,0,a),d},EPUBJS.core.locationOf=function(a,b,c,d,e){var f,g=d||0,h=e||b.length,i=parseInt(g+(h-g)/2);return c||(c=function(a,b){return a>b?1:b>a?-1:(a=b)?0:void 0}),0>=h-g?i:(f=c(b[i],a),h-g===1?f>0?i:i+1:0===f?i:-1===f?EPUBJS.core.locationOf(a,b,c,i,h):EPUBJS.core.locationOf(a,b,c,g,i))},EPUBJS.core.indexOfSorted=function(a,b,c,d,e){var f,g=d||0,h=e||b.length,i=parseInt(g+(h-g)/2);return c||(c=function(a,b){return a>b?1:b>a?-1:(a=b)?0:void 0}),0>=h-g?-1:(f=c(b[i],a),h-g===1?0===f?i:-1:0===f?i:-1===f?EPUBJS.core.indexOfSorted(a,b,c,i,h):EPUBJS.core.indexOfSorted(a,b,c,g,i))},EPUBJS.core.queue=function(a){var b=[],c=a,d=function(a,c,d){return b.push({funcName:a,args:c,context:d}),b},e=function(){var a;b.length&&(a=b.shift(),c[a.funcName].apply(a.context||c,a.args))},f=function(){for(;b.length;)e()},g=function(){b=[]},h=function(){return b.length};return{enqueue:d,dequeue:e,flush:f,clear:g,length:h}},EPUBJS.core.getElementXPath=function(a){return a&&a.id?'//*[@id="'+a.id+'"]':EPUBJS.core.getElementTreeXPath(a)},EPUBJS.core.getElementTreeXPath=function(a){var b,c,d,e,f=[],g="http://www.w3.org/1999/xhtml"===a.ownerDocument.documentElement.getAttribute("xmlns");for(a.nodeType===Node.TEXT_NODE&&(b=EPUBJS.core.indexOfTextNode(a)+1,f.push("text()["+b+"]"),a=a.parentNode);a&&1==a.nodeType;a=a.parentNode){b=0;for(var h=a.previousSibling;h;h=h.previousSibling)h.nodeType!=Node.DOCUMENT_TYPE_NODE&&h.nodeName==a.nodeName&&++b;c=a.nodeName.toLowerCase(),d=g?"xhtml:"+c:c,e=b?"["+(b+1)+"]":"",f.splice(0,0,d+e)}return f.length?"./"+f.join("/"):null},EPUBJS.core.nsResolver=function(a){var b={xhtml:"http://www.w3.org/1999/xhtml",epub:"http://www.idpf.org/2007/ops"};return b[a]||null},EPUBJS.core.cleanStringForXpath=function(a){var b=a.match(/[^'"]+|['"]/g);return b=b.map(function(a){return"'"===a?'"\'"':'"'===a?"'\"'":"'"+a+"'"}),"concat('',"+b.join(",")+")"},EPUBJS.core.indexOfTextNode=function(a){for(var b,c=a.parentNode,d=c.childNodes,e=-1,f=0;fb;b++){var d=arguments[b];for(var e in d)void 0===a[e]&&(a[e]=d[e])}return a},EPUBJS.core.extend=function(a){var b=[].slice.call(arguments,1);return b.forEach(function(b){b&&Object.getOwnPropertyNames(b).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))})}),a},EPUBJS.core.clone=function(a){return EPUBJS.core.isArray(a)?a.slice():EPUBJS.core.extend({},a)},EPUBJS.core.isElement=function(a){return!(!a||1!=a.nodeType)},EPUBJS.core.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},EPUBJS.core.isString=function(a){return"string"==typeof a||a instanceof String},EPUBJS.core.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},EPUBJS.core.values=function(a){var b,c,d,e=-1;if(!a)return[];for(b=Object.keys(a),c=b.length,d=Array(c);++e0;){if(c=d.shift(),"text"===c.type?(e=g.childNodes[c.index],g=e.parentNode||g):g=c.id?f.getElementById(c.id):h[c.index],"undefined"==typeof g)return console.error("No Element For",c,a.str),!1;h=Array.prototype.slice.call(g.children)}return g},EPUBJS.EpubCFI.prototype.compare=function(a,b){if("string"==typeof a&&(a=new EPUBJS.EpubCFI(a)),"string"==typeof b&&(b=new EPUBJS.EpubCFI(b)),a.spinePos>b.spinePos)return 1;if(a.spinePosb.steps[c].index)return 1;if(a.steps[c].indexb.characterOffset?1:a.characterOffset")},EPUBJS.EpubCFI.prototype.generateRangeFromCfi=function(a,b){var c,d,e,f,g,h,i=b||document,j=i.createRange();return"string"==typeof a&&(a=this.parse(a)),-1===a.spinePos?!1:(c=a.steps[a.steps.length-1],"undefined"!=typeof document.evaluate?(d=this.generateXpathFromSteps(a.steps),e=i.evaluate(d,i,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue):(g=this.generateQueryFromSteps(a.steps),h=i.querySelector(g),h&&"text"==c.type&&(e=h.childNodes[c.index])),e?(e&&a.characterOffset>=0?(f=e.length,a.characterOffset-1&&this.hooks[a].splice(c,1)):Array.isArray(b)&&b.forEach(function(b){c=this.hooks[a].indexOf(b),c>-1&&this.hooks[a].splice(c,1)},this))},a.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,0===f&&b&&b(),void e.forEach(function(a){a(d,c)}))},{register:function(a){if(void 0===EPUBJS.hooks[a]&&(EPUBJS.hooks[a]={}),"object"!=typeof EPUBJS.hooks[a])throw"Already registered: "+a;return EPUBJS.hooks[a]},mixin:function(b){for(var c in a.prototype)b[c]=a.prototype[c]}}}(),EPUBJS.Layout=EPUBJS.Layout||{},EPUBJS.Layout.Reflowable=function(){this.documentElement=null,this.spreadWidth=null},EPUBJS.Layout.Reflowable.prototype.format=function(a,b,c,d){var e=EPUBJS.core.prefixed("columnAxis"),f=EPUBJS.core.prefixed("columnGap"),g=EPUBJS.core.prefixed("columnWidth"),h=EPUBJS.core.prefixed("columnFill"),i=Math.floor(b),j=Math.floor(i/8),k=d>=0?d:j%2===0?j:j-1;return this.documentElement=a,this.spreadWidth=i+k,a.style.overflow="hidden",a.style.width=i+"px",a.style.height=c+"px",a.style[e]="horizontal",a.style[h]="auto",a.style[g]=i+"px",a.style[f]=k+"px",this.colWidth=i,this.gap=k,{pageWidth:this.spreadWidth,pageHeight:c}},EPUBJS.Layout.Reflowable.prototype.calculatePages=function(){var a,b;return this.documentElement.style.width="auto",a=this.documentElement.scrollWidth,b=Math.ceil(a/this.spreadWidth),{displayedPages:b,pageCount:b}},EPUBJS.Layout.ReflowableSpreads=function(){this.documentElement=null,this.spreadWidth=null},EPUBJS.Layout.ReflowableSpreads.prototype.format=function(a,b,c,d){var e=EPUBJS.core.prefixed("columnAxis"),f=EPUBJS.core.prefixed("columnGap"),g=EPUBJS.core.prefixed("columnWidth"),h=EPUBJS.core.prefixed("columnFill"),i=2,j=Math.floor(b),k=j%2===0?j:j-1,l=Math.floor(k/8),m=d>=0?d:l%2===0?l:l-1,n=Math.floor((k-m)/i);return this.documentElement=a,this.spreadWidth=(n+m)*i,a.style.overflow="hidden",a.style.width=k+"px",a.style.height=c+"px",a.style[e]="horizontal",a.style[h]="auto",a.style[f]=m+"px",a.style[g]=n+"px",this.colWidth=n,this.gap=m,{pageWidth:this.spreadWidth,pageHeight:c}},EPUBJS.Layout.ReflowableSpreads.prototype.calculatePages=function(){var a=this.documentElement.scrollWidth,b=Math.ceil(a/this.spreadWidth);return this.documentElement.style.width=b*this.spreadWidth-this.gap+"px",{displayedPages:b,pageCount:2*b}},EPUBJS.Layout.Fixed=function(){this.documentElement=null},EPUBJS.Layout.Fixed.prototype.format=function(a){var b,c,d,e,f=EPUBJS.core.prefixed("columnWidth"),g=a.querySelector("[name=viewport]");return this.documentElement=a,g&&g.hasAttribute("content")&&(b=g.getAttribute("content"),c=b.split(","),c[0]&&(d=c[0].replace("width=","")),c[1]&&(e=c[1].replace("height=",""))),a.style.width=d+"px"||"auto",a.style.height=e+"px"||"auto",a.style[f]="auto",a.style.overflow="auto",this.colWidth=d,this.gap=0,{pageWidth:d,pageHeight:e}},EPUBJS.Layout.Fixed.prototype.calculatePages=function(){return{displayedPages:1,pageCount:1}},EPUBJS.Locations=function(a,b,c){this.spine=a,this.store=b,this.credentials=c,this.epubcfi=new EPUBJS.EpubCFI,this._locations=[],this.total=0,this.break=150,this._current=0},EPUBJS.Locations.prototype.generate=function(){{var a=new RSVP.defer,b=-1,c=this.spine.length,d=function(a){var e,f=b+1,g=a||new RSVP.defer;return f>=c?g.resolve():(b=f,e=new EPUBJS.Chapter(this.spine[b],this.store,this.credentials),this.process(e).then(function(){setTimeout(function(){d(g)},1)})),g.promise}.bind(this);d().then(function(){this.total=this._locations.length-1,this._currentCfi&&(this.currentLocation=this._currentCfi),a.resolve(this._locations)}.bind(this))}return a.promise},EPUBJS.Locations.prototype.process=function(a){return a.load().then(function(b){var c,d,e=b,f=e.documentElement.querySelector("body"),g=0;this.sprint(f,function(b){var f,h=b.length,i=0;for(0===g&&(c=e.createRange(),c.setStart(b,0)),f=this.break-g,f>h&&(g+=h,i=h);h>i;)g=this.break,i+=this.break,i>=h?g=h-(i-this.break):(c.setEnd(b,i),cfi=a.cfiFromRange(c),this._locations.push(cfi),g=0,i+=1,c=e.createRange(),c.setStart(b,i));d=b}.bind(this)),c&&(c.setEnd(d,d.length),cfi=a.cfiFromRange(c),this._locations.push(cfi),g=0)}.bind(this))},EPUBJS.Locations.prototype.sprint=function(a,b){for(var c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);node=c.nextNode();)b(node)},EPUBJS.Locations.prototype.locationFromCfi=function(a){return 0===this._locations.length?-1:EPUBJS.core.locationOf(a,this._locations,this.epubcfi.compare)},EPUBJS.Locations.prototype.percentageFromCfi=function(a){var b=this.locationFromCfi(a);return this.percentageFromLocation(b)},EPUBJS.Locations.prototype.percentageFromLocation=function(a){return a&&this.total?a/this.total:0},EPUBJS.Locations.prototype.cfiFromLocation=function(a){var b=-1;return"number"!=typeof a&&(a=parseInt(a)),a>=0&&a1?a/100:a,c=Math.ceil(this.total*b);return this.cfiFromLocation(c)},EPUBJS.Locations.prototype.load=function(a){return this._locations=JSON.parse(a),this.total=this._locations.length-1,this._locations},EPUBJS.Locations.prototype.save=function(){return JSON.stringify(this._locations)},EPUBJS.Locations.prototype.getCurrent=function(){return this._current},EPUBJS.Locations.prototype.setCurrent=function(a){var b;if("string"==typeof a)this._currentCfi=a;else{if("number"!=typeof a)return;this._current=a}0!==this._locations.length&&("string"==typeof a?(b=this.locationFromCfi(a),this._current=b):b=a,this.trigger("changed",{percentage:this.percentageFromLocation(b)}))},Object.defineProperty(EPUBJS.Locations.prototype,"currentLocation",{get:function(){return this._current},set:function(a){this.setCurrent(a)}}),RSVP.EventTarget.mixin(EPUBJS.Locations.prototype),EPUBJS.Pagination=function(a){this.pages=[],this.locations=[],this.epubcfi=new EPUBJS.EpubCFI,a&&a.length&&this.process(a)},EPUBJS.Pagination.prototype.process=function(a){a.forEach(function(a){this.pages.push(a.page),this.locations.push(a.cfi)},this),this.pageList=a,this.firstPage=parseInt(this.pages[0]),this.lastPage=parseInt(this.pages[this.pages.length-1]),this.totalPages=this.lastPage-this.firstPage},EPUBJS.Pagination.prototype.pageFromCfi=function(a){var b=-1;if(0===this.locations.length)return-1;var c=EPUBJS.core.indexOfSorted(a,this.locations,this.epubcfi.compare);return-1!=c&&c=0?this.pages[c-1]:this.pages[0],void 0!==b||(b=-1)),b},EPUBJS.Pagination.prototype.cfiFromPage=function(a){var b=-1;"number"!=typeof a&&(a=parseInt(a));var c=this.pages.indexOf(a);return-1!=c&&(b=this.locations[c]),b},EPUBJS.Pagination.prototype.pageFromPercentage=function(a){var b=Math.round(this.totalPages*a);return b},EPUBJS.Pagination.prototype.percentageFromPage=function(a){var b=(a-this.firstPage)/this.totalPages;return Math.round(1e3*b)/1e3},EPUBJS.Pagination.prototype.percentageFromCfi=function(a){var b=this.pageFromCfi(a),c=this.percentageFromPage(b);return c},EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b,c,d,e;return a?(b=a.querySelector("rootfile"))?(c=b.getAttribute("full-path"),d=EPUBJS.core.uri(c).directory,e=a.xmlEncoding,{packagePath:c,basePath:d,encoding:e}):void console.error("No RootFile Found"):void console.error("Container File Not Found")},EPUBJS.Parser.prototype.identifier=function(a){var b;return a?(b=a.querySelector("metadata"),b?this.getElementText(b,"identifier"):void console.error("No Metadata Found")):void console.error("Package File Not Found")},EPUBJS.Parser.prototype.packageContents=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=this;return b&&(this.baseUrl=b),a?(c=a.querySelector("metadata"))?(d=a.querySelector("manifest"))?(e=a.querySelector("spine"))?(f=n.manifest(d),g=n.findNavPath(d),h=n.findTocPath(d,e),i=n.findCoverPath(d),j=Array.prototype.indexOf.call(e.parentNode.childNodes,e),k=n.spine(e,f),l={},k.forEach(function(a){l[a.href]=a.index}),m=n.metadata(c),m.direction=e.getAttribute("page-progression-direction"),{metadata:m,spine:k,manifest:f,navPath:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}):void console.error("No Spine Found"):void console.error("No Manifest Found"):void console.error("No Metadata Found"):void console.error("Package File Not Found")},EPUBJS.Parser.prototype.findNavPath=function(a){var b=a.querySelector("item[properties$='nav'], item[properties^='nav '], item[properties*=' nav ']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findTocPath=function(a,b){var c,d=a.querySelector("item[media-type='application/x-dtbncx+xml']");return d||(c=b.getAttribute("toc"),c&&(d=a.querySelector("item[id='"+c+"']"))),d?d.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:layout']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!==d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"",g=a.getAttribute("properties")||"";c[d]={href:e,url:b+e,type:f,properties:g}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d),f=Array.prototype.indexOf.call(a.parentNode.childNodes,a),g=new EPUBJS.EpubCFI;return e.forEach(function(a,d){var e=a.getAttribute("idref"),h=g.generateChapterComponent(f,d,e),i=a.getAttribute("properties")||"",j=i.length?i.split(" "):[],k=b[e].properties,l=k.length?k.split(" "):[],m={id:e,linear:a.getAttribute("linear")||"",properties:j,manifestProperties:l,href:b[e].href,url:b[e].url,index:d,cfiBase:h,cfi:"epubcfi("+h+")"};c.push(m)}),c},EPUBJS.Parser.prototype.nav=function(a,b,c){function d(a){var b=[];return Array.prototype.slice.call(a.childNodes).forEach(function(a){"ol"==a.tagName&&Array.prototype.slice.call(a.childNodes).forEach(function(a){"li"==a.tagName&&b.push(a)})}),b}function e(a){var b=null;return Array.prototype.slice.call(a.childNodes).forEach(function(a){("a"==a.tagName||"span"==a.tagName)&&(b=a)}),b}function f(a){var g=[],i=d(a),j=Array.prototype.slice.call(i),k=j.length;return 0===k?!1:(j.forEach(function(d){var i=d.getAttribute("id")||!1,j=e(d),k=j.getAttribute("href")||"",l=j.textContent||"",m=k.split("#"),n=m[0],o=f(d),p=b[n],q=c[p],r=q?q.cfi:"";i||(p?(q=c[p],i=q.id,r=q.cfi):i="epubjs-autogen-toc-id-"+h++),d.setAttribute("id",i),g.push({id:i,href:k,label:l,subitems:o,parent:a?a.getAttribute("id"):null,cfi:r}) -}),g)}var g=a.querySelector('nav[*|type="toc"]'),h=0;return g?f(g):[]},EPUBJS.Parser.prototype.toc=function(a,b,c){function d(e){var f=[],g=a.evaluate("*[local-name()='navPoint']",e,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),h=g.snapshotLength;if(0===h)return[];for(var i=h-1;i>=0;i--){var j=g.snapshotItem(i),k=j.getAttribute("id")||!1,l=j.querySelector("content"),m=l.getAttribute("src"),n=j.querySelector("navLabel"),o=n.textContent?n.textContent:"",p=m.split("#"),q=p[0],r=b[q],s=c[r],t=d(j),u=s?s.cfi:"";k||(r?(s=c[r],k=s.id,u=s.cfi):k="epubjs-autogen-toc-id-"+idCounter++),f.unshift({id:k,href:m,label:o,spinePos:r,subitems:t,parent:e?e.getAttribute("id"):null,cfi:u})}return f}var e=a.querySelector("navMap");return e?d(e):[]},EPUBJS.Parser.prototype.pageList=function(a){function b(a){var b=[];return Array.prototype.slice.call(a.childNodes).forEach(function(a){"ol"==a.tagName&&Array.prototype.slice.call(a.childNodes).forEach(function(a){"li"==a.tagName&&b.push(a)})}),b}function c(a){var b=null;return Array.prototype.slice.call(a.childNodes).forEach(function(a){("a"==a.tagName||"span"==a.tagName)&&(b=a)}),b}function d(a){var d=[],e=b(a),f=Array.prototype.slice.call(e),g=f.length;return 0===g?!1:(f.forEach(function(a){var b,e,f,g=(a.getAttribute("id")||!1,c(a)),h=g.getAttribute("href")||"",i=g.textContent||"",j=parseInt(i),k=h.indexOf("epubcfi");-1!=k?(b=h.split("#"),e=b[0],f=b.length>1?b[1]:!1,d.push({cfi:f,href:h,packageUrl:e,page:j})):d.push({href:h,page:j})}),d)}var e=a.querySelector('nav[*|type="page-list"]');return e?d(e):[]},EPUBJS.Render.Iframe=function(){this.iframe=null,this.document=null,this.window=null,this.docEl=null,this.bodyEl=null,this.leftPos=0,this.pageWidth=0},EPUBJS.Render.Iframe.prototype.create=function(){return this.iframe=document.createElement("iframe"),this.iframe.id="epubjs-iframe:"+EPUBJS.core.uuid(),this.iframe.scrolling="no",this.iframe.seamless="seamless",this.iframe.style.border="none",this.iframe.addEventListener("load",this.loaded.bind(this),!1),this.isMobile=navigator.userAgent.match(/(iPad|iPhone|iPod|Mobile|Android)/g),this.transform=EPUBJS.core.prefixed("transform"),this.iframe},EPUBJS.Render.Iframe.prototype.load=function(a){var b=this,c=new RSVP.defer;return this.window&&this.unload(),this.iframe.onload=function(){b.document=b.iframe.contentDocument,b.docEl=b.document.documentElement,b.headEl=b.document.head,b.bodyEl=b.document.body||b.document.querySelector("body"),b.window=b.iframe.contentWindow,b.window.addEventListener("resize",b.resized.bind(b),!1),b.leftPos=0,b.setLeft(0),b.bodyEl&&(b.bodyEl.style.margin="0"),"rtl"==b.direction&&"rtl"!=b.docEl.dir&&(b.docEl.dir="rtl",b.docEl.style.position="absolute",b.docEl.style.right="0"),c.resolve(b.docEl)},this.iframe.onerror=function(a){c.reject({message:"Error Loading Contents: "+a,stack:(new Error).stack})},this.document=this.iframe.contentDocument,this.document?(this.document.open(),this.document.write(a),this.document.close(),c.promise):(c.reject(new Error("No Document Available")),c)},EPUBJS.Render.Iframe.prototype.loaded=function(){var a,b,c=this.iframe.contentWindow.location.href;this.document=this.iframe.contentDocument,this.docEl=this.document.documentElement,this.headEl=this.document.head,this.bodyEl=this.document.body||this.document.querySelector("body"),this.window=this.iframe.contentWindow,"about:blank"!=c&&(a=this.iframe.contentDocument.querySelector("base"),b=a.getAttribute("href"),this.trigger("render:loaded",b))},EPUBJS.Render.Iframe.prototype.resize=function(a,b){this.iframe&&(this.iframe.height=b,isNaN(a)||a%2===0||(a+=1),this.iframe.width=a,this.width=this.iframe.getBoundingClientRect().width||a,this.height=this.iframe.getBoundingClientRect().height||b)},EPUBJS.Render.Iframe.prototype.resized=function(){this.width=this.iframe.getBoundingClientRect().width,this.height=this.iframe.getBoundingClientRect().height},EPUBJS.Render.Iframe.prototype.totalWidth=function(){return this.docEl.scrollWidth},EPUBJS.Render.Iframe.prototype.totalHeight=function(){return this.docEl.scrollHeight},EPUBJS.Render.Iframe.prototype.setPageDimensions=function(a,b){this.pageWidth=a,this.pageHeight=b},EPUBJS.Render.Iframe.prototype.setDirection=function(a){this.direction=a,this.docEl&&"rtl"==this.docEl.dir&&(this.docEl.dir="rtl",this.docEl.style.position="static",this.docEl.style.right="auto")},EPUBJS.Render.Iframe.prototype.setLeft=function(a){this.isMobile?this.docEl.style[this.transform]="translate("+-a+"px, 0)":this.document.defaultView.scrollTo(a,0)},EPUBJS.Render.Iframe.prototype.setStyle=function(a,b,c){c&&(a=EPUBJS.core.prefixed(a)),this.bodyEl&&(this.bodyEl.style[a]=b)},EPUBJS.Render.Iframe.prototype.removeStyle=function(a){this.bodyEl&&(this.bodyEl.style[a]="")},EPUBJS.Render.Iframe.prototype.addHeadTag=function(a,b,c){var d=c||this.document,e=d.createElement(a),f=d.head;for(var g in b)e.setAttribute(g,b[g]);f&&f.insertBefore(e,f.firstChild)},EPUBJS.Render.Iframe.prototype.page=function(a){this.leftPos=this.pageWidth*(a-1),"rtl"===this.direction&&(this.leftPos=-1*this.leftPos),this.setLeft(this.leftPos)},EPUBJS.Render.Iframe.prototype.getPageNumberByElement=function(a){var b,c;if(a)return b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.pageWidth)+1},EPUBJS.Render.Iframe.prototype.getPageNumberByRect=function(a){var b,c;return b=this.leftPos+a.left,c=Math.floor(b/this.pageWidth)+1},EPUBJS.Render.Iframe.prototype.getBaseElement=function(){return this.bodyEl},EPUBJS.Render.Iframe.prototype.getDocumentElement=function(){return this.docEl},EPUBJS.Render.Iframe.prototype.isElementVisible=function(a){var b,c;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect(),c=b.left,0!==b.width&&0!==b.height&&c>=0&&c=1&&a<=this.displayedPages?(this.chapterPos=a,this.render.page(a),this.visibleRangeCfi=this.getVisibleRangeCfi(),this.currentLocationCfi=this.visibleRangeCfi.start,this.trigger("renderer:locationChanged",this.currentLocationCfi),this.trigger("renderer:visibleRangeChanged",this.visibleRangeCfi),!0):!1:(console.warn("pageMap not set, queuing"),this._q.enqueue("page",arguments),!0)},EPUBJS.Renderer.prototype.nextPage=function(){return this.page(this.chapterPos+1)},EPUBJS.Renderer.prototype.prevPage=function(){return this.page(this.chapterPos-1)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b;a&&(b=this.render.getPageNumberByElement(a),this.page(b))},EPUBJS.Renderer.prototype.lastPage=function(){return this._moving?this._q.enqueue("lastPage",arguments):void this.page(this.displayedPages)},EPUBJS.Renderer.prototype.firstPage=function(){return this._moving?this._q.enqueue("firstPage",arguments):void this.page(1)},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.firstElementisTextNode=function(a){var b=a.childNodes,c=b.length;return c&&b[0]&&3===b[0].nodeType&&b[0].textContent.trim().length?!0:!1},EPUBJS.Renderer.prototype.isGoodNode=function(a){var b=["audio","canvas","embed","iframe","img","math","object","svg","video"];return-1!==b.indexOf(a.tagName.toLowerCase())?!0:this.firstElementisTextNode(a)},EPUBJS.Renderer.prototype.walk=function(a,b,c){for(var d,e,f,g,h=a,i=[h],j=1e4,k=0;!d&&i.length;){if(a=i.shift(),this.containsPoint(a,b,c)&&this.isGoodNode(a)&&(d=a),!d&&a&&a.childElementCount>0){if(e=a.children,!e||!e.length)return d;f=e.length?e.length:0;for(var l=f-1;l>=0;l--)e[l]!=g&&i.unshift(e[l])}if(!d&&0===i.length&&h&&null!==h.parentNode&&(i.push(h.parentNode),g=h,h=h.parentNode),k++,k>j){console.error("ENDLESS LOOP");break}}return d},EPUBJS.Renderer.prototype.containsPoint=function(a,b){var c;return a&&"function"==typeof a.getBoundingClientRect&&(c=a.getBoundingClientRect(),0!==c.width&&0!==c.height&&c.left>=b&&b<=c.left+c.width)?!0:!1},EPUBJS.Renderer.prototype.textSprint=function(a,b){for(var c,d=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,{acceptNode:function(a){return/^\s*$/.test(a.data)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}},!1);c=d.nextNode();)b(c)},EPUBJS.Renderer.prototype.sprint=function(a,b){for(var c,d=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,null,!1);c=d.nextNode();)b(c)},EPUBJS.Renderer.prototype.mapPage=function(){var a,b,c=this,d=[],e=this.render.getBaseElement(),f=1,g=this.layout.colWidth+this.layout.gap,h=this.formated.pageWidth*(this.chapterPos-1),i=g*f-h,j=0,k=function(a){var b,c,d=Array.prototype.slice.call(a.childNodes);if(a.nodeType==Node.ELEMENT_NODE){if(c=document.createRange(),c.selectNodeContents(a),b=c.getBoundingClientRect(),!b||0===b.width&&0===b.height)return;b.left>j&&d.forEach(function(a){a.nodeType==Node.TEXT_NODE&&a.textContent.trim().length&&l(a)}),b.right>j&&d.forEach(function(a){a.nodeType==Node.TEXT_NODE&&a.textContent.trim().length&&l(a)})}},l=function(e){var k=c.splitTextNodeIntoWordsRanges(e);k.forEach(function(e){var k=e.getBoundingClientRect();!k||0===k.width&&0===k.height||(k.left+k.width0&&(b&&(b.setEnd(a,pos),c.push(b)),b=this.doc.createRange(),b.setStart(a,pos+1));return b&&(b.setEnd(a,d.length),c.push(b)),c},EPUBJS.Renderer.prototype.rangePosition=function(a){var b,c;return c=a.getClientRects(),c.length?b=c[0]:null},EPUBJS.Renderer.prototype.getPageCfi=function(){var a;return this.spreads?(a=2*this.chapterPos,startRange=this.pageMap[a-2]):(a=this.chapterPos,startRange=this.pageMap[a-1]),this.pageMap[2*this.chapterPos-1].start},EPUBJS.Renderer.prototype.getRange=function(a,b,c){var d,e=this.doc.createRange();return c=!0,"undefined"==typeof document.caretPositionFromPoint||c?"undefined"==typeof document.caretRangeFromPoint||c?(this.visibileEl=this.findElementAfter(a,b),e.setStart(this.visibileEl,1)):e=this.doc.caretRangeFromPoint(a,b):(d=this.doc.caretPositionFromPoint(a,b),e.setStart(d.offsetNode,d.offset)),e},EPUBJS.Renderer.prototype.pagesInCurrentChapter=function(){var a,b;return this.pageMap?(b=this.pageMap.length,a=this.spreads?Math.ceil(b/2):b):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.currentRenderedPage=function(){var a;return this.pageMap?a=this.spreads&&this.layout.pageCount>1?2*this.chapterPos:this.chapterPos:(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.getRenderedPagesLeft=function(){var a,b,c;return this.pageMap?(b=this.pageMap.length,a=this.spreads?2*this.chapterPos:this.chapterPos,c=b-a):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.getVisibleRangeCfi=function(){var a,b,c;return this.pageMap?(this.spreads?(a=2*this.chapterPos,b=this.pageMap[a-2],c=b,this.layout.pageCount>1&&(c=this.pageMap[a-1])):(a=this.chapterPos,b=this.pageMap[a-1],c=b),b||(console.warn("page range miss:",a,this.pageMap),b=this.pageMap[this.pageMap.length-1],c=b),{start:b.start,end:c.end}):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.gotoCfi=function(a){var b,c,d;if(this._moving)return this._q.enqueue("gotoCfi",arguments);if(EPUBJS.core.isString(a)&&(a=this.epubcfi.parse(a)),"undefined"==typeof document.evaluate)c=this.epubcfi.addMarker(a,this.doc),c&&(b=this.render.getPageNumberByElement(c),this.epubcfi.removeMarker(c,this.doc),this.page(b));else if(d=this.epubcfi.generateRangeFromCfi(a,this.doc)){var e=d.getBoundingClientRect();b=e?this.render.getPageNumberByRect(e):1,this.page(b),this.currentLocationCfi=a.str}else this.page(1)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.render.getBaseElement();return b=this.walk(c,0,0),b?b:a},EPUBJS.Renderer.prototype.findElementAfter=function(a,b,c){var d,e=c||this.render.getBaseElement();return d=this.walk(e,a,b),d?d:e},EPUBJS.Renderer.prototype.resize=function(a,b,c){this.width=a,this.height=b,c!==!1&&this.render.resize(this.width,this.height),this.contents&&this.reformat(),this.trigger("renderer:resized",{width:this.width,height:this.height})},EPUBJS.Renderer.prototype.onResized=function(){var a=this.container.clientWidth,b=this.container.clientHeight;this.resize(a,b,!1)},EPUBJS.Renderer.prototype.addEventListeners=function(){this.render.document&&this.listenedEvents.forEach(function(a){this.render.document.addEventListener(a,this.triggerEvent.bind(this),!1)},this)},EPUBJS.Renderer.prototype.removeEventListeners=function(){this.render.document&&this.listenedEvents.forEach(function(a){this.render.document.removeEventListener(a,this.triggerEvent,!1)},this)},EPUBJS.Renderer.prototype.triggerEvent=function(a){this.trigger("renderer:"+a.type,a)},EPUBJS.Renderer.prototype.addSelectionListeners=function(){this.render.document.addEventListener("selectionchange",this.onSelectionChange.bind(this),!1)},EPUBJS.Renderer.prototype.removeSelectionListeners=function(){this.render.document&&this.doc.removeEventListener("selectionchange",this.onSelectionChange,!1)},EPUBJS.Renderer.prototype.onSelectionChange=function(){this.selectionEndTimeout&&clearTimeout(this.selectionEndTimeout),this.selectionEndTimeout=setTimeout(function(){this.selectedRange=this.render.window.getSelection(),this.trigger("renderer:selected",this.selectedRange)}.bind(this),500)},EPUBJS.Renderer.prototype.setMinSpreadWidth=function(a){this.minSpreadWidth=a,this.spreads=this.determineSpreads(a)},EPUBJS.Renderer.prototype.determineSpreads=function(a){return this.isForcedSingle||!a||this.width=g&&c&&c(!0),e=!0)};b(a,f)}.bind(this))},RSVP.EventTarget.mixin(EPUBJS.Renderer.prototype);var EPUBJS=EPUBJS||{};EPUBJS.replace={},EPUBJS.replace.hrefs=function(a,b){var c=this,d=function(a,d){var e,f,g=a.getAttribute("href"),h=g.search("://");if(-1!=h)a.setAttribute("target","_blank");else{var i=EPUBJS.core.uri(b.render.window.location.href);e=i.directory,f=e?"file"===i.protocol?EPUBJS.core.resolveUrl(i.base,g):EPUBJS.core.resolveUrl(e,g):g,a.onclick=function(){return c.goto(f),!1}}d()};b.replace("a[href]",d,a)},EPUBJS.replace.head=function(a,b){b.replaceWithStored("link[href]","href",EPUBJS.replace.links,a)},EPUBJS.replace.resources=function(a,b){b.replaceWithStored("[src]","src",EPUBJS.replace.srcs,a)},EPUBJS.replace.svg=function(a,b){b.replaceWithStored("image","xlink:href",function(a,b,c){a.getUrl(b).then(c)},a)},EPUBJS.replace.srcs=function(a,b,c){a.getUrl(b).then(c)},EPUBJS.replace.links=function(a,b,c,d){"stylesheet"===d.getAttribute("rel")?EPUBJS.replace.stylesheets(a,b).then(function(a,b){c(a,b)},function(){c(null)}):a.getUrl(b).then(c,function(){c(null)})},EPUBJS.replace.stylesheets=function(a,b){var c=new RSVP.defer;if(a)return a.getText(b).then(function(d){EPUBJS.replace.cssUrls(a,b,d).then(function(a){var b=window.URL||window.webkitURL||window.mozURL,d=new Blob([a],{type:"text/css"}),e=b.createObjectURL(d);c.resolve(e)},function(a){c.reject(a)})},function(a){c.reject(a)}),c.promise},EPUBJS.replace.cssUrls=function(a,b,c){var d=new RSVP.defer,e=[],f=c.match(/url\(\'?\"?([^\'|^\"^\)]*)\'?\"?\)/g);if(a)return f?(f.forEach(function(f){var g=EPUBJS.core.resolveUrl(b,f.replace(/url\(|[|\)|\'|\"]/g,"")),h=a.getUrl(g).then(function(a){c=c.replace(f,'url("'+a+'")')},function(a){d.reject(a)});e.push(h)}),RSVP.all(e).then(function(){d.resolve(c)}),d.promise):(d.resolve(c),d.promise)},EPUBJS.Storage=function(a){this.checkRequirements(),this.urlCache={},this.withCredentials=a,this.URL=window.URL||window.webkitURL||window.mozURL,this.offline=!1},EPUBJS.Storage.prototype.checkRequirements=function(){"undefined"==typeof localforage&&console.error("localForage library not loaded")},EPUBJS.Storage.prototype.put=function(a){var b=new RSVP.defer,c=a.length,d=0,e=function(b){var f,g,h=b||new RSVP.defer;return d>=c?h.resolve():(f=a[d].url,g=window.encodeURIComponent(f),EPUBJS.core.request(f,"binary").then(function(a){return localforage.setItem(g,a)}).then(function(){d++,setTimeout(function(){e(h)},1)})),h.promise}.bind(this);return Array.isArray(a)||(a=[a]),e().then(function(){b.resolve()}.bind(this)),b.promise},EPUBJS.Storage.prototype.token=function(a,b){var c=window.encodeURIComponent(a);return localforage.setItem(c,b).then(function(a){return null===a?!1:!0})},EPUBJS.Storage.prototype.isStored=function(a){var b=window.encodeURIComponent(a);return localforage.getItem(b).then(function(a){return null===a?!1:!0})},EPUBJS.Storage.prototype.getText=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(a){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,a),a}.bind(this)).then(function(b){var c=new RSVP.defer,d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;return f.addEventListener("loadend",function(){c.resolve(f.result)}),f.readAsText(e,d),c.promise}).catch(function(){var c=new RSVP.defer,d=localforage.getItem(b);return this.offline||(this.offline=!0,this.trigger("offline",!0)),d?(d.then(function(b){var d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;f.addEventListener("loadend",function(){c.resolve(f.result)}),f.readAsText(e,d)}),c.promise):(c.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),c.promise)}.bind(this))},EPUBJS.Storage.prototype.getUrl=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(c){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,c),a}.bind(this)).catch(function(){var c,d,e=new RSVP.defer,f=window.URL||window.webkitURL||window.mozURL;return this.offline||(this.offline=!0,this.trigger("offline",!0)),b in this.urlCache?(e.resolve(this.urlCache[b]),e.promise):(c=localforage.getItem(b))?(c.then(function(c){var g=new Blob([c],{type:EPUBJS.core.getMimeType(a)});d=f.createObjectURL(g),e.resolve(d),this.urlCache[b]=d}.bind(this)),e.promise):(e.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),e.promise)}.bind(this))},EPUBJS.Storage.prototype.getXml=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(a){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,a),a}.bind(this)).then(function(b){var c=new RSVP.defer,d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;return f.addEventListener("loadend",function(){var a=new DOMParser,b=a.parseFromString(f.result,"text/xml");c.resolve(b)}),f.readAsText(e,d),c.promise}).catch(function(){var c=new RSVP.defer,d=localforage.getItem(b);return this.offline||(this.offline=!0,this.trigger("offline",!0)),d?(d.then(function(b){var d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;f.addEventListener("loadend",function(){var a=new DOMParser,b=a.parseFromString(f.result,"text/xml");c.resolve(b)}),f.readAsText(e,d)}),c.promise):(c.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),c.promise)}.bind(this))},EPUBJS.Storage.prototype.revokeUrl=function(a){var b=window.URL||window.webkitURL||window.mozURL,c=this.urlCache[a];c&&b.revokeObjectURL(c)},EPUBJS.Storage.prototype.failed=function(a){console.error(a)},RSVP.EventTarget.mixin(EPUBJS.Storage.prototype),EPUBJS.Unarchiver=function(){this.checkRequirements(),this.urlCache={}},EPUBJS.Unarchiver.prototype.checkRequirements=function(){"undefined"==typeof JSZip&&console.error("JSZip lib not loaded")},EPUBJS.Unarchiver.prototype.open=function(a){new RSVP.defer;return EPUBJS.core.request(a,"binary").then(function(a){this.zip=new JSZip(a)}.bind(this))},EPUBJS.Unarchiver.prototype.getXml=function(a,b){var c=window.decodeURIComponent(a);return this.getText(c,b).then(function(a){var b=new DOMParser;return b.parseFromString(a,"text/xml")})},EPUBJS.Unarchiver.prototype.getUrl=function(a){var b,c,d=this,e=new RSVP.defer,f=window.decodeURIComponent(a),g=this.zip.file(f),h=window.URL||window.webkitURL||window.mozURL;return g?a in this.urlCache?(e.resolve(this.urlCache[a]),e.promise):(c=new Blob([g.asUint8Array()],{type:EPUBJS.core.getMimeType(g.name)}),b=h.createObjectURL(c),e.resolve(b),d.urlCache[a]=b,e.promise):(e.reject({message:"File not found in the epub: "+a,stack:(new Error).stack}),e.promise)},EPUBJS.Unarchiver.prototype.getText=function(a){var b,c=new RSVP.defer,d=window.decodeURIComponent(a),e=this.zip.file(d);return e?(b=e.asText(),c.resolve(b),c.promise):(c.reject({message:"File not found in the epub: "+a,stack:(new Error).stack}),c.promise)},EPUBJS.Unarchiver.prototype.revokeUrl=function(a){var b=window.URL||window.webkitURL||window.mozURL,c=this.urlCache[a];c&&b.revokeObjectURL(c)},EPUBJS.Unarchiver.prototype.failed=function(a){console.error(a)},EPUBJS.Unarchiver.prototype.afterSaved=function(){this.callback()},EPUBJS.Unarchiver.prototype.toStorage=function(a){function b(){f--,0===f&&e.afterSaved()}var c=0,d=20,e=this,f=a.length;a.forEach(function(a){setTimeout(function(a){e.saveEntryFileToStorage(a,b)},c,a),c+=d}),console.log("time",c)},function(){"use strict";var a={application:{ecmascript:["es","ecma"],javascript:"js",ogg:"ogx",pdf:"pdf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],"rdf+xml":"rdf",smil:["smi","smil"],"xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd"],zip:"zip","x-httpd-eruby":"rhtml","x-latex":"latex","x-maker":["frm","maker","frame","fm","fb","book","fbdoc"],"x-object":"o","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","epub+zip":"epub","font-tdpfr":"pfr","inkml+xml":["ink","inkml"],json:"json","jsonml+json":"jsonml","mathml+xml":"mathml","metalink+xml":"metalink",mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",oxps:"oxps","vnd.amazon.ebook":"azw",widget:"wgt","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-otf":"otf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-font-woff":"woff","x-mobipocket-ebook":["prc","mobi"],"x-mspublisher":"pub","x-nzb":"nzb","x-tgif":"obj","xaml+xml":"xaml","xml-dtd":"dtd","xproc+xml":"xpl","xslt+xml":"xslt","internet-property-stream":"acx","x-compress":"z","x-compressed":"tgz","x-gzip":"gz"},audio:{flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp2","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"x-aiff":["aif","aiff","aifc"],"x-ms-wma":"wma","x-wav":"wav",adpcm:"adp",mp4:"mp4a",webm:"weba","x-aac":"aac","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",mid:["mid","rmi"]},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"x-icon":"ico",bmp:"bmp",webp:"webp","x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",mathml:"mml",plain:["txt","text","brf","conf","def","list","log","in","bas"],richtext:"rtx","tab-separated-values":"tsv","x-bibtex":"bib","x-dsrc":"d","x-diff":["diff","patch"],"x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas"],"x-pcs-gcd":"gcd","x-perl":["pl","pm"],"x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcard":"vcf",sgml:["sgml","sgm"],"x-c":["c","cc","cxx","cpp","h","hh","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt"},video:{mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv"}},b=function(){var b,c,d,e,f={}; -for(b in a)if(a.hasOwnProperty(b))for(c in a[b])if(a[b].hasOwnProperty(c))if(d=a[b][c],"string"==typeof d)f[d]=b+"/"+c;else for(e=0;ec;c++)if(a[c]===b)return c;return-1}function b(a){var b=a._promiseCallbacks;return b||(b=a._promiseCallbacks={}),b}function c(a,b){return"onerror"===a?void X.on("error",b):2!==arguments.length?X[a]:void(X[a]=b)}function d(a){return"function"==typeof a||"object"==typeof a&&null!==a}function e(a){return"function"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(){}function h(){}function i(a){try{return a.then}catch(b){return fb.error=b,fb}}function j(a,b,c,d){try{a.call(b,c,d)}catch(e){return e}}function k(a,b,c){X.async(function(a){var d=!1,e=j(c,b,function(c){d||(d=!0,b!==c?n(a,c):p(a,c))},function(b){d||(d=!0,q(a,b))},"Settle: "+(a._label||" unknown promise"));!d&&e&&(d=!0,q(a,e))},a)}function l(a,b){b._state===db?p(a,b._result):a._state===eb?q(a,b._result):r(b,void 0,function(c){b!==c?n(a,c):p(a,c)},function(b){q(a,b)})}function m(a,b){if(b.constructor===a.constructor)l(a,b);else{var c=i(b);c===fb?q(a,fb.error):void 0===c?p(a,b):e(c)?k(a,b,c):p(a,b)}}function n(a,b){a===b?p(a,b):d(b)?m(a,b):p(a,b)}function o(a){a._onerror&&a._onerror(a._result),s(a)}function p(a,b){a._state===cb&&(a._result=b,a._state=db,0===a._subscribers.length?X.instrument&&bb("fulfilled",a):X.async(s,a))}function q(a,b){a._state===cb&&(a._state=eb,a._result=b,X.async(o,a))}function r(a,b,c,d){var e=a._subscribers,f=e.length;a._onerror=null,e[f]=b,e[f+db]=c,e[f+eb]=d,0===f&&a._state&&X.async(s,a)}function s(a){var b=a._subscribers,c=a._state;if(X.instrument&&bb(c===db?"fulfilled":"rejected",a),0!==b.length){for(var d,e,f=a._result,g=0;gh;h++)g[h]=a[h];for(d=0;dd;d++)c[d-1]=a[d];return c}function H(a,b){return{then:function(c,d){return a.call(b,c,d)}}}function I(a,b,c,d){var e=E(c,d,b);return e===pb&&q(a,e.value),a}function J(a,b,c,d){return ob.all(b).then(function(b){var e=E(c,d,b);return e===pb&&q(a,e.value),a})}function K(a){return a&&"object"==typeof a?a.constructor===ob?!0:D(a):!1}function L(a,b,c){this._superConstructor(a,b,!1,c)}function M(a,b,c){this._superConstructor(a,b,!0,c)}function N(a,b,c){this._superConstructor(a,b,!1,c)}function O(){return function(){process.nextTick(S)}}function P(){var a=0,b=new Ib(S),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function Q(){var a=new MessageChannel;return a.port1.onmessage=S,function(){a.port2.postMessage(0)}}function R(){return function(){setTimeout(S,1)}}function S(){for(var a=0;Fb>a;a+=2){var b=Kb[a],c=Kb[a+1];b(c),Kb[a]=void 0,Kb[a+1]=void 0}Fb=0}function T(a,b){X.async(a,b)}function U(){X.on.apply(X,arguments)}function V(){X.off.apply(X,arguments)}var W={mixin:function(a){return a.on=this.on,a.off=this.off,a.trigger=this.trigger,a._promiseCallbacks=void 0,a},on:function(c,d){var e,f=b(this);e=f[c],e||(e=f[c]=[]),-1===a(e,d)&&e.push(d)},off:function(c,d){var e,f,g=b(this);return d?(e=g[c],f=a(e,d),void(-1!==f&&e.splice(f,1))):void(g[c]=[])},trigger:function(a,c){var d,e,f=b(this);if(d=f[a])for(var g=0;g1)throw new Error("Second argument not supported");if("object"!=typeof a)throw new TypeError("Argument must be an object");return g.prototype=a,new g},ab=[],bb=function(a,b,c){1===ab.push({name:a,payload:{guid:b._guidKey+b._id,eventName:a,detail:b._result,childGuid:c&&b._guidKey+c._id,label:b._label,timeStamp:$(),stack:new Error(b._label).stack}})&&setTimeout(function(){for(var a,b=0;bd;d++)this._eachEntry(c[d],d)},y.prototype._eachEntry=function(a,b){var c=this._instanceConstructor;f(a)?a.constructor===c&&a._state!==cb?(a._onerror=null,this._settledAt(a._state,b,a._result)):this._willSettleAt(c.resolve(a),b):(this._remaining--,this._result[b]=this._makeResult(db,b,a))},y.prototype._settledAt=function(a,b,c){var d=this.promise;d._state===cb&&(this._remaining--,this._abortOnReject&&a===eb?q(d,c):this._result[b]=this._makeResult(a,b,c)),0===this._remaining&&p(d,this._result)},y.prototype._makeResult=function(a,b,c){return c},y.prototype._willSettleAt=function(a,b){var c=this;r(a,void 0,function(a){c._settledAt(db,b,a)},function(a){c._settledAt(eb,b,a)})};var ib=function(a,b){return new hb(this,a,!0,b).promise},jb=function(a,b){function c(a){n(f,a)}function d(a){q(f,a)}var e=this,f=new e(h,b);if(!Z(a))return q(f,new TypeError("You must pass an array to race.")),f;for(var g=a.length,i=0;f._state===cb&&g>i;i++)r(e.resolve(a[i]),void 0,c,d);return f},kb=function(a,b){var c=this;if(a&&"object"==typeof a&&a.constructor===c)return a;var d=new c(h,b);return n(d,a),d},lb=function(a,b){var c=this,d=new c(h,b);return q(d,a),d},mb="rsvp_"+$()+"-",nb=0,ob=B;B.cast=kb,B.all=ib,B.race=jb,B.resolve=kb,B.reject=lb,B.prototype={constructor:B,_guidKey:mb,_onerror:function(a){X.trigger("error",a)},then:function(a,b,c){var d=this,e=d._state;if(e===db&&!a||e===eb&&!b)return X.instrument&&bb("chained",this,this),this;d._onerror=null;var f=new this.constructor(h,c),g=d._result;if(X.instrument&&bb("chained",d,f),e){var i=arguments[e-1];X.async(function(){v(e,f,i,g)})}else r(d,f,a,b);return f},"catch":function(a,b){return this.then(null,a,b)},"finally":function(a,b){var c=this.constructor;return this.then(function(b){return c.resolve(a()).then(function(){return b})},function(b){return c.resolve(a()).then(function(){throw b})},b)}};var pb=new C,qb=new C,rb=function(a,b){var c=function(){for(var c,d=this,e=arguments.length,f=new Array(e+1),g=!1,i=0;e>i;++i){if(c=arguments[i],!g){if(g=K(c),g===qb){var j=new ob(h);return q(j,qb.value),j}g&&g!==!0&&(c=H(g,c))}f[i]=c}var k=new ob(h);return f[e]=function(a,c){a?q(k,a):void 0===b?n(k,c):b===!0?n(k,G(arguments)):Z(b)?n(k,F(arguments,b)):n(k,c)},g?J(k,f,a,d):I(k,f,a,d)};return c.__proto__=a,c},sb=function(a,b){return ob.all(a,b)};L.prototype=_(hb.prototype),L.prototype._superConstructor=hb,L.prototype._makeResult=x,L.prototype._validationError=function(){return new Error("allSettled must be called with an array")};var tb=function(a,b){return new L(ob,a,b).promise},ub=function(a,b){return ob.race(a,b)},vb=M;M.prototype=_(hb.prototype),M.prototype._superConstructor=hb,M.prototype._init=function(){this._result={}},M.prototype._validateInput=function(a){return a&&"object"==typeof a},M.prototype._validationError=function(){return new Error("Promise.hash must be called with an object")},M.prototype._enumerate=function(){var a=this.promise,b=this._input,c=[];for(var d in b)a._state===cb&&b.hasOwnProperty(d)&&c.push({position:d,entry:b[d]});var e=c.length;this._remaining=e;for(var f,g=0;a._state===cb&&e>g;g++)f=c[g],this._eachEntry(f.entry,f.position)};var wb=function(a,b){return new vb(ob,a,b).promise};N.prototype=_(vb.prototype),N.prototype._superConstructor=hb,N.prototype._makeResult=x,N.prototype._validationError=function(){return new Error("hashSettled must be called with an object")};var xb,yb=function(a,b){return new N(ob,a,b).promise},zb=function(a){throw setTimeout(function(){throw a}),a},Ab=function(a){var b={};return b.promise=new ob(function(a,c){b.resolve=a,b.reject=c},a),b},Bb=function(a,b,c){return ob.all(a,c).then(function(a){if(!e(b))throw new TypeError("You must pass a function as map's second argument.");for(var d=a.length,f=new Array(d),g=0;d>g;g++)f[g]=b(a[g]);return ob.all(f,c)})},Cb=function(a,b){return ob.resolve(a,b)},Db=function(a,b){return ob.reject(a,b)},Eb=function(a,b,c){return ob.all(a,c).then(function(a){if(!e(b))throw new TypeError("You must pass a function as filter's second argument.");for(var d=a.length,f=new Array(d),g=0;d>g;g++)f[g]=b(a[g]);return ob.all(f,c).then(function(b){for(var c=new Array(d),e=0,f=0;d>f;f++)b[f]&&(c[e]=a[f],e++);return c.length=e,c})})},Fb=0,Gb=function(a,b){Kb[Fb]=a,Kb[Fb+1]=b,Fb+=2,2===Fb&&xb()},Hb="undefined"!=typeof window?window:{},Ib=Hb.MutationObserver||Hb.WebKitMutationObserver,Jb="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Kb=new Array(1e3);xb="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?O():Ib?P():Jb?Q():R(),X.async=Gb;if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){var Lb=window.__PROMISE_INSTRUMENTATION__;c("instrument",!0);for(var Mb in Lb)Lb.hasOwnProperty(Mb)&&U(Mb,Lb[Mb])}var Nb={race:ub,Promise:ob,allSettled:tb,hash:wb,hashSettled:yb,denodeify:rb,on:U,off:V,map:Bb,filter:Eb,resolve:Cb,reject:Db,all:sb,rethrow:zb,defer:Ab,EventTarget:W,configure:c,async:T};"function"==typeof define&&define.amd?define(function(){return Nb}):"undefined"!=typeof module&&module.exports?module.exports=Nb:"undefined"!=typeof this&&(this.RSVP=Nb)}).call(this);var EPUBJS=EPUBJS||{};EPUBJS.VERSION="0.2.10",EPUBJS.plugins=EPUBJS.plugins||{},EPUBJS.filePath=EPUBJS.filePath||"/epubjs/",EPUBJS.Render={},function(a){var b=(a.ePub||{},a.ePub=function(){var a,b;return"undefined"!=typeof arguments[0]&&"string"==typeof arguments[0]&&(a=arguments[0],arguments[1]&&"object"==typeof arguments[1]?(b=arguments[1],b.bookPath=a):b={bookPath:a}),arguments[0]&&"object"==typeof arguments[0]&&(b=arguments[0]),new EPUBJS.Book(b)});"function"==typeof define&&define.amd?define(["rsvp"],function(){return b}):"undefined"!=typeof module&&module.exports&&(module.exports=b)}(window),EPUBJS.Book=function(a){this.settings=EPUBJS.core.defaults(a||{},{bookPath:void 0,bookKey:void 0,packageUrl:void 0,storage:!1,fromStorage:!1,saved:!1,online:!0,contained:!1,width:void 0,height:void 0,layoutOveride:void 0,orientation:void 0,minSpreadWidth:768,gap:"auto",version:1,restore:!1,reload:!1,"goto":!1,styles:{},headTags:{},withCredentials:!1,render_method:"Iframe"}),this.settings.EPUBJSVERSION=EPUBJS.VERSION,this.spinePos=0,this.stored=!1,this.online=this.settings.online||navigator.onLine,this.networkListeners(),this.ready={manifest:new RSVP.defer,spine:new RSVP.defer,metadata:new RSVP.defer,cover:new RSVP.defer,toc:new RSVP.defer,pageList:new RSVP.defer},this.readyPromises=[this.ready.manifest.promise,this.ready.spine.promise,this.ready.metadata.promise,this.ready.cover.promise,this.ready.toc.promise],this.pageList=[],this.pagination=new EPUBJS.Pagination,this.pageListReady=this.ready.pageList.promise,this.ready.all=RSVP.all(this.readyPromises),this.ready.all.then(this._ready.bind(this)),this.isRendered=!1,this._q=EPUBJS.core.queue(this),this._rendering=!1,this._displayQ=EPUBJS.core.queue(this),this._moving=!1,this._gotoQ=EPUBJS.core.queue(this),this.renderer=new EPUBJS.Renderer(this.settings.render_method),this.renderer.setMinSpreadWidth(this.settings.minSpreadWidth),this.renderer.setGap(this.settings.gap),this.listenToRenderer(this.renderer),this.defer_opened=new RSVP.defer,this.opened=this.defer_opened.promise,this.store=!1,this.settings.storage!==!1&&this.fromStorage(!0),"string"==typeof this.settings.bookPath&&this.open(this.settings.bookPath,this.settings.reload),window.addEventListener("beforeunload",this.unload.bind(this),!1)},EPUBJS.Book.prototype.open=function(a,b){var c,d=this,e=new RSVP.defer;return this.settings.bookPath=a,this.bookUrl=this.urlFrom(a),this.settings.contained||this.isContained(a)?(this.settings.contained=this.contained=!0,this.bookUrl="",c=this.unarchive(a).then(function(){return d.loadPackage()})):c=this.loadPackage(),c.then(this.settings.restore&&!b&&localStorage?function(a){var b=d.packageIdentifier(a),c=d.restore(b);c||d.unpack(a),e.resolve(),d.defer_opened.resolve()}:function(a){d.unpack(a),e.resolve(),d.defer_opened.resolve()}),this._registerReplacements(this.renderer),e.promise},EPUBJS.Book.prototype.loadPackage=function(a){var b,c=this,d=new EPUBJS.Parser,e=a||"META-INF/container.xml";return b=this.settings.packageUrl?c.loadXml(c.settings.packageUrl):c.loadXml(c.bookUrl+e).then(function(a){return d.container(a)}).then(function(a){return c.settings.contentsPath=c.bookUrl+a.basePath,c.settings.packageUrl=c.bookUrl+a.packagePath,c.settings.encoding=a.encoding,c.loadXml(c.settings.packageUrl)}),b.catch(function(){console.error("Could not load book at: "+e),c.trigger("book:loadFailed",e)}),b},EPUBJS.Book.prototype.packageIdentifier=function(a){var b=new EPUBJS.Parser;return b.identifier(a)},EPUBJS.Book.prototype.unpack=function(a){var b=this,c=new EPUBJS.Parser;b.contents=c.packageContents(a,b.settings.contentsPath),b.manifest=b.contents.manifest,b.spine=b.contents.spine,b.spineIndexByURL=b.contents.spineIndexByURL,b.metadata=b.contents.metadata,b.settings.bookKey||(b.settings.bookKey=b.generateBookKey(b.metadata.identifier)),b.globalLayoutProperties=b.parseLayoutProperties(b.metadata),b.contents.coverPath&&(b.cover=b.contents.cover=b.settings.contentsPath+b.contents.coverPath),b.spineNodeIndex=b.contents.spineNodeIndex,b.ready.manifest.resolve(b.contents.manifest),b.ready.spine.resolve(b.contents.spine),b.ready.metadata.resolve(b.contents.metadata),b.ready.cover.resolve(b.contents.cover),b.locations=new EPUBJS.Locations(b.spine,b.store,b.settings.withCredentials),b.contents.navPath?(b.settings.navUrl=b.settings.contentsPath+b.contents.navPath,b.loadXml(b.settings.navUrl).then(function(a){return c.nav(a,b.spineIndexByURL,b.spine)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)},function(){b.ready.toc.resolve(!1)}),b.loadXml(b.settings.navUrl).then(function(a){return c.pageList(a,b.spineIndexByURL,b.spine)}).then(function(a){var c=new EPUBJS.EpubCFI,d=0;0!==a.length&&(b.pageList=b.contents.pageList=a,b.pageList.forEach(function(a){a.cfi||(d+=1,c.generateCfiFromHref(a.href,b).then(function(c){a.cfi=c,a.packageUrl=b.settings.packageUrl,d-=1,0===d&&(b.pagination.process(b.pageList),b.ready.pageList.resolve(b.pageList))}))}),d||(b.pagination.process(b.pageList),b.ready.pageList.resolve(b.pageList)))},function(){b.ready.pageList.resolve([])})):b.contents.tocPath?(b.settings.tocUrl=b.settings.contentsPath+b.contents.tocPath,b.loadXml(b.settings.tocUrl).then(function(a){return c.toc(a,b.spineIndexByURL,b.spine)}).then(function(a){b.toc=b.contents.toc=a,b.ready.toc.resolve(b.contents.toc)},function(){b.ready.toc.resolve(!1)})):b.ready.toc.resolve(!1)},EPUBJS.Book.prototype.createHiddenRender=function(a,b,c){var d,e,f=this.element.getBoundingClientRect(),g=b||this.settings.width||f.width,h=c||this.settings.height||f.height;return a.setMinSpreadWidth(this.settings.minSpreadWidth),a.setGap(this.settings.gap),this._registerReplacements(a),this.settings.forceSingle&&a.forceSingle(!0),d=document.createElement("div"),d.style.visibility="hidden",d.style.overflow="hidden",d.style.width="0",d.style.height="0",this.element.appendChild(d),e=document.createElement("div"),e.style.visibility="hidden",e.style.overflow="hidden",e.style.width=g+"px",e.style.height=h+"px",d.appendChild(e),a.initialize(e),d},EPUBJS.Book.prototype.generatePageList=function(a,b){{var c=[],d=new EPUBJS.Renderer(this.settings.render_method,!1),e=this.createHiddenRender(d,a,b),f=new RSVP.defer,g=-1,h=this.spine.length,i=0,j=function(a){var b,e=g+1,f=a||new RSVP.defer;return e>=h?f.resolve():(g=e,b=new EPUBJS.Chapter(this.spine[g],this.store),d.displayChapter(b,this.globalLayoutProperties).then(function(){d.pageMap.forEach(function(a){i+=1,c.push({cfi:a.start,page:i})}),d.pageMap.length%2>0&&d.spreads&&(i+=1,c.push({cfi:d.pageMap[d.pageMap.length-1].end,page:i})),setTimeout(function(){j(f)},1)})),f.promise}.bind(this);j().then(function(){d.remove(),this.element.removeChild(e),f.resolve(c)}.bind(this))}return f.promise},EPUBJS.Book.prototype.generatePagination=function(a,b){var c=this,d=new RSVP.defer;return this.ready.spine.promise.then(function(){c.generatePageList(a,b).then(function(a){c.pageList=c.contents.pageList=a,c.pagination.process(a),c.ready.pageList.resolve(c.pageList),d.resolve(c.pageList)})}),d.promise},EPUBJS.Book.prototype.loadPagination=function(a){var b=JSON.parse(a);return b&&b.length&&(this.pageList=b,this.pagination.process(this.pageList),this.ready.pageList.resolve(this.pageList)),this.pageList},EPUBJS.Book.prototype.getPageList=function(){return this.ready.pageList.promise},EPUBJS.Book.prototype.getMetadata=function(){return this.ready.metadata.promise},EPUBJS.Book.prototype.getToc=function(){return this.ready.toc.promise},EPUBJS.Book.prototype.networkListeners=function(){var a=this;window.addEventListener("offline",function(){a.online=!1,a.settings.storage&&a.fromStorage(!0),a.trigger("book:offline")},!1),window.addEventListener("online",function(){a.online=!0,a.settings.storage&&a.fromStorage(!1),a.trigger("book:online")},!1)},EPUBJS.Book.prototype.listenToRenderer=function(a){var b=this;a.Events.forEach(function(c){a.on(c,function(a){b.trigger(c,a)})}),a.on("renderer:visibleRangeChanged",function(a){var b,c,d,e=[];this.pageList.length>0&&(b=this.pagination.pageFromCfi(a.start),d=this.pagination.percentageFromPage(b),e.push(b),a.end&&(c=this.pagination.pageFromCfi(a.end),e.push(c)),this.trigger("book:pageChanged",{anchorPage:b,percentage:d,pageRange:e}))}.bind(this)),a.on("render:loaded",this.loadChange.bind(this))},EPUBJS.Book.prototype.loadChange=function(a){var b,c,d=EPUBJS.core.uri(a),e=EPUBJS.core.uri(this.currentChapter.absolute);d.path!=e.path?(console.warn("Miss Match",d.path,this.currentChapter.absolute),b=this.spineIndexByURL[d.filename],c=new EPUBJS.Chapter(this.spine[b],this.store),this.currentChapter=c,this.renderer.currentChapter=c,this.renderer.afterLoad(this.renderer.render.docEl),this.renderer.beforeDisplay(function(){this.renderer.afterDisplay()}.bind(this))):this._rendering||this.renderer.reformat()},EPUBJS.Book.prototype.unlistenToRenderer=function(a){a.Events.forEach(function(b){a.off(b)})},EPUBJS.Book.prototype.loadXml=function(a){return this.settings.fromStorage?this.store.getXml(a,this.settings.encoding):this.settings.contained?this.zip.getXml(a,this.settings.encoding):EPUBJS.core.request(a,"xml",this.settings.withCredentials)},EPUBJS.Book.prototype.urlFrom=function(a){var b,c=EPUBJS.core.uri(a),d=c.protocol,e="/"==c.path[0],f=window.location,g=f.origin||f.protocol+"//"+f.host,h=document.getElementsByTagName("base");return h.length&&(b=h[0].href),c.protocol?c.origin+c.path:!d&&e?(b||g)+c.path:d||e?void 0:EPUBJS.core.resolveUrl(b||f.pathname,c.path)},EPUBJS.Book.prototype.unarchive=function(a){return this.zip=new EPUBJS.Unarchiver,this.store=this.zip,this.zip.open(a)},EPUBJS.Book.prototype.isContained=function(a){var b=EPUBJS.core.uri(a);return!b.extension||"epub"!=b.extension&&"zip"!=b.extension?!1:!0},EPUBJS.Book.prototype.isSaved=function(a){var b;return localStorage?(b=localStorage.getItem(a),localStorage&&null!==b?!0:!1):!1},EPUBJS.Book.prototype.generateBookKey=function(a){return"epubjs:"+EPUBJS.VERSION+":"+window.location.host+":"+a},EPUBJS.Book.prototype.saveContents=function(){return localStorage?void localStorage.setItem(this.settings.bookKey,JSON.stringify(this.contents)):!1},EPUBJS.Book.prototype.removeSavedContents=function(){return localStorage?void localStorage.removeItem(this.settings.bookKey):!1},EPUBJS.Book.prototype.renderTo=function(a){var b,c=this;if(EPUBJS.core.isElement(a))this.element=a;else{if("string"!=typeof a)return void console.error("Not an Element");this.element=EPUBJS.core.getEl(a)}return b=this.opened.then(function(){return c.renderer.initialize(c.element,c.settings.width,c.settings.height),c.metadata.direction&&c.renderer.setDirection(c.metadata.direction),c._rendered(),c.startDisplay()})},EPUBJS.Book.prototype.startDisplay=function(){var a;return a=this.settings.goto?this.goto(this.settings.goto):this.settings.previousLocationCfi?this.gotoCfi(this.settings.previousLocationCfi):this.displayChapter(this.spinePos)},EPUBJS.Book.prototype.restore=function(a){var b,c=this,d=["manifest","spine","metadata","cover","toc","spineNodeIndex","spineIndexByURL","globalLayoutProperties"],e=!1,f=this.generateBookKey(a),g=localStorage.getItem(f),h=d.length;if(this.settings.clearSaved&&(e=!0),!e&&"undefined"!=g&&null!==g)for(c.contents=JSON.parse(g),b=0;h>b;b++){var i=d[b];if(!c.contents[i]){e=!0;break}c[i]=c.contents[i]}return!e&&g&&this.contents&&this.settings.contentsPath?(this.settings.bookKey=f,this.ready.manifest.resolve(this.manifest),this.ready.spine.resolve(this.spine),this.ready.metadata.resolve(this.metadata),this.ready.cover.resolve(this.cover),this.ready.toc.resolve(this.toc),!0):!1},EPUBJS.Book.prototype.displayChapter=function(a,b,c){var d,e,f,g,h=this,i=c||new RSVP.defer;return this.isRendered?this._rendering||this._rendering?(this._displayQ.enqueue("displayChapter",[a,b,i]),i.promise):(EPUBJS.core.isNumber(a)?f=a:(e=new EPUBJS.EpubCFI(a),f=e.spinePos),(0>f||f>=this.spine.length)&&(console.warn("Not A Valid Location"),f=0,b=!1,e=!1),g=new EPUBJS.Chapter(this.spine[f],this.store),this._rendering=!0,this._needsAssetReplacement()&&g.registerHook("beforeChapterRender",[EPUBJS.replace.head,EPUBJS.replace.resources,EPUBJS.replace.svg],!0),h.currentChapter=g,d=h.renderer.displayChapter(g,this.globalLayoutProperties),e?h.renderer.gotoCfi(e):b&&h.renderer.lastPage(),d.then(function(){h.spinePos=f,i.resolve(h.renderer),h.settings.fromStorage===!1&&h.settings.contained===!1&&h.preloadNextChapter(),h._rendering=!1,h._displayQ.dequeue(),0===h._displayQ.length()&&h._gotoQ.dequeue()},function(a){console.error("Could not load Chapter: "+g.absolute,a),h.trigger("book:chapterLoadFailed",g.absolute),h._rendering=!1,i.reject(a)}),i.promise):(this._q.enqueue("displayChapter",arguments),i.reject({message:"Rendering",stack:(new Error).stack}),i.promise)},EPUBJS.Book.prototype.nextPage=function(){var a;return this.isRendered?(a=this.renderer.nextPage(),a?void 0:this.nextChapter()):this._q.enqueue("nextPage",arguments)},EPUBJS.Book.prototype.prevPage=function(){var a;return this.isRendered?(a=this.renderer.prevPage(),a?void 0:this.prevChapter()):this._q.enqueue("prevPage",arguments)},EPUBJS.Book.prototype.nextChapter=function(){var a;if(this.spinePos0){for(a=this.spinePos-1;this.spine[a]&&this.spine[a].linear&&"no"==this.spine[a].linear;)a--;if(a>=0)return this.displayChapter(a,!0);this.trigger("book:atStart")}else this.trigger("book:atStart")},EPUBJS.Book.prototype.getCurrentLocationCfi=function(){return this.isRendered?this.renderer.currentLocationCfi:!1},EPUBJS.Book.prototype.goto=function(a){return 0===a.indexOf("epubcfi(")?this.gotoCfi(a):a.indexOf("%")===a.length-1?this.gotoPercentage(parseInt(a.substring(0,a.length-1))/100):"number"==typeof a||isNaN(a)===!1?this.gotoPage(a):this.gotoHref(a)},EPUBJS.Book.prototype.gotoCfi=function(a,b){var c,d,e,f=b||new RSVP.defer;return this.isRendered?this._moving||this._rendering?(console.warn("Renderer is moving"),this._gotoQ.enqueue("gotoCfi",[a,f]),!1):(c=new EPUBJS.EpubCFI(a),d=c.spinePos,-1==d?!1:(e=this.spine[d],promise=f.promise,this._moving=!0,this.currentChapter&&this.spinePos===d?(this.renderer.gotoCfi(c),this._moving=!1,f.resolve(this.renderer.currentLocationCfi)):(e&&-1!=d||(d=0,e=this.spine[d]),this.currentChapter=new EPUBJS.Chapter(e,this.store),this.currentChapter&&(this.spinePos=d,render=this.renderer.displayChapter(this.currentChapter,this.globalLayoutProperties),this.renderer.gotoCfi(c),render.then(function(a){this._moving=!1,f.resolve(a.currentLocationCfi)}.bind(this)))),promise.then(function(){this._gotoQ.dequeue()}.bind(this)),promise)):(console.warn("Not yet Rendered"),this.settings.previousLocationCfi=a,!1)},EPUBJS.Book.prototype.gotoHref=function(a,b){var c,d,e,f,g,h=b||new RSVP.defer;return this.isRendered?this._moving||this._rendering?(this._gotoQ.enqueue("gotoHref",[a,h]),!1):(c=a.split("#"),d=c[0],e=c[1]||!1,f=d.replace(this.settings.contentsPath,""),g=this.spineIndexByURL[f],d||(g=this.currentChapter?this.currentChapter.spinePos:0),"number"!=typeof g?!1:this.currentChapter&&g==this.currentChapter.spinePos?(e?this.renderer.section(e):this.renderer.firstPage(),h.resolve(this.renderer.currentLocationCfi),h.promise.then(function(){this._gotoQ.dequeue()}.bind(this)),h.promise):this.displayChapter(g).then(function(){e&&this.renderer.section(e),h.resolve(this.renderer.currentLocationCfi)}.bind(this))):(this.settings.goto=a,!1)},EPUBJS.Book.prototype.gotoPage=function(a){var b=this.pagination.cfiFromPage(a);return this.gotoCfi(b)},EPUBJS.Book.prototype.gotoPercentage=function(a){var b=this.pagination.pageFromPercentage(a);return this.gotoPage(b)},EPUBJS.Book.prototype.preloadNextChapter=function(){var a,b=this.spinePos+1;return b>=this.spine.length?!1:(a=new EPUBJS.Chapter(this.spine[b]),void(a&&EPUBJS.core.request(a.absolute)))},EPUBJS.Book.prototype.storeOffline=function(){var a=this,b=EPUBJS.core.values(this.manifest);return this.store.put(b).then(function(){a.settings.stored=!0,a.trigger("book:stored")})},EPUBJS.Book.prototype.availableOffline=function(){return this.settings.stored>0?!0:!1},EPUBJS.Book.prototype.toStorage=function(){var a=this.settings.bookKey;this.store.isStored(a).then(function(b){return b===!0?(this.settings.stored=!0,!0):this.storeOffline().then(function(){this.store.token(a,!0)}.bind(this))}.bind(this))},EPUBJS.Book.prototype.fromStorage=function(a){[EPUBJS.replace.head,EPUBJS.replace.resources,EPUBJS.replace.svg];this.contained||this.settings.contained||(this.online&&this.opened.then(this.toStorage.bind(this)),this.store&&this.settings.fromStorage&&a===!1?(this.settings.fromStorage=!1,this.store.off("offline"),this.store=!1):this.settings.fromStorage||(this.store=new EPUBJS.Storage(this.settings.credentials),this.store.on("offline",function(a){a?(this.offline=!0,this.settings.fromStorage=!0,this.trigger("book:offline")):(this.offline=!1,this.settings.fromStorage=!1,this.trigger("book:online"))}.bind(this))))},EPUBJS.Book.prototype.setStyle=function(a,b,c){var d=["color","background","background-color"];return this.isRendered?(this.settings.styles[a]=b,this.renderer.setStyle(a,b,c),void(-1===d.indexOf(a)&&this.renderer.reformat())):this._q.enqueue("setStyle",arguments)},EPUBJS.Book.prototype.removeStyle=function(a){return this.isRendered?(this.renderer.removeStyle(a),this.renderer.reformat(),void delete this.settings.styles[a]):this._q.enqueue("removeStyle",arguments)},EPUBJS.Book.prototype.addHeadTag=function(a,b){return this.isRendered?void(this.settings.headTags[a]=b):this._q.enqueue("addHeadTag",arguments)},EPUBJS.Book.prototype.useSpreads=function(a){console.warn("useSpreads is deprecated, use forceSingle or set a layoutOveride instead"),this.forceSingle(a===!1?!0:!1)},EPUBJS.Book.prototype.forceSingle=function(a){var b="undefined"==typeof a?!0:a;this.renderer.forceSingle(b),this.settings.forceSingle=b,this.isRendered&&this.renderer.reformat()},EPUBJS.Book.prototype.setMinSpreadWidth=function(a){this.settings.minSpreadWidth=a,this.isRendered&&(this.renderer.setMinSpreadWidth(this.settings.minSpreadWidth),this.renderer.reformat())},EPUBJS.Book.prototype.setGap=function(a){this.settings.gap=a,this.isRendered&&(this.renderer.setGap(this.settings.gap),this.renderer.reformat())},EPUBJS.Book.prototype.chapter=function(a){var b,c,d=this.spineIndexByURL[a];return d&&(b=this.spine[d],c=new EPUBJS.Chapter(b,this.store,this.settings.withCredentials),c.load()),c},EPUBJS.Book.prototype.unload=function(){this.settings.restore&&localStorage&&this.saveContents(),this.unlistenToRenderer(this.renderer),this.trigger("book:unload")},EPUBJS.Book.prototype.destroy=function(){window.removeEventListener("beforeunload",this.unload),this.currentChapter&&this.currentChapter.unload(),this.unload(),this.renderer&&this.renderer.remove()},EPUBJS.Book.prototype._ready=function(){this.trigger("book:ready")},EPUBJS.Book.prototype._rendered=function(){this.isRendered=!0,this.trigger("book:rendered"),this._q.flush()},EPUBJS.Book.prototype.applyStyles=function(a,b){a.applyStyles(this.settings.styles),b()},EPUBJS.Book.prototype.applyHeadTags=function(a,b){a.applyHeadTags(this.settings.headTags),b()},EPUBJS.Book.prototype._registerReplacements=function(a){a.registerHook("beforeChapterDisplay",this.applyStyles.bind(this,a),!0),a.registerHook("beforeChapterDisplay",this.applyHeadTags.bind(this,a),!0),a.registerHook("beforeChapterDisplay",EPUBJS.replace.hrefs.bind(this),!0)},EPUBJS.Book.prototype._needsAssetReplacement=function(){return this.settings.fromStorage?!0:this.settings.contained?!0:!1},EPUBJS.Book.prototype.parseLayoutProperties=function(a){var b=this.layoutOveride&&this.layoutOveride.layout||a.layout||"reflowable",c=this.layoutOveride&&this.layoutOveride.spread||a.spread||"auto",d=this.layoutOveride&&this.layoutOveride.orientation||a.orientation||"auto";return{layout:b,spread:c,orientation:d}},RSVP.EventTarget.mixin(EPUBJS.Book.prototype),RSVP.on("error",function(){}),RSVP.configure("instrument",!1),EPUBJS.Chapter=function(a,b,c){this.href=a.href,this.absolute=a.url,this.id=a.id,this.spinePos=a.index,this.cfiBase=a.cfiBase,this.properties=a.properties,this.manifestProperties=a.manifestProperties,this.linear=a.linear,this.pages=1,this.store=b,this.credentials=c,this.epubcfi=new EPUBJS.EpubCFI,this.deferred=new RSVP.defer,this.loaded=this.deferred.promise,EPUBJS.Hooks.mixin(this),this.getHooks("beforeChapterRender"),this.caches={}},EPUBJS.Chapter.prototype.load=function(a,b){var c,d=a||this.store,e=b||this.credentials;return c=d?d.getXml(this.absolute):EPUBJS.core.request(this.absolute,"xml",e),c.then(function(a){this.setDocument(a),this.deferred.resolve(this)}.bind(this)),c},EPUBJS.Chapter.prototype.render=function(){return this.load().then(function(a){var b=a.querySelector("head"),c=a.createElement("base"); +return c.setAttribute("href",this.absolute),b.insertBefore(c,b.firstChild),this.contents=a,new RSVP.Promise(function(b){this.triggerHooks("beforeChapterRender",function(){b(a)}.bind(this),this)}.bind(this))}.bind(this)).then(function(a){var b=new XMLSerializer,c=b.serializeToString(a);return c}.bind(this))},EPUBJS.Chapter.prototype.url=function(a){var b,c=new RSVP.defer,d=a||this.store,e=this;return d?this.tempUrl?(b=this.tempUrl,c.resolve(b)):d.getUrl(this.absolute).then(function(a){e.tempUrl=a,c.resolve(a)}):(b=this.absolute,c.resolve(b)),c.promise},EPUBJS.Chapter.prototype.setPages=function(a){this.pages=a},EPUBJS.Chapter.prototype.getPages=function(){return this.pages},EPUBJS.Chapter.prototype.getID=function(){return this.ID},EPUBJS.Chapter.prototype.unload=function(a){this.document=null,this.tempUrl&&a&&(a.revokeUrl(this.tempUrl),this.tempUrl=!1)},EPUBJS.Chapter.prototype.setDocument=function(a){{var b=a.namespaceURI;a.doctype}this.document=a.implementation.createDocument(b,null,null),this.contents=this.document.importNode(a.documentElement,!0),this.document.appendChild(this.contents),!this.document.evaluate&&document.evaluate&&(this.document.evaluate=document.evaluate)},EPUBJS.Chapter.prototype.cfiFromRange=function(a){var b,c,d,e,f,g;if(this.document){if("undefined"!=typeof document.evaluate){if(c=EPUBJS.core.getElementXPath(a.startContainer),d=EPUBJS.core.getElementXPath(a.endContainer),e=this.document.evaluate(c,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,a.collapsed||(f=this.document.evaluate(d,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue),b=this.document.createRange(),e)try{b.setStart(e,a.startOffset),!a.collapsed&&f&&b.setEnd(f,a.endOffset)}catch(h){console.log("missed"),e=!1}e||(console.log("not found, try fuzzy match"),cleanStartTextContent=EPUBJS.core.cleanStringForXpath(a.startContainer.textContent),c="//text()[contains(.,"+cleanStartTextContent+")]",e=this.document.evaluate(c,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,e&&(b.setStart(e,a.startOffset),a.collapsed||(g=EPUBJS.core.cleanStringForXpath(a.endContainer.textContent),d="//text()[contains(.,"+g+")]",f=this.document.evaluate(d,this.document,EPUBJS.core.nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,f&&b.setEnd(f,a.endOffset))))}else b=a;return this.epubcfi.generateCfiFromRange(b,this.cfiBase)}},EPUBJS.Chapter.prototype.find=function(a){var b=this,c=[],d=a.toLowerCase(),e=function(a){for(var e,f,g,h=a.textContent.toLowerCase(),i=b.document.createRange(),j=-1,k=150;-1!=f;)f=h.indexOf(d,j+1),-1!=f&&(i=b.document.createRange(),i.setStart(a,f),i.setEnd(a,f+d.length),e=b.cfiFromRange(i),a.textContent.length=g&&c&&c(!0),e=!0)};b(a,f)}.bind(this))},EPUBJS.Chapter.prototype.replaceWithStored=function(a,b,c,d){var e,f={},g=this.store,h=this.caches[a],i=EPUBJS.core.uri(this.absolute),j=i.base,k=b,l=5,m=function(a,b){f[b]=a},n=function(){d&&d(),EPUBJS.core.values(e).forEach(function(a){g.revokeUrl(a)}),h=f};g&&(h||(h={}),e=EPUBJS.core.clone(h),this.replace(a,function(b,d){var h=b.getAttribute(k),i=EPUBJS.core.resolveUrl(j,h),m=function(c){var e;b.onload=function(){clearTimeout(e),d(c,i)},b.onerror=function(a){clearTimeout(e),d(c,i),console.error(a)},"image"==a&&b.setAttribute("externalResourcesRequired","true"),"link[href]"==a&&"stylesheet"!==b.getAttribute("rel")?d(c,i):e=setTimeout(function(){d(c,i)},l),b.setAttribute(k,c)};i in e?(m(e[i]),f[i]=e[i],delete e[i]):c(g,i,m,b)},n,m))};var EPUBJS=EPUBJS||{};EPUBJS.core={},EPUBJS.core.getEl=function(a){return document.getElementById(a)},EPUBJS.core.getEls=function(a){return document.getElementsByClassName(a)},EPUBJS.core.request=function(a,b,c){function d(){if(this.readyState===this.DONE)if(200===this.status||0===this.status&&this.response){var a;a="xml"==b?this.responseXML:"json"==b?JSON.parse(this.response):"blob"==b?e?this.response:new Blob([this.response]):this.response,g.resolve(a)}else g.reject({message:this.response,stack:(new Error).stack})}var e=window.URL,f=e?"blob":"arraybuffer",g=new RSVP.defer,h=new XMLHttpRequest,i=XMLHttpRequest.prototype;return"overrideMimeType"in i||Object.defineProperty(i,"overrideMimeType",{value:function(){}}),c&&(h.withCredentials=!0),h.open("GET",a,!0),h.onreadystatechange=d,"blob"==b&&(h.responseType=f),"json"==b&&h.setRequestHeader("Accept","application/json"),"xml"==b&&h.overrideMimeType("text/xml"),"binary"==b&&(h.responseType="arraybuffer"),h.send(),g.promise},EPUBJS.core.toArray=function(a){var b=[];for(var c in a){var d;a.hasOwnProperty(c)&&(d=a[c],d.ident=c,b.push(d))}return b},EPUBJS.core.uri=function(a){var b,c,d,e={protocol:"",host:"",path:"",origin:"",directory:"",base:"",filename:"",extension:"",fragment:"",href:a},f=a.indexOf("blob:"),g=a.indexOf("://"),h=a.indexOf("?"),i=a.indexOf("#");return 0===f?(e.protocol="blob",e.base=a.indexOf(0,i),e):(-1!=i&&(e.fragment=a.slice(i+1),a=a.slice(0,i)),-1!=h&&(e.search=a.slice(h+1),a=a.slice(0,h),href=a),-1!=g?(e.protocol=a.slice(0,g),b=a.slice(g+3),d=b.indexOf("/"),-1===d?(e.host=e.path,e.path=""):(e.host=b.slice(0,d),e.path=b.slice(d)),e.origin=e.protocol+"://"+e.host,e.directory=EPUBJS.core.folder(e.path),e.base=e.origin+e.directory):(e.path=a,e.directory=EPUBJS.core.folder(a),e.base=e.directory),e.filename=a.replace(e.base,""),c=e.filename.lastIndexOf("."),-1!=c&&(e.extension=e.filename.slice(c+1)),e)},EPUBJS.core.folder=function(a){var b=a.lastIndexOf("/");if(-1==b)var c="";return c=a.slice(0,b+1)},EPUBJS.core.dataURLToBlob=function(a){var b,c,d,e,f,g=";base64,";if(-1==a.indexOf(g))return b=a.split(","),c=b[0].split(":")[1],d=b[1],new Blob([d],{type:c});b=a.split(g),c=b[0].split(":")[1],d=window.atob(b[1]),e=d.length,f=new Uint8Array(e);for(var h=0;e>h;++h)f[h]=d.charCodeAt(h);return new Blob([f],{type:c})},EPUBJS.core.addScript=function(a,b,c){var d,e;e=!1,d=document.createElement("script"),d.type="text/javascript",d.async=!1,d.src=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.addScripts=function(a,b,c){var d=a.length,e=0,f=function(){e++,d==e?b&&b():EPUBJS.core.addScript(a[e],f,c)};EPUBJS.core.addScript(a[e],f,c)},EPUBJS.core.addCss=function(a,b,c){var d,e;e=!1,d=document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=a,d.onload=d.onreadystatechange=function(){e||this.readyState&&"complete"!=this.readyState||(e=!0,b&&b())},c=c||document.body,c.appendChild(d)},EPUBJS.core.prefixed=function(a){var b=["Webkit","Moz","O","ms"],c=a[0].toUpperCase()+a.slice(1),d=b.length;if("undefined"!=typeof document.documentElement.style[a])return a;for(var e=0;d>e;e++)if("undefined"!=typeof document.documentElement.style[b[e]+c])return b[e]+c;return a},EPUBJS.core.resolveUrl=function(a,b){var c,d,e=[],f=EPUBJS.core.uri(b),g=a.split("/");return f.host?b:(g.pop(),d=b.split("/"),d.forEach(function(a){".."===a?g.pop():e.push(a)}),c=g.concat(e),c.join("/"))},EPUBJS.core.uuid=function(){var a=(new Date).getTime(),b="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var c=(a+16*Math.random())%16|0;return a=Math.floor(a/16),("x"==b?c:7&c|8).toString(16)});return b},EPUBJS.core.insert=function(a,b,c){var d=EPUBJS.core.locationOf(a,b,c);return b.splice(d,0,a),d},EPUBJS.core.locationOf=function(a,b,c,d,e){var f,g=d||0,h=e||b.length,i=parseInt(g+(h-g)/2);return c||(c=function(a,b){return a>b?1:b>a?-1:(a=b)?0:void 0}),0>=h-g?i:(f=c(b[i],a),h-g===1?f>0?i:i+1:0===f?i:-1===f?EPUBJS.core.locationOf(a,b,c,i,h):EPUBJS.core.locationOf(a,b,c,g,i))},EPUBJS.core.indexOfSorted=function(a,b,c,d,e){var f,g=d||0,h=e||b.length,i=parseInt(g+(h-g)/2);return c||(c=function(a,b){return a>b?1:b>a?-1:(a=b)?0:void 0}),0>=h-g?-1:(f=c(b[i],a),h-g===1?0===f?i:-1:0===f?i:-1===f?EPUBJS.core.indexOfSorted(a,b,c,i,h):EPUBJS.core.indexOfSorted(a,b,c,g,i))},EPUBJS.core.queue=function(a){var b=[],c=a,d=function(a,c,d){return b.push({funcName:a,args:c,context:d}),b},e=function(){var a;b.length&&(a=b.shift(),c[a.funcName].apply(a.context||c,a.args))},f=function(){for(;b.length;)e()},g=function(){b=[]},h=function(){return b.length};return{enqueue:d,dequeue:e,flush:f,clear:g,length:h}},EPUBJS.core.getElementXPath=function(a){return a&&a.id?'//*[@id="'+a.id+'"]':EPUBJS.core.getElementTreeXPath(a)},EPUBJS.core.getElementTreeXPath=function(a){var b,c,d,e,f=[],g="http://www.w3.org/1999/xhtml"===a.ownerDocument.documentElement.getAttribute("xmlns");for(a.nodeType===Node.TEXT_NODE&&(b=EPUBJS.core.indexOfTextNode(a)+1,f.push("text()["+b+"]"),a=a.parentNode);a&&1==a.nodeType;a=a.parentNode){b=0;for(var h=a.previousSibling;h;h=h.previousSibling)h.nodeType!=Node.DOCUMENT_TYPE_NODE&&h.nodeName==a.nodeName&&++b;c=a.nodeName.toLowerCase(),d=g?"xhtml:"+c:c,e=b?"["+(b+1)+"]":"",f.splice(0,0,d+e)}return f.length?"./"+f.join("/"):null},EPUBJS.core.nsResolver=function(a){var b={xhtml:"http://www.w3.org/1999/xhtml",epub:"http://www.idpf.org/2007/ops"};return b[a]||null},EPUBJS.core.cleanStringForXpath=function(a){var b=a.match(/[^'"]+|['"]/g);return b=b.map(function(a){return"'"===a?'"\'"':'"'===a?"'\"'":"'"+a+"'"}),"concat('',"+b.join(",")+")"},EPUBJS.core.indexOfTextNode=function(a){for(var b,c=a.parentNode,d=c.childNodes,e=-1,f=0;fb;b++){var d=arguments[b];for(var e in d)void 0===a[e]&&(a[e]=d[e])}return a},EPUBJS.core.extend=function(a){var b=[].slice.call(arguments,1);return b.forEach(function(b){b&&Object.getOwnPropertyNames(b).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))})}),a},EPUBJS.core.clone=function(a){return EPUBJS.core.isArray(a)?a.slice():EPUBJS.core.extend({},a)},EPUBJS.core.isElement=function(a){return!(!a||1!=a.nodeType)},EPUBJS.core.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},EPUBJS.core.isString=function(a){return"string"==typeof a||a instanceof String},EPUBJS.core.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},EPUBJS.core.values=function(a){var b,c,d,e=-1;if(!a)return[];for(b=Object.keys(a),c=b.length,d=Array(c);++e0;){if(c=d.shift(),"text"===c.type?(e=g.childNodes[c.index],g=e.parentNode||g):g=c.id?f.getElementById(c.id):h[c.index],"undefined"==typeof g)return console.error("No Element For",c,a.str),!1;h=Array.prototype.slice.call(g.children)}return g},EPUBJS.EpubCFI.prototype.compare=function(a,b){if("string"==typeof a&&(a=new EPUBJS.EpubCFI(a)),"string"==typeof b&&(b=new EPUBJS.EpubCFI(b)),a.spinePos>b.spinePos)return 1;if(a.spinePosb.steps[c].index)return 1;if(a.steps[c].indexb.characterOffset?1:a.characterOffset")},EPUBJS.EpubCFI.prototype.generateRangeFromCfi=function(a,b){var c,d,e,f,g,h,i=b||document,j=i.createRange();return"string"==typeof a&&(a=this.parse(a)),-1===a.spinePos?!1:(c=a.steps[a.steps.length-1],"undefined"!=typeof document.evaluate?(d=this.generateXpathFromSteps(a.steps),e=i.evaluate(d,i,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue):(g=this.generateQueryFromSteps(a.steps),h=i.querySelector(g),h&&"text"==c.type&&(e=h.childNodes[c.index])),e?(e&&a.characterOffset>=0?(f=e.length,a.characterOffset-1&&this.hooks[a].splice(c,1)):Array.isArray(b)&&b.forEach(function(b){c=this.hooks[a].indexOf(b),c>-1&&this.hooks[a].splice(c,1)},this))},a.prototype.triggerHooks=function(a,b,c){function d(){f--,0>=f&&b&&b()}var e,f;return"undefined"==typeof this.hooks[a]?!1:(e=this.hooks[a],f=e.length,0===f&&b&&b(),void e.forEach(function(a){a(d,c)}))},{register:function(a){if(void 0===EPUBJS.hooks[a]&&(EPUBJS.hooks[a]={}),"object"!=typeof EPUBJS.hooks[a])throw"Already registered: "+a;return EPUBJS.hooks[a]},mixin:function(b){for(var c in a.prototype)b[c]=a.prototype[c]}}}(),EPUBJS.Layout=EPUBJS.Layout||{},EPUBJS.Layout.Reflowable=function(){this.documentElement=null,this.spreadWidth=null},EPUBJS.Layout.Reflowable.prototype.format=function(a,b,c,d){var e=EPUBJS.core.prefixed("columnAxis"),f=EPUBJS.core.prefixed("columnGap"),g=EPUBJS.core.prefixed("columnWidth"),h=EPUBJS.core.prefixed("columnFill"),i=Math.floor(b),j=Math.floor(i/8),k=d>=0?d:j%2===0?j:j-1;return this.documentElement=a,this.spreadWidth=i+k,a.style.overflow="hidden",a.style.width=i+"px",a.style.height=c+"px",a.style[e]="horizontal",a.style[h]="auto",a.style[g]=i+"px",a.style[f]=k+"px",this.colWidth=i,this.gap=k,{pageWidth:this.spreadWidth,pageHeight:c}},EPUBJS.Layout.Reflowable.prototype.calculatePages=function(){var a,b;return this.documentElement.style.width="auto",a=this.documentElement.scrollWidth,b=Math.ceil(a/this.spreadWidth),{displayedPages:b,pageCount:b}},EPUBJS.Layout.ReflowableSpreads=function(){this.documentElement=null,this.spreadWidth=null},EPUBJS.Layout.ReflowableSpreads.prototype.format=function(a,b,c,d){var e=EPUBJS.core.prefixed("columnAxis"),f=EPUBJS.core.prefixed("columnGap"),g=EPUBJS.core.prefixed("columnWidth"),h=EPUBJS.core.prefixed("columnFill"),i=2,j=Math.floor(b),k=j%2===0?j:j-1,l=Math.floor(k/8),m=d>=0?d:l%2===0?l:l-1,n=Math.floor((k-m)/i);return this.documentElement=a,this.spreadWidth=(n+m)*i,a.style.overflow="hidden",a.style.width=k+"px",a.style.height=c+"px",a.style[e]="horizontal",a.style[h]="auto",a.style[f]=m+"px",a.style[g]=n+"px",this.colWidth=n,this.gap=m,{pageWidth:this.spreadWidth,pageHeight:c}},EPUBJS.Layout.ReflowableSpreads.prototype.calculatePages=function(){var a=this.documentElement.scrollWidth,b=Math.ceil(a/this.spreadWidth);return this.documentElement.style.width=b*this.spreadWidth-this.gap+"px",{displayedPages:b,pageCount:2*b}},EPUBJS.Layout.Fixed=function(){this.documentElement=null},EPUBJS.Layout.Fixed.prototype.format=function(a){var b,c,d,e,f=EPUBJS.core.prefixed("columnWidth"),g=a.querySelector("[name=viewport]");return this.documentElement=a,g&&g.hasAttribute("content")&&(b=g.getAttribute("content"),c=b.split(","),c[0]&&(d=c[0].replace("width=","")),c[1]&&(e=c[1].replace("height=",""))),a.style.width=d+"px"||"auto",a.style.height=e+"px"||"auto",a.style[f]="auto",a.style.overflow="auto",this.colWidth=d,this.gap=0,{pageWidth:d,pageHeight:e}},EPUBJS.Layout.Fixed.prototype.calculatePages=function(){return{displayedPages:1,pageCount:1}},EPUBJS.Locations=function(a,b,c){this.spine=a,this.store=b,this.credentials=c,this.epubcfi=new EPUBJS.EpubCFI,this._locations=[],this.total=0,this.break=150,this._current=0},EPUBJS.Locations.prototype.generate=function(){{var a=new RSVP.defer,b=-1,c=this.spine.length,d=function(a){var e,f=b+1,g=a||new RSVP.defer;return f>=c?g.resolve():(b=f,e=new EPUBJS.Chapter(this.spine[b],this.store,this.credentials),this.process(e).then(function(){setTimeout(function(){d(g)},1)})),g.promise}.bind(this);d().then(function(){this.total=this._locations.length-1,this._currentCfi&&(this.currentLocation=this._currentCfi),a.resolve(this._locations)}.bind(this))}return a.promise},EPUBJS.Locations.prototype.process=function(a){return a.load().then(function(b){var c,d,e=b,f=e.documentElement.querySelector("body"),g=0;this.sprint(f,function(b){var f,h=b.length,i=0;for(0===g&&(c=e.createRange(),c.setStart(b,0)),f=this.break-g,f>h&&(g+=h,i=h);h>i;)g=this.break,i+=this.break,i>=h?g=h-(i-this.break):(c.setEnd(b,i),cfi=a.cfiFromRange(c),this._locations.push(cfi),g=0,i+=1,c=e.createRange(),c.setStart(b,i));d=b}.bind(this)),c&&(c.setEnd(d,d.length),cfi=a.cfiFromRange(c),this._locations.push(cfi),g=0)}.bind(this))},EPUBJS.Locations.prototype.sprint=function(a,b){for(var c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);node=c.nextNode();)b(node)},EPUBJS.Locations.prototype.locationFromCfi=function(a){return 0===this._locations.length?-1:EPUBJS.core.locationOf(a,this._locations,this.epubcfi.compare)},EPUBJS.Locations.prototype.percentageFromCfi=function(a){var b=this.locationFromCfi(a);return this.percentageFromLocation(b)},EPUBJS.Locations.prototype.percentageFromLocation=function(a){return a&&this.total?a/this.total:0},EPUBJS.Locations.prototype.cfiFromLocation=function(a){var b=-1;return"number"!=typeof a&&(a=parseInt(a)),a>=0&&a1?a/100:a,c=Math.ceil(this.total*b);return this.cfiFromLocation(c)},EPUBJS.Locations.prototype.load=function(a){return this._locations=JSON.parse(a),this.total=this._locations.length-1,this._locations},EPUBJS.Locations.prototype.save=function(){return JSON.stringify(this._locations)},EPUBJS.Locations.prototype.getCurrent=function(){return this._current},EPUBJS.Locations.prototype.setCurrent=function(a){var b;if("string"==typeof a)this._currentCfi=a;else{if("number"!=typeof a)return;this._current=a}0!==this._locations.length&&("string"==typeof a?(b=this.locationFromCfi(a),this._current=b):b=a,this.trigger("changed",{percentage:this.percentageFromLocation(b)}))},Object.defineProperty(EPUBJS.Locations.prototype,"currentLocation",{get:function(){return this._current},set:function(a){this.setCurrent(a)}}),RSVP.EventTarget.mixin(EPUBJS.Locations.prototype),EPUBJS.Pagination=function(a){this.pages=[],this.locations=[],this.epubcfi=new EPUBJS.EpubCFI,a&&a.length&&this.process(a)},EPUBJS.Pagination.prototype.process=function(a){a.forEach(function(a){this.pages.push(a.page),this.locations.push(a.cfi)},this),this.pageList=a,this.firstPage=parseInt(this.pages[0]),this.lastPage=parseInt(this.pages[this.pages.length-1]),this.totalPages=this.lastPage-this.firstPage},EPUBJS.Pagination.prototype.pageFromCfi=function(a){var b=-1;if(0===this.locations.length)return-1;var c=EPUBJS.core.indexOfSorted(a,this.locations,this.epubcfi.compare);return-1!=c&&c=0?this.pages[c-1]:this.pages[0],void 0!==b||(b=-1)),b},EPUBJS.Pagination.prototype.cfiFromPage=function(a){var b=-1;"number"!=typeof a&&(a=parseInt(a));var c=this.pages.indexOf(a);return-1!=c&&(b=this.locations[c]),b},EPUBJS.Pagination.prototype.pageFromPercentage=function(a){var b=Math.round(this.totalPages*a);return b},EPUBJS.Pagination.prototype.percentageFromPage=function(a){var b=(a-this.firstPage)/this.totalPages;return Math.round(1e3*b)/1e3},EPUBJS.Pagination.prototype.percentageFromCfi=function(a){var b=this.pageFromCfi(a),c=this.percentageFromPage(b);return c},EPUBJS.Parser=function(a){this.baseUrl=a||""},EPUBJS.Parser.prototype.container=function(a){var b,c,d,e;return a?(b=a.querySelector("rootfile"))?(c=b.getAttribute("full-path"),d=EPUBJS.core.uri(c).directory,e=a.xmlEncoding,{packagePath:c,basePath:d,encoding:e}):void console.error("No RootFile Found"):void console.error("Container File Not Found")},EPUBJS.Parser.prototype.identifier=function(a){var b;return a?(b=a.querySelector("metadata"),b?this.getElementText(b,"identifier"):void console.error("No Metadata Found")):void console.error("Package File Not Found")},EPUBJS.Parser.prototype.packageContents=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=this;return b&&(this.baseUrl=b),a?(c=a.querySelector("metadata"))?(d=a.querySelector("manifest"))?(e=a.querySelector("spine"))?(f=n.manifest(d),g=n.findNavPath(d),h=n.findTocPath(d,e),i=n.findCoverPath(d),j=Array.prototype.indexOf.call(e.parentNode.childNodes,e),k=n.spine(e,f),l={},k.forEach(function(a){l[a.href]=a.index}),m=n.metadata(c),m.direction=e.getAttribute("page-progression-direction"),{metadata:m,spine:k,manifest:f,navPath:g,tocPath:h,coverPath:i,spineNodeIndex:j,spineIndexByURL:l}):void console.error("No Spine Found"):void console.error("No Manifest Found"):void console.error("No Metadata Found"):void console.error("Package File Not Found")},EPUBJS.Parser.prototype.findNavPath=function(a){var b=a.querySelector("item[properties$='nav'], item[properties^='nav '], item[properties*=' nav ']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.findTocPath=function(a,b){var c,d=a.querySelector("item[media-type='application/x-dtbncx+xml']");return d||(c=b.getAttribute("toc"),c&&(d=a.querySelector("item[id='"+c+"']"))),d?d.getAttribute("href"):!1},EPUBJS.Parser.prototype.findCoverPath=function(a){var b=a.querySelector("item[properties='cover-image']");return b?b.getAttribute("href"):!1},EPUBJS.Parser.prototype.metadata=function(a){var b={},c=this;return b.bookTitle=c.getElementText(a,"title"),b.creator=c.getElementText(a,"creator"),b.description=c.getElementText(a,"description"),b.pubdate=c.getElementText(a,"date"),b.publisher=c.getElementText(a,"publisher"),b.identifier=c.getElementText(a,"identifier"),b.language=c.getElementText(a,"language"),b.rights=c.getElementText(a,"rights"),b.modified_date=c.querySelectorText(a,"meta[property='dcterms:modified']"),b.layout=c.querySelectorText(a,"meta[property='rendition:layout']"),b.orientation=c.querySelectorText(a,"meta[property='rendition:orientation']"),b.spread=c.querySelectorText(a,"meta[property='rendition:spread']"),b},EPUBJS.Parser.prototype.getElementText=function(a,b){var c,d=a.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",b);return d&&0!==d.length?(c=d[0],c.childNodes.length?c.childNodes[0].nodeValue:""):""},EPUBJS.Parser.prototype.querySelectorText=function(a,b){var c=a.querySelector(b);return c&&c.childNodes.length?c.childNodes[0].nodeValue:""},EPUBJS.Parser.prototype.manifest=function(a){var b=this.baseUrl,c={},d=a.querySelectorAll("item"),e=Array.prototype.slice.call(d);return e.forEach(function(a){var d=a.getAttribute("id"),e=a.getAttribute("href")||"",f=a.getAttribute("media-type")||"",g=a.getAttribute("properties")||"";c[d]={href:e,url:b+e,type:f,properties:g}}),c},EPUBJS.Parser.prototype.spine=function(a,b){var c=[],d=a.getElementsByTagName("itemref"),e=Array.prototype.slice.call(d),f=Array.prototype.indexOf.call(a.parentNode.childNodes,a),g=new EPUBJS.EpubCFI;return e.forEach(function(a,d){var e=a.getAttribute("idref"),h=g.generateChapterComponent(f,d,e),i=a.getAttribute("properties")||"",j=i.length?i.split(" "):[],k=b[e].properties,l=k.length?k.split(" "):[],m={id:e,linear:a.getAttribute("linear")||"",properties:j,manifestProperties:l,href:b[e].href,url:b[e].url,index:d,cfiBase:h,cfi:"epubcfi("+h+")"};c.push(m)}),c},EPUBJS.Parser.prototype.nav=function(a,b,c){function d(a){var b=[];return Array.prototype.slice.call(a.childNodes).forEach(function(a){"ol"==a.tagName&&Array.prototype.slice.call(a.childNodes).forEach(function(a){"li"==a.tagName&&b.push(a)})}),b}function e(a){var b=null;return Array.prototype.slice.call(a.childNodes).forEach(function(a){("a"==a.tagName||"span"==a.tagName)&&(b=a)}),b}function f(a){var g=[],i=d(a),j=Array.prototype.slice.call(i),k=j.length;return 0===k?!1:(j.forEach(function(d){var i=d.getAttribute("id")||!1,j=e(d),k=j.getAttribute("href")||"",l=j.textContent||"",m=k.split("#"),n=m[0],o=f(d),p=b[n],q=c[p],r=q?q.cfi:"";i||(p?(q=c[p],i=q.id,r=q.cfi):i="epubjs-autogen-toc-id-"+h++),d.setAttribute("id",i),g.push({id:i,href:k,label:l,subitems:o,parent:a?a.getAttribute("id"):null,cfi:r})}),g)}var g=a.querySelector('nav[*|type="toc"]'),h=0;return g?f(g):[]},EPUBJS.Parser.prototype.toc=function(a,b,c){function d(e){var f=[],g=a.evaluate("*[local-name()='navPoint']",e,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),h=g.snapshotLength;if(0===h)return[];for(var i=h-1;i>=0;i--){var j=g.snapshotItem(i),k=j.getAttribute("id")||!1,l=j.querySelector("content"),m=l.getAttribute("src"),n=j.querySelector("navLabel"),o=n.textContent?n.textContent:"",p=m.split("#"),q=p[0],r=b[q],s=c[r],t=d(j),u=s?s.cfi:"";k||(r?(s=c[r],k=s.id,u=s.cfi):k="epubjs-autogen-toc-id-"+idCounter++),f.unshift({id:k,href:m,label:o,spinePos:r,subitems:t,parent:e?e.getAttribute("id"):null,cfi:u})}return f}var e=a.querySelector("navMap");return e?d(e):[]},EPUBJS.Parser.prototype.pageList=function(a){function b(a){var b=[];return Array.prototype.slice.call(a.childNodes).forEach(function(a){"ol"==a.tagName&&Array.prototype.slice.call(a.childNodes).forEach(function(a){"li"==a.tagName&&b.push(a) +})}),b}function c(a){var b=null;return Array.prototype.slice.call(a.childNodes).forEach(function(a){("a"==a.tagName||"span"==a.tagName)&&(b=a)}),b}function d(a){var d=[],e=b(a),f=Array.prototype.slice.call(e),g=f.length;return 0===g?!1:(f.forEach(function(a){var b,e,f,g=(a.getAttribute("id")||!1,c(a)),h=g.getAttribute("href")||"",i=g.textContent||"",j=parseInt(i),k=h.indexOf("epubcfi");-1!=k?(b=h.split("#"),e=b[0],f=b.length>1?b[1]:!1,d.push({cfi:f,href:h,packageUrl:e,page:j})):d.push({href:h,page:j})}),d)}var e=a.querySelector('nav[*|type="page-list"]');return e?d(e):[]},EPUBJS.Render.Iframe=function(){this.iframe=null,this.document=null,this.window=null,this.docEl=null,this.bodyEl=null,this.leftPos=0,this.pageWidth=0},EPUBJS.Render.Iframe.prototype.create=function(){return this.iframe=document.createElement("iframe"),this.iframe.id="epubjs-iframe:"+EPUBJS.core.uuid(),this.iframe.scrolling="no",this.iframe.seamless="seamless",this.iframe.style.border="none",this.iframe.addEventListener("load",this.loaded.bind(this),!1),this.isMobile=navigator.userAgent.match(/(iPad|iPhone|iPod|Mobile|Android)/g),this.transform=EPUBJS.core.prefixed("transform"),this.iframe},EPUBJS.Render.Iframe.prototype.load=function(a){var b=this,c=new RSVP.defer;return this.window&&this.unload(),this.iframe.onload=function(){b.document=b.iframe.contentDocument,b.docEl=b.document.documentElement,b.headEl=b.document.head,b.bodyEl=b.document.body||b.document.querySelector("body"),b.window=b.iframe.contentWindow,b.window.addEventListener("resize",b.resized.bind(b),!1),b.leftPos=0,b.setLeft(0),b.bodyEl&&(b.bodyEl.style.margin="0"),"rtl"==b.direction&&"rtl"!=b.docEl.dir&&(b.docEl.dir="rtl",b.docEl.style.position="absolute",b.docEl.style.right="0"),c.resolve(b.docEl)},this.iframe.onerror=function(a){c.reject({message:"Error Loading Contents: "+a,stack:(new Error).stack})},this.document=this.iframe.contentDocument,this.document?(this.document.open(),this.document.write(a),this.document.close(),c.promise):(c.reject(new Error("No Document Available")),c)},EPUBJS.Render.Iframe.prototype.loaded=function(){var a,b,c=this.iframe.contentWindow.location.href;this.document=this.iframe.contentDocument,this.docEl=this.document.documentElement,this.headEl=this.document.head,this.bodyEl=this.document.body||this.document.querySelector("body"),this.window=this.iframe.contentWindow,"about:blank"!=c&&(a=this.iframe.contentDocument.querySelector("base"),b=a.getAttribute("href"),this.trigger("render:loaded",b))},EPUBJS.Render.Iframe.prototype.resize=function(a,b){this.iframe&&(this.iframe.height=b,isNaN(a)||a%2===0||(a+=1),this.iframe.width=a,this.width=this.iframe.getBoundingClientRect().width||a,this.height=this.iframe.getBoundingClientRect().height||b)},EPUBJS.Render.Iframe.prototype.resized=function(){this.width=this.iframe.getBoundingClientRect().width,this.height=this.iframe.getBoundingClientRect().height},EPUBJS.Render.Iframe.prototype.totalWidth=function(){return this.docEl.scrollWidth},EPUBJS.Render.Iframe.prototype.totalHeight=function(){return this.docEl.scrollHeight},EPUBJS.Render.Iframe.prototype.setPageDimensions=function(a,b){this.pageWidth=a,this.pageHeight=b},EPUBJS.Render.Iframe.prototype.setDirection=function(a){this.direction=a,this.docEl&&"rtl"==this.docEl.dir&&(this.docEl.dir="rtl",this.docEl.style.position="static",this.docEl.style.right="auto")},EPUBJS.Render.Iframe.prototype.setLeft=function(a){this.isMobile?this.docEl.style[this.transform]="translate("+-a+"px, 0)":this.document.defaultView.scrollTo(a,0)},EPUBJS.Render.Iframe.prototype.setStyle=function(a,b,c){c&&(a=EPUBJS.core.prefixed(a)),this.bodyEl&&(this.bodyEl.style[a]=b)},EPUBJS.Render.Iframe.prototype.removeStyle=function(a){this.bodyEl&&(this.bodyEl.style[a]="")},EPUBJS.Render.Iframe.prototype.addHeadTag=function(a,b,c){var d=c||this.document,e=d.createElement(a),f=d.head;for(var g in b)e.setAttribute(g,b[g]);f&&f.insertBefore(e,f.firstChild)},EPUBJS.Render.Iframe.prototype.page=function(a){this.leftPos=this.pageWidth*(a-1),"rtl"===this.direction&&(this.leftPos=-1*this.leftPos),this.setLeft(this.leftPos)},EPUBJS.Render.Iframe.prototype.getPageNumberByElement=function(a){var b,c;if(a)return b=this.leftPos+a.getBoundingClientRect().left,c=Math.floor(b/this.pageWidth)+1},EPUBJS.Render.Iframe.prototype.getPageNumberByRect=function(a){var b,c;return b=this.leftPos+a.left,c=Math.floor(b/this.pageWidth)+1},EPUBJS.Render.Iframe.prototype.getBaseElement=function(){return this.bodyEl},EPUBJS.Render.Iframe.prototype.getDocumentElement=function(){return this.docEl},EPUBJS.Render.Iframe.prototype.isElementVisible=function(a){var b,c;return a&&"function"==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect(),c=b.left,0!==b.width&&0!==b.height&&c>=0&&c=1&&a<=this.displayedPages?(this.chapterPos=a,this.render.page(a),this.visibleRangeCfi=this.getVisibleRangeCfi(),this.currentLocationCfi=this.visibleRangeCfi.start,this.trigger("renderer:locationChanged",this.currentLocationCfi),this.trigger("renderer:visibleRangeChanged",this.visibleRangeCfi),!0):!1:(console.warn("pageMap not set, queuing"),this._q.enqueue("page",arguments),!0)},EPUBJS.Renderer.prototype.nextPage=function(){return this.page(this.chapterPos+1)},EPUBJS.Renderer.prototype.prevPage=function(){return this.page(this.chapterPos-1)},EPUBJS.Renderer.prototype.pageByElement=function(a){var b;a&&(b=this.render.getPageNumberByElement(a),this.page(b))},EPUBJS.Renderer.prototype.lastPage=function(){return this._moving?this._q.enqueue("lastPage",arguments):void this.page(this.displayedPages)},EPUBJS.Renderer.prototype.firstPage=function(){return this._moving?this._q.enqueue("firstPage",arguments):void this.page(1)},EPUBJS.Renderer.prototype.section=function(a){var b=this.doc.getElementById(a);b&&this.pageByElement(b)},EPUBJS.Renderer.prototype.firstElementisTextNode=function(a){var b=a.childNodes,c=b.length;return c&&b[0]&&3===b[0].nodeType&&b[0].textContent.trim().length?!0:!1},EPUBJS.Renderer.prototype.isGoodNode=function(a){var b=["audio","canvas","embed","iframe","img","math","object","svg","video"];return-1!==b.indexOf(a.tagName.toLowerCase())?!0:this.firstElementisTextNode(a)},EPUBJS.Renderer.prototype.walk=function(a,b,c){for(var d,e,f,g,h=a,i=[h],j=1e4,k=0;!d&&i.length;){if(a=i.shift(),this.containsPoint(a,b,c)&&this.isGoodNode(a)&&(d=a),!d&&a&&a.childElementCount>0){if(e=a.children,!e||!e.length)return d;f=e.length?e.length:0;for(var l=f-1;l>=0;l--)e[l]!=g&&i.unshift(e[l])}if(!d&&0===i.length&&h&&null!==h.parentNode&&(i.push(h.parentNode),g=h,h=h.parentNode),k++,k>j){console.error("ENDLESS LOOP");break}}return d},EPUBJS.Renderer.prototype.containsPoint=function(a,b){var c;return a&&"function"==typeof a.getBoundingClientRect&&(c=a.getBoundingClientRect(),0!==c.width&&0!==c.height&&c.left>=b&&b<=c.left+c.width)?!0:!1},EPUBJS.Renderer.prototype.textSprint=function(a,b){for(var c,d=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,{acceptNode:function(a){return/^\s*$/.test(a.data)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}},!1);c=d.nextNode();)b(c)},EPUBJS.Renderer.prototype.sprint=function(a,b){for(var c,d=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,null,!1);c=d.nextNode();)b(c)},EPUBJS.Renderer.prototype.mapPage=function(){var a,b,c=this,d=[],e=this.render.getBaseElement(),f=1,g=this.layout.colWidth+this.layout.gap,h=this.formated.pageWidth*(this.chapterPos-1),i=g*f-h,j=0,k=function(a){var b,c,d=Array.prototype.slice.call(a.childNodes);if(a.nodeType==Node.ELEMENT_NODE){if(c=document.createRange(),c.selectNodeContents(a),b=c.getBoundingClientRect(),!b||0===b.width&&0===b.height)return;b.left>j&&d.forEach(function(a){a.nodeType==Node.TEXT_NODE&&a.textContent.trim().length&&l(a)}),b.right>j&&d.forEach(function(a){a.nodeType==Node.TEXT_NODE&&a.textContent.trim().length&&l(a)})}},l=function(e){var k=c.splitTextNodeIntoWordsRanges(e);k.forEach(function(e){var k=e.getBoundingClientRect();!k||0===k.width&&0===k.height||(k.left+k.width0&&(b&&(b.setEnd(a,pos),c.push(b)),b=this.doc.createRange(),b.setStart(a,pos+1));return b&&(b.setEnd(a,d.length),c.push(b)),c},EPUBJS.Renderer.prototype.rangePosition=function(a){var b,c;return c=a.getClientRects(),c.length?b=c[0]:null},EPUBJS.Renderer.prototype.getPageCfi=function(){var a;return this.spreads?(a=2*this.chapterPos,startRange=this.pageMap[a-2]):(a=this.chapterPos,startRange=this.pageMap[a-1]),this.pageMap[2*this.chapterPos-1].start},EPUBJS.Renderer.prototype.getRange=function(a,b,c){var d,e=this.doc.createRange();return c=!0,"undefined"==typeof document.caretPositionFromPoint||c?"undefined"==typeof document.caretRangeFromPoint||c?(this.visibileEl=this.findElementAfter(a,b),e.setStart(this.visibileEl,1)):e=this.doc.caretRangeFromPoint(a,b):(d=this.doc.caretPositionFromPoint(a,b),e.setStart(d.offsetNode,d.offset)),e},EPUBJS.Renderer.prototype.pagesInCurrentChapter=function(){var a,b;return this.pageMap?(b=this.pageMap.length,a=this.spreads?Math.ceil(b/2):b):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.currentRenderedPage=function(){var a;return this.pageMap?a=this.spreads&&this.layout.pageCount>1?2*this.chapterPos:this.chapterPos:(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.getRenderedPagesLeft=function(){var a,b,c;return this.pageMap?(b=this.pageMap.length,a=this.spreads?2*this.chapterPos:this.chapterPos,c=b-a):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.getVisibleRangeCfi=function(){var a,b,c;return this.pageMap?(this.spreads?(a=2*this.chapterPos,b=this.pageMap[a-2],c=b,this.layout.pageCount>1&&(c=this.pageMap[a-1])):(a=this.chapterPos,b=this.pageMap[a-1],c=b),b||(console.warn("page range miss:",a,this.pageMap),b=this.pageMap[this.pageMap.length-1],c=b),{start:b.start,end:c.end}):(console.warn("page map not loaded"),!1)},EPUBJS.Renderer.prototype.gotoCfi=function(a){var b,c,d;if(this._moving)return this._q.enqueue("gotoCfi",arguments);if(EPUBJS.core.isString(a)&&(a=this.epubcfi.parse(a)),"undefined"==typeof document.evaluate)c=this.epubcfi.addMarker(a,this.doc),c&&(b=this.render.getPageNumberByElement(c),this.epubcfi.removeMarker(c,this.doc),this.page(b));else if(d=this.epubcfi.generateRangeFromCfi(a,this.doc)){var e=d.getBoundingClientRect();b=e?this.render.getPageNumberByRect(e):1,this.page(b),this.currentLocationCfi=a.str}else this.page(1)},EPUBJS.Renderer.prototype.findFirstVisible=function(a){var b,c=a||this.render.getBaseElement();return b=this.walk(c,0,0),b?b:a},EPUBJS.Renderer.prototype.findElementAfter=function(a,b,c){var d,e=c||this.render.getBaseElement();return d=this.walk(e,a,b),d?d:e},EPUBJS.Renderer.prototype.resize=function(a,b,c){this.width=a,this.height=b,c!==!1&&this.render.resize(this.width,this.height),this.contents&&this.reformat(),this.trigger("renderer:resized",{width:this.width,height:this.height})},EPUBJS.Renderer.prototype.onResized=function(){var a=this.container.clientWidth,b=this.container.clientHeight;this.resize(a,b,!1)},EPUBJS.Renderer.prototype.addEventListeners=function(){this.render.document&&this.listenedEvents.forEach(function(a){this.render.document.addEventListener(a,this.triggerEvent.bind(this),!1)},this)},EPUBJS.Renderer.prototype.removeEventListeners=function(){this.render.document&&this.listenedEvents.forEach(function(a){this.render.document.removeEventListener(a,this.triggerEvent,!1)},this)},EPUBJS.Renderer.prototype.triggerEvent=function(a){this.trigger("renderer:"+a.type,a)},EPUBJS.Renderer.prototype.addSelectionListeners=function(){this.render.document.addEventListener("selectionchange",this.onSelectionChange.bind(this),!1)},EPUBJS.Renderer.prototype.removeSelectionListeners=function(){this.render.document&&this.doc.removeEventListener("selectionchange",this.onSelectionChange,!1)},EPUBJS.Renderer.prototype.onSelectionChange=function(){this.selectionEndTimeout&&clearTimeout(this.selectionEndTimeout),this.selectionEndTimeout=setTimeout(function(){this.selectedRange=this.render.window.getSelection(),this.trigger("renderer:selected",this.selectedRange)}.bind(this),500)},EPUBJS.Renderer.prototype.setMinSpreadWidth=function(a){this.minSpreadWidth=a,this.spreads=this.determineSpreads(a)},EPUBJS.Renderer.prototype.determineSpreads=function(a){return this.isForcedSingle||!a||this.width=g&&c&&c(!0),e=!0)};b(a,f)}.bind(this))},RSVP.EventTarget.mixin(EPUBJS.Renderer.prototype);var EPUBJS=EPUBJS||{};EPUBJS.replace={},EPUBJS.replace.hrefs=function(a,b){var c=this,d=function(a,d){var e,f,g=a.getAttribute("href"),h=g.search("://");if(-1!=h)a.setAttribute("target","_blank");else{var i=EPUBJS.core.uri(b.render.window.location.href);e=i.directory,f=e?"file"===i.protocol?EPUBJS.core.resolveUrl(i.base,g):EPUBJS.core.resolveUrl(e,g):g,a.onclick=function(){return c.goto(f),!1}}d()};b.replace("a[href]",d,a)},EPUBJS.replace.head=function(a,b){b.replaceWithStored("link[href]","href",EPUBJS.replace.links,a)},EPUBJS.replace.resources=function(a,b){b.replaceWithStored("[src]","src",EPUBJS.replace.srcs,a)},EPUBJS.replace.svg=function(a,b){b.replaceWithStored("image","xlink:href",function(a,b,c){a.getUrl(b).then(c)},a)},EPUBJS.replace.srcs=function(a,b,c){a.getUrl(b).then(c)},EPUBJS.replace.links=function(a,b,c,d){"stylesheet"===d.getAttribute("rel")?EPUBJS.replace.stylesheets(a,b).then(function(a,b){c(a,b)},function(){c(null)}):a.getUrl(b).then(c,function(){c(null)})},EPUBJS.replace.stylesheets=function(a,b){var c=new RSVP.defer;if(a)return a.getText(b).then(function(d){EPUBJS.replace.cssUrls(a,b,d).then(function(a){var b=window.URL||window.webkitURL||window.mozURL,d=new Blob([a],{type:"text/css"}),e=b.createObjectURL(d);c.resolve(e)},function(a){c.reject(a)})},function(a){c.reject(a)}),c.promise},EPUBJS.replace.cssUrls=function(a,b,c){var d=new RSVP.defer,e=[],f=c.match(/url\(\'?\"?([^\'|^\"^\)]*)\'?\"?\)/g);if(a)return f?(f.forEach(function(f){var g=EPUBJS.core.resolveUrl(b,f.replace(/url\(|[|\)|\'|\"]/g,"")),h=a.getUrl(g).then(function(a){c=c.replace(f,'url("'+a+'")')},function(a){d.reject(a)});e.push(h)}),RSVP.all(e).then(function(){d.resolve(c)}),d.promise):(d.resolve(c),d.promise)},EPUBJS.Storage=function(a){this.checkRequirements(),this.urlCache={},this.withCredentials=a,this.URL=window.URL||window.webkitURL||window.mozURL,this.offline=!1},EPUBJS.Storage.prototype.checkRequirements=function(){"undefined"==typeof localforage&&console.error("localForage library not loaded")},EPUBJS.Storage.prototype.put=function(a){var b=new RSVP.defer,c=a.length,d=0,e=function(b){var f,g,h=b||new RSVP.defer;return d>=c?h.resolve():(f=a[d].url,g=window.encodeURIComponent(f),EPUBJS.core.request(f,"binary").then(function(a){return localforage.setItem(g,a)}).then(function(){d++,setTimeout(function(){e(h)},1)})),h.promise}.bind(this);return Array.isArray(a)||(a=[a]),e().then(function(){b.resolve()}.bind(this)),b.promise},EPUBJS.Storage.prototype.token=function(a,b){var c=window.encodeURIComponent(a);return localforage.setItem(c,b).then(function(a){return null===a?!1:!0})},EPUBJS.Storage.prototype.isStored=function(a){var b=window.encodeURIComponent(a);return localforage.getItem(b).then(function(a){return null===a?!1:!0})},EPUBJS.Storage.prototype.getText=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(a){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,a),a}.bind(this)).then(function(b){var c=new RSVP.defer,d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;return f.addEventListener("loadend",function(){c.resolve(f.result)}),f.readAsText(e,d),c.promise}).catch(function(){var c=new RSVP.defer,d=localforage.getItem(b);return this.offline||(this.offline=!0,this.trigger("offline",!0)),d?(d.then(function(b){var d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;f.addEventListener("loadend",function(){c.resolve(f.result)}),f.readAsText(e,d)}),c.promise):(c.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),c.promise)}.bind(this))},EPUBJS.Storage.prototype.getUrl=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(c){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,c),a}.bind(this)).catch(function(){var c,d,e=new RSVP.defer,f=window.URL||window.webkitURL||window.mozURL;return this.offline||(this.offline=!0,this.trigger("offline",!0)),b in this.urlCache?(e.resolve(this.urlCache[b]),e.promise):(c=localforage.getItem(b))?(c.then(function(c){var g=new Blob([c],{type:EPUBJS.core.getMimeType(a)});d=f.createObjectURL(g),e.resolve(d),this.urlCache[b]=d}.bind(this)),e.promise):(e.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),e.promise)}.bind(this))},EPUBJS.Storage.prototype.getXml=function(a){var b=window.encodeURIComponent(a);return EPUBJS.core.request(a,"arraybuffer",this.withCredentials).then(function(a){return this.offline&&(this.offline=!1,this.trigger("offline",!1)),localforage.setItem(b,a),a}.bind(this)).then(function(b){var c=new RSVP.defer,d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;return f.addEventListener("loadend",function(){var a=new DOMParser,b=a.parseFromString(f.result,"text/xml");c.resolve(b)}),f.readAsText(e,d),c.promise}).catch(function(){var c=new RSVP.defer,d=localforage.getItem(b);return this.offline||(this.offline=!0,this.trigger("offline",!0)),d?(d.then(function(b){var d=EPUBJS.core.getMimeType(a),e=new Blob([b],{type:d}),f=new FileReader;f.addEventListener("loadend",function(){var a=new DOMParser,b=a.parseFromString(f.result,"text/xml");c.resolve(b)}),f.readAsText(e,d)}),c.promise):(c.reject({message:"File not found in the storage: "+a,stack:(new Error).stack}),c.promise)}.bind(this))},EPUBJS.Storage.prototype.revokeUrl=function(a){var b=window.URL||window.webkitURL||window.mozURL,c=this.urlCache[a];c&&b.revokeObjectURL(c)},EPUBJS.Storage.prototype.failed=function(a){console.error(a)},RSVP.EventTarget.mixin(EPUBJS.Storage.prototype),EPUBJS.Unarchiver=function(){this.checkRequirements(),this.urlCache={}},EPUBJS.Unarchiver.prototype.checkRequirements=function(){"undefined"==typeof JSZip&&console.error("JSZip lib not loaded")},EPUBJS.Unarchiver.prototype.open=function(a){new RSVP.defer;return EPUBJS.core.request(a,"binary").then(function(a){this.zip=new JSZip(a)}.bind(this))},EPUBJS.Unarchiver.prototype.getXml=function(a,b){var c=window.decodeURIComponent(a);return this.getText(c,b).then(function(a){var b=new DOMParser;return b.parseFromString(a,"text/xml")})},EPUBJS.Unarchiver.prototype.getUrl=function(a){var b,c,d=this,e=new RSVP.defer,f=window.decodeURIComponent(a),g=this.zip.file(f),h=window.URL||window.webkitURL||window.mozURL;return g?a in this.urlCache?(e.resolve(this.urlCache[a]),e.promise):(c=new Blob([g.asUint8Array()],{type:EPUBJS.core.getMimeType(g.name)}),b=h.createObjectURL(c),e.resolve(b),d.urlCache[a]=b,e.promise):(e.reject({message:"File not found in the epub: "+a,stack:(new Error).stack}),e.promise)},EPUBJS.Unarchiver.prototype.getText=function(a){var b,c=new RSVP.defer,d=window.decodeURIComponent(a),e=this.zip.file(d);return e?(b=e.asText(),c.resolve(b),c.promise):(c.reject({message:"File not found in the epub: "+a,stack:(new Error).stack}),c.promise)},EPUBJS.Unarchiver.prototype.revokeUrl=function(a){var b=window.URL||window.webkitURL||window.mozURL,c=this.urlCache[a];c&&b.revokeObjectURL(c)},EPUBJS.Unarchiver.prototype.failed=function(a){console.error(a)},EPUBJS.Unarchiver.prototype.afterSaved=function(){this.callback()},EPUBJS.Unarchiver.prototype.toStorage=function(a){function b(){f--,0===f&&e.afterSaved()}var c=0,d=20,e=this,f=a.length;a.forEach(function(a){setTimeout(function(a){e.saveEntryFileToStorage(a,b)},c,a),c+=d}),console.log("time",c)},function(){"use strict";var a={application:{ecmascript:["es","ecma"],javascript:"js",ogg:"ogx",pdf:"pdf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],"rdf+xml":"rdf",smil:["smi","smil"],"xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd"],zip:"zip","x-httpd-eruby":"rhtml","x-latex":"latex","x-maker":["frm","maker","frame","fm","fb","book","fbdoc"],"x-object":"o","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","epub+zip":"epub","font-tdpfr":"pfr","inkml+xml":["ink","inkml"],json:"json","jsonml+json":"jsonml","mathml+xml":"mathml","metalink+xml":"metalink",mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",oxps:"oxps","vnd.amazon.ebook":"azw",widget:"wgt","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-otf":"otf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-font-woff":"woff","x-mobipocket-ebook":["prc","mobi"],"x-mspublisher":"pub","x-nzb":"nzb","x-tgif":"obj","xaml+xml":"xaml","xml-dtd":"dtd","xproc+xml":"xpl","xslt+xml":"xslt","internet-property-stream":"acx","x-compress":"z","x-compressed":"tgz","x-gzip":"gz"},audio:{flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp2","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"x-aiff":["aif","aiff","aifc"],"x-ms-wma":"wma","x-wav":"wav",adpcm:"adp",mp4:"mp4a",webm:"weba","x-aac":"aac","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",mid:["mid","rmi"]},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"x-icon":"ico",bmp:"bmp",webp:"webp","x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",mathml:"mml",plain:["txt","text","brf","conf","def","list","log","in","bas"],richtext:"rtx","tab-separated-values":"tsv","x-bibtex":"bib","x-dsrc":"d","x-diff":["diff","patch"],"x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas"],"x-pcs-gcd":"gcd","x-perl":["pl","pm"],"x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcard":"vcf",sgml:["sgml","sgm"],"x-c":["c","cc","cxx","cpp","h","hh","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt"},video:{mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv"}},b=function(){var b,c,d,e,f={};for(b in a)if(a.hasOwnProperty(b))for(c in a[b])if(a[b].hasOwnProperty(c))if(d=a[b][c],"string"==typeof d)f[d]=b+"/"+c;else for(e=0;e iheight / 2.5) { maxHeight = iheight / 2.5; pop_content.style.maxHeight = maxHeight + "px"; } - + //-- switch above / below if(popRect.height + top >= iheight - 25) { pop.style.top = top - popRect.height + "px"; @@ -105,7 +105,7 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend }else{ pop.classList.remove("above"); } - + //-- switch left if(left - popRect.width <= 0) { pop.style.left = left + "px"; @@ -113,42 +113,42 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend }else{ pop.classList.remove("left"); } - + //-- switch right if(left + popRect.width / 2 >= iwidth) { //-- TEMP MOVE: 300 pop.style.left = left - 300 + "px"; - + popRect = pop.getBoundingClientRect(); pop.style.left = left - popRect.width + "px"; //-- switch above / below again - if(popRect.height + top >= iheight - 25) { + if(popRect.height + top >= iheight - 25) { pop.style.top = top - popRect.height + "px"; pop.classList.add("above"); }else{ pop.classList.remove("above"); } - + pop.classList.add("right"); }else{ pop.classList.remove("right"); } - - + + } - + function onPop(){ popups[id].classList.add("on"); } - + function offPop(){ popups[id].classList.remove("on"); } - + function hidePop(){ setTimeout(function(){ popups[id].classList.remove("show"); - }, 100); + }, 100); } }); diff --git a/build/hooks.js.map b/build/hooks.js.map index 2858e23a0..91c094410 100644 --- a/build/hooks.js.map +++ b/build/hooks.js.map @@ -8,5 +8,5 @@ "hooks/default/transculsions.js" ], "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A" + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA" } \ No newline at end of file diff --git a/build/hooks.min.js b/build/hooks.min.js index bb4dedae1..5e8c36fd7 100644 --- a/build/hooks.min.js +++ b/build/hooks.min.js @@ -1,2 +1,2 @@ -EPUBJS.Hooks.register("beforeChapterDisplay").endnotes=function(a,b){var c=b.contents.querySelectorAll("a[href]"),d=Array.prototype.slice.call(c),e="epub:type",f="noteref",g=EPUBJS.core.folder(location.pathname),h=g+EPUBJS.cssPath||g,i={};EPUBJS.core.addCss(h+"popup.css",!1,b.render.document.head),d.forEach(function(a){function c(){var c,e,f=b.height,j=b.width,p=225;o||(c=l.cloneNode(!0),o=c.querySelector("p")),i[k]||(i[k]=document.createElement("div"),i[k].setAttribute("class","popup"),pop_content=document.createElement("div"),i[k].appendChild(pop_content),pop_content.appendChild(o),pop_content.setAttribute("class","pop_content"),b.render.document.body.appendChild(i[k]),i[k].addEventListener("mouseover",d,!1),i[k].addEventListener("mouseout",g,!1),b.on("renderer:pageChanged",h,this),b.on("renderer:pageChanged",g,this)),c=i[k],e=a.getBoundingClientRect(),m=e.left,n=e.top,c.classList.add("show"),popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width/2+"px",c.style.top=n+"px",p>f/2.5&&(p=f/2.5,pop_content.style.maxHeight=p+"px"),popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),m-popRect.width<=0?(c.style.left=m+"px",c.classList.add("left")):c.classList.remove("left"),m+popRect.width/2>=j?(c.style.left=m-300+"px",popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width+"px",popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),c.classList.add("right")):c.classList.remove("right")}function d(){i[k].classList.add("on")}function g(){i[k].classList.remove("on")}function h(){setTimeout(function(){i[k].classList.remove("show")},100)}var j,k,l,m,n,o,p=a.getAttribute(e);p==f&&(j=a.getAttribute("href"),k=j.replace("#",""),l=b.render.document.getElementById(k),a.addEventListener("mouseover",c,!1),a.addEventListener("mouseout",h,!1))}),a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").mathml=function(a,b){if(-1!==b.currentChapter.manifestProperties.indexOf("mathml")){b.render.iframe.contentWindow.mathmlCallback=a;var c=document.createElement("script");c.type="text/x-mathjax-config",c.innerHTML=' MathJax.Hub.Register.StartupHook("End",function () { window.mathmlCallback(); }); MathJax.Hub.Config({jax: ["input/TeX","input/MathML","output/SVG"],extensions: ["tex2jax.js","mml2jax.js","MathEvents.js"],TeX: {extensions: ["noErrors.js","noUndefined.js","autoload-all.js"]},MathMenu: {showRenderer: false},menuSettings: {zoom: "Click"},messageStyle: "none"}); ',b.doc.body.appendChild(c),EPUBJS.core.addScript("http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",null,b.doc.head)}else a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").smartimages=function(a,b){var c=b.contents.querySelectorAll("img"),d=Array.prototype.slice.call(c),e=b.height;return"reflowable"!=b.layoutSettings.layout?void a():(d.forEach(function(a){function c(){var c,d=a.getBoundingClientRect(),f=d.height,g=d.top,h=a.getAttribute("data-height"),i=h||f,j=Number(getComputedStyle(a,"").fontSize.match(/(\d*(\.\d*)?)px/)[1]),k=j?j/2:0;e=b.contents.clientHeight,0>g&&(g=0),i+g>=e?(e/2>g?(c=e-g-k,a.style.maxHeight=c+"px",a.style.width="auto"):(i>e&&(a.style.maxHeight=e+"px",a.style.width="auto",d=a.getBoundingClientRect(),i=d.height),a.style.display="block",a.style.WebkitColumnBreakBefore="always",a.style.breakBefore="column"),a.setAttribute("data-height",c)):(a.style.removeProperty("max-height"),a.style.removeProperty("margin-top"))}a.addEventListener("load",c,!1),b.on("renderer:resized",c),b.on("renderer:chapterUnloaded",function(){a.removeEventListener("load",c),b.off("renderer:resized",c)}),c()}),void(a&&a()))},EPUBJS.Hooks.register("beforeChapterDisplay").transculsions=function(a,b){var c=b.contents.querySelectorAll("[transclusion]"),d=Array.prototype.slice.call(c);d.forEach(function(a){function c(){j=g,k=h,j>chapter.colWidth&&(d=chapter.colWidth/j,j=chapter.colWidth,k*=d),f.width=j,f.height=k}var d,e=a.getAttribute("ref"),f=document.createElement("iframe"),g=a.getAttribute("width"),h=a.getAttribute("height"),i=a.parentNode,j=g,k=h;c(),b.listenUntil("renderer:resized","renderer:chapterUnloaded",c),f.src=e,i.replaceChild(f,a)}),a&&a()}; +EPUBJS.Hooks.register("beforeChapterDisplay").endnotes=function(a,b){var c=b.contents.querySelectorAll("a[href]"),d=Array.prototype.slice.call(c),e="epub:type",f="noteref",g=EPUBJS.core.folder(location.pathname),h=(g+EPUBJS.cssPath||g,{});EPUBJS.core.addCss(EPUBJS.cssPath+"popup.css",!1,b.render.document.head),d.forEach(function(a){function c(){var c,e,f=b.height,j=b.width,p=225;o||(c=l.cloneNode(!0),o=c.querySelector("p")),h[k]||(h[k]=document.createElement("div"),h[k].setAttribute("class","popup"),pop_content=document.createElement("div"),h[k].appendChild(pop_content),pop_content.appendChild(o),pop_content.setAttribute("class","pop_content"),b.render.document.body.appendChild(h[k]),h[k].addEventListener("mouseover",d,!1),h[k].addEventListener("mouseout",g,!1),b.on("renderer:pageChanged",i,this),b.on("renderer:pageChanged",g,this)),c=h[k],e=a.getBoundingClientRect(),m=e.left,n=e.top,c.classList.add("show"),popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width/2+"px",c.style.top=n+"px",p>f/2.5&&(p=f/2.5,pop_content.style.maxHeight=p+"px"),popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),m-popRect.width<=0?(c.style.left=m+"px",c.classList.add("left")):c.classList.remove("left"),m+popRect.width/2>=j?(c.style.left=m-300+"px",popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width+"px",popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),c.classList.add("right")):c.classList.remove("right")}function d(){h[k].classList.add("on")}function g(){h[k].classList.remove("on")}function i(){setTimeout(function(){h[k].classList.remove("show")},100)}var j,k,l,m,n,o,p=a.getAttribute(e);p==f&&(j=a.getAttribute("href"),k=j.replace("#",""),l=b.render.document.getElementById(k),a.addEventListener("mouseover",c,!1),a.addEventListener("mouseout",i,!1))}),a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").mathml=function(a,b){if(-1!==b.currentChapter.manifestProperties.indexOf("mathml")){b.render.iframe.contentWindow.mathmlCallback=a;var c=document.createElement("script");c.type="text/x-mathjax-config",c.innerHTML=' MathJax.Hub.Register.StartupHook("End",function () { window.mathmlCallback(); }); MathJax.Hub.Config({jax: ["input/TeX","input/MathML","output/SVG"],extensions: ["tex2jax.js","mml2jax.js","MathEvents.js"],TeX: {extensions: ["noErrors.js","noUndefined.js","autoload-all.js"]},MathMenu: {showRenderer: false},menuSettings: {zoom: "Click"},messageStyle: "none"}); ',b.doc.body.appendChild(c),EPUBJS.core.addScript("http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",null,b.doc.head)}else a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").smartimages=function(a,b){var c=b.contents.querySelectorAll("img"),d=Array.prototype.slice.call(c),e=b.height;return"reflowable"!=b.layoutSettings.layout?void a():(d.forEach(function(a){function c(){var c,d=a.getBoundingClientRect(),f=d.height,g=d.top,h=a.getAttribute("data-height"),i=h||f,j=Number(getComputedStyle(a,"").fontSize.match(/(\d*(\.\d*)?)px/)[1]),k=j?j/2:0;e=b.contents.clientHeight,0>g&&(g=0),i+g>=e?(e/2>g?(c=e-g-k,a.style.maxHeight=c+"px",a.style.width="auto"):(i>e&&(a.style.maxHeight=e+"px",a.style.width="auto",d=a.getBoundingClientRect(),i=d.height),a.style.display="block",a.style.WebkitColumnBreakBefore="always",a.style.breakBefore="column"),a.setAttribute("data-height",c)):(a.style.removeProperty("max-height"),a.style.removeProperty("margin-top"))}a.addEventListener("load",c,!1),b.on("renderer:resized",c),b.on("renderer:chapterUnloaded",function(){a.removeEventListener("load",c),b.off("renderer:resized",c)}),c()}),void(a&&a()))},EPUBJS.Hooks.register("beforeChapterDisplay").transculsions=function(a,b){var c=b.contents.querySelectorAll("[transclusion]"),d=Array.prototype.slice.call(c);d.forEach(function(a){function c(){j=g,k=h,j>chapter.colWidth&&(d=chapter.colWidth/j,j=chapter.colWidth,k*=d),f.width=j,f.height=k}var d,e=a.getAttribute("ref"),f=document.createElement("iframe"),g=a.getAttribute("width"),h=a.getAttribute("height"),i=a.parentNode,j=g,k=h;c(),b.listenUntil("renderer:resized","renderer:chapterUnloaded",c),f.src=e,i.replaceChild(f,a)}),a&&a()}; //# sourceMappingURL=hooks.min.map \ No newline at end of file diff --git a/build/hooks.min.map b/build/hooks.min.map index e78bcc2a3..72203f7dd 100644 --- a/build/hooks.min.map +++ b/build/hooks.min.map @@ -1 +1 @@ -{"version":3,"file":"hooks.min.js","sources":["hooks.js"],"names":["EPUBJS","Hooks","register","endnotes","callback","renderer","notes","contents","querySelectorAll","items","Array","prototype","slice","call","attr","type","folder","core","location","pathname","cssPath","popups","addCss","render","document","head","forEach","item","showPop","pop","itemRect","iheight","height","iwidth","width","maxHeight","txt","el","cloneNode","querySelector","id","createElement","setAttribute","pop_content","appendChild","body","addEventListener","onPop","offPop","on","hidePop","this","getBoundingClientRect","left","top","classList","add","popRect","style","remove","setTimeout","href","epubType","getAttribute","replace","getElementById","mathml","currentChapter","manifestProperties","indexOf","iframe","contentWindow","mathmlCallback","s","innerHTML","doc","addScript","smartimages","images","layoutSettings","layout","size","newHeight","rectHeight","oHeight","fontSize","Number","getComputedStyle","match","fontAdjust","clientHeight","display","removeProperty","removeEventListener","off","transculsions","trans","orginal_width","orginal_height","chapter","colWidth","ratio","src","parent","parentNode","listenUntil","replaceChild"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"hooks.min.js","sources":["hooks.js"],"names":["EPUBJS","Hooks","register","endnotes","callback","renderer","notes","contents","querySelectorAll","items","Array","prototype","slice","call","attr","type","folder","core","location","pathname","popups","cssPath","addCss","render","document","head","forEach","item","showPop","pop","itemRect","iheight","height","iwidth","width","maxHeight","txt","el","cloneNode","querySelector","id","createElement","setAttribute","pop_content","appendChild","body","addEventListener","onPop","offPop","on","hidePop","this","getBoundingClientRect","left","top","classList","add","popRect","style","remove","setTimeout","href","epubType","getAttribute","replace","getElementById","mathml","currentChapter","manifestProperties","indexOf","iframe","contentWindow","mathmlCallback","s","innerHTML","doc","addScript","smartimages","images","layoutSettings","layout","size","newHeight","rectHeight","oHeight","fontSize","Number","getComputedStyle","match","fontAdjust","clientHeight","display","removeProperty","removeEventListener","off","transculsions","trans","orginal_width","orginal_height","chapter","colWidth","ratio","src","parent","parentNode","listenUntil","replaceChild"],"mappings":"AAAAA,OAAOC,MAAMC,SAAS,wBAAwBC,SAAW,SAASC,EAAUC,GAE1E,GAAIC,GAAQD,EAASE,SAASC,iBAAiB,WAC9CC,EAAQC,MAAMC,UAAUC,MAAMC,KAAKP,GACnCQ,EAAO,YACPC,EAAO,UACPC,EAAShB,OAAOiB,KAAKD,OAAOE,SAASC,UAErCC,GADWJ,EAAShB,OAAOqB,SAAYL,KAGxChB,QAAOiB,KAAKK,OAAOtB,OAAOqB,QAAU,aAAa,EAAOhB,EAASkB,OAAOC,SAASC,MAGjFhB,EAAMiB,QAAQ,SAASC,GAqBtB,QAASC,KACR,GAICC,GAEAC,EALAC,EAAU1B,EAAS2B,OACnBC,EAAS5B,EAAS6B,MAGlBC,EAAY,GAGTC,KACHP,EAAMQ,EAAGC,WAAU,GACnBF,EAAMP,EAAIU,cAAc,MAKrBnB,EAAOoB,KACVpB,EAAOoB,GAAMhB,SAASiB,cAAc,OACpCrB,EAAOoB,GAAIE,aAAa,QAAS,SAEjCC,YAAcnB,SAASiB,cAAc,OAErCrB,EAAOoB,GAAII,YAAYD,aAEvBA,YAAYC,YAAYR,GACxBO,YAAYD,aAAa,QAAS,eAElCrC,EAASkB,OAAOC,SAASqB,KAAKD,YAAYxB,EAAOoB,IAGjDpB,EAAOoB,GAAIM,iBAAiB,YAAaC,GAAO,GAChD3B,EAAOoB,GAAIM,iBAAiB,WAAYE,GAAQ,GAKhD3C,EAAS4C,GAAG,uBAAwBC,EAASC,MAC7C9C,EAAS4C,GAAG,uBAAwBD,EAAQG,OAI7CtB,EAAMT,EAAOoB,GAIbV,EAAWH,EAAKyB,wBAChBC,EAAOvB,EAASuB,KAChBC,EAAMxB,EAASwB,IAGfzB,EAAI0B,UAAUC,IAAI,QAGlBC,QAAU5B,EAAIuB,wBAGdvB,EAAI6B,MAAML,KAAOA,EAAOI,QAAQvB,MAAQ,EAAI,KAC5CL,EAAI6B,MAAMJ,IAAMA,EAAM,KAInBnB,EAAYJ,EAAU,MACxBI,EAAYJ,EAAU,IACtBY,YAAYe,MAAMvB,UAAYA,EAAY,MAIxCsB,QAAQzB,OAASsB,GAAOvB,EAAU,IACpCF,EAAI6B,MAAMJ,IAAMA,EAAMG,QAAQzB,OAAU,KACxCH,EAAI0B,UAAUC,IAAI,UAElB3B,EAAI0B,UAAUI,OAAO,SAInBN,EAAOI,QAAQvB,OAAS,GAC1BL,EAAI6B,MAAML,KAAOA,EAAO,KACxBxB,EAAI0B,UAAUC,IAAI,SAElB3B,EAAI0B,UAAUI,OAAO,QAInBN,EAAOI,QAAQvB,MAAQ,GAAKD,GAE9BJ,EAAI6B,MAAML,KAAOA,EAAO,IAAM,KAE9BI,QAAU5B,EAAIuB,wBACdvB,EAAI6B,MAAML,KAAOA,EAAOI,QAAQvB,MAAQ,KAErCuB,QAAQzB,OAASsB,GAAOvB,EAAU,IACpCF,EAAI6B,MAAMJ,IAAMA,EAAMG,QAAQzB,OAAU,KACxCH,EAAI0B,UAAUC,IAAI,UAElB3B,EAAI0B,UAAUI,OAAO,SAGtB9B,EAAI0B,UAAUC,IAAI,UAElB3B,EAAI0B,UAAUI,OAAO,SAMvB,QAASZ,KACR3B,EAAOoB,GAAIe,UAAUC,IAAI,MAG1B,QAASR,KACR5B,EAAOoB,GAAIe,UAAUI,OAAO,MAG7B,QAAST,KACRU,WAAW,WACVxC,EAAOoB,GAAIe,UAAUI,OAAO,SAC1B,KAxIJ,GACCE,GACArB,EACAH,EAGAgB,EACAC,EACAlB,EARG0B,EAAWnC,EAAKoC,aAAajD,EAU9BgD,IAAY/C,IAEf8C,EAAOlC,EAAKoC,aAAa,QACzBvB,EAAKqB,EAAKG,QAAQ,IAAK,IACvB3B,EAAKhC,EAASkB,OAAOC,SAASyC,eAAezB,GAG7Cb,EAAKmB,iBAAiB,YAAalB,GAAS,GAC5CD,EAAKmB,iBAAiB,WAAYI,GAAS,MA4HzC9C,GAAUA,KAIfJ,OAAOC,MAAMC,SAAS,wBAAwBgE,OAAS,SAAS9D,EAAUC,GAGtE,GAAoE,KAAjEA,EAAS8D,eAAeC,mBAAmBC,QAAQ,UAAkB,CAGpEhE,EAASkB,OAAO+C,OAAOC,cAAcC,eAAiBpE,CAGtD,IAAIqE,GAAIjD,SAASiB,cAAc,SAC/BgC,GAAE1D,KAAO,wBACT0D,EAAEC,UAAY,6ZAMdrE,EAASsE,IAAI9B,KAAKD,YAAY6B,GAE9BzE,OAAOiB,KAAK2D,UAAU,gFAAiF,KAAMvE,EAASsE,IAAIlD,UAGvHrB,IAAUA,KAIrBJ,OAAOC,MAAMC,SAAS,wBAAwB2E,YAAc,SAASzE,EAAUC,GAC7E,GAAIyE,GAASzE,EAASE,SAASC,iBAAiB,OAC/CC,EAAQC,MAAMC,UAAUC,MAAMC,KAAKiE,GACnC/C,EAAU1B,EAAS2B,MAGpB,OAAqC,cAAlC3B,EAAS0E,eAAeC,WAC1B5E,MAIDK,EAAMiB,QAAQ,SAASC,GAEtB,QAASsD,KACR,GAKCC,GALGpD,EAAWH,EAAKyB,wBACnB+B,EAAarD,EAASE,OACtBsB,EAAMxB,EAASwB,IACf8B,EAAUzD,EAAKoC,aAAa,eAC5B/B,EAASoD,GAAWD,EAEpBE,EAAWC,OAAOC,iBAAiB5D,EAAM,IAAI0D,SAASG,MAAM,mBAAmB,IAC/EC,EAAaJ,EAAWA,EAAW,EAAI,CAExCtD,GAAU1B,EAASE,SAASmF,aACnB,EAANpC,IAASA,EAAM,GAEftB,EAASsB,GAAOvB,GAETA,EAAQ,EAAduB,GAEF4B,EAAYnD,EAAUuB,EAAMmC,EAC5B9D,EAAK+B,MAAMvB,UAAY+C,EAAY,KACnCvD,EAAK+B,MAAMxB,MAAO,SAEfF,EAASD,IACXJ,EAAK+B,MAAMvB,UAAYJ,EAAU,KACjCJ,EAAK+B,MAAMxB,MAAO,OAClBJ,EAAWH,EAAKyB,wBAChBpB,EAASF,EAASE,QAEnBL,EAAK+B,MAAMiC,QAAU,QACrBhE,EAAK+B,MAA+B,wBAAI,SACxC/B,EAAK+B,MAAmB,YAAI,UAI7B/B,EAAKe,aAAa,cAAewC,KAGjCvD,EAAK+B,MAAMkC,eAAe,cAC1BjE,EAAK+B,MAAMkC,eAAe,eAI5BjE,EAAKmB,iBAAiB,OAAQmC,GAAM,GAEpC5E,EAAS4C,GAAG,mBAAoBgC,GAEhC5E,EAAS4C,GAAG,2BAA4B,WACvCtB,EAAKkE,oBAAoB,OAAQZ,GACjC5E,EAASyF,IAAI,mBAAoBb,KAGlCA,WAIE7E,GAAUA,OAIfJ,OAAOC,MAAMC,SAAS,wBAAwB6F,cAAgB,SAAS3F,EAAUC,GAO/E,GAAI2F,GAAQ3F,EAASE,SAASC,iBAAiB,kBAC7CC,EAAQC,MAAMC,UAAUC,MAAMC,KAAKmF,EAErCvF,GAAMiB,QAAQ,SAASC,GAWtB,QAASsD,KACR/C,EAAQ+D,EACRjE,EAASkE,EAENhE,EAAQiE,QAAQC,WAClBC,EAAQF,QAAQC,SAAWlE,EAE3BA,EAAQiE,QAAQC,SAChBpE,GAAkBqE,GAGnB/B,EAAOpC,MAAQA,EACfoC,EAAOtC,OAASA,EAtBjB,GAOCqE,GAPGC,EAAM3E,EAAKoC,aAAa,OAC3BO,EAAS9C,SAASiB,cAAc,UAChCwD,EAAgBtE,EAAKoC,aAAa,SAClCmC,EAAiBvE,EAAKoC,aAAa,UACnCwC,EAAS5E,EAAK6E,WACdtE,EAAQ+D,EACRjE,EAASkE,CAoBVjB,KAKA5E,EAASoG,YAAY,mBAAoB,2BAA4BxB,GAErEX,EAAOgC,IAAMA,EAGbC,EAAOG,aAAapC,EAAQ3C,KAQ1BvB,GAAUA"} \ No newline at end of file diff --git a/build/reader.js.map b/build/reader.js.map index b6b64cc6f..7ae9050c5 100644 --- a/build/reader.js.map +++ b/build/reader.js.map @@ -13,5 +13,5 @@ "reader_src/controllers/toc_controller.js" ], "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A" + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA" } \ No newline at end of file diff --git a/examples/hypothesis.html b/examples/hypothesis.html index dda799f76..dd3b154bd 100755 --- a/examples/hypothesis.html +++ b/examples/hypothesis.html @@ -18,12 +18,7 @@ document.onreadystatechange = function () { if (document.readyState == "complete") { - EPUBJS.VERSION = "0.1.6"; - - EPUBJS.filePath = "js/libs/"; EPUBJS.cssPath = "../reader/css/"; - // fileStorage.filePath = EPUBJS.filePath; - ePubReader("../reader/moby-dick/"); } }; diff --git a/hooks/default/endnotes.js b/hooks/default/endnotes.js index 2991722c7..ca17a41e2 100644 --- a/hooks/default/endnotes.js +++ b/hooks/default/endnotes.js @@ -7,10 +7,10 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend folder = EPUBJS.core.folder(location.pathname), cssPath = (folder + EPUBJS.cssPath) || folder, popups = {}; - - EPUBJS.core.addCss(cssPath + "popup.css", false, renderer.render.document.head); - - + + EPUBJS.core.addCss(EPUBJS.cssPath + "popup.css", false, renderer.render.document.head); + + items.forEach(function(item){ var epubType = item.getAttribute(attr), href, @@ -21,17 +21,17 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend left, top, txt; - + if(epubType != type) return; href = item.getAttribute("href"); id = href.replace("#", ''); el = renderer.render.document.getElementById(id); - - + + item.addEventListener("mouseover", showPop, false); - item.addEventListener("mouseout", hidePop, false); - + item.addEventListener("mouseout", hidePop, false); + function showPop(){ var poppos, iheight = renderer.height, @@ -40,7 +40,7 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend pop, maxHeight = 225, itemRect; - + if(!txt) { pop = el.cloneNode(true); txt = pop.querySelector("p"); @@ -51,17 +51,17 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend if(!popups[id]) { popups[id] = document.createElement("div"); popups[id].setAttribute("class", "popup"); - - pop_content = document.createElement("div"); - + + pop_content = document.createElement("div"); + popups[id].appendChild(pop_content); - + pop_content.appendChild(txt); pop_content.setAttribute("class", "pop_content"); renderer.render.document.body.appendChild(popups[id]); - - //-- TODO: will these leak memory? - Fred + + //-- TODO: will these leak memory? - Fred popups[id].addEventListener("mouseover", onPop, false); popups[id].addEventListener("mouseout", offPop, false); @@ -72,32 +72,32 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend renderer.on("renderer:pageChanged", offPop, this); // chapter.book.on("renderer:chapterDestroy", hidePop, this); } - + pop = popups[id]; - - + + //-- get location of item itemRect = item.getBoundingClientRect(); left = itemRect.left; top = itemRect.top; - + //-- show the popup pop.classList.add("show"); - + //-- locations of popup popRect = pop.getBoundingClientRect(); - + //-- position the popup pop.style.left = left - popRect.width / 2 + "px"; pop.style.top = top + "px"; - - + + //-- Adjust max height if(maxHeight > iheight / 2.5) { maxHeight = iheight / 2.5; pop_content.style.maxHeight = maxHeight + "px"; } - + //-- switch above / below if(popRect.height + top >= iheight - 25) { pop.style.top = top - popRect.height + "px"; @@ -105,7 +105,7 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend }else{ pop.classList.remove("above"); } - + //-- switch left if(left - popRect.width <= 0) { pop.style.left = left + "px"; @@ -113,42 +113,42 @@ EPUBJS.Hooks.register("beforeChapterDisplay").endnotes = function(callback, rend }else{ pop.classList.remove("left"); } - + //-- switch right if(left + popRect.width / 2 >= iwidth) { //-- TEMP MOVE: 300 pop.style.left = left - 300 + "px"; - + popRect = pop.getBoundingClientRect(); pop.style.left = left - popRect.width + "px"; //-- switch above / below again - if(popRect.height + top >= iheight - 25) { + if(popRect.height + top >= iheight - 25) { pop.style.top = top - popRect.height + "px"; pop.classList.add("above"); }else{ pop.classList.remove("above"); } - + pop.classList.add("right"); }else{ pop.classList.remove("right"); } - - + + } - + function onPop(){ popups[id].classList.add("on"); } - + function offPop(){ popups[id].classList.remove("on"); } - + function hidePop(){ setTimeout(function(){ popups[id].classList.remove("show"); - }, 100); + }, 100); } }); diff --git a/hooks/extensions/hypothesis.js b/hooks/extensions/hypothesis.js index 57f2a5a9b..b95f4e738 100644 --- a/hooks/extensions/hypothesis.js +++ b/hooks/extensions/hypothesis.js @@ -5,7 +5,14 @@ EPUBJS.Hooks.register("beforeChapterDisplay").hypothesis = function(callback, re }; }; - EPUBJS.core.addScript("//hypothes.is/embed.js", null, renderer.doc.head); - if(callback) callback(); + + EPUBJS.core.addScript("//hypothes.is/embed.js", function() { + renderer.render.window.hypothesisInstall(); + // Must add after base css + EPUBJS.core.addCss("/reader/css/annotations.css", function() { + callback(); + }, renderer.doc.head); + }, renderer.doc.head); + }; diff --git a/reader/css/annotations.css b/reader/css/annotations.css index ae74f9193..7a77e668d 100644 --- a/reader/css/annotations.css +++ b/reader/css/annotations.css @@ -1,8 +1,3 @@ -.ui-loader { - display: none; +.annotator-adder { + width: 80px; } - -.annotator-hl { - box-shadow: none !important; - cursor: pointer !important; -} \ No newline at end of file diff --git a/reader/css/main.css b/reader/css/main.css index b601febb8..27e77a326 100755 --- a/reader/css/main.css +++ b/reader/css/main.css @@ -131,6 +131,11 @@ body { font-family: arial, sans-serif; font-weight: bold; cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .arrow:hover { diff --git a/reader/js/epub.js.map b/reader/js/epub.js.map index d879cb8dc..6c21d0ce9 100644 --- a/reader/js/epub.js.map +++ b/reader/js/epub.js.map @@ -1 +1 @@ -{"version":3,"file":"epub.min.js","sources":["epub.js"],"names":["lib$rsvp$utils$$objectOrFunction","x","lib$rsvp$utils$$isFunction","lib$rsvp$utils$$isMaybeThenable","lib$rsvp$utils$$F","lib$rsvp$events$$indexOf","callbacks","callback","i","l","length","lib$rsvp$events$$callbacksFor","object","_promiseCallbacks","lib$rsvp$config$$configure","name","value","lib$rsvp$config$$config","arguments","lib$rsvp$instrument$$scheduleFlush","setTimeout","entry","lib$rsvp$instrument$$queue","payload","guid","key","id","childGuid","childId","error","stack","lib$rsvp$instrument$$instrument","eventName","promise","child","push","_guidKey","_id","detail","_result","label","_label","timeStamp","lib$rsvp$utils$$now","Error","lib$rsvp$$internal$$withOwnPromise","TypeError","lib$rsvp$$internal$$noop","lib$rsvp$$internal$$getThen","then","lib$rsvp$$internal$$GET_THEN_ERROR","lib$rsvp$$internal$$tryThen","fulfillmentHandler","rejectionHandler","call","e","lib$rsvp$$internal$$handleForeignThenable","thenable","async","sealed","lib$rsvp$$internal$$resolve","lib$rsvp$$internal$$fulfill","reason","lib$rsvp$$internal$$reject","lib$rsvp$$internal$$handleOwnThenable","_state","lib$rsvp$$internal$$FULFILLED","lib$rsvp$$internal$$REJECTED","_onError","lib$rsvp$$internal$$subscribe","undefined","lib$rsvp$$internal$$handleMaybeThenable","maybeThenable","constructor","lib$rsvp$$internal$$publishRejection","lib$rsvp$$internal$$publish","lib$rsvp$$internal$$PENDING","_subscribers","instrument","lib$rsvp$instrument$$default","parent","onFulfillment","onRejection","subscribers","settled","lib$rsvp$$internal$$invokeCallback","lib$rsvp$$internal$$ErrorObject","this","lib$rsvp$$internal$$tryCatch","lib$rsvp$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$rsvp$$internal$$initializePromise","resolver","resolved","lib$rsvp$enumerator$$makeSettledResult","state","position","lib$rsvp$enumerator$$Enumerator","Constructor","input","abortOnReject","enumerator","_instanceConstructor","_abortOnReject","_validateInput","_input","_remaining","_init","_enumerate","_validationError","lib$rsvp$promise$all$$all","entries","lib$rsvp$enumerator$$default","lib$rsvp$promise$race$$race","lib$rsvp$utils$$isArray","resolve","lib$rsvp$promise$resolve$$resolve","lib$rsvp$promise$reject$$reject","lib$rsvp$promise$$needsResolver","lib$rsvp$promise$$needsNew","lib$rsvp$promise$$Promise","lib$rsvp$promise$$counter","lib$rsvp$all$settled$$AllSettled","_superConstructor","lib$rsvp$all$settled$$allSettled","lib$rsvp$promise$$default","lib$rsvp$all$$all","array","all","lib$rsvp$asap$$asap","arg","lib$rsvp$asap$$queue","lib$rsvp$asap$$len","lib$rsvp$asap$$scheduleFlush","lib$rsvp$asap$$useNextTick","nextTick","process","version","versions","node","match","Array","isArray","setImmediate","lib$rsvp$asap$$flush","lib$rsvp$asap$$useVertxTimer","lib$rsvp$asap$$vertxNext","lib$rsvp$asap$$useMutationObserver","iterations","observer","lib$rsvp$asap$$BrowserMutationObserver","document","createTextNode","observe","characterData","data","lib$rsvp$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$rsvp$asap$$useSetTimeout","lib$rsvp$asap$$attemptVertex","r","require","vertx","runOnLoop","runOnContext","lib$rsvp$defer$$defer","deferred","reject","lib$rsvp$filter$$filter","promises","filterFn","values","filtered","results","newLength","lib$rsvp$promise$hash$$PromiseHash","lib$rsvp$hash$settled$$HashSettled","lib$rsvp$hash$settled$$hashSettled","lib$rsvp$hash$$hash","lib$rsvp$promise$hash$$default","lib$rsvp$map$$map","mapFn","lib$rsvp$node$$Result","lib$rsvp$node$$getThen","obj","lib$rsvp$node$$ERROR","lib$rsvp$node$$tryApply","f","s","a","apply","lib$rsvp$node$$makeObject","_","argumentNames","args","lib$rsvp$node$$arrayResult","lib$rsvp$node$$wrapThenable","onFulFillment","lib$rsvp$node$$denodeify","nodeFunc","options","fn","self","promiseInput","lib$rsvp$node$$needsPromiseInput","lib$rsvp$node$$GET_THEN_ERROR","p","err","val","lib$rsvp$node$$handlePromiseInput","lib$rsvp$node$$handleValueInput","__proto__","result","lib$rsvp$race$$race","race","lib$rsvp$reject$$reject","lib$rsvp$resolve$$resolve","lib$rsvp$rethrow$$rethrow","lib$rsvp$$async","lib$rsvp$$on","lib$rsvp$$off","lib$rsvp$utils$$_isArray","Object","prototype","toString","Date","now","getTime","lib$rsvp$utils$$o_create","create","o","lib$rsvp$events$$default","mixin","on","allCallbacks","off","index","splice","trigger","_eachEntry","c","_settledAt","_willSettleAt","_makeResult","lib$rsvp$promise$all$$default","lib$rsvp$promise$race$$default","lib$rsvp$promise$resolve$$default","lib$rsvp$promise$reject$$default","lib$rsvp$promise$$guidKey","cast","after","catch","finally","lib$rsvp$all$settled$$default","lib$rsvp$all$$default","lib$rsvp$asap$$default","lib$rsvp$asap$$browserWindow","window","lib$rsvp$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$rsvp$asap$$isNode","lib$rsvp$asap$$isWorker","Uint8ClampedArray","importScripts","lib$rsvp$defer$$default","lib$rsvp$filter$$default","hasOwnProperty","lib$rsvp$platform$$platform","lib$rsvp$hash$settled$$default","lib$rsvp$hash$$default","lib$rsvp$map$$default","lib$rsvp$node$$default","global","lib$rsvp$platform$$default","lib$rsvp$race$$default","lib$rsvp$reject$$default","lib$rsvp$resolve$$default","lib$rsvp$rethrow$$default","cb","lib$rsvp$$callbacks","lib$rsvp$$eventName","lib$rsvp$umd$$RSVP","Promise","allSettled","hash","hashSettled","denodeify","map","filter","rethrow","defer","EventTarget","configure","define","module","EPUBJS","VERSION","plugins","filePath","Render","root","ePub","bookPath","Book","amd","exports","settings","core","defaults","bookKey","packageUrl","storage","fromStorage","saved","online","contained","width","height","layoutOveride","orientation","minSpreadWidth","gap","restore","reload","goto","styles","headTags","withCredentials","render_method","EPUBJSVERSION","spinePos","stored","navigator","onLine","networkListeners","ready","manifest","RSVP","spine","metadata","cover","toc","pageList","readyPromises","pagination","Pagination","pageListReady","_ready","bind","isRendered","_q","queue","_rendering","_displayQ","_moving","_gotoQ","renderer","Renderer","setMinSpreadWidth","setGap","listenToRenderer","defer_opened","opened","store","open","addEventListener","unload","forceReload","epubpackage","book","bookUrl","urlFrom","isContained","unarchive","loadPackage","localStorage","packageXml","identifier","packageIdentifier","restored","unpack","_registerReplacements","_containerPath","parse","Parser","containerPath","loadXml","containerXml","container","paths","contentsPath","basePath","packagePath","encoding","console","contents","packageContents","spineIndexByURL","generateBookKey","globalLayoutProperties","parseLayoutProperties","coverPath","spineNodeIndex","locations","Locations","navPath","navUrl","navHtml","nav","epubcfi","EpubCFI","wait","forEach","pg","cfi","generateCfiFromHref","href","tocPath","tocUrl","tocXml","createHiddenRender","_width","_height","hiddenContainer","hiddenEl","box","element","getBoundingClientRect","forceSingle","createElement","style","visibility","overflow","appendChild","initialize","generatePageList","pager","spineLength","currentPage","nextChapter","chapter","next","done","Chapter","displayChapter","pageMap","item","start","page","spreads","end","remove","removeChild","generatePagination","defered","loadPagination","pagelistJSON","JSON","getPageList","getMetadata","getToc","Events","range","startPage","endPage","percent","pageRange","pageFromCfi","percentageFromPage","anchorPage","percentage","loadChange","url","uri","chapterUri","currentChapter","absolute","path","warn","filename","afterLoad","render","docEl","beforeDisplay","afterDisplay","reformat","unlistenToRenderer","getXml","zip","request","base","protocol","fromRoot","location","origin","host","baseTag","getElementsByTagName","resolveUrl","pathname","Unarchiver","extension","isSaved","storedSettings","getItem","saveContents","setItem","stringify","removeSavedContents","removeItem","renderTo","elem","rendered","isElement","getEl","direction","setDirection","_rendered","startDisplay","display","previousLocationCfi","gotoCfi","fetch","fromStore","len","clearSaved","chap","pos","enqueue","isNumber","_needsAssetReplacement","registerHook","replace","head","resources","svg","lastPage","preloadNextChapter","dequeue","message","nextPage","prevPage","prev","prevChapter","linear","getCurrentLocationCfi","currentLocationCfi","target","indexOf","gotoPercentage","parseInt","substring","isNaN","gotoPage","gotoHref","cfiString","spineItem","split","section","relativeURL","firstPage","cfiFromPage","pageFromPercentage","storeOffline","assets","put","availableOffline","toStorage","isStored","token","Storage","credentials","offline","setStyle","prefixed","noreflow","removeStyle","addHeadTag","tag","attrs","useSpreads","use","_use","force","load","destroy","removeEventListener","flush","applyStyles","applyHeadTags","hrefs","layout","spread","spineObject","cfiBase","properties","manifestProperties","pages","loaded","Hooks","getHooks","caches","_store","_credentials","xml","setDocument","doc","querySelector","setAttribute","insertBefore","firstChild","triggerHooks","serializer","XMLSerializer","serializeToString","tempUrl","getUrl","setPages","num","getPages","getID","ID","revokeUrl","_document","namespaceURI","doctype","implementation","createDocument","importNode","documentElement","evaluate","cfiFromRange","_range","startXpath","endXpath","startContainer","endContainer","cleanEndTextContent","getElementXPath","nsResolver","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","collapsed","createRange","setStart","startOffset","setEnd","endOffset","log","cleanStartTextContent","cleanStringForXpath","textContent","generateCfiFromRange","find","_query","matches","query","toLowerCase","excerpt","text","last","limit","textSprint","func","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","acceptNode","test","FILTER_ACCEPT","FILTER_REJECT","nextNode","finished","progress","items","querySelectorAll","slice","count","called","full","replaceWithStored","attr","_oldUrls","_newUrls","_cache","_uri","_chapterBase","_attr","_wait","clone","link","src","getAttribute","replaceUrl","timeout","onload","clearTimeout","onerror","getElementById","getEls","classes","getElementsByClassName","type","handler","readyState","DONE","status","response","responseXML","supportsURL","Blob","URL","BLOB_RESPONSE","xhr","XMLHttpRequest","xhrPrototype","defineProperty","onreadystatechange","responseType","setRequestHeader","overrideMimeType","send","toArray","arr","member","newitm","ident","withoutProtocol","dot","firstSlash","directory","fragment","blob","doubleSlash","search","folder","lastIndexOf","lastSlash","dataURLToBlob","dataURL","parts","contentType","raw","rawLength","uInt8Array","BASE64_MARKER","atob","Uint8Array","charCodeAt","addScript","body","addScripts","srcArr","total","curr","addCss","rel","unprefixed","vendors","upper","toUpperCase","segments","folders","pop","concat","join","uuid","d","Math","random","floor","insert","compareFunction","locationOf","_start","_end","compared","pivot","b","indexOfSorted","_scope","scope","funcName","context","inwait","shift","clear","getElementTreeXPath","nodeName","tagName","pathIndex","isXhtml","ownerDocument","nodeType","Node","TEXT_NODE","indexOfTextNode","parentNode","sibling","previousSibling","DOCUMENT_TYPE_NODE","prefix","ns","xhtml","epub","str","part","textNode","sib","children","childNodes","source","prop","extend","sources","getOwnPropertyNames","propName","getOwnPropertyDescriptor","n","parseFloat","isFinite","isString","String","props","keys","cfiStr","generateChapterComponent","_spineNodeIndex","_pos","generatePathComponent","steps","segment","generateCfiFromElement","pathTo","unshift","getChapterComponent","splitStr","getPathComponent","pathComponent","getCharecterOffsetComponent","chapSegment","chapterComponent","charecterOffsetComponent","assertion","chapId","endInt","parseStep","has_brackets","spineId","step","characterOffset","textLocationAssertion","addMarker","_doc","_marker","lastStep","marker","createMarker","findParent","splitText","classList","add","removeMarker","contains","nextSib","nextSibling","prevSib","sections","compare","cfiOne","cfiTwo","generateCfiFromTextNode","anchor","offset","generateCfiFromRangeAnchor","anchorNode","anchorOffset","startElement","startSteps","startPath","startIndex","endElement","endSteps","endPath","endIndex","generateXpathFromSteps","xpath","generateQueryFromSteps","generateRangeFromCfi","textLength","startContainerParent","debug","selectNode","isCfiString","el","events","createEvent","tell","listen","deafen","listenUntil","evt","CustomEvent","msg","dispatchEvent","bindto","OnEvt","OffEvt","unlisten","hooks","plugs","plugType","hook","toAdd","toFront","removeHook","toRemove","passed","countdown","register","Layout","Reflowable","spreadWidth","format","_gap","columnAxis","columnGap","columnWidth","columnFill","colWidth","pageWidth","pageHeight","calculatePages","totalWidth","displayedPages","scrollWidth","ceil","pageCount","ReflowableSpreads","divisor","fullWidth","Fixed","content","viewport","hasAttribute","_locations","break","_current","generate","_currentCfi","currentLocation","counter","sprint","dist","locationFromCfi","percentageFromCfi","loc","percentageFromLocation","cfiFromLocation","cfiFromPercentage","save","getCurrent","setCurrent","get","set","totalPages","round","baseUrl","rootfile","fullpath","xmlEncoding","metadataNode","getElementText","manifestNode","spineNode","findNavPath","findTocPath","findCoverPath","tocId","bookTitle","creator","description","pubdate","publisher","language","rights","modified_date","querySelectorText","found","getElementsByTagNameNS","nodeValue","q","manifestXml","selected","spineXml","Id","propArray","manifestProps","manifestPropArray","vert","bookSpine","findListItems","findAnchorOrSpan","getTOC","list","nodes","subitems","idCounter","navEl","snapshot","ORDERED_NODE_SNAPSHOT_TYPE","snapshotLength","snapshotItem","navLabel","navMap","isCfi","Iframe","iframe","bodyEl","leftPos","scrolling","seamless","border","isMobile","userAgent","transform","contentDocument","headEl","contentWindow","resized","setLeft","margin","dir","right","write","close","baseEl","resize","totalHeight","scrollHeight","setPageDimensions","defaultView","scrollTo","tagEl","getPageNumberByElement","left","getPageNumberByRect","boundingClientRect","getBaseElement","getDocumentElement","isElementVisible","rect","scroll","bool","renderMethod","hidden","listenedEvents","upEvent","downEvent","isForcedSingle","onResized","layoutSettings","initWidth","initHeight","clientWidth","clientHeight","globalLayout","removeEventListeners","removeSelectionListeners","chapterPos","currentChapterCfiBase","reconcileLayoutSettings","layoutMethod","determineLayout","visible","formated","addEventListeners","addSelectionListeners","queued","updatePages","visibleRangeCfi","getVisibleRangeCfi","property","rendition","determineSpreads","mapPage","headTag","pageByElement","firstElementisTextNode","leng","trim","isGoodNode","embeddedElements","walk","y","prevNode","startNode","STOP","ITER","containsPoint","childElementCount","SHOW_ELEMENT","prevRange","elLimit","check","elPos","elRange","ELEMENT_NODE","selectNodeContents","checkText","ranges","splitTextNodeIntoWordsRanges","collapse","indexOfBreakableChar","startPosition","whiteCharacters","charAt","rangePosition","getClientRects","getPageCfi","startRange","getRange","forceElement","caretPositionFromPoint","caretRangeFromPoint","visibileEl","findElementAfter","offsetNode","pagesInCurrentChapter","pgs","currentRenderedPage","getRenderedPagesLeft","pagesLeft","endRange","findFirstVisible","startEl","setSize","triggerEvent","onSelectionChange","selectionEndTimeout","selectedRange","getSelection","cutoff","replacments","relative","isRelative","onclick","links","srcs","stylesheets","getText","cssUrls","newText","_URL","webkitURL","mozURL","createObjectURL","replaced","checkRequirements","urlCache","current","encodedUrl","encodeURIComponent","localforage","buffer","mimeType","getMimeType","reader","FileReader","readAsText","parser","DOMParser","parseFromString","fromCache","revokeObjectURL","zipUrl","JSZip","decodededUrl","decodeURIComponent","unarchiver","file","asUint8Array","asText","afterSaved","that","delay","saveEntryFileToStorage","table","application","ecmascript","javascript","ogg","pdf","postscript","rdf+xml","smil","xhtml+xml","x-httpd-eruby","x-latex","x-maker","x-object","x-shockwave-flash","x-silverlight","epub+zip","font-tdpfr","inkml+xml","json","jsonml+json","mathml+xml","metalink+xml","mp4","oebps-package+xml","omdoc+xml","oxps","vnd.amazon.ebook","widget","x-dtbncx+xml","x-dtbook+xml","x-dtbresource+xml","x-font-bdf","x-font-ghostscript","x-font-linux-psf","x-font-otf","x-font-pcf","x-font-snf","x-font-ttf","x-font-type1","x-font-woff","x-mobipocket-ebook","x-mspublisher","x-nzb","x-tgif","xaml+xml","xml-dtd","xproc+xml","xslt+xml","internet-property-stream","x-compress","x-compressed","x-gzip","audio","flac","midi","mpeg","mpegurl","x-aiff","x-ms-wma","x-wav","adpcm","webm","x-aac","x-caf","x-matroska","x-pn-realaudio-plugin","xm","mid","image","gif","ief","jpeg","pcx","png","svg+xml","tiff","x-icon","bmp","webp","x-pict","x-tga","cis-cod","rfc822","cache-manifest","calendar","css","csv","h323","html","iuls","mathml","plain","richtext","tab-separated-values","x-bibtex","x-dsrc","x-diff","x-haskell","x-java","x-literate-haskell","x-moc","x-pascal","x-pcs-gcd","x-perl","x-python","x-scala","x-setext","x-tcl","x-tex","x-vcard","sgml","x-c","x-fortran","x-opml","x-nfo","x-sfv","x-uuencode","webviewhtml","video","quicktime","vnd.mpegurl","x-flv","x-la-asf","x-mng","x-ms-asf","x-ms-wm","x-ms-wmv","x-ms-wmx","x-ms-wvx","x-msvideo","x-sgi-movie","3gpp2","h261","h263","h264","jpm","mj2","vnd.ms-playready.media.pyv","vnd.uvvu.mp4","vnd.vivo","x-f4v","x-m4v","x-ms-vob","x-smv","mimeTypes","subtype","defaultValue"],"mappings":";;;;;;;CAQA,WACI,YACA,SAASA,GAAiCC,GACxC,MAAoB,kBAANA,IAAkC,gBAANA,IAAwB,OAANA,EAG9D,QAASC,GAA2BD,GAClC,MAAoB,kBAANA,GAGhB,QAASE,GAAgCF,GACvC,MAAoB,gBAANA,IAAwB,OAANA,EAgBlC,QAASG,MAYT,QAASC,GAAyBC,EAAWC,GAC3C,IAAK,GAAIC,GAAE,EAAGC,EAAEH,EAAUI,OAAUD,EAAFD,EAAKA,IACrC,GAAIF,EAAUE,KAAOD,EAAY,MAAOC,EAG1C,OAAO,GAGT,QAASG,GAA8BC,GACrC,GAAIN,GAAYM,EAAOC,iBAMvB,OAJKP,KACHA,EAAYM,EAAOC,sBAGdP,EAkMT,QAASQ,GAA2BC,EAAMC,GACxC,MAAa,YAATD,MAIFE,IAA4B,GAAE,QAASD,GAIhB,IAArBE,UAAUR,OAGLO,GAAwBF,QAF/BE,GAAwBF,GAAQC,GAQpC,QAASG,KACPC,WAAW,WAET,IAAK,GADDC,GACKb,EAAI,EAAGA,EAAIc,GAA2BZ,OAAQF,IAAK,CAC1Da,EAAQC,GAA2Bd,EAEnC,IAAIe,GAAUF,EAAME,OAEpBA,GAAQC,KAAOD,EAAQE,IAAMF,EAAQG,GACrCH,EAAQI,UAAYJ,EAAQE,IAAMF,EAAQK,QACtCL,EAAQM,QACVN,EAAQO,MAAQP,EAAQM,MAAMC,OAGhCb,GAAiC,QAAEI,EAAMN,KAAMM,EAAME,SAEvDD,GAA2BZ,OAAS,GACnC,IAGL,QAASqB,GAAgCC,EAAWC,EAASC,GACvD,IAAMZ,GAA2Ba,MACnCpB,KAAMiB,EACNT,SACEE,IAAKQ,EAAQG,SACbV,GAAKO,EAAQI,IACbL,UAAWA,EACXM,OAAQL,EAAQM,QAChBX,QAASM,GAASA,EAAMG,IACxBG,MAAOP,EAAQQ,OACfC,UAAWC,KACXd,MAAOZ,GAAwB,yBAA2B,GAAI2B,OAAMX,EAAQQ,QAAU,SAEtFtB,IAKN,QAAU0B,KACR,MAAO,IAAIC,WAAU,wDAGvB,QAASC,MAQT,QAASC,GAA4Bf,GACnC,IACE,MAAOA,GAAQgB,KACf,MAAMpB,GAEN,MADAqB,IAAmCrB,MAAQA,EACpCqB,IAIX,QAASC,GAA4BF,EAAMjC,EAAOoC,EAAoBC,GACpE,IACEJ,EAAKK,KAAKtC,EAAOoC,EAAoBC,GACrC,MAAME,GACN,MAAOA,IAIX,QAASC,GAA0CvB,EAASwB,EAAUR,GACpEhC,GAAwByC,MAAM,SAASzB,GACrC,GAAI0B,IAAS,EACT9B,EAAQsB,EAA4BF,EAAMQ,EAAU,SAASzC,GAC3D2C,IACJA,GAAS,EACLF,IAAazC,EACf4C,EAA4B3B,EAASjB,GAErC6C,EAA4B5B,EAASjB,KAEtC,SAAS8C,GACNH,IACJA,GAAS,EAETI,EAA2B9B,EAAS6B,KACnC,YAAc7B,EAAQQ,QAAU,sBAE9BkB,GAAU9B,IACb8B,GAAS,EACTI,EAA2B9B,EAASJ,KAErCI,GAGL,QAAS+B,GAAsC/B,EAASwB,GAClDA,EAASQ,SAAWC,GACtBL,EAA4B5B,EAASwB,EAASlB,SACrCkB,EAASQ,SAAWE,IAC7BV,EAASW,SAAW,KACpBL,EAA2B9B,EAASwB,EAASlB,UAE7C8B,EAA8BZ,EAAUa,OAAW,SAAStD,GACtDyC,IAAazC,EACf4C,EAA4B3B,EAASjB,GAErC6C,EAA4B5B,EAASjB,IAEtC,SAAS8C,GACVC,EAA2B9B,EAAS6B,KAK1C,QAASS,GAAwCtC,EAASuC,GACxD,GAAIA,EAAcC,cAAgBxC,EAAQwC,YACxCT,EAAsC/B,EAASuC,OAC1C,CACL,GAAIvB,GAAOD,EAA4BwB,EAEnCvB,KAASC,GACXa,EAA2B9B,EAASiB,GAAmCrB,OACrDyC,SAATrB,EACTY,EAA4B5B,EAASuC,GAC5BtE,EAA2B+C,GACpCO,EAA0CvB,EAASuC,EAAevB,GAElEY,EAA4B5B,EAASuC,IAK3C,QAASZ,GAA4B3B,EAASjB,GACxCiB,IAAYjB,EACd6C,EAA4B5B,EAASjB,GAC5BhB,EAAiCgB,GAC1CuD,EAAwCtC,EAASjB,GAEjD6C,EAA4B5B,EAASjB,GAIzC,QAAS0D,GAAqCzC,GACxCA,EAAQmC,UACVnC,EAAQmC,SAASnC,EAAQM,SAG3BoC,EAA4B1C,GAG9B,QAAS4B,GAA4B5B,EAASjB,GACxCiB,EAAQgC,SAAWW,KAEvB3C,EAAQM,QAAUvB,EAClBiB,EAAQgC,OAASC,GAEmB,IAAhCjC,EAAQ4C,aAAanE,OACnBO,GAAwB6D,YAC1BC,GAA6B,YAAa9C,GAG5ChB,GAAwByC,MAAMiB,EAA6B1C,IAI/D,QAAS8B,GAA2B9B,EAAS6B,GACvC7B,EAAQgC,SAAWW,KACvB3C,EAAQgC,OAASE,GACjBlC,EAAQM,QAAUuB,EAClB7C,GAAwByC,MAAMgB,EAAsCzC,IAGtE,QAASoC,GAA8BW,EAAQ9C,EAAO+C,EAAeC,GACnE,GAAIC,GAAcH,EAAOH,aACrBnE,EAASyE,EAAYzE,MAEzBsE,GAAOZ,SAAW,KAElBe,EAAYzE,GAAUwB,EACtBiD,EAAYzE,EAASwD,IAAiCe,EACtDE,EAAYzE,EAASyD,IAAiCe,EAEvC,IAAXxE,GAAgBsE,EAAOf,QACzBhD,GAAwByC,MAAMiB,EAA6BK,GAI/D,QAASL,GAA4B1C,GACnC,GAAIkD,GAAclD,EAAQ4C,aACtBO,EAAUnD,EAAQgC,MAMtB,IAJIhD,GAAwB6D,YAC1BC,GAA6BK,IAAYlB,GAAgC,YAAc,WAAYjC,GAG1E,IAAvBkD,EAAYzE,OAAhB,CAIA,IAAK,GAFDwB,GAAO3B,EAAU+B,EAASL,EAAQM,QAE7B/B,EAAI,EAAGA,EAAI2E,EAAYzE,OAAQF,GAAK,EAC3C0B,EAAQiD,EAAY3E,GACpBD,EAAW4E,EAAY3E,EAAI4E,GAEvBlD,EACFmD,EAAmCD,EAASlD,EAAO3B,EAAU+B,GAE7D/B,EAAS+B,EAIbL,GAAQ4C,aAAanE,OAAS,GAGhC,QAAS4E,KACPC,KAAK1D,MAAQ,KAKf,QAAS2D,GAA6BjF,EAAU+B,GAC9C,IACE,MAAO/B,GAAS+B,GAChB,MAAMiB,GAEN,MADAkC,IAAoC5D,MAAQ0B,EACrCkC,IAIX,QAASJ,GAAmCD,EAASnD,EAAS1B,EAAU+B,GACtE,GACItB,GAAOa,EAAO6D,EAAWC,EADzBC,EAAc1F,EAA2BK,EAG7C,IAAIqF,GAWF,GAVA5E,EAAQwE,EAA6BjF,EAAU+B,GAE3CtB,IAAUyE,IACZE,GAAS,EACT9D,EAAQb,EAAMa,MACdb,EAAQ,MAER0E,GAAY,EAGVzD,IAAYjB,EAEd,WADA+C,GAA2B9B,EAASY,SAKtC7B,GAAQsB,EACRoD,GAAY,CAGVzD,GAAQgC,SAAWW,KAEZgB,GAAeF,EACxB9B,EAA4B3B,EAASjB,GAC5B2E,EACT5B,EAA2B9B,EAASJ,GAC3BuD,IAAYlB,GACrBL,EAA4B5B,EAASjB,GAC5BoE,IAAYjB,IACrBJ,EAA2B9B,EAASjB,IAIxC,QAAS6E,GAAsC5D,EAAS6D,GACtD,GAAIC,IAAW,CACf,KACED,EAAS,SAAwB9E,GAC3B+E,IACJA,GAAW,EACXnC,EAA4B3B,EAASjB,KACpC,SAAuB8C,GACpBiC,IACJA,GAAW,EACXhC,EAA2B9B,EAAS6B,MAEtC,MAAMP,GACNQ,EAA2B9B,EAASsB,IAIxC,QAASyC,GAAuCC,EAAOC,EAAUlF,GAC/D,MAAIiF,KAAU/B,IAEV+B,MAAO,YACPjF,MAAOA,IAIPiF,MAAO,WACPnC,OAAQ9C,GAKd,QAASmF,GAAgCC,EAAaC,EAAOC,EAAe9D,GAC1E,GAAI+D,GAAahB,IAEjBgB,GAAWC,qBAAuBJ,EAClCG,EAAWtE,QAAU,GAAImE,GAAYrD,EAA0BP,GAC/D+D,EAAWE,eAAiBH,EAExBC,EAAWG,eAAeL,IAC5BE,EAAWI,OAAaN,EACxBE,EAAW7F,OAAa2F,EAAM3F,OAC9B6F,EAAWK,WAAaP,EAAM3F,OAE9B6F,EAAWM,QAEe,IAAtBN,EAAW7F,OACbmD,EAA4B0C,EAAWtE,QAASsE,EAAWhE,UAE3DgE,EAAW7F,OAAS6F,EAAW7F,QAAU,EACzC6F,EAAWO,aACmB,IAA1BP,EAAWK,YACb/C,EAA4B0C,EAAWtE,QAASsE,EAAWhE,WAI/DwB,EAA2BwC,EAAWtE,QAASsE,EAAWQ,oBA6E9D,QAASC,GAA0BC,EAASzE,GAC1C,MAAO,IAAI0E,IAA6B3B,KAAM0B,GAAS,EAA4BzE,GAAOP,QAG5F,QAASkF,GAA4BF,EAASzE,GAa5C,QAASyC,GAAcjE,GACrB4C,EAA4B3B,EAASjB,GAGvC,QAASkE,GAAYpB,GACnBC,EAA2B9B,EAAS6B,GAhBtC,GAAIsC,GAAcb,KAEdtD,EAAU,GAAImE,GAAYrD,EAA0BP,EAExD,KAAK4E,GAAwBH,GAE3B,MADAlD,GAA2B9B,EAAS,GAAIa,WAAU,oCAC3Cb,CAaT,KAAK,GAVDvB,GAASuG,EAAQvG,OAUZF,EAAI,EAAGyB,EAAQgC,SAAWW,IAAmClE,EAAJF,EAAYA,IAC5E6D,EAA8B+B,EAAYiB,QAAQJ,EAAQzG,IAAK8D,OAAWW,EAAeC,EAG3F,OAAOjD,GAGT,QAASqF,GAAkC1G,EAAQ4B,GAEjD,GAAI4D,GAAcb,IAElB,IAAI3E,GAA4B,gBAAXA,IAAuBA,EAAO6D,cAAgB2B,EACjE,MAAOxF,EAGT,IAAIqB,GAAU,GAAImE,GAAYrD,EAA0BP,EAExD,OADAoB,GAA4B3B,EAASrB,GAC9BqB,EAGT,QAASsF,GAAgCzD,EAAQtB,GAE/C,GAAI4D,GAAcb,KACdtD,EAAU,GAAImE,GAAYrD,EAA0BP,EAExD,OADAuB,GAA2B9B,EAAS6B,GAC7B7B,EAOT,QAASuF,KACP,KAAM,IAAI1E,WAAU,sFAGtB,QAAS2E,KACP,KAAM,IAAI3E,WAAU,yHAGtB,QAAS4E,GAA0B5B,EAAUtD,GAC3C,GAAIP,GAAUsD,IAEdtD,GAAQI,IAAMsF,KACd1F,EAAQQ,OAASD,EACjBP,EAAQgC,OAASK,OACjBrC,EAAQM,QAAU+B,OAClBrC,EAAQ4C,gBAEJ5D,GAAwB6D,YAC1BC,GAA6B,UAAW9C,GAGtCc,IAA6B+C,IAC1B5F,EAA2B4F,IAC9B0B,IAGIvF,YAAmByF,IACvBD,IAGF5B,EAAsC5D,EAAS6D,IAqVnD,QAAS8B,GAAiCxB,EAAaa,EAASzE,GAC9D+C,KAAKsC,kBAAkBzB,EAAaa,GAAS,EAAmCzE,GAUlF,QAASsF,GAAiCb,EAASzE,GACjD,MAAO,IAAIoF,GAAiCG,GAA2Bd,EAASzE,GAAOP,QAGzF,QAAS+F,GAAkBC,EAAOzF,GAChC,MAAOuF,IAA0BG,IAAID,EAAOzF,GAM9C,QAAS2F,GAAoB5H,EAAU6H,GACrCC,GAAqBC,IAAsB/H,EAC3C8H,GAAqBC,GAAqB,GAAKF,EAC/CE,IAAsB,EACK,IAAvBA,IAIFC,KAkBJ,QAASC,KACP,GAAIC,GAAWC,QAAQD,SAGnBE,EAAUD,QAAQE,SAASC,KAAKC,MAAM,qCAI1C,OAHIC,OAAMC,QAAQL,IAA2B,MAAfA,EAAQ,IAA6B,OAAfA,EAAQ,KAC1DF,EAAWQ,cAEN,WACLR,EAASS,IAKb,QAASC,KACP,MAAO,YACLC,GAAyBF,IAI7B,QAASG,KACP,GAAIC,GAAa,EACbC,EAAW,GAAIC,IAAuCN,GACtDL,EAAOY,SAASC,eAAe,GAGnC,OAFAH,GAASI,QAAQd,GAAQe,eAAe,IAEjC,WACLf,EAAKgB,KAAQP,IAAeA,EAAa,GAK7C,QAASQ,KACP,GAAIC,GAAU,GAAIC,eAElB,OADAD,GAAQE,MAAMC,UAAYhB,EACnB,WACLa,EAAQI,MAAMC,YAAY,IAI9B,QAASC,KACP,MAAO,YACLjJ,WAAW8H,EAAsB,IAKrC,QAASA,KACP,IAAK,GAAI1I,GAAI,EAAO8H,GAAJ9H,EAAwBA,GAAG,EAAG,CAC5C,GAAID,GAAW8H,GAAqB7H,GAChC4H,EAAMC,GAAqB7H,EAAE,EAEjCD,GAAS6H,GAETC,GAAqB7H,GAAK8D,OAC1B+D,GAAqB7H,EAAE,GAAK8D,OAG9BgE,GAAqB,EAGvB,QAASgC,KACP,IACE,GAAIC,GAAIC,QACJC,EAAQF,EAAE,QAEd,OADAnB,IAA2BqB,EAAMC,WAAaD,EAAME,aAC7CxB,IACP,MAAM5F,GACN,MAAO8G,MAiBX,QAASO,GAAsBpI,GAC7B,GAAIqI,KAOJ,OALAA,GAAkB,QAAI,GAAI9C,IAA0B,SAASV,EAASyD,GACpED,EAAkB,QAAIxD,EACtBwD,EAAiB,OAAIC,GACpBtI,GAEIqI,EAGT,QAASE,GAAwBC,EAAUC,EAAUzI,GACnD,MAAOuF,IAA0BG,IAAI8C,EAAUxI,GAAOS,KAAK,SAASiI,GAClE,IAAKhL,EAA2B+K,GAC9B,KAAM,IAAInI,WAAU,wDAMtB,KAAK,GAHDpC,GAASwK,EAAOxK,OAChByK,EAAW,GAAIpC,OAAMrI,GAEhBF,EAAI,EAAOE,EAAJF,EAAYA,IAC1B2K,EAAS3K,GAAKyK,EAASC,EAAO1K,GAGhC,OAAOuH,IAA0BG,IAAIiD,EAAU3I,GAAOS,KAAK,SAASkI,GAIlE,IAAK,GAHDC,GAAU,GAAIrC,OAAMrI,GACpB2K,EAAY,EAEP7K,EAAI,EAAOE,EAAJF,EAAYA,IACtB2K,EAAS3K,KACX4K,EAAQC,GAAaH,EAAO1K,GAC5B6K,IAMJ,OAFAD,GAAQ1K,OAAS2K,EAEVD,MAMb,QAASE,GAAmClF,EAAaxF,EAAQ4B,GAC/D+C,KAAKsC,kBAAkBzB,EAAaxF,GAAQ,EAAM4B,GA4CpD,QAAS+I,GAAmCnF,EAAaxF,EAAQ4B,GAC/D+C,KAAKsC,kBAAkBzB,EAAaxF,GAAQ,EAAO4B,GAWrD,QAASgJ,GAAmC5K,EAAQ4B,GAClD,MAAO,IAAI+I,GAAmCxD,GAA2BnH,EAAQ4B,GAAOP,QAG1F,QAASwJ,GAAoB7K,EAAQ4B,GACnC,MAAO,IAAIkJ,IAA+B3D,GAA2BnH,EAAQ4B,GAAOP,QAGtF,QAAS0J,GAAkBX,EAAUY,EAAOpJ,GAC1C,MAAOuF,IAA0BG,IAAI8C,EAAUxI,GAAOS,KAAK,SAASiI,GAClE,IAAKhL,EAA2B0L,GAC9B,KAAM,IAAI9I,WAAU,qDAMtB,KAAK,GAHDpC,GAASwK,EAAOxK,OAChB0K,EAAU,GAAIrC,OAAMrI,GAEfF,EAAI,EAAOE,EAAJF,EAAYA,IAC1B4K,EAAQ5K,GAAKoL,EAAMV,EAAO1K,GAG5B,OAAOuH,IAA0BG,IAAIkD,EAAS5I,KAKlD,QAASqJ,KACPtG,KAAKvE,MAAQsD,OAMf,QAASwH,IAAuBC,GAC9B,IACC,MAAOA,GAAI9I,KACV,MAAMpB,GAEN,MADAmK,IAAqBhL,MAAOa,EACrBmK,IAKX,QAASC,IAAwBC,EAAGC,EAAGC,GACrC,IACEF,EAAEG,MAAMF,EAAGC,GACX,MAAMvK,GAEN,MADAmK,IAAqBhL,MAAQa,EACtBmK,IAIX,QAASM,IAA0BC,EAAGC,GAOpC,IAAK,GALDzL,GACAP,EAFAuL,KAGArL,EAAS6L,EAAE7L,OACX+L,EAAO,GAAI1D,OAAMrI,GAEZT,EAAI,EAAOS,EAAJT,EAAYA,IAC1BwM,EAAKxM,GAAKsM,EAAEtM,EAGd,KAAKO,EAAI,EAAGA,EAAIgM,EAAc9L,OAAQF,IACpCO,EAAOyL,EAAchM,GACrBuL,EAAIhL,GAAQ0L,EAAKjM,EAAI,EAGvB,OAAOuL,GAGT,QAASW,IAA2BH,GAIlC,IAAK,GAHD7L,GAAS6L,EAAE7L,OACX+L,EAAO,GAAI1D,OAAMrI,EAAS,GAErBF,EAAI,EAAOE,EAAJF,EAAYA,IAC1BiM,EAAKjM,EAAI,GAAK+L,EAAE/L,EAGlB,OAAOiM,GAGT,QAASE,IAA4B1J,EAAMhB,GACzC,OACEgB,KAAM,SAAS2J,EAAe1H,GAC5B,MAAOjC,GAAKK,KAAKrB,EAAS2K,EAAe1H,KAK/C,QAAS2H,IAAyBC,EAAUC,GAC1C,GAAIC,GAAK,WAOP,IAAK,GAHD5E,GAHA6E,EAAO1H,KACP9E,EAAIS,UAAUR,OACd+L,EAAO,GAAI1D,OAAMtI,EAAI,GAErByM,GAAe,EAEV1M,EAAI,EAAOC,EAAJD,IAASA,EAAG,CAG1B,GAFA4H,EAAMlH,UAAUV,IAEX0M,EAAc,CAGjB,GADAA,EAAeC,GAAiC/E,GAC5C8E,IAAiBE,GAA+B,CAClD,GAAIC,GAAI,GAAItF,IAA0BhF,EAEtC,OADAgB,GAA2BsJ,EAAGD,GAA8BpM,OACrDqM,EACEH,GAAgBA,KAAiB,IAC1C9E,EAAMuE,GAA4BO,EAAc9E,IAGpDqE,EAAKjM,GAAK4H,EAGZ,GAAInG,GAAU,GAAI8F,IAA0BhF,EAe5C,OAbA0J,GAAKhM,GAAK,SAAS6M,EAAKC,GAClBD,EACFvJ,EAA2B9B,EAASqL,GACjBhJ,SAAZyI,EACPnJ,EAA4B3B,EAASsL,GAC9BR,KAAY,EACnBnJ,EAA4B3B,EAASyK,GAA2BxL,YACzDkG,GAAwB2F,GAC/BnJ,EAA4B3B,EAASqK,GAA0BpL,UAAW6L,IAE1EnJ,EAA4B3B,EAASsL,IAGrCL,EACKM,GAAkCvL,EAASwK,EAAMK,EAAUG,GAE3DQ,GAAgCxL,EAASwK,EAAMK,EAAUG,GAMpE,OAFAD,GAAGU,UAAYZ,EAERE,EAKT,QAASS,IAAgCxL,EAASwK,EAAMK,EAAUG,GAChE,GAAIU,GAAS1B,GAAwBa,EAAUG,EAAMR,EAIrD,OAHIkB,KAAW3B,IACbjI,EAA2B9B,EAAS0L,EAAO3M,OAEtCiB,EAGT,QAASuL,IAAkCvL,EAASwK,EAAMK,EAAUG,GAClE,MAAOlF,IAA0BG,IAAIuE,GAAMxJ,KAAK,SAASwJ,GACvD,GAAIkB,GAAS1B,GAAwBa,EAAUG,EAAMR,EAIrD,OAHIkB,KAAW3B,IACbjI,EAA2B9B,EAAS0L,EAAO3M,OAEtCiB,IAIX,QAASkL,IAAiC/E,GACxC,MAAIA,IAAsB,gBAARA,GACZA,EAAI3D,cAAgBsD,IACf,EAEA+D,GAAuB1D,IAGzB,EAiBX,QAASwF,IAAoB3F,EAAOzF,GAClC,MAAOuF,IAA0B8F,KAAK5F,EAAOzF,GAG/C,QAASsL,IAAwBhK,EAAQtB,GACvC,MAAOuF,IAA0B+C,OAAOhH,EAAQtB,GAGlD,QAASuL,IAA0B/M,EAAOwB,GACxC,MAAOuF,IAA0BV,QAAQrG,EAAOwB,GAGlD,QAASwL,IAA0BlK,GAIjC,KAHA1C,YAAW,WACT,KAAM0C,KAEFA,EAUR,QAASmK,IAAgB1N,EAAU6H,GACjCnH,GAAwByC,MAAMnD,EAAU6H,GAG1C,QAAS8F,MACPjN,GAA4B,GAAEoL,MAAMpL,GAAyBC,WAG/D,QAASiN,MACPlN,GAA6B,IAAEoL,MAAMpL,GAAyBC,WA1/ChE,GAAIkN,GAMFA,IALGrF,MAAMC,QAKkBD,MAAMC,QAJN,SAAU/I,GACnC,MAA6C,mBAAtCoO,OAAOC,UAAUC,SAASjL,KAAKrD,GAM1C,IAAImH,IAA0BgH,GAE1BzL,GAAsB6L,KAAKC,KAAO,WAAa,OAAO,GAAID,OAAOE,WAIjEC,GAA4BN,OAAOO,QAAU,SAAUC,GACzD,GAAI3N,UAAUR,OAAS,EACrB,KAAM,IAAIkC,OAAM,gCAElB,IAAiB,gBAANiM,GACT,KAAM,IAAI/L,WAAU,6BAGtB,OADA1C,GAAkBkO,UAAYO,EACvB,GAAIzO,IAoBT0O,IA4CFC,MAAS,SAASnO,GAKhB,MAJAA,GAAW,GAAS2E,KAAS,GAC7B3E,EAAY,IAAQ2E,KAAU,IAC9B3E,EAAgB,QAAI2E,KAAc,QAClC3E,EAAOC,kBAAoByD,OACpB1D,GAoBToO,GAAM,SAAShN,EAAWzB,GACxB,GAAwB,kBAAbA,GACT,KAAM,IAAIuC,WAAU,8BAGtB,IAAwDxC,GAApD2O,EAAetO,EAA8B4E,KAEjDjF,GAAY2O,EAAajN,GAEpB1B,IACHA,EAAY2O,EAAajN,OAG2B,KAAlD3B,EAAyBC,EAAWC,IACtCD,EAAU6B,KAAK5B,IA2CnB2O,IAAO,SAASlN,EAAWzB,GACzB,GAAwDD,GAAW6O,EAA/DF,EAAetO,EAA8B4E,KAEjD,OAAKhF,IAKLD,EAAY2O,EAAajN,GAEzBmN,EAAQ9O,EAAyBC,EAAWC,QAE9B,KAAV4O,GAAgB7O,EAAU8O,OAAOD,EAAO,UAR1CF,EAAajN,QAyCjBqN,QAAW,SAASrN,EAAW+K,EAASvK,GACtC,GAAwDlC,GAAWC,EAA/D0O,EAAetO,EAA8B4E,KAEjD,IAAIjF,EAAY2O,EAAajN,GAE3B,IAAK,GAAIxB,GAAE,EAAGA,EAAEF,EAAUI,OAAQF,KAChCD,EAAWD,EAAUE,IAEZuM,EAASvK,KAMtBvB,IACF6D,YAAY,EAGdgK,IAAgC,MAAE7N,GAkBlC,IAAIK,OAsCAyD,GAA+BhD,EAQ/B6C,GAAgC,OAChCV,GAAgC,EAChCC,GAAgC,EAEhCjB,GAAqC,GAAIoC,GAsKzCG,GAAsC,GAAIH,GA4G1C4B,GAA+Bf,CAEnCA,GAAgCmI,UAAU5H,eAAiB,SAASL,GAClE,MAAOe,IAAwBf,IAGjCF,EAAgCmI,UAAUvH,iBAAmB,WAC3D,MAAO,IAAInE,OAAM,4CAGnBuD,EAAgCmI,UAAUzH,MAAQ,WAChDtB,KAAKhD,QAAU,GAAIwG,OAAMxD,KAAK7E,SAGhCyF,EAAgCmI,UAAUxH,WAAa,WAMrD,IAAK,GALDP,GAAahB,KACb7E,EAAa6F,EAAW7F,OACxBuB,EAAasE,EAAWtE,QACxBoE,EAAaE,EAAWI,OAEnBnG,EAAI,EAAGyB,EAAQgC,SAAWW,IAAmClE,EAAJF,EAAYA,IAC5E+F,EAAW+I,WAAWjJ,EAAM7F,GAAIA,IAIpC2F,EAAgCmI,UAAUgB,WAAa,SAASjO,EAAOb,GACrE,GAAI+F,GAAahB,KACbgK,EAAIhJ,EAAWC,oBACfrG,GAAgCkB,GAC9BA,EAAMoD,cAAgB8K,GAAKlO,EAAM4C,SAAWW,IAC9CvD,EAAM+C,SAAW,KACjBmC,EAAWiJ,WAAWnO,EAAM4C,OAAQzD,EAAGa,EAAMkB,UAE7CgE,EAAWkJ,cAAcF,EAAElI,QAAQhG,GAAQb,IAG7C+F,EAAWK,aACXL,EAAWhE,QAAQ/B,GAAK+F,EAAWmJ,YAAYxL,GAA+B1D,EAAGa,KAIrF8E,EAAgCmI,UAAUkB,WAAa,SAASvJ,EAAOzF,EAAGQ,GACxE,GAAIuF,GAAahB,KACbtD,EAAUsE,EAAWtE,OAErBA,GAAQgC,SAAWW,KACrB2B,EAAWK,aAEPL,EAAWE,gBAAkBR,IAAU9B,GACzCJ,EAA2B9B,EAASjB,GAEpCuF,EAAWhE,QAAQ/B,GAAK+F,EAAWmJ,YAAYzJ,EAAOzF,EAAGQ,IAI/B,IAA1BuF,EAAWK,YACb/C,EAA4B5B,EAASsE,EAAWhE,UAIpD4D,EAAgCmI,UAAUoB,YAAc,SAASzJ,EAAOzF,EAAGQ,GACzE,MAAOA,IAGTmF,EAAgCmI,UAAUmB,cAAgB,SAASxN,EAASzB,GAC1E,GAAI+F,GAAahB,IAEjBlB,GAA8BpC,EAASqC,OAAW,SAAStD,GACzDuF,EAAWiJ,WAAWtL,GAA+B1D,EAAGQ,IACvD,SAAS8C,GACVyC,EAAWiJ,WAAWrL,GAA8B3D,EAAGsD,KAM3D,IAAI6L,IAAgC3I,EA4BhC4I,GAAiCzI,EAajC0I,GAAoCvI,EAQpCwI,GAAmCvI,EAEnCwI,GAA4B,QAAUpN,KAAwB,IAC9DgF,GAA4B,EAoC5BI,GAA4BL,CAGhCA,GAA0BsI,KAAOH,GACjCnI,EAA0BQ,IAAMyH,GAChCjI,EAA0BmG,KAAO+B,GACjClI,EAA0BL,QAAUwI,GACpCnI,EAA0BoD,OAASgF,GAEnCpI,EAA0B4G,WACxB7J,YAAaiD,EAEbtF,SAAU2N,GAEV3L,SAAU,SAAUN,GAClB,GAAI7B,GAAUsD,IACdtE,IAAwBgP,MAAM,WACxBhO,EAAQmC,UACVnD,GAAiC,QAAE,QAAS6C,EAAQ7B,EAAQQ,WAuMlEQ,KAAM,SAASgC,EAAeC,EAAa1C,GACzC,GAAIwC,GAASO,KACTU,EAAQjB,EAAOf,MAEnB,IAAIgC,IAAU/B,KAAkCe,GAAiBgB,IAAU9B,KAAiCe,EAI1G,MAHIjE,IAAwB6D,YAC1BC,GAA6B,UAAWC,EAAQA,GAE3CA,CAGTA,GAAOZ,SAAW,IAElB,IAAIlC,GAAQ,GAAI8C,GAAOP,YAAY1B,EAA0BP,GACzDmL,EAAS3I,EAAOzC,OAMpB,IAJItB,GAAwB6D,YAC1BC,GAA6B,UAAWC,EAAQ9C,GAG9C+D,EAAO,CACT,GAAI1F,GAAWW,UAAU+E,EAAQ,EACjChF,IAAwByC,MAAM,WAC5B2B,EAAmCY,EAAO/D,EAAO3B,EAAUoN,SAG7DtJ,GAA8BW,EAAQ9C,EAAO+C,EAAeC,EAG9D,OAAOhD,IA+BTgO,QAAS,SAAShL,EAAa1C,GAC7B,MAAO+C,MAAKtC,KAAKqB,OAAWY,EAAa1C,IA2C3C2N,UAAW,SAAS5P,EAAUiC,GAC5B,GAAIP,GAAUsD,KACVd,EAAcxC,EAAQwC,WAE1B,OAAOxC,GAAQgB,KAAK,SAASjC,GAC3B,MAAOyD,GAAY4C,QAAQ9G,KAAY0C,KAAK,WAC1C,MAAOjC,MAER,SAAS8C,GACV,MAAOW,GAAY4C,QAAQ9G,KAAY0C,KAAK,WAC1C,KAAMa,MAEPtB,KAQPoF,EAAiC0G,UAAYK,GAAyBzH,GAA6BoH,WACnG1G,EAAiC0G,UAAUzG,kBAAoBX,GAC/DU,EAAiC0G,UAAUoB,YAAc1J,EACzD4B,EAAiC0G,UAAUvH,iBAAmB,WAC5D,MAAO,IAAInE,OAAM,2CAMnB,IAOIwG,IAmGAb,GA1GA6H,GAAgCtI,EAIhCuI,GAAwBrI,EACxBM,GAAqB,EAerBgI,OAd6B/B,SAcJpG,GAEzBoI,GAAkD,mBAAXC,QAA0BA,OAASlM,OAC1EmM,GAA+BF,OAC/B/G,GAAyCiH,GAA6BC,kBAAoBD,GAA6BE,uBACvHC,GAAwC,mBAAT3D,OACd,mBAAZvE,UAAyD,wBAA3B6F,SAASjL,KAAKoF,SAGjDmI,GAAuD,mBAAtBC,oBACV,mBAAlBC,gBACmB,mBAAnB/G,gBAiDL3B,GAAuB,GAAIU,OAAM,IA6BnCR,IADEqI,GAC6BpI,IACtBgB,GACsBH,IACtBwH,GACsB/G,IACWxF,SAAjCiM,IAAiE,kBAAZ/F,SAC/BF,IAEAD,GAYjC,IAAI2G,IAA0BpG,EA+B1BqG,GAA2BlG,EAM3BW,GAAiCJ,CAErCA,GAAmCgD,UAAYK,GAAyBzH,GAA6BoH,WACrGhD,EAAmCgD,UAAUzG,kBAAoBX,GACjEoE,EAAmCgD,UAAUzH,MAAQ,WACnDtB,KAAKhD,YAGP+I,EAAmCgD,UAAU5H,eAAiB,SAASL,GACrE,MAAOA,IAA0B,gBAAVA,IAGzBiF,EAAmCgD,UAAUvH,iBAAmB,WAC9D,MAAO,IAAInE,OAAM,+CAGnB0I,EAAmCgD,UAAUxH,WAAa,WACxD,GAAIP,GAAahB,KACbtD,EAAasE,EAAWtE,QACxBoE,EAAaE,EAAWI,OACxByE,IAEJ,KAAK,GAAI3J,KAAO4E,GACVpE,EAAQgC,SAAWW,IAA+ByJ,OAAOC,UAAU4C,eAAe5N,KAAK+C,EAAO5E,IAChG2J,EAAQjJ,MACN+D,SAAUzE,EACVJ,MAAOgF,EAAM5E,IAKnB,IAAIf,GAAS0K,EAAQ1K,MACrB6F,GAAWK,WAAalG,CAGxB,KAAK,GAFDiN,GAEKnN,EAAI,EAAGyB,EAAQgC,SAAWW,IAAmClE,EAAJF,EAAYA,IAC5EmN,EAASvC,EAAQ5K,GACjB+F,EAAW+I,WAAW3B,EAAOtM,MAAOsM,EAAOzH,WAQ/CqF,EAAmC+C,UAAYK,GAAyBjD,GAA+B4C,WACvG/C,EAAmC+C,UAAUzG,kBAAoBX,GACjEqE,EAAmC+C,UAAUoB,YAAc1J,EAE3DuF,EAAmC+C,UAAUvH,iBAAmB,WAC9D,MAAO,IAAInE,OAAM,6CAMnB,IA0KIuO,IA1KAC,GAAiC5F,EAIjC6F,GAAyB5F,EAiBzB6F,GAAwB3F,EAMxBK,GAAuB,GAAIH,GAC3BuB,GAAgC,GAAIvB,GA+GpC0F,GAAyB1E,EAkC7B,IAAoB,gBAATI,MACTkE,GAA8BlE,SAGzB,CAAA,GAAsB,gBAAXuE,QAGhB,KAAM,IAAI5O,OAAM,sCAFhBuO,IAA8BK,OAKhC,GAAIC,IAA6BN,GAI7BO,GAAyB9D,GAIzB+D,GAA2B7D,GAI3B8D,GAA4B7D,GAO5B8D,GAA4B7D,EAGhC/M,IAAwByC,MAAQ4M,GAChCrP,GAAwBgP,MAAQ,SAAS6B,GACvC1Q,WAAW0Q,EAAI,GAgBjB,IAAsB,mBAAXtB,SAA2E,gBAA1CA,QAAoC,4BAAgB,CAC9F,GAAIuB,IAAsBvB,OAAoC,2BAC9D1P,GAA2B,cAAc,EACzC,KAAK,GAAIkR,MAAuBD,IAC1BA,GAAoBb,eAAec,KACrC9D,GAAa8D,GAAqBD,GAAoBC,KAK5D,GAAIC,KACFpE,KAAQ6D,GACRQ,QAAWnK,GACXoK,WAAc/B,GACdgC,KAAQf,GACRgB,YAAejB,GACfkB,UAAaf,GACbvC,GAAMd,GACNgB,IAAOf,GACPoE,IAAOjB,GACPkB,OAAUvB,GACV5J,QAAWuK,GACX9G,OAAU6G,GACVzJ,IAAOmI,GACPoC,QAAWZ,GACXa,MAAS1B,GACT2B,YAAe7D,GACf8D,UAAa9R,EACb4C,MAASuK,GAIW,mBAAX4E,SAAyBA,OAAY,IAC9CA,OAAO,WAAa,MAAOZ,MACA,mBAAXa,SAA0BA,OAAgB,QAC1DA,OAAgB,QAAIb,GAC2B,mBAA/BR,MAChBA,GAAiC,KAAIQ,MAExC3O,KAAKiC,KAKR,IAAIwN,QAASA,UACbA,QAAOC,QAAU,QAEjBD,OAAOE,QAAUF,OAAOE,YAExBF,OAAOG,SAAWH,OAAOG,UAAY,WAErCH,OAAOI,UAEP,SAAUC,GAET,GAEIC,IAFeD,EAAKC,SAEbD,EAAKC,KAAO,WACtB,GAAIC,GAAUvG,CA+Bd,OA5B2B,mBAAjB7L,WAAU,IACK,gBAAjBA,WAAU,KAEjBoS,EAAWpS,UAAU,GAEjBA,UAAU,IAA8B,gBAAjBA,WAAU,IACpC6L,EAAU7L,UAAU,GACpB6L,EAAQuG,SAAWA,GAEnBvG,GAAYuG,SAAaA,IAcvBpS,UAAU,IAA8B,gBAAjBA,WAAU,KACpC6L,EAAU7L,UAAU,IAId,GAAI6R,QAAOQ,KAAKxG,IAIF,mBAAX8F,SAAyBA,OAAOW,IAE1CX,QAAQ,QAAS,WAAY,MAAOQ,KACT,mBAAVP,SAAyBA,OAAOW,UAEjDX,OAAOW,QAAUJ,IAGhB7C,QAEHuC,OAAOQ,KAAO,SAASxG,GAItBxH,KAAKmO,SAAWX,OAAOY,KAAKC,SAAS7G,OACpCuG,SAAWhP,OACXuP,QAAUvP,OACVwP,WAAaxP,OACbyP,SAAS,EACTC,aAAc,EACdC,OAAQ,EACRC,QAAS,EACTC,WAAY,EACZC,MAAQ9P,OACR+P,OAAQ/P,OACRgQ,cAAgBhQ,OAChBiQ,YAAcjQ,OACdkQ,eAAgB,IAChBC,IAAK,OACL9L,QAAS,EACT+L,SAAS,EACTC,QAAS,EACTC,QAAO,EACPC,UACAC,YACAC,iBAAiB,EACjBC,cAAe,WAGhBzP,KAAKmO,SAASuB,cAAgBlC,OAAOC,QAErCzN,KAAK2P,SAAW,EAChB3P,KAAK4P,QAAS,EAmBd5P,KAAK2O,OAAS3O,KAAKmO,SAASQ,QAAUkB,UAAUC,OAChD9P,KAAK+P,mBAEL/P,KAAKgQ,OACJC,SAAU,GAAIC,MAAK/C,MACnBgD,MAAO,GAAID,MAAK/C,MAChBiD,SAAU,GAAIF,MAAK/C,MACnBkD,MAAO,GAAIH,MAAK/C,MAChBmD,IAAK,GAAIJ,MAAK/C,MACdoD,SAAU,GAAIL,MAAK/C,OAGpBnN,KAAKwQ,eACJxQ,KAAKgQ,MAAMC,SAASvT,QACpBsD,KAAKgQ,MAAMG,MAAMzT,QACjBsD,KAAKgQ,MAAMI,SAAS1T,QACpBsD,KAAKgQ,MAAMK,MAAM3T,QACjBsD,KAAKgQ,MAAMM,IAAI5T,SAGhBsD,KAAKuQ,YACLvQ,KAAKyQ,WAAa,GAAIjD,QAAOkD,WAC7B1Q,KAAK2Q,cAAgB3Q,KAAKgQ,MAAMO,SAAS7T,QAEzCsD,KAAKgQ,MAAMrN,IAAMuN,KAAKvN,IAAI3C,KAAKwQ,eAE/BxQ,KAAKgQ,MAAMrN,IAAIjF,KAAKsC,KAAK4Q,OAAOC,KAAK7Q,OAGrCA,KAAK8Q,YAAa,EAClB9Q,KAAK+Q,GAAKvD,OAAOY,KAAK4C,MAAMhR,MAE5BA,KAAKiR,YAAa,EAClBjR,KAAKkR,UAAY1D,OAAOY,KAAK4C,MAAMhR,MAEnCA,KAAKmR,SAAU,EACfnR,KAAKoR,OAAS5D,OAAOY,KAAK4C,MAAMhR,MAMhCA,KAAKqR,SAAW,GAAI7D,QAAO8D,SAAStR,KAAKmO,SAASsB,eAElDzP,KAAKqR,SAASE,kBAAkBvR,KAAKmO,SAASc,gBAC9CjP,KAAKqR,SAASG,OAAOxR,KAAKmO,SAASe,KAEnClP,KAAKyR,iBAAiBzR,KAAKqR,UAE3BrR,KAAK0R,aAAe,GAAIxB,MAAK/C,MAC7BnN,KAAK2R,OAAS3R,KAAK0R,aAAahV,QAEhCsD,KAAK4R,OAAQ,EAIV5R,KAAKmO,SAASK,WAAY,GAE5BxO,KAAKyO,aAAY,GAImB,gBAA3BzO,MAAKmO,SAASJ,UACvB/N,KAAK6R,KAAK7R,KAAKmO,SAASJ,SAAU/N,KAAKmO,SAASiB,QAGjDnE,OAAO6G,iBAAiB,eAAgB9R,KAAK+R,OAAOlB,KAAK7Q,OAAO,IAQjEwN,OAAOQ,KAAKjF,UAAU8I,KAAO,SAAS9D,EAAUiE,GAC/C,GACEC,GADEC,EAAOlS,KAET2R,EAAS,GAAIzB,MAAK/C,KA+CpB,OA7CAnN,MAAKmO,SAASJ,SAAWA,EAGzB/N,KAAKmS,QAAUnS,KAAKoS,QAAQrE,GAEzB/N,KAAKmO,SAASS,WAAa5O,KAAKqS,YAAYtE,IAE9C/N,KAAKmO,SAASS,UAAY5O,KAAK4O,WAAY,EAE3C5O,KAAKmS,QAAU,GAEfF,EAAcjS,KAAKsS,UAAUvE,GAC5BrQ,KAAK,WACJ,MAAOwU,GAAKK,iBAIdN,EAAcjS,KAAKuS,cAKnBN,EAAYvU,KAFVsC,KAAKmO,SAASgB,UAAY6C,GAAeQ,aAE1B,SAASC,GACzB,GAAIC,GAAaR,EAAKS,kBAAkBF,GACpCG,EAAWV,EAAK/C,QAAQuD,EAExBE,IACHV,EAAKW,OAAOJ,GAEbd,EAAO7P,UACPoQ,EAAKR,aAAa5P,WAMF,SAAS2Q,GACzBP,EAAKW,OAAOJ,GACZd,EAAO7P,UACPoQ,EAAKR,aAAa5P,YAIpB9B,KAAK8S,sBAAsB9S,KAAKqR,UAEzBM,EAAOjV,SAIf8Q,OAAOQ,KAAKjF,UAAUwJ,YAAc,SAASQ,GAC5C,GAIEN,GAJEP,EAAOlS,KACTgT,EAAQ,GAAIxF,QAAOyF,OACnBC,EAAgBH,GAAkB,wBAwBpC,OARCN,GAZGzS,KAAKmO,SAASI,WAYJ2D,EAAKiB,QAAQjB,EAAK/D,SAASI,YAX3B2D,EAAKiB,QAAQjB,EAAKC,QAAUe,GACxCxV,KAAK,SAAS0V,GACb,MAAOJ,GAAMK,UAAUD,KAExB1V,KAAK,SAAS4V,GAIb,MAHApB,GAAK/D,SAASoF,aAAerB,EAAKC,QAAUmB,EAAME,SAClDtB,EAAK/D,SAASI,WAAa2D,EAAKC,QAAUmB,EAAMG,YAChDvB,EAAK/D,SAASuF,SAAWJ,EAAMI,SACxBxB,EAAKiB,QAAQjB,EAAK/D,SAASI,cAMrCkE,EAAW9H,MAAM,WAEhBgJ,QAAQrX,MAAM,2BAA4B4W,GAC1ChB,EAAKpI,QAAQ,kBAAmBoJ,KAE1BT,GAGRjF,OAAOQ,KAAKjF,UAAU4J,kBAAoB,SAASF,GAClD,GACEO,GAAQ,GAAIxF,QAAOyF,MAErB,OAAOD,GAAMN,WAAWD,IAGzBjF,OAAOQ,KAAKjF,UAAU8J,OAAS,SAASJ,GACvC,GAAIP,GAAOlS,KACTgT,EAAQ,GAAIxF,QAAOyF,MAErBf,GAAK0B,SAAWZ,EAAMa,gBAAgBpB,EAAYP,EAAK/D,SAASoF,cAEhErB,EAAKjC,SAAWiC,EAAK0B,SAAS3D,SAC9BiC,EAAK/B,MAAQ+B,EAAK0B,SAASzD,MAC3B+B,EAAK4B,gBAAkB5B,EAAK0B,SAASE,gBACrC5B,EAAK9B,SAAW8B,EAAK0B,SAASxD,SAC1B8B,EAAK/D,SAASG,UACjB4D,EAAK/D,SAASG,QAAU4D,EAAK6B,gBAAgB7B,EAAK9B,SAASsC,aAI5DR,EAAK8B,uBAAyB9B,EAAK+B,sBAAsB/B,EAAK9B,UAE3D8B,EAAK0B,SAASM,YAChBhC,EAAK7B,MAAQ6B,EAAK0B,SAASvD,MAAQ6B,EAAK/D,SAASoF,aAAerB,EAAK0B,SAASM,WAG/EhC,EAAKiC,eAAiBjC,EAAK0B,SAASO,eAEpCjC,EAAKlC,MAAMC,SAASnO,QAAQoQ,EAAK0B,SAAS3D,UAC1CiC,EAAKlC,MAAMG,MAAMrO,QAAQoQ,EAAK0B,SAASzD,OACvC+B,EAAKlC,MAAMI,SAAStO,QAAQoQ,EAAK0B,SAASxD,UAC1C8B,EAAKlC,MAAMK,MAAMvO,QAAQoQ,EAAK0B,SAASvD,OAEvC6B,EAAKkC,UAAY,GAAI5G,QAAO6G,UAAUnC,EAAK/B,MAAO+B,EAAKN,MAAOM,EAAK/D,SAASqB,iBAGzE0C,EAAK0B,SAASU,SAChBpC,EAAK/D,SAASoG,OAASrC,EAAK/D,SAASoF,aAAerB,EAAK0B,SAASU,QAElEpC,EAAKiB,QAAQjB,EAAK/D,SAASoG,QAC1B7W,KAAK,SAAS8W,GACb,MAAOxB,GAAMyB,IAAID,EAAStC,EAAK4B,gBAAiB5B,EAAK/B,SACnDzS,KAAK,SAAS4S,GAChB4B,EAAK5B,IAAM4B,EAAK0B,SAAStD,IAAMA,EAC/B4B,EAAKlC,MAAMM,IAAIxO,QAAQoQ,EAAK0B,SAAStD,MACnC,WACF4B,EAAKlC,MAAMM,IAAIxO,SAAQ,KAIzBoQ,EAAKiB,QAAQjB,EAAK/D,SAASoG,QAC1B7W,KAAK,SAAS8W,GACb,MAAOxB,GAAMzC,SAASiE,EAAStC,EAAK4B,gBAAiB5B,EAAK/B,SACxDzS,KAAK,SAAS6S,GAChB,GAAImE,GAAU,GAAIlH,QAAOmH,QACrBC,EAAO,CAGY,KAApBrE,EAASpV,SAIZ+W,EAAK3B,SAAW2B,EAAK0B,SAASrD,SAAWA,EAGzC2B,EAAK3B,SAASsE,QAAQ,SAASC,GAC1BA,EAAGC,MACNH,GAAQ,EACRF,EAAQM,oBAAoBF,EAAGG,KAAM/C,GAAMxU,KAAK,SAASqX,GACxDD,EAAGC,IAAMA,EACTD,EAAGvG,WAAa2D,EAAK/D,SAASI,WAE9BqG,GAAQ,EACI,IAATA,IACF1C,EAAKzB,WAAWtN,QAAQ+O,EAAK3B,UAC7B2B,EAAKlC,MAAMO,SAASzO,QAAQoQ,EAAK3B,gBAMjCqE,IACH1C,EAAKzB,WAAWtN,QAAQ+O,EAAK3B,UAC7B2B,EAAKlC,MAAMO,SAASzO,QAAQoQ,EAAK3B,aAGhC,WACF2B,EAAKlC,MAAMO,SAASzO,eAEboQ,EAAK0B,SAASsB,SACvBhD,EAAK/D,SAASgH,OAASjD,EAAK/D,SAASoF,aAAerB,EAAK0B,SAASsB,QAElEhD,EAAKiB,QAAQjB,EAAK/D,SAASgH,QAC1BzX,KAAK,SAAS0X,GACZ,MAAOpC,GAAM1C,IAAI8E,EAAQlD,EAAK4B,gBAAiB5B,EAAK/B,SACnDzS,KAAK,SAAS4S,GAChB4B,EAAK5B,IAAM4B,EAAK0B,SAAStD,IAAMA,EAC/B4B,EAAKlC,MAAMM,IAAIxO,QAAQoQ,EAAK0B,SAAStD,MACnC,WACF4B,EAAKlC,MAAMM,IAAIxO,SAAQ,MAIzBoQ,EAAKlC,MAAMM,IAAIxO,SAAQ,IAKzB0L,OAAOQ,KAAKjF,UAAUsM,mBAAqB,SAAShE,EAAUiE,EAAQC,GACrE,GAGIC,GACAC,EAJAC,EAAM1V,KAAK2V,QAAQC,wBACnB/G,EAAQyG,GAAUtV,KAAKmO,SAASU,OAAS6G,EAAI7G,MAC7CC,EAASyG,GAAWvV,KAAKmO,SAASW,QAAU4G,EAAI5G,MA0BpD,OAvBAuC,GAASE,kBAAkBvR,KAAKmO,SAASc,gBACzCoC,EAASG,OAAOxR,KAAKmO,SAASe,KAE7BlP,KAAK8S,sBAAsBzB,GACzBrR,KAAKmO,SAAS0H,aAChBxE,EAASwE,aAAY,GAGtBL,EAAkBtR,SAAS4R,cAAc,OACzCN,EAAgBO,MAAMC,WAAa,SACnCR,EAAgBO,MAAME,SAAW,SACjCT,EAAgBO,MAAMlH,MAAQ,IAC9B2G,EAAgBO,MAAMjH,OAAS,IAC/B9O,KAAK2V,QAAQO,YAAYV,GAEzBC,EAAWvR,SAAS4R,cAAc,OAClCL,EAASM,MAAMC,WAAa,SAC5BP,EAASM,MAAME,SAAW,SAC1BR,EAASM,MAAMlH,MAAQA,EAAQ,KAC/B4G,EAASM,MAAMjH,OAASA,EAAQ,KAChC0G,EAAgBU,YAAYT,GAE5BpE,EAAS8E,WAAWV,GACbD,GAIRhI,OAAOQ,KAAKjF,UAAUqN,iBAAmB,SAASvH,EAAOC,GACxD,CAAA,GAAIyB,MACA8F,EAAQ,GAAI7I,QAAO8D,SAAStR,KAAKmO,SAASsB,eAAe,GACzD+F,EAAkBxV,KAAKqV,mBAAmBgB,EAAOxH,EAAOC,GACxDxJ,EAAW,GAAI4K,MAAK/C,MACpBwC,EAAW,GACX2G,EAActW,KAAKmQ,MAAMhV,OAEzBob,EAAc,EACdC,EAAc,SAASlR,GAC1B,GAAImR,GACAC,EAAO/G,EAAW,EAClBgH,EAAOrR,GAAY,GAAI4K,MAAK/C,KAgChC,OA9BGuJ,IAAQJ,EACVK,EAAK7U,WAEL6N,EAAW+G,EACXD,EAAU,GAAIjJ,QAAOoJ,QAAQ5W,KAAKmQ,MAAMR,GAAW3P,KAAK4R,OACxDyE,EAAMQ,eAAeJ,EAASzW,KAAKgU,wBAAwBtW,KAAK,WAC/D2Y,EAAMS,QAAQjC,QAAQ,SAASkC,GAC9BR,GAAe,EACfhG,EAAS3T,MACRmY,IAAQgC,EAAKC,MACbC,KAASV,MAKRF,EAAMS,QAAQ3b,OAAS,EAAI,GAC5Bkb,EAAMa,UACPX,GAAe,EACfhG,EAAS3T,MACRmY,IAAQsB,EAAMS,QAAQT,EAAMS,QAAQ3b,OAAS,GAAGgc,IAChDF,KAASV,KAKX1a,WAAW,WACV2a,EAAYG,IACV,MAGEA,EAAKja,SACXmU,KAAK7Q,KAEQwW,KAAc9Y,KAAK,WACjC2Y,EAAMe,SACNpX,KAAK2V,QAAQ0B,YAAY7B,GACzBlQ,EAASxD,QAAQyO,IAChBM,KAAK7Q,OAEP,MAAOsF,GAAS5I,SAKjB8Q,OAAOQ,KAAKjF,UAAUuO,mBAAqB,SAASzI,EAAOC,GAC1D,GAAIoD,GAAOlS,KACPuX,EAAU,GAAIrH,MAAK/C,KAWvB,OATAnN,MAAKgQ,MAAMG,MAAMzT,QAAQgB,KAAK,WAC7BwU,EAAKkE,iBAAiBvH,EAAOC,GAAQpR,KAAK,SAAS6S,GAClD2B,EAAK3B,SAAW2B,EAAK0B,SAASrD,SAAWA,EACzC2B,EAAKzB,WAAWtN,QAAQoN,GACxB2B,EAAKlC,MAAMO,SAASzO,QAAQoQ,EAAK3B,UACjCgH,EAAQzV,QAAQoQ,EAAK3B,cAIhBgH,EAAQ7a,SAIhB8Q,OAAOQ,KAAKjF,UAAUyO,eAAiB,SAASC,GAC/C,GAAIlH,GAAWmH,KAAK1E,MAAMyE,EAO1B,OALGlH,IAAYA,EAASpV,SACvB6E,KAAKuQ,SAAWA,EAChBvQ,KAAKyQ,WAAWtN,QAAQnD,KAAKuQ,UAC7BvQ,KAAKgQ,MAAMO,SAASzO,QAAQ9B,KAAKuQ,WAE3BvQ,KAAKuQ,UAGb/C,OAAOQ,KAAKjF,UAAU4O,YAAc,WACnC,MAAO3X,MAAKgQ,MAAMO,SAAS7T,SAG5B8Q,OAAOQ,KAAKjF,UAAU6O,YAAc,WACnC,MAAO5X,MAAKgQ,MAAMI,SAAS1T,SAG5B8Q,OAAOQ,KAAKjF,UAAU8O,OAAS,WAC9B,MAAO7X,MAAKgQ,MAAMM,IAAI5T,SAMvB8Q,OAAOQ,KAAKjF,UAAUgH,iBAAmB,WACxC,GAAImC,GAAOlS,IACXiL,QAAO6G,iBAAiB,UAAW,WAClCI,EAAKvD,QAAS,EACVuD,EAAK/D,SAASK,SACjB0D,EAAKzD,aAAY,GAElByD,EAAKpI,QAAQ,kBACX,GAEHmB,OAAO6G,iBAAiB,SAAU,WACjCI,EAAKvD,QAAS,EACVuD,EAAK/D,SAASK,SACjB0D,EAAKzD,aAAY,GAElByD,EAAKpI,QAAQ,iBACX,IAKJ0D,OAAOQ,KAAKjF,UAAU0I,iBAAmB,SAASJ,GACjD,GAAIa,GAAOlS,IACXqR,GAASyG,OAAOjD,QAAQ,SAASpY,GAChC4U,EAAS5H,GAAGhN,EAAW,SAASuB,GAC/BkU,EAAKpI,QAAQrN,EAAWuB,OAI1BqT,EAAS5H,GAAG,+BAAgC,SAASsO,GACpD,GAAIC,GAAWC,EAASC,EACpBC,IAEDnY,MAAKuQ,SAASpV,OAAS,IACzB6c,EAAYhY,KAAKyQ,WAAW2H,YAAYL,EAAMf,OAC9CkB,EAAUlY,KAAKyQ,WAAW4H,mBAAmBL,GAC7CG,EAAUvb,KAAKob,GAEZD,EAAMZ,MACRc,EAAUjY,KAAKyQ,WAAW2H,YAAYL,EAAMZ,KAE3CgB,EAAUvb,KAAKqb,IAGjBjY,KAAK8J,QAAQ,oBACZwO,WAAcN,EACdO,WAAcL,EACdC,UAAcA,MAMftH,KAAK7Q,OAEPqR,EAAS5H,GAAG,gBAAiBzJ,KAAKwY,WAAW3H,KAAK7Q,QAKnDwN,OAAOQ,KAAKjF,UAAUyP,WAAa,SAASC,GAC3C,GAEI9I,GAAU8G,EAFViC,EAAMlL,OAAOY,KAAKsK,IAAID,GACtBE,EAAanL,OAAOY,KAAKsK,IAAI1Y,KAAK4Y,eAAeC,SAGlDH,GAAII,MAAQH,EAAWG,MACzBnF,QAAQoF,KAAK,aAAcL,EAAII,KAAM9Y,KAAK4Y,eAAeC,UAIzDlJ,EAAW3P,KAAK8T,gBAAgB4E,EAAIM,UACpCvC,EAAU,GAAIjJ,QAAOoJ,QAAQ5W,KAAKmQ,MAAMR,GAAW3P,KAAK4R,OACxD5R,KAAK4Y,eAAiBnC,EAGtBzW,KAAKqR,SAASuH,eAAiBnC,EAC/BzW,KAAKqR,SAAS4H,UAAUjZ,KAAKqR,SAAS6H,OAAOC,OAC7CnZ,KAAKqR,SAAS+H,cAAc,WAC3BpZ,KAAKqR,SAASgI,gBACbxI,KAAK7Q,QAEGA,KAAKiR,YACfjR,KAAKqR,SAASiI,YAIhB9L,OAAOQ,KAAKjF,UAAUwQ,mBAAqB,SAASlI,GACnDA,EAASyG,OAAOjD,QAAQ,SAASpY,GAChC4U,EAAS1H,IAAIlN,MAKf+Q,OAAOQ,KAAKjF,UAAUoK,QAAU,SAASsF,GACxC,MAAGzY,MAAKmO,SAASM,YACTzO,KAAK4R,MAAM4H,OAAOf,EAAKzY,KAAKmO,SAASuF,UACnC1T,KAAKmO,SAASS,UAChB5O,KAAKyZ,IAAID,OAAOf,EAAKzY,KAAKmO,SAASuF,UAEnClG,OAAOY,KAAKsL,QAAQjB,EAAK,MAAOzY,KAAKmO,SAASqB,kBAKvDhC,OAAOQ,KAAKjF,UAAUqJ,QAAU,SAASrE,GACxC,GAOC4L,GAPGjB,EAAMlL,OAAOY,KAAKsK,IAAI3K,GACzB8K,EAAWH,EAAIkB,SACfC,EAA0B,KAAfnB,EAAII,KAAK,GACpBgB,EAAW7O,OAAO6O,SAElBC,EAASD,EAASC,QAAUD,EAASF,SAAW,KAAOE,EAASE,KAChEC,EAAU/V,SAASgW,qBAAqB,OAWzC,OALGD,GAAQ9e,SACVwe,EAAOM,EAAQ,GAAGhF,MAIhByD,EAAIkB,SACClB,EAAIqB,OAASrB,EAAII,MAIrBD,GAAYgB,GACPF,GAAQI,GAAUrB,EAAII,KAI3BD,GAAagB,EAAjB,OACQrM,OAAOY,KAAK+L,WAAWR,GAAQG,EAASM,SAAU1B,EAAII,OAM/DtL,OAAOQ,KAAKjF,UAAUuJ,UAAY,SAASvE,GAY1C,MAFA/N,MAAKyZ,IAAM,GAAIjM,QAAO6M,WACtBra,KAAK4R,MAAQ5R,KAAKyZ,IACXzZ,KAAKyZ,IAAI5H,KAAK9D,IAItBP,OAAOQ,KAAKjF,UAAUsJ,YAAc,SAASF,GAC5C,GAAIuG,GAAMlL,OAAOY,KAAKsK,IAAIvG,EAE1B,QAAGuG,EAAI4B,WAA+B,QAAjB5B,EAAI4B,WAAwC,OAAjB5B,EAAI4B,WAI7C,GAHC,GAOT9M,OAAOQ,KAAKjF,UAAUwR,QAAU,SAASjM,GACxC,GAAIkM,EAEJ,OAAIhI,eAIJgI,EAAiBhI,aAAaiI,QAAQnM,GAEjCkE,cACe,OAAnBgI,GAGO,GAFA,IAPA,GAcThN,OAAOQ,KAAKjF,UAAUgL,gBAAkB,SAASrB,GAChD,MAAO,UAAYlF,OAAOC,QAAU,IAAMxC,OAAO6O,SAASE,KAAO,IAAMtH,GAGxElF,OAAOQ,KAAKjF,UAAU2R,aAAe,WACpC,MAAIlI,kBAGJA,cAAamI,QAAQ3a,KAAKmO,SAASG,QAASoJ,KAAKkD,UAAU5a,KAAK4T,YAFxD,GAKTpG,OAAOQ,KAAKjF,UAAU8R,oBAAsB,WAC3C,MAAIrI,kBAGJA,cAAasI,WAAW9a,KAAKmO,SAASG,UAF9B,GAQTd,OAAOQ,KAAKjF,UAAUgS,SAAW,SAASC,GACzC,GACCC,GADG/I,EAAOlS,IAGX,IAAGwN,OAAOY,KAAK8M,UAAUF,GACxBhb,KAAK2V,QAAUqF,MACT,CAAA,GAAmB,gBAARA,GAIjB,WADArH,SAAQrX,MAAM,iBAFd0D,MAAK2V,QAAUnI,OAAOY,KAAK+M,MAAMH,GAqBlC,MAfAC,GAAWjb,KAAK2R,OACbjU,KAAK,WASJ,MAPAwU,GAAKb,SAAS8E,WAAWjE,EAAKyD,QAASzD,EAAK/D,SAASU,MAAOqD,EAAK/D,SAASW,QAEvEoD,EAAK9B,SAASgL,WAChBlJ,EAAKb,SAASgK,aAAanJ,EAAK9B,SAASgL,WAG1ClJ,EAAKoJ,YACEpJ,EAAKqJ,kBAQjB/N,OAAOQ,KAAKjF,UAAUwS,aAAe,WACpC,GAAIC,EAUJ,OAPCA,GADExb,KAAKmO,SAASkB,KACNrP,KAAKqP,KAAKrP,KAAKmO,SAASkB,MAC1BrP,KAAKmO,SAASsN,oBACZzb,KAAK0b,QAAQ1b,KAAKmO,SAASsN,qBAE3Bzb,KAAK6W,eAAe7W,KAAK2P,WAMrCnC,OAAOQ,KAAKjF,UAAUoG,QAAU,SAASuD,GAExC,GAMEzX,GANEiX,EAAOlS,KACT2b,GAAS,WAAY,QAAS,WAAY,QAAS,MAAO,iBAAkB,kBAAmB,0BAC/FpW,GAAS,EACT+I,EAAUtO,KAAK+T,gBAAgBrB,GAC/BkJ,EAAYpJ,aAAaiI,QAAQnM,GACjCuN,EAAMF,EAAMxgB,MAKd,IAFG6E,KAAKmO,SAAS2N,aAAYvW,GAAS,IAElCA,GAAuB,aAAbqW,GAA0C,OAAdA,EAGzC,IAFA1J,EAAK0B,SAAW8D,KAAK1E,MAAM4I,GAEvB3gB,EAAI,EAAO4gB,EAAJ5gB,EAASA,IAAK,CACxB,GAAI8b,GAAO4E,EAAM1gB,EAEjB,KAAIiX,EAAK0B,SAASmD,GAAO,CACxBxR,GAAS,CACT,OAED2M,EAAK6E,GAAQ7E,EAAK0B,SAASmD,GAI7B,OAAGxR,GAAWqW,GAAc5b,KAAK4T,UAAa5T,KAAKmO,SAASoF,cAG3DvT,KAAKmO,SAASG,QAAUA,EACxBtO,KAAKgQ,MAAMC,SAASnO,QAAQ9B,KAAKiQ,UACjCjQ,KAAKgQ,MAAMG,MAAMrO,QAAQ9B,KAAKmQ,OAC9BnQ,KAAKgQ,MAAMI,SAAStO,QAAQ9B,KAAKoQ,UACjCpQ,KAAKgQ,MAAMK,MAAMvO,QAAQ9B,KAAKqQ,OAC9BrQ,KAAKgQ,MAAMM,IAAIxO,QAAQ9B,KAAKsQ,MACrB,IARA,GAaT9C,OAAOQ,KAAKjF,UAAU8N,eAAiB,SAASkF,EAAM5E,EAAK7R,GAC1D,GACC4T,GACAnE,EACAiH,EAIGvF,EAPAvE,EAAOlS,KAKVmN,EAAQ7H,GAAY,GAAI4K,MAAK/C,KAI9B,OAAInN,MAAK8Q,WAWN9Q,KAAKiR,YAAcjR,KAAKiR,YAE1BjR,KAAKkR,UAAU+K,QAAQ,kBAAmBF,EAAM5E,EAAKhK,IAC9CA,EAAMzQ,UAGX8Q,OAAOY,KAAK8N,SAASH,GACvBC,EAAMD,GAENhH,EAAM,GAAIvH,QAAOmH,QAAQoH,GACzBC,EAAMjH,EAAIpF,WAGF,EAANqM,GAAWA,GAAOhc,KAAKmQ,MAAMhV,UAC/BwY,QAAQoF,KAAK,wBACbiD,EAAM,EACN7E,GAAM,EACNpC,GAAM,GAIP0B,EAAU,GAAIjJ,QAAOoJ,QAAQ5W,KAAKmQ,MAAM6L,GAAMhc,KAAK4R,OAEnD5R,KAAKiR,YAAa,EAEfjR,KAAKmc,0BAEP1F,EAAQ2F,aAAa,uBACpB5O,OAAO6O,QAAQC,KACf9O,OAAO6O,QAAQE,UACf/O,OAAO6O,QAAQG,MACb,GAIJtK,EAAK0G,eAAiBnC,EAEtByC,EAAShH,EAAKb,SAASwF,eAAeJ,EAASzW,KAAKgU,wBACjDe,EACF7C,EAAKb,SAASqK,QAAQ3G,GACboC,GACTjF,EAAKb,SAASoL,WAGfvD,EAAOxb,KAAK,WAGXwU,EAAKvC,SAAWqM,EAEhB7O,EAAMrL,QAAQoQ,EAAKb,UAEhBa,EAAK/D,SAASM,eAAgB,GAChCyD,EAAK/D,SAASS,aAAc,GAC5BsD,EAAKwK,qBAGNxK,EAAKjB,YAAa,EAClBiB,EAAKhB,UAAUyL,UACgB,IAA5BzK,EAAKhB,UAAU/V,UACjB+W,EAAKd,OAAOuL,WAGX,SAASrgB,GAEXqX,QAAQrX,MAAM,2BAA4Bma,EAAQoC,SAAUvc,GAC5D4V,EAAKpI,QAAQ,yBAA0B2M,EAAQoC,UAC/C3G,EAAKjB,YAAa,EAClB9D,EAAM5H,OAAOjJ,KAGP6Q,EAAMzQ,UAhFZsD,KAAK+Q,GAAGkL,QAAQ,iBAAkBtgB,WAElCwR,EAAM5H,QACJqX,QAAU,YACVrgB,OAAQ,GAAIc,QAAQd,QAEf4Q,EAAMzQ,UA6Ef8Q,OAAOQ,KAAKjF,UAAU8T,SAAW,WAChC,GAAInG,EAEJ,OAAI1W,MAAK8Q,YAET4F,EAAO1W,KAAKqR,SAASwL,WAEjBnG,EAAJ,OACQ1W,KAAKwW,eALexW,KAAK+Q,GAAGkL,QAAQ,WAAYtgB,YASzD6R,OAAOQ,KAAKjF,UAAU+T,SAAW,WAChC,GAAIC,EAEJ,OAAI/c,MAAK8Q,YAETiM,EAAO/c,KAAKqR,SAASyL,WAEjBC,EAAJ,OACQ/c,KAAKgd,eALehd,KAAK+Q,GAAGkL,QAAQ,WAAYtgB,YASzD6R,OAAOQ,KAAKjF,UAAUyN,YAAc,WACnC,GAAIE,EACJ,IAAI1W,KAAK2P,SAAW3P,KAAKmQ,MAAMhV,OAAS,EAAG,CAG1C,IAFAub,EAAO1W,KAAK2P,SAAW,EAEhB3P,KAAKmQ,MAAMuG,IAAS1W,KAAKmQ,MAAMuG,GAAMuG,QAAqC,MAA3Bjd,KAAKmQ,MAAMuG,GAAMuG,QACtEvG,GAED,IAAIA,EAAO1W,KAAKmQ,MAAMhV,OACrB,MAAO6E,MAAK6W,eAAeH,EAE3B1W,MAAK8J,QAAQ,kBAId9J,MAAK8J,QAAQ,eAIf0D,OAAOQ,KAAKjF,UAAUiU,YAAc,WACnC,GAAID,EACJ,IAAI/c,KAAK2P,SAAW,EAAG,CAEtB,IADAoN,EAAO/c,KAAK2P,SAAW,EAChB3P,KAAKmQ,MAAM4M,IAAS/c,KAAKmQ,MAAM4M,GAAME,QAAqC,MAA3Bjd,KAAKmQ,MAAM4M,GAAME,QACtEF,GAED,IAAIA,GAAQ,EACX,MAAO/c,MAAK6W,eAAekG,GAAM,EAEjC/c,MAAK8J,QAAQ,oBAId9J,MAAK8J,QAAQ,iBAIf0D,OAAOQ,KAAKjF,UAAUmU,sBAAwB,WAC7C,MAAIld,MAAK8Q,WACF9Q,KAAKqR,SAAS8L,oBADO,GAI7B3P,OAAOQ,KAAKjF,UAAUsG,KAAO,SAAS+N,GAErC,MAAkC,KAA/BA,EAAOC,QAAQ,YACVrd,KAAK0b,QAAQ0B,GACXA,EAAOC,QAAQ,OAASD,EAAOjiB,OAAO,EACxC6E,KAAKsd,eAAeC,SAASH,EAAOI,UAAU,EAAGJ,EAAOjiB,OAAO,IAAI,KAC/C,gBAAXiiB,IAAuBK,MAAML,MAAY,EAClDpd,KAAK0d,SAASN,GAEdpd,KAAK2d,SAASP,IAKvB5P,OAAOQ,KAAKjF,UAAU2S,QAAU,SAASkC,EAAWzQ,GACnD,GAAI4H,GACFpF,EACAkO,EAEAvY,EAAW6H,GAAS,GAAI+C,MAAK/C,KAE/B,OAAInN,MAAK8Q,WAON9Q,KAAKmR,SAAWnR,KAAKiR,YACvB0C,QAAQoF,KAAK,sBACb/Y,KAAKoR,OAAO6K,QAAQ,WAAY2B,EAAWtY,KACpC,IAGRyP,EAAM,GAAIvH,QAAOmH,QAAQiJ,GACzBjO,EAAWoF,EAAIpF,SAEA,IAAZA,GACK,GAGRkO,EAAY7d,KAAKmQ,MAAMR,GACvBjT,QAAU4I,EAAS5I,QACnBsD,KAAKmR,SAAU,EAEZnR,KAAK4Y,gBAAkB5Y,KAAK2P,WAAaA,GAC3C3P,KAAKqR,SAASqK,QAAQ3G,GACtB/U,KAAKmR,SAAU,EACf7L,EAASxD,QAAQ9B,KAAKqR,SAAS8L,sBAG3BU,GAAyB,IAAZlO,IAChBA,EAAW,EACXkO,EAAY7d,KAAKmQ,MAAMR,IAGxB3P,KAAK4Y,eAAiB,GAAIpL,QAAOoJ,QAAQiH,EAAW7d,KAAK4R,OAEtD5R,KAAK4Y,iBACP5Y,KAAK2P,SAAWA,EAChBuJ,OAASlZ,KAAKqR,SAASwF,eAAe7W,KAAK4Y,eAAgB5Y,KAAKgU,wBAEhEhU,KAAKqR,SAASqK,QAAQ3G,GACtBmE,OAAOxb,KAAK,SAASud,GACnBjb,KAAKmR,SAAU,EACf7L,EAASxD,QAAQmZ,EAASkC,qBAC1BtM,KAAK7Q,SAITtD,QAAQgB,KAAK,WACZsC,KAAKoR,OAAOuL,WACX9L,KAAK7Q,OAEAtD,WApDNiX,QAAQoF,KAAK,oBACb/Y,KAAKmO,SAASsN,oBAAsBmC,GAC7B,IAqDTpQ,OAAOQ,KAAKjF,UAAU4U,SAAW,SAASlF,EAAKtL,GAC9C,GAAI2Q,GAAOrH,EAASsH,EAASC,EAAarO,EACtCrK,EAAW6H,GAAS,GAAI+C,MAAK/C,KAEjC,OAAInN,MAAK8Q,WAMN9Q,KAAKmR,SAAWnR,KAAKiR,YACvBjR,KAAKoR,OAAO6K,QAAQ,YAAaxD,EAAKnT,KAC/B,IAGRwY,EAAQrF,EAAIqF,MAAM,KAClBrH,EAAUqH,EAAM,GAChBC,EAAUD,EAAM,KAAM,EAEtBE,EAAcvH,EAAQ4F,QAAQrc,KAAKmO,SAASoF,aAAc,IAC1D5D,EAAW3P,KAAK8T,gBAAgBkK,GAG5BvH,IACH9G,EAAW3P,KAAK4Y,eAAiB5Y,KAAK4Y,eAAejJ,SAAW,GAI1C,gBAAd,IAA+B,EAEpC3P,KAAK4Y,gBAAkBjJ,GAAY3P,KAAK4Y,eAAejJ,UAUvDoO,EACF/d,KAAKqR,SAAS0M,QAAQA,GAGtB/d,KAAKqR,SAAS4M,YAEf3Y,EAASxD,QAAQ9B,KAAKqR,SAAS8L,oBAGhC7X,EAAS5I,QAAQgB,KAAK,WACrBsC,KAAKoR,OAAOuL,WACX9L,KAAK7Q,OAEAsF,EAAS5I,SArBRsD,KAAK6W,eAAelH,GAAUjS,KAAK,WACrCqgB,GACF/d,KAAKqR,SAAS0M,QAAQA,GAEvBzY,EAASxD,QAAQ9B,KAAKqR,SAAS8L,qBAC9BtM,KAAK7Q,SAhCRA,KAAKmO,SAASkB,KAAOoJ,GACd,IAkDTjL,OAAOQ,KAAKjF,UAAU2U,SAAW,SAAS5I,GACzC,GAAIC,GAAM/U,KAAKyQ,WAAWyN,YAAYpJ,EACtC,OAAO9U,MAAK0b,QAAQ3G,IAGrBvH,OAAOQ,KAAKjF,UAAUuU,eAAiB,SAASpF,GAC/C,GAAIpD,GAAK9U,KAAKyQ,WAAW0N,mBAAmBjG,EAC5C,OAAOlY,MAAK0d,SAAS5I,IAGtBtH,OAAOQ,KAAKjF,UAAU2T,mBAAqB,WAC1C,GAAIhG,GACAqF,EAAO/b,KAAK2P,SAAW,CAE3B,OAAGoM,IAAQ/b,KAAKmQ,MAAMhV,QACd,GAGRub,EAAO,GAAIlJ,QAAOoJ,QAAQ5W,KAAKmQ,MAAM4L,SAClCrF,GACFlJ,OAAOY,KAAKsL,QAAQhD,EAAKmC,aAI3BrL,OAAOQ,KAAKjF,UAAUqV,aAAe,WACpC,GAAIlM,GAAOlS,KACVqe,EAAS7Q,OAAOY,KAAKzI,OAAO3F,KAAKiQ,SAGlC,OAAOjQ,MAAK4R,MAAM0M,IAAID,GACpB3gB,KAAK,WACJwU,EAAK/D,SAASyB,QAAS,EACvBsC,EAAKpI,QAAQ,kBAIjB0D,OAAOQ,KAAKjF,UAAUwV,iBAAmB,WACxC,MAAOve,MAAKmO,SAASyB,OAAS,GAAI,GAAO,GAG1CpC,OAAOQ,KAAKjF,UAAUyV,UAAY,WACjC,GAAItiB,GAAM8D,KAAKmO,SAASG,OACxBtO,MAAK4R,MAAM6M,SAASviB,GAAKwB,KAAK,SAASkS,GAEtC,MAAIA,MAAW,GACd5P,KAAKmO,SAASyB,QAAS,GAChB,GAGD5P,KAAKoe,eACV1gB,KAAK,WACLsC,KAAK4R,MAAM8M,MAAMxiB,GAAK,IACrB2U,KAAK7Q,QAEP6Q,KAAK7Q,QAGRwN,OAAOQ,KAAKjF,UAAU0F,YAAc,SAASmB,IAE3CpC,OAAO6O,QAAQC,KACf9O,OAAO6O,QAAQE,UACf/O,OAAO6O,QAAQG,IAGbxc,MAAK4O,WAAa5O,KAAKmO,SAASS,YAGhC5O,KAAK2O,QACP3O,KAAK2R,OAAOjU,KAAKsC,KAAKwe,UAAU3N,KAAK7Q,OAGnCA,KAAK4R,OAAS5R,KAAKmO,SAASM,aAAemB,KAAW,GACxD5P,KAAKmO,SAASM,aAAc,EAC5BzO,KAAK4R,MAAMjI,IAAI,WAEf3J,KAAK4R,OAAQ,GACJ5R,KAAKmO,SAASM,cAEvBzO,KAAK4R,MAAQ,GAAIpE,QAAOmR,QAAQ3e,KAAKmO,SAASyQ,aAC9C5e,KAAK4R,MAAMnI,GAAG,UAAW,SAAUoV,GAC7BA,GAQJ7e,KAAK6e,SAAU,EACf7e,KAAKmO,SAASM,aAAc,EAE5BzO,KAAK8J,QAAQ,kBATb9J,KAAK6e,SAAU,EACf7e,KAAKmO,SAASM,aAAc,EAE5BzO,KAAK8J,QAAQ,iBAQb+G,KAAK7Q,UAMTwN,OAAOQ,KAAKjF,UAAU+V,SAAW,SAAS/I,EAAO/N,EAAK+W,GACrD,GAAIC,IAAY,QAAS,aAAc,mBAEvC,OAAIhf,MAAK8Q,YAET9Q,KAAKmO,SAASmB,OAAOyG,GAAS/N,EAE9BhI,KAAKqR,SAASyN,SAAS/I,EAAO/N,EAAK+W,QAEJ,KAA5BC,EAAS3B,QAAQtH,IAGnB/V,KAAKqR,SAASiI,aATatZ,KAAK+Q,GAAGkL,QAAQ,WAAYtgB,YAczD6R,OAAOQ,KAAKjF,UAAUkW,YAAc,SAASlJ,GAC5C,MAAI/V,MAAK8Q,YACT9Q,KAAKqR,SAAS4N,YAAYlJ,GAC1B/V,KAAKqR,SAASiI,sBACPtZ,MAAKmO,SAASmB,OAAOyG,IAHA/V,KAAK+Q,GAAGkL,QAAQ,cAAetgB,YAM5D6R,OAAOQ,KAAKjF,UAAUmW,WAAa,SAASC,EAAKC,GAChD,MAAIpf,MAAK8Q,gBACN9Q,KAAKmO,SAASoB,SAAS4P,GAAOC,GADLpf,KAAK+Q,GAAGkL,QAAQ,aAActgB,YAI3D6R,OAAOQ,KAAKjF,UAAUsW,WAAa,SAASC,GAC3C3L,QAAQoF,KAAK,4EAEZ/Y,KAAK6V,YADHyJ,KAAQ,GACO,GAEA,IAInB9R,OAAOQ,KAAKjF,UAAU8M,YAAc,SAAS0J,GAC5C,GAAIC,GAAwB,mBAATD,IAAuB,EAAOA,CAEjDvf,MAAKqR,SAASwE,YAAY2J,GAC1Bxf,KAAKmO,SAAS0H,YAAc2J,EACzBxf,KAAK8Q,YACP9Q,KAAKqR,SAASiI,YAIhB9L,OAAOQ,KAAKjF,UAAUwI,kBAAoB,SAAS1C,GAClD7O,KAAKmO,SAASc,eAAiBJ,EAC5B7O,KAAK8Q,aACP9Q,KAAKqR,SAASE,kBAAkBvR,KAAKmO,SAASc,gBAC9CjP,KAAKqR,SAASiI,aAIhB9L,OAAOQ,KAAKjF,UAAUyI,OAAS,SAAStC,GACvClP,KAAKmO,SAASe,IAAMA,EACjBlP,KAAK8Q,aACP9Q,KAAKqR,SAASG,OAAOxR,KAAKmO,SAASe,KACnClP,KAAKqR,SAASiI,aAIhB9L,OAAOQ,KAAKjF,UAAU0N,QAAU,SAASqC,GACxC,GACI+E,GACApH,EAFA9G,EAAW3P,KAAK8T,gBAAgBgF,EASpC,OALGnJ,KACFkO,EAAY7d,KAAKmQ,MAAMR,GACvB8G,EAAU,GAAIjJ,QAAOoJ,QAAQiH,EAAW7d,KAAK4R,MAAO5R,KAAKmO,SAASqB,iBAClEiH,EAAQgJ,QAEFhJ,GAGRjJ,OAAOQ,KAAKjF,UAAUgJ,OAAS,WAE3B/R,KAAKmO,SAASgB,SAAWqD,cAC3BxS,KAAK0a,eAGN1a,KAAKuZ,mBAAmBvZ,KAAKqR,UAE7BrR,KAAK8J,QAAQ,gBAGd0D,OAAOQ,KAAKjF,UAAU2W,QAAU,WAE/BzU,OAAO0U,oBAAoB,eAAgB3f,KAAK+R,QAE7C/R,KAAK4Y,gBAAgB5Y,KAAK4Y,eAAe7G,SAE5C/R,KAAK+R,SAEF/R,KAAKqR,UAAUrR,KAAKqR,SAAS+F,UAIjC5J,OAAOQ,KAAKjF,UAAU6H,OAAS,WAE9B5Q,KAAK8J,QAAQ,eAId0D,OAAOQ,KAAKjF,UAAUuS,UAAY,WAGjCtb,KAAK8Q,YAAa,EAClB9Q,KAAK8J,QAAQ,iBAEb9J,KAAK+Q,GAAG6O,SAITpS,OAAOQ,KAAKjF,UAAU8W,YAAc,SAASxO,EAAUrW,GAEtDqW,EAASwO,YAAY7f,KAAKmO,SAASmB,QACnCtU,KAGDwS,OAAOQ,KAAKjF,UAAU+W,cAAgB,SAASzO,EAAUrW,GAExDqW,EAASyO,cAAc9f,KAAKmO,SAASoB,UACrCvU,KAGDwS,OAAOQ,KAAKjF,UAAU+J,sBAAwB,SAASzB,GACtDA,EAAS+K,aAAa,uBAAwBpc,KAAK6f,YAAYhP,KAAK7Q,KAAMqR,IAAW,GACrFA,EAAS+K,aAAa,uBAAwBpc,KAAK8f,cAAcjP,KAAK7Q,KAAMqR,IAAW,GACvFA,EAAS+K,aAAa,uBAAwB5O,OAAO6O,QAAQ0D,MAAMlP,KAAK7Q,OAAO,IAGhFwN,OAAOQ,KAAKjF,UAAUoT,uBAAyB,WAC9C,MAAGnc,MAAKmO,SAASM,aAOT,EAEEzO,KAAKmO,SAASS,WAEhB,GAIA,GAOTpB,OAAOQ,KAAKjF,UAAUkL,sBAAwB,SAAS7D,GACtD,GAAI4P,GAAUhgB,KAAK+O,eAAiB/O,KAAK+O,cAAciR,QAAW5P,EAAS4P,QAAU,aACjFC,EAAUjgB,KAAK+O,eAAiB/O,KAAK+O,cAAckR,QAAW7P,EAAS6P,QAAU,OACjFjR,EAAehP,KAAK+O,eAAiB/O,KAAK+O,cAAcC,aAAgBoB,EAASpB,aAAe,MACpG;OACCgR,OAASA,EACTC,OAASA,EACTjR,YAAcA,IAKhBkB,KAAK9C,YAAY5D,MAAMgE,OAAOQ,KAAKjF,WAGnCmH,KAAKzG,GAAG,QAAS,cAIjByG,KAAK7C,UAAU,cAAc,GAQ7BG,OAAOoJ,QAAU,SAASsJ,EAAatO,EAAOgN,GAC7C5e,KAAKiV,KAAOiL,EAAYjL,KACxBjV,KAAK6Y,SAAWqH,EAAYzH,IAC5BzY,KAAK7D,GAAK+jB,EAAY/jB,GACtB6D,KAAK2P,SAAWuQ,EAAYtW,MAC5B5J,KAAKmgB,QAAUD,EAAYC,QAC3BngB,KAAKogB,WAAaF,EAAYE,WAC9BpgB,KAAKqgB,mBAAqBH,EAAYG,mBACtCrgB,KAAKid,OAASiD,EAAYjD,OAC1Bjd,KAAKsgB,MAAQ,EACbtgB,KAAK4R,MAAQA,EACb5R,KAAK4e,YAAcA,EACnB5e,KAAK0U,QAAU,GAAIlH,QAAOmH,QAC1B3U,KAAKsF,SAAW,GAAI4K,MAAK/C,MACzBnN,KAAKugB,OAASvgB,KAAKsF,SAAS5I,QAE5B8Q,OAAOgT,MAAMhX,MAAMxJ,MAEnBA,KAAKygB,SAAS,uBAGdzgB,KAAK0gB,WAINlT,OAAOoJ,QAAQ7N,UAAU0W,KAAO,SAASkB,EAAQC,GAChD,GAEIlkB,GAFAkV,EAAQ+O,GAAU3gB,KAAK4R,MACvBgN,EAAcgC,GAAgB5gB,KAAK4e,WAcvC,OAVCliB,GADEkV,EACQA,EAAM4H,OAAOxZ,KAAK6Y,UAElBrL,OAAOY,KAAKsL,QAAQ1Z,KAAK6Y,SAAU,MAAO+F,GAGrDliB,EAAQgB,KAAK,SAASmjB,GACrB7gB,KAAK8gB,YAAYD,GACjB7gB,KAAKsF,SAASxD,QAAQ9B,OACrB6Q,KAAK7Q,OAEAtD,GAGR8Q,OAAOoJ,QAAQ7N,UAAUmQ,OAAS,WAEjC,MAAOlZ,MAAKyf,OAAO/hB,KAAK,SAASqjB,GAEhC,GAAIzE,GAAOyE,EAAIC,cAAc,QACzBrH,EAAOoH,EAAIjL,cAAc,OAO7B,OALA6D,GAAKsH,aAAa,OAAQjhB,KAAK6Y,UAC/ByD,EAAK4E,aAAavH,EAAM2C,EAAK6E,YAE7BnhB,KAAK4T,SAAWmN,EAET,GAAI7Q,MAAKvD,QAAQ,SAAU7K,GACjC9B,KAAKohB,aAAa,sBAAuB,WACxCtf,EAAQif,IACPlQ,KAAK7Q,MAAOA,OACb6Q,KAAK7Q,QAEN6Q,KAAK7Q,OACNtC,KAAK,SAASqjB,GACd,GAAIM,GAAa,GAAIC,eACjB1N,EAAWyN,EAAWE,kBAAkBR,EAC5C,OAAOnN,IACN/C,KAAK7Q,QAGRwN,OAAOoJ,QAAQ7N,UAAU0P,IAAM,SAASkI,GACvC,GAIIlI,GAJAnT,EAAW,GAAI4K,MAAK/C,MACpByE,EAAQ+O,GAAU3gB,KAAK4R,MAEvB6E,EAAUzW,IA2Bd,OAxBG4R,GACE5R,KAAKwhB,SAMR/I,EAAMzY,KAAKwhB,QACXlc,EAASxD,QAAQ2W,IANjB7G,EAAM6P,OAAOzhB,KAAK6Y,UAAUnb,KAAK,SAAS+a,GACzChC,EAAQ+K,QAAU/I,EAClBnT,EAASxD,QAAQ2W,MAOnBA,EAAMzY,KAAK6Y,SACXvT,EAASxD,QAAQ2W,IAYXnT,EAAS5I,SAGjB8Q,OAAOoJ,QAAQ7N,UAAU2Y,SAAW,SAASC,GAC5C3hB,KAAKsgB,MAAQqB,GAGdnU,OAAOoJ,QAAQ7N,UAAU6Y,SAAW,WACnC,MAAO5hB,MAAKsgB,OAGb9S,OAAOoJ,QAAQ7N,UAAU8Y,MAAQ,WAChC,MAAO7hB,MAAK8hB,IAGbtU,OAAOoJ,QAAQ7N,UAAUgJ,OAAS,SAASH,GAC1C5R,KAAKkE,SAAW,KACblE,KAAKwhB,SAAW5P,IAClBA,EAAMmQ,UAAU/hB,KAAKwhB,SACrBxhB,KAAKwhB,SAAU,IAIjBhU,OAAOoJ,QAAQ7N,UAAU+X,YAAc,SAASkB,GAC/C,CAAA,GAAItJ,GAAMsJ,EAAUC,YACND,GAAUE,QAGxBliB,KAAKkE,SAAW8d,EAAUG,eAAeC,eACvC1J,EACA,KACA,MAEF1Y,KAAK4T,SAAW5T,KAAKkE,SAASme,WAC5BL,EAAUM,iBACV,GAGFtiB,KAAKkE,SAASgS,YAAYlW,KAAK4T,WAG3B5T,KAAKkE,SAASqe,UAAYre,SAASqe,WACtCviB,KAAKkE,SAASqe,SAAWre,SAASqe,WAMpC/U,OAAOoJ,QAAQ7N,UAAUyZ,aAAe,SAASC,GAChD,GAAI1K,GACA2K,EAAYC,EACZC,EAAgBC,EACEC,CAGtB,IAAI9iB,KAAKkE,SAAT,CAEA,GAA+B,mBAArBA,UAASqe,SAAyB,CAc3C,GAZAG,EAAalV,OAAOY,KAAK2U,gBAAgBN,EAAOG,gBAEhDD,EAAWnV,OAAOY,KAAK2U,gBAAgBN,EAAOI,cAE9CD,EAAiB5iB,KAAKkE,SAASqe,SAASG,EAAY1iB,KAAKkE,SAAUsJ,OAAOY,KAAK4U,WAAYC,YAAYC,wBAAyB,MAAMC,gBAElIV,EAAOW,YACVP,EAAe7iB,KAAKkE,SAASqe,SAASI,EAAU3iB,KAAKkE,SAAUsJ,OAAOY,KAAK4U,WAAYC,YAAYC,wBAAyB,MAAMC,iBAGnIpL,EAAQ/X,KAAKkE,SAASmf,cAEnBT,EACF,IACC7K,EAAMuL,SAASV,EAAgBH,EAAOc,cAClCd,EAAOW,WAAaP,GACvB9K,EAAMyL,OAAOX,EAAcJ,EAAOgB,WAElC,MAAOzlB,GACR2V,QAAQ+P,IAAI,UACZd,GAAiB,EAMfA,IACHjP,QAAQ+P,IAAI,8BACZC,sBAAwBnW,OAAOY,KAAKwV,oBAAoBnB,EAAOG,eAAeiB,aAC9EnB,EAAa,uBAAyBiB,sBAAwB,KAE9Df,EAAiB5iB,KAAKkE,SAASqe,SAASG,EAAY1iB,KAAKkE,SAAUsJ,OAAOY,KAAK4U,WAAYC,YAAYC,wBAAyB,MAAMC,gBAEnIP,IAEF7K,EAAMuL,SAASV,EAAgBH,EAAOc,aAElCd,EAAOW,YACVN,EAAsBtV,OAAOY,KAAKwV,oBAAoBnB,EAAOI,aAAagB,aAC1ElB,EAAW,uBAAyBG,EAAsB,KAC1DD,EAAe7iB,KAAKkE,SAASqe,SAASI,EAAU3iB,KAAKkE,SAAUsJ,OAAOY,KAAK4U,WAAYC,YAAYC,wBAAyB,MAAMC,gBAC/HN,GACF9K,EAAMyL,OAAOX,EAAcJ,EAAOgB,kBAOtC1L,GAAQ0K,CAIT,OAAOziB,MAAK0U,QAAQoP,qBAAqB/L,EAAO/X,KAAKmgB,WAGtD3S,OAAOoJ,QAAQ7N,UAAUgb,KAAO,SAASC,GACxC,GAAIvN,GAAUzW,KACVikB,KACAC,EAAQF,EAAOG,cAEfJ,EAAO,SAASzgB,GAUnB,IARA,GAEIyR,GACAiH,EAEAoI,EALAC,EAAO/gB,EAAKugB,YAAYM,cACxBpM,EAAQtB,EAAQvS,SAASmf,cAGzBiB,EAAO,GAEPC,EAAQ,IAEE,IAAPvI,GACNA,EAAMqI,EAAKhH,QAAQ6G,EAAOI,EAAO,GAEvB,IAAPtI,IAEFjE,EAAQtB,EAAQvS,SAASmf,cACzBtL,EAAMuL,SAAShgB,EAAM0Y,GACrBjE,EAAMyL,OAAOlgB,EAAM0Y,EAAMkI,EAAM/oB,QAG/B4Z,EAAM0B,EAAQ+L,aAAazK,GAGxBzU,EAAKugB,YAAY1oB,OAASopB,EAC5BH,EAAU9gB,EAAKugB,aAEfO,EAAU9gB,EAAKugB,YAAYrG,UAAUxB,EAAIuI,EAAM,EAAEvI,EAAIuI,EAAM,GAC3DH,EAAU,MAAQA,EAAU,OAI7BH,EAAQrnB,MACPmY,IAAKA,EACLqP,QAASA,KAIXE,EAAOtI,EAmBT,OANAhc,MAAKwkB,WAAWxkB,KAAKkE,SAAU,SAASZ,GACvCygB,EAAKzgB,KAKC2gB,GAIRzW,OAAOoJ,QAAQ7N,UAAUyb,WAAa,SAAS3W,EAAM4W,GAWpD,IAVA,GASInhB,GATAohB,EAAaxgB,SAASygB,iBAAiB9W,EAAM+W,WAAWC,WAC1DC,WAAY,SAAUxhB,GACpB,MAAIA,GAAKgB,OAAU,QAAQygB,KAAKzhB,EAAKgB,MAC7BsgB,WAAWI,cAEXJ,WAAWK,iBAGpB,GAEK3hB,EAAOohB,EAAWQ,YACzBT,EAAKnhB,IAKPkK,OAAOoJ,QAAQ7N,UAAUsT,QAAU,SAAS6H,EAAOO,EAAMU,EAAUC,GAClE,GAAIC,GAAQrlB,KAAK4T,SAAS0R,iBAAiBpB,GAC1C3H,EAAY/Y,MAAMuF,UAAUwc,MAAMxnB,KAAKsnB,GACvCG,EAAQjJ,EAAUphB,MAGnB,OAAa,KAAVqqB,MACFL,IAAS,OAGV5I,GAAU1H,QAAQ,SAASkC,GAC1B,GAAI0O,IAAS,EACT/a,EAAQ,SAAStC,EAAQsd,GACzBD,KAAW,IACbD,IACGJ,GAAUA,EAAShd,EAAQsd,EAAMF,GACxB,GAATA,GAAcL,GAAUA,GAAS,GACpCM,GAAS,GAIXhB,GAAK1N,EAAMrM,IAEVmG,KAAK7Q,QAIRwN,OAAOoJ,QAAQ7N,UAAU4c,kBAAoB,SAASzB,EAAO0B,EAAMnB,EAAMzpB,GACxE,GAAI6qB,GACFC,KACAnF,EAAS3gB,KAAK4R,MACdmU,EAAS/lB,KAAK0gB,OAAOwD,GACrB8B,EAAOxY,OAAOY,KAAKsK,IAAI1Y,KAAK6Y,UAC5BoN,EAAeD,EAAKrM,KACpBuM,EAAQN,EACRO,EAAQ,EACRf,EAAW,SAAS3M,EAAKiN,GACxBI,EAASJ,GAAQjN,GAElB0M,EAAW,WACPnqB,GAAUA,IACbwS,OAAOY,KAAKzI,OAAOkgB,GAAUhR,QAAQ,SAAS4D,GAC7CkI,EAAOoB,UAAUtJ,KAGlBsN,EAASD,EAGRnF,KAEAoF,IAAQA,MACZF,EAAWrY,OAAOY,KAAKgY,MAAML,GAE7B/lB,KAAKqc,QAAQ6H,EAAO,SAASmC,EAAM1P,GAClC,GAAI2P,GAAMD,EAAKE,aAAaL,GAC1BR,EAAOlY,OAAOY,KAAK+L,WAAW8L,EAAcK,GAE1CE,EAAa,SAAS/N,GACxB,GAAIgO,EACJJ,GAAKK,OAAS,WACbC,aAAaF,GACb9P,EAAK8B,EAAKiN,IAGXW,EAAKO,QAAU,SAAS5oB,GACvB2oB,aAAaF,GACb9P,EAAK8B,EAAKiN,GACV/R,QAAQrX,MAAM0B,IAGH,SAATkmB,GAEFmC,EAAKpF,aAAa,4BAA6B,QAGpC,cAATiD,GAAsD,eAA7BmC,EAAKE,aAAa,OAE7C5P,EAAK8B,EAAKiN,GAEVe,EAAU5qB,WAAW,WACpB8a,EAAK8B,EAAKiN,IACRS,GAGJE,EAAKpF,aAAaiF,EAAOzN,GAMxBiN,KAAQG,IACVW,EAAWX,EAASH,IACpBI,EAASJ,GAAQG,EAASH,SACnBG,GAASH,IAEhBjB,EAAK9D,EAAQ+E,EAAMc,EAAYH,IAG9BlB,EAAUC,IAGd,IAAI5X,QAASA,UACbA,QAAOY,QAGPZ,OAAOY,KAAK+M,MAAQ,SAASH,GAC5B,MAAO9W,UAAS2iB,eAAe7L,IAIhCxN,OAAOY,KAAK0Y,OAAS,SAASC,GAC7B,MAAO7iB,UAAS8iB,uBAAuBD,IAGxCvZ,OAAOY,KAAKsL,QAAU,SAASjB,EAAKwO,EAAMzX,GA0CzC,QAAS0X,KACR,GAAIlnB,KAAKmnB,aAAennB,KAAKonB,KAC5B,GAAoB,MAAhBpnB,KAAKqnB,QAAmC,IAAhBrnB,KAAKqnB,QAAgBrnB,KAAKsnB,SAAY,CACjE,GAAItiB,EAGHA,GADU,OAARiiB,EACEjnB,KAAKunB,YAEC,QAARN,EACEvP,KAAK1E,MAAMhT,KAAKsnB,UAEV,QAARL,EAECO,EACExnB,KAAKsnB,SAGL,GAAIG,OAAMznB,KAAKsnB,WAIhBtnB,KAAKsnB,SAGVhiB,EAASxD,QAAQkD,OAEjBM,GAASC,QACRqX,QAAU5c,KAAKsnB,SACf/qB,OAAQ,GAAIc,QAAQd,QArExB,GAAIirB,GAAcvc,OAAOyc,IACrBC,EAAgBH,EAAc,OAAS,cAEvCliB,EAAW,GAAI4K,MAAK/C,MAEpBya,EAAM,GAAIC,gBAIVC,EAAeD,eAAe9e,SAkElC,OAhEM,oBAAsB+e,IAE3Bhf,OAAOif,eAAeD,EAAc,oBACnCrsB,MAAO,eAGN+T,IACFoY,EAAIpY,iBAAkB,GAEvBoY,EAAI/V,KAAK,MAAO4G,GAAK,GACrBmP,EAAII,mBAAqBd,EAEd,QAARD,IACFW,EAAIK,aAAeN,GAGT,QAARV,GACFW,EAAIM,iBAAiB,SAAU,oBAGrB,OAARjB,GACFW,EAAIO,iBAAiB,YAGX,UAARlB,IACFW,EAAIK,aAAe,eAGpBL,EAAIQ,OAoCG9iB,EAAS5I,SAGjB8Q,OAAOY,KAAKia,QAAU,SAAS7hB,GAC9B,GAAI8hB,KAEJ,KAAK,GAAIC,KAAU/hB,GAAK,CACvB,GAAIgiB,EACChiB,GAAImF,eAAe4c,KACvBC,EAAShiB,EAAI+hB,GACbC,EAAOC,MAAQF,EACfD,EAAI1rB,KAAK4rB,IAIX,MAAOF,IAIR9a,OAAOY,KAAKsK,IAAM,SAASD,GAC1B,GAgBEiQ,GACAC,EACAC,EAlBElQ,GACDkB,SAAW,GACXI,KAAO,GACPlB,KAAO,GACPiB,OAAS,GACT8O,UAAY,GACZlP,KAAO,GACPX,SAAW,GACXsB,UAAY,GACZwO,SAAW,GACX7T,KAAOwD,GAERsQ,EAAOtQ,EAAI4E,QAAQ,SACnB2L,EAAcvQ,EAAI4E,QAAQ,OAC1B4L,EAASxQ,EAAI4E,QAAQ,KACrByL,EAAWrQ,EAAI4E,QAAQ,IAKzB,OAAY,KAAT0L,GACFrQ,EAAIkB,SAAW,OACflB,EAAIiB,KAAOlB,EAAI4E,QAAQ,EAAGyL,GACnBpQ,IAGO,IAAZoQ,IACFpQ,EAAIoQ,SAAWrQ,EAAI8M,MAAMuD,EAAW,GACpCrQ,EAAMA,EAAI8M,MAAM,EAAGuD,IAGP,IAAVG,IACFvQ,EAAIuQ,OAASxQ,EAAI8M,MAAM0D,EAAS,GAChCxQ,EAAMA,EAAI8M,MAAM,EAAG0D,GACnBhU,KAAOwD,GAGU,IAAfuQ,GACFtQ,EAAIkB,SAAWnB,EAAI8M,MAAM,EAAGyD,GAC5BN,EAAkBjQ,EAAI8M,MAAMyD,EAAY,GACxCJ,EAAaF,EAAgBrL,QAAQ,KAEnB,KAAfuL,GACFlQ,EAAIsB,KAAOtB,EAAII,KACfJ,EAAII,KAAO,KAEXJ,EAAIsB,KAAO0O,EAAgBnD,MAAM,EAAGqD,GACpClQ,EAAII,KAAO4P,EAAgBnD,MAAMqD,IAIlClQ,EAAIqB,OAASrB,EAAIkB,SAAW,MAAQlB,EAAIsB,KAExCtB,EAAImQ,UAAYrb,OAAOY,KAAK8a,OAAOxQ,EAAII,MAEvCJ,EAAIiB,KAAOjB,EAAIqB,OAASrB,EAAImQ,YAG5BnQ,EAAII,KAAOL,EACXC,EAAImQ,UAAYrb,OAAOY,KAAK8a,OAAOzQ,GACnCC,EAAIiB,KAAOjB,EAAImQ,WAIhBnQ,EAAIM,SAAWP,EAAI4D,QAAQ3D,EAAIiB,KAAM,IACrCgP,EAAMjQ,EAAIM,SAASmQ,YAAY,KACrB,IAAPR,IACFjQ,EAAI4B,UAAY5B,EAAIM,SAASuM,MAAMoD,EAAI,IAEjCjQ,IAKRlL,OAAOY,KAAK8a,OAAS,SAASzQ,GAE7B,GAAI2Q,GAAY3Q,EAAI0Q,YAAY,IAEhC,IAAgB,IAAbC,EAAiB,GAAIF,GAAS,EAIjC,OAFAA,GAASzQ,EAAI8M,MAAM,EAAG6D,EAAY,IAOnC5b,OAAOY,KAAKib,cAAgB,SAASC,GACpC,GACCC,GAAOC,EAAaC,EAAKC,EAAWC,EADjCC,EAAgB,UAGpB,IAAsC,IAAlCN,EAAQjM,QAAQuM,GAKnB,MAJAL,GAAQD,EAAQxL,MAAM,KACtB0L,EAAcD,EAAM,GAAGzL,MAAM,KAAK,GAClC2L,EAAMF,EAAM,GAEL,GAAI9B,OAAMgC,IAAOxC,KAAMuC,GAG/BD,GAAQD,EAAQxL,MAAM8L,GACtBJ,EAAcD,EAAM,GAAGzL,MAAM,KAAK,GAClC2L,EAAMxe,OAAO4e,KAAKN,EAAM,IACxBG,EAAYD,EAAItuB,OAEhBwuB,EAAa,GAAIG,YAAWJ,EAE5B,KAAK,GAAIzuB,GAAI,EAAOyuB,EAAJzuB,IAAiBA,EAChC0uB,EAAW1uB,GAAKwuB,EAAIM,WAAW9uB,EAGhC,OAAO,IAAIwsB,OAAMkC,IAAc1C,KAAMuC,KAItChc,OAAOY,KAAK4b,UAAY,SAAS1D,EAAKtrB,EAAUoiB,GAC/C,GAAIxW,GAAG5B,CACPA,IAAI,EACJ4B,EAAI1C,SAAS4R,cAAc,UAC3BlP,EAAEqgB,KAAO,kBACTrgB,EAAEzI,OAAQ,EACVyI,EAAE0f,IAAMA,EACR1f,EAAE8f,OAAS9f,EAAEohB,mBAAqB,WAC3BhjB,GAAOhF,KAAKmnB,YAAiC,YAAnBnnB,KAAKmnB,aACpCniB,GAAI,EACDhK,GAAUA,MAGfoiB,EAASA,GAAUlZ,SAAS+lB,KAC5B7M,EAAOlH,YAAYtP,IAGpB4G,OAAOY,KAAK8b,WAAa,SAASC,EAAQnvB,EAAUoiB,GACnD,GAAIgN,GAAQD,EAAOhvB,OAClBkvB,EAAO,EACP9d,EAAK,WACJ8d,IACGD,GAASC,EACRrvB,GAAUA,IAEbwS,OAAOY,KAAK4b,UAAUG,EAAOE,GAAO9d,EAAI6Q,GAI3C5P,QAAOY,KAAK4b,UAAUG,EAAOE,GAAO9d,EAAI6Q,IAGzC5P,OAAOY,KAAKkc,OAAS,SAAShE,EAAKtrB,EAAUoiB,GAC5C,GAAIxW,GAAG5B,CACPA,IAAI,EACJ4B,EAAI1C,SAAS4R,cAAc,QAC3BlP,EAAEqgB,KAAO,WACTrgB,EAAE2jB,IAAM,aACR3jB,EAAEqO,KAAOqR,EACT1f,EAAE8f,OAAS9f,EAAEohB,mBAAqB,WAC3BhjB,GAAOhF,KAAKmnB,YAAiC,YAAnBnnB,KAAKmnB,aACpCniB,GAAI,EACDhK,GAAUA,MAGfoiB,EAASA,GAAUlZ,SAAS+lB,KAC5B7M,EAAOlH,YAAYtP,IAGpB4G,OAAOY,KAAK2Q,SAAW,SAASyL,GAC/B,GAAIC,IAAW,SAAU,MAAO,IAAK,MAEpCC,EAAQF,EAAW,GAAGG,cAAgBH,EAAWjF,MAAM,GACvDpqB,EAASsvB,EAAQtvB,MAElB,IAA0D,mBAA/C+I,UAASoe,gBAAgBvM,MAAMyU,GACzC,MAAOA,EAGR,KAAM,GAAIvvB,GAAE,EAAOE,EAAJF,EAAYA,IAC1B,GAAkE,mBAAvDiJ,UAASoe,gBAAgBvM,MAAM0U,EAAQxvB,GAAKyvB,GACtD,MAAOD,GAAQxvB,GAAKyvB,CAItB,OAAOF,IAGRhd,OAAOY,KAAK+L,WAAa,SAASR,EAAMb,GACvC,GAAIL,GAIHnF,EAHAsX,KACAlS,EAAMlL,OAAOY,KAAKsK,IAAII,GACtB+R,EAAUlR,EAAKmE,MAAM,IAGtB,OAAGpF,GAAIsB,KACClB,GAGR+R,EAAQC,MAERxX,EAAQwF,EAAKgF,MAAM,KACnBxK,EAAMuB,QAAQ,SAAS/M,GACb,OAANA,EACF+iB,EAAQC,MAERF,EAAShuB,KAAKkL,KAIhB2Q,EAAMoS,EAAQE,OAAOH,GAEdnS,EAAIuS,KAAK,OAIjBxd,OAAOY,KAAK6c,KAAO,WAClB,GAAIC,IAAI,GAAIjiB,OAAOE,UACf8hB,EAAO,uCAAuC5O,QAAQ,QAAS,SAASrS,GAC1E,GAAIhF,IAAKkmB,EAAkB,GAAdC,KAAKC,UAAa,GAAK,CAEpC,OADAF,GAAIC,KAAKE,MAAMH,EAAE,KACN,KAAHlhB,EAAShF,EAAO,EAAFA,EAAM,GAAMgE,SAAS,KAE7C,OAAOiiB,IAKRzd,OAAOY,KAAKkd,OAAS,SAASvU,EAAMrU,EAAO6oB,GAC1C,GAAIzR,GAAWtM,OAAOY,KAAKod,WAAWzU,EAAMrU,EAAO6oB,EAGnD,OAFA7oB,GAAMmH,OAAOiQ,EAAU,EAAG/C,GAEnB+C,GAGRtM,OAAOY,KAAKod,WAAa,SAASzU,EAAMrU,EAAO6oB,EAAiBE,EAAQC,GACvE,GAGIC,GAHA3U,EAAQyU,GAAU,EAClBtU,EAAMuU,GAAQhpB,EAAMvH,OACpBywB,EAAQrO,SAASvG,GAASG,EAAMH,GAAS,EAS7C,OAPIuU,KACHA,EAAkB,SAAS1kB,EAAGglB,GAC7B,MAAGhlB,GAAIglB,EAAU,EACVA,EAAJhlB,EAAc,IACdA,EAAIglB,GAAU,EAAjB,SAGc,GAAb1U,EAAIH,EACC4U,GAGRD,EAAWJ,EAAgB7oB,EAAMkpB,GAAQ7U,GACtCI,EAAIH,IAAU,EACT2U,EAAW,EAAIC,EAAQA,EAAQ,EAGvB,IAAbD,EACKC,EAEQ,KAAbD,EACKne,OAAOY,KAAKod,WAAWzU,EAAMrU,EAAO6oB,EAAiBK,EAAOzU,GAE5D3J,OAAOY,KAAKod,WAAWzU,EAAMrU,EAAO6oB,EAAiBvU,EAAO4U,KAIrEpe,OAAOY,KAAK0d,cAAgB,SAAS/U,EAAMrU,EAAO6oB,EAAiBE,EAAQC,GAC1E,GAGIC,GAHA3U,EAAQyU,GAAU,EAClBtU,EAAMuU,GAAQhpB,EAAMvH,OACpBywB,EAAQrO,SAASvG,GAASG,EAAMH,GAAS,EAS7C,OAPIuU,KACHA,EAAkB,SAAS1kB,EAAGglB,GAC7B,MAAGhlB,GAAIglB,EAAU,EACVA,EAAJhlB,EAAc,IACdA,EAAIglB,GAAU,EAAjB,SAGc,GAAb1U,EAAIH,EACC,IAGR2U,EAAWJ,EAAgB7oB,EAAMkpB,GAAQ7U,GACtCI,EAAIH,IAAU,EACI,IAAb2U,EAAiBC,EAAQ,GAEjB,IAAbD,EACKC,EAEQ,KAAbD,EACKne,OAAOY,KAAK0d,cAAc/U,EAAMrU,EAAO6oB,EAAiBK,EAAOzU,GAE/D3J,OAAOY,KAAK0d,cAAc/U,EAAMrU,EAAO6oB,EAAiBvU,EAAO4U,KAKxEpe,OAAOY,KAAK4C,MAAQ,SAAS+a,GAC5B,GAAIhb,MACAib,EAAQD,EAER9P,EAAU,SAASgQ,EAAU/kB,EAAMglB,GAMtC,MALAnb,GAAGnU,MACFqvB,SAAaA,EACb/kB,KAAaA,EACbglB,QAAaA,IAEPnb,GAGJ4L,EAAU,WACb,GAAIwP,EACDpb,GAAG5V,SACLgxB,EAASpb,EAAGqb,QAGZJ,EAAMG,EAAOF,UAAUnlB,MAAMqlB,EAAOD,SAAWF,EAAOG,EAAOjlB,QAM3D0Y,EAAQ,WACX,KAAM7O,EAAG5V,QACRwhB,KAIE0P,EAAQ,WACXtb,MAGG5V,EAAS,WACZ,MAAO4V,GAAG5V,OAGX,QACC8gB,QAAYA,EACZU,QAAYA,EACZiD,MAAUA,EACVyM,MAAUA,EACVlxB,OAAWA,IAQbqS,OAAOY,KAAK2U,gBAAkB,SAASpN,GACtC,MAAIA,IAAWA,EAAQxZ,GACf,YAAcwZ,EAAQxZ,GAAK,KAE3BqR,OAAOY,KAAKke,oBAAoB3W,IAIzCnI,OAAOY,KAAKke,oBAAsB,SAAS3W,GAC1C,GAEI/L,GAAO2iB,EAAUC,EAASC,EAF1BnZ,KACCoZ,EAA2E,iCAAhE/W,EAAQgX,cAAcrK,gBAAgBiE,aAAa,QAYnE,KATG5Q,EAAQiX,WAAaC,KAAKC,YAE5BljB,EAAQ4D,OAAOY,KAAK2e,gBAAgBpX,GAAW,EAE/CrC,EAAM1W,KAAK,UAAUgN,EAAM,KAC3B+L,EAAUA,EAAQqX,YAIZrX,GAA+B,GAApBA,EAAQiX,SAAejX,EAAUA,EAAQqX,WAC3D,CACCpjB,EAAQ,CACR,KAAK,GAAIqjB,GAAUtX,EAAQuX,gBAAiBD,EAASA,EAAUA,EAAQC,gBAGlED,EAAQL,UAAYC,KAAKM,oBAGzBF,EAAQV,UAAY5W,EAAQ4W,YAC7B3iB,CAGJ2iB,GAAW5W,EAAQ4W,SAASpI,cAC5BqI,EAAWE,EAAU,SAAWH,EAAWA,EAC3CE,EAAa7iB,EAAQ,KAAOA,EAAM,GAAK,IAAM,GAC7C0J,EAAMzJ,OAAO,EAAG,EAAG2iB,EAAUC,GAG9B,MAAOnZ,GAAMnY,OAAS,KAAOmY,EAAM0X,KAAK,KAAO,MAGhDxd,OAAOY,KAAK4U,WAAa,SAASoK,GACjC,GAAIC,IACHC,MAAU,+BACVC,KAAQ,+BAET,OAAOF,GAAGD,IAAW,MAItB5f,OAAOY,KAAKwV,oBAAsB,SAAS4J,GACzC,GAAIjE,GAAQiE,EAAIjqB,MAAM,eAWtB,OAVAgmB,GAAQA,EAAMvc,IAAI,SAASygB,GACzB,MAAa,MAATA,EACK,OAGI,MAATA,EACK,OAEF,IAAOA,EAAO,MAEhB,aAAiBlE,EAAMyB,KAAK,KAAO,KAG5Cxd,OAAOY,KAAK2e,gBAAkB,SAASW,GAKtC,IAAK,GAFDC,GAFAluB,EAASiuB,EAASV,WAClBY,EAAWnuB,EAAOouB,WAElBjkB,EAAQ,GACH3O,EAAI,EAAGA,EAAI2yB,EAASzyB,SAC5BwyB,EAAMC,EAAS3yB,GACZ0yB,EAAIf,WAAaC,KAAKC,WACxBljB,IAEE+jB,GAAOD,GAL0BzyB,KAQrC,MAAO2O,IAIR4D,OAAOY,KAAKC,SAAW,SAAS7H,GAC9B,IAAK,GAAIvL,GAAI,EAAGE,EAASQ,UAAUR,OAAYA,EAAJF,EAAYA,IAAK,CAC1D,GAAI6yB,GAASnyB,UAAUV,EACvB,KAAK,GAAI8yB,KAAQD,GACG,SAAdtnB,EAAIunB,KAAkBvnB,EAAIunB,GAAQD,EAAOC,IAGjD,MAAOvnB,IAGTgH,OAAOY,KAAK4f,OAAS,SAAS5Q,GAC1B,GAAI6Q,MAAa1I,MAAMxnB,KAAKpC,UAAW,EAOvC,OANAsyB,GAAQpZ,QAAQ,SAAUiZ,GACpBA,GACJhlB,OAAOolB,oBAAoBJ,GAAQjZ,QAAQ,SAASsZ,GAClDrlB,OAAOif,eAAe3K,EAAQ+Q,EAAUrlB,OAAOslB,yBAAyBN,EAAQK,QAG7E/Q,GAGX5P,OAAOY,KAAKgY,MAAQ,SAAS5f,GAC3B,MAAOgH,QAAOY,KAAK3K,QAAQ+C,GAAOA,EAAI+e,QAAU/X,OAAOY,KAAK4f,UAAWxnB,IAGzEgH,OAAOY,KAAK8M,UAAY,SAAS1U,GAC7B,SAAUA,GAAuB,GAAhBA,EAAIomB,WAGzBpf,OAAOY,KAAK8N,SAAW,SAASmS,GAC9B,OAAQ5Q,MAAM6Q,WAAWD,KAAOE,SAASF,IAG3C7gB,OAAOY,KAAKogB,SAAW,SAAShB,GAC9B,MAAuB,gBAARA,IAAoBA,YAAeiB,SAGpDjhB,OAAOY,KAAK3K,QAAUD,MAAMC,SAAW,SAAS+C,GAC9C,MAA+C,mBAAxCsC,OAAOC,UAAUC,SAASjL,KAAKyI,IAIxCgH,OAAOY,KAAKzI,OAAS,SAAStK,GAC7B,GACIqzB,GAAOvzB,EAAQiN,EADfwB,EAAQ,EAGZ,KAAIvO,EAAQ,QAMX,KAJAqzB,EAAQ5lB,OAAO6lB,KAAKtzB,GACpBF,EAASuzB,EAAMvzB,OACfiN,EAAS5E,MAAMrI,KAENyO,EAAQzO,GACfiN,EAAOwB,GAASvO,EAAOqzB,EAAM9kB,GAE/B,OAAOxB,IAEToF,OAAOmH,QAAU,SAASia,GACxB,MAAGA,GAAe5uB,KAAKgT,MAAM4b,GAA7B,QAGFphB,OAAOmH,QAAQ5L,UAAU8lB,yBAA2B,SAASC,EAAiBC,EAAM5yB,GAClF,GAAI6f,GAAMuB,SAASwR,GACjB5a,EAAiB2a,EAAkB,EACnC/Z,EAAM,IAAIZ,EAAe,GAQ3B,OANAY,IAAmB,GAAXiH,EAAM,GAEX7f,IAAI4Y,GAAO,IAAM5Y,EAAK,KAIlB4Y,GAGTvH,OAAOmH,QAAQ5L,UAAUimB,sBAAwB,SAASC,GACxD,GAAI1F,KAaJ,OAXA0F,GAAMpa,QAAQ,SAAS4Y,GACrB,GAAIyB,GAAU,EACdA,IAA8B,GAAlBzB,EAAK7jB,MAAQ,GAEtB6jB,EAAKtxB,KACN+yB,GAAW,IAAMzB,EAAKtxB,GAAK,KAG7BotB,EAAM3sB,KAAKsyB,KAGN3F,EAAMyB,KAAK,MAGpBxd,OAAOmH,QAAQ5L,UAAUomB,uBAAyB,SAASxZ,EAASc,GAClE,GAAIwY,GAAQjvB,KAAKovB,OAAOzZ,GACpBmD,EAAO9Y,KAAKgvB,sBAAsBC,EACtC,OAAInW,GAAK3d,OAKA,WAAasb,EAAU,IAAMqC,EAAO,QAHpC,WAAarC,EAAU,SAOlCjJ,OAAOmH,QAAQ5L,UAAUqmB,OAAS,SAAS9rB,GAIzC,IAHA,GACIsqB,GADArxB,KAGE+G,GAA4B,OAApBA,EAAK0pB,YAAmD,GAA5B1pB,EAAK0pB,WAAWJ,UACxDgB,EAAWtqB,EAAK0pB,WAAWY,SAE3BrxB,EAAM8yB,SACJlzB,GAAOmH,EAAKnH,GAEZqwB,QAAYlpB,EAAKkpB,QACjB5iB,MAAUgkB,EAAWpqB,MAAMuF,UAAUsU,QAAQtf,KAAK6vB,EAAUtqB,GAAQ,IAGtEA,EAAOA,EAAK0pB,UAGd,OAAOzwB,IAGTiR,OAAOmH,QAAQ5L,UAAUumB,oBAAsB,SAASV,GAEtD,GAAIW,GAAWX,EAAO9Q,MAAM,IAE5B,OAAOyR,GAAS,IAGlB/hB,OAAOmH,QAAQ5L,UAAUymB,iBAAmB,SAASZ,GAEnD,GAAIW,GAAWX,EAAO9Q,MAAM,KACxB2R,EAAgBF,EAAS,GAAKA,EAAS,GAAGzR,MAAM,KAAO,EAE3D,OAAO2R,GAAc,IAGvBjiB,OAAOmH,QAAQ5L,UAAU2mB,4BAA8B,SAASd,GAC9D,GAAIW,GAAWX,EAAO9Q,MAAM,IAC5B,OAAOyR,GAAS,IAAM,IAIxB/hB,OAAOmH,QAAQ5L,UAAUiK,MAAQ,SAAS4b,GACxC,GACEe,GACAC,EACAH,EACAI,EACAC,EACAC,EACAjX,EACA3B,EACA6Y,EATEjb,KAWFkb,EAAY,SAASxC,GACnB,GAAIxG,GAAMrd,EAAOsmB,EAAc/zB,CAS/B,OAPA8qB,GAAO,UACPrd,EAAQ2T,SAASkQ,GAAQ,EAAI,EAC7ByC,EAAezC,EAAKlqB,MAAM,YACvB2sB,GAAgBA,EAAa,KAC9B/zB,EAAK+zB,EAAa,KAIlBjJ,KAASA,EACTrd,MAAUA,EACVzN,GAAOA,IAAM,GAInB,OAAqB,gBAAXyyB,IACAjf,SAAU,KAGpBoF,EAAIyY,IAAMoB,EAEwB,IAA/BA,EAAOvR,QAAQ,aAAiD,MAA5BuR,EAAOA,EAAOzzB,OAAO,KAE1DyzB,EAASA,EAAOrJ,MAAM,EAAGqJ,EAAOzzB,OAAO,IAGzCy0B,EAAmB5vB,KAAKsvB,oBAAoBV,GAC5Ca,EAAgBzvB,KAAKwvB,iBAAiBZ,IAAW,GACjDiB,EAA2B7vB,KAAK0vB,4BAA4Bd,GAExDgB,IAKJD,EAAcC,EAAiB9R,MAAM,KAAK,IAAM,KAGhD/I,EAAIpF,SAAY4N,SAASoS,GAAe,EAAI,GAAO,EAEnDI,EAASJ,EAAYpsB,MAAM,YAE3BwR,EAAIob,QAAUJ,EAASA,EAAO,IAAK,EAEF,IAA9BN,EAAcpS,QAAQ,MAEvB1J,QAAQoF,KAAK,gCAGfD,EAAO2W,EAAc3R,MAAM,KAC3B3G,EAAM2B,EAAKgS,MAEX/V,EAAIka,SAEJnW,EAAKjE,QAAQ,SAAS4Y,GACpB,GAAI2C,EAED3C,KACD2C,EAAOH,EAAUxC,GACjB1Y,EAAIka,MAAMryB,KAAKwzB,MAKnBJ,EAASzS,SAASpG,GACdsG,MAAMuS,IAGNjb,EAAIka,MAAMryB,KADTozB,EAAS,IAAM,EACDC,EAAU9Y,IAGvB8P,KAAS,OACTrd,OAAWomB,EAAS,GAAM,IAMhCF,EAAYD,EAAyBtsB,MAAM,YACxCusB,GAAaA,EAAU,IACxB/a,EAAIsb,gBAAkB9S,SAASsS,EAAyB/R,MAAM,KAAK,IAEnE/I,EAAIub,sBAAwBR,EAAU,IAEtC/a,EAAIsb,gBAAkB9S,SAASsS,GAG1B9a,IAxDGpF,SAAU,MA2DtBnC,OAAOmH,QAAQ5L,UAAUwnB,UAAY,SAASxb,EAAKyb,EAAMC,GACvD,GAEIhxB,GACAixB,EACArM,EACAvG,EALAiD,EAAMyP,GAAQtsB,SACdysB,EAASF,GAAWzwB,KAAK4wB,aAAa7P,EAa1C,OAPkB,gBAARhM,KACRA,EAAM/U,KAAKgT,MAAM+B,IAGnB2b,EAAW3b,EAAIka,MAAMla,EAAIka,MAAM9zB,OAAO,GAGlB,KAAjB4Z,EAAIpF,UAEE,GAITlQ,EAASO,KAAK6wB,WAAW9b,EAAKgM,KAQ3B2P,GAA8B,SAAlBA,EAASzJ,MACtB5C,EAAO5kB,EAAOouB,WAAW6C,EAAS9mB,OAC/BmL,EAAIsb,iBACLvS,EAAQuG,EAAKyM,UAAU/b,EAAIsb,iBAC3BM,EAAOI,UAAUC,IAAI,oBACrBvxB,EAAOyhB,aAAayP,EAAQ7S,IAE5Bre,EAAOyhB,aAAayP,EAAQtM,IAG9B5kB,EAAOyhB,aAAayP,EAAQlxB,EAAO0hB,YAG9BwP,IAhBE,GAmBXnjB,OAAOmH,QAAQ5L,UAAU6nB,aAAe,SAASJ,GAC/C,GAAIzP,GAAMyP,GAAQtsB,SACdyR,EAAUoL,EAAIjL,cAAc,OAIhC,OAHAH,GAAQxZ,GAAK,qBAAsBqR,OAAOY,KAAK6c,OAC/CtV,EAAQob,UAAUC,IAAI,qBAEfrb,GAGTnI,OAAOmH,QAAQ5L,UAAUkoB,aAAe,SAASN,EAAQH,GAKpDG,EAAOI,UAAUG,SAAS,qBAC3BC,QAAUR,EAAOS,YACjBC,QAAUV,EAAOzD,gBACdiE,SACCE,SACqB,IAArBF,QAAQvE,UACa,IAArByE,QAAQzE,WAEVyE,QAAQxN,aAAesN,QAAQtN,YAC/B8M,EAAO3D,WAAW3V,YAAY8Z,UAEhCR,EAAO3D,WAAW3V,YAAYsZ,IACtBA,EAAOI,UAAUG,SAAS,sBAElCP,EAAO3D,WAAW3V,YAAYsZ,IAKlCnjB,OAAOmH,QAAQ5L,UAAU8nB,WAAa,SAAS9b,EAAKyb,GAClD,GAGgB/C,GAAM6D,EAClBjN,EAJAtD,EAAMyP,GAAQtsB,SACdyR,EAAUoL,EAAI7G,qBAAqB,QAAQ,GAC3C0T,EAAWpqB,MAAMuF,UAAUwc,MAAMxnB,KAAK4X,EAAQiY,SASlD,IALkB,gBAAR7Y,KACRA,EAAM/U,KAAKgT,MAAM+B,IAGnBuc,EAAWvc,EAAIka,MAAM1J,MAAM,IACvB+L,EAASn2B,OACX,MAAO4lB,GAAI7G,qBAAqB,QAAQ,EAG1C,MAAMoX,GAAYA,EAASn2B,OAAS,GAAG,CAcrC,GAbAsyB,EAAO6D,EAASlF,QAEC,SAAdqB,EAAKxG,MACN5C,EAAO1O,EAAQkY,WAAWJ,EAAK7jB,OAC/B+L,EAAU0O,EAAK2I,YAAcrX,GAG7BA,EADQ8X,EAAKtxB,GACH4kB,EAAI8F,eAAe4G,EAAKtxB,IAGxByxB,EAASH,EAAK7jB,OAGJ,mBAAZ+L,GAER,MADAhC,SAAQrX,MAAM,iBAAkBmxB,EAAM1Y,EAAIyY,MACnC,CAGTI,GAAWpqB,MAAMuF,UAAUwc,MAAMxnB,KAAK4X,EAAQiY,UAGhD,MAAOjY,IAGTnI,OAAOmH,QAAQ5L,UAAUwoB,QAAU,SAASC,EAAQC,GAQlD,GAPqB,gBAAXD,KACRA,EAAS,GAAIhkB,QAAOmH,QAAQ6c,IAET,gBAAXC,KACRA,EAAS,GAAIjkB,QAAOmH,QAAQ8c,IAG3BD,EAAO7hB,SAAW8hB,EAAO9hB,SAC1B,MAAO,EAET,IAAG6hB,EAAO7hB,SAAW8hB,EAAO9hB,SAC1B,MAAO,EAKT,KAAK,GAAI1U,GAAI,EAAGA,EAAIu2B,EAAOvC,MAAM9zB,OAAQF,IAAK,CAC5C,IAAIw2B,EAAOxC,MAAMh0B,GACf,MAAO,EAET,IAAGu2B,EAAOvC,MAAMh0B,GAAG2O,MAAQ6nB,EAAOxC,MAAMh0B,GAAG2O,MACzC,MAAO,EAET,IAAG4nB,EAAOvC,MAAMh0B,GAAG2O,MAAQ6nB,EAAOxC,MAAMh0B,GAAG2O,MACzC,MAAO,GAMX,MAAG4nB,GAAOvC,MAAM9zB,OAASs2B,EAAOxC,MAAM9zB,OAC7B,GAINq2B,EAAOnB,gBAAkBoB,EAAOpB,gBAC1B,EAENmB,EAAOnB,gBAAkBoB,EAAOpB,gBAC1B,GAIF,GAGT7iB,OAAOmH,QAAQ5L,UAAUiM,oBAAsB,SAASC,EAAM/C,GAC5D,GAIIqO,GAGA1C,EAPAnF,EAAMlL,OAAOY,KAAKsK,IAAIzD,GACtB6D,EAAOJ,EAAII,KACXgQ,EAAWpQ,EAAIoQ,SACfnZ,EAAWuC,EAAK4B,gBAAgBgF,GAEhCxT,EAAW,GAAI4K,MAAK/C,MACpBuH,EAAU,GAAIlH,QAAOmH,OAczB,OAXuB,mBAAbhF,KACRkO,EAAY3L,EAAK/B,MAAMR,GACvB4Q,EAASrO,EAAKiB,QAAQ0K,EAAUpF,KAChC8H,EAAO7iB,KAAK,SAASqjB,GACnB,GACIhM,GADAY,EAAUoL,EAAI8F,eAAeiC,EAEjC/T,GAAML,EAAQya,uBAAuBxZ,EAASkI,EAAUsC,SACxD7a,EAASxD,QAAQiT,MAIdzP,EAAS5I,SAGlB8Q,OAAOmH,QAAQ5L,UAAU2oB,wBAA0B,SAASC,EAAQC,EAAQjY,GAC1E,GAAIla,GAASkyB,EAAO3E,WAChBiC,EAAQjvB,KAAKovB,OAAO3vB,GACpBqZ,EAAO9Y,KAAKgvB,sBAAsBC,GAClCrlB,EAAQ,EAAK,EAAIpG,MAAMuF,UAAUsU,QAAQtf,KAAK0B,EAAOouB,WAAY8D,EACrE,OAAO,WAAahY,EAAO,IAAMb,EAAO,IAAIlP,EAAM,KAAKgoB,GAAU,GAAG,KAGtEpkB,OAAOmH,QAAQ5L,UAAU8oB,2BAA6B,SAAS9Z,EAAO4B,GACpE,GAAIgY,GAAS5Z,EAAM+Z,WACfF,EAAS7Z,EAAMga,YACnB,OAAO/xB,MAAK0xB,wBAAwBC,EAAQC,EAAQjY,IAGtDnM,OAAOmH,QAAQ5L,UAAU+a,qBAAuB,SAAS/L,EAAO4B,GAC9D,GAAI3C,GAAOgb,EAAcC,EAAYC,EAAW3O,EAAa4O,EACzDhb,EAAKib,EAAYC,EAAUC,EAAS7O,EAAW8O,CAInD,IAFAvb,EAAQe,EAAM6K,eAEQ,IAAnB5L,EAAM4V,SACPoF,EAAehb,EAAMgW,WAErBmF,EAAa,EAAK,EAAI3kB,OAAOY,KAAK2e,gBAAgB/V,GAClDib,EAAajyB,KAAKovB,OAAO4C,OACpB,CAAA,GAAGja,EAAMqL,UACd,MAAOpjB,MAAKmvB,uBAAuBnY,EAAO2C,EAE1CsY,GAAajyB,KAAKovB,OAAOpY,GAM3B,MAHAkb,GAAYlyB,KAAKgvB,sBAAsBiD,GACvC1O,EAAcxL,EAAMwL,YAEhBxL,EAAMqL,UA0BD,WAAazJ,EAAO,IAAMuY,EAAY,IAAKC,EAAY,IAAK5O,EAAa,KAzBhFpM,EAAMY,EAAM8K,aAEQ,IAAjB1L,EAAIyV,UACLwF,EAAajb,EAAI6V,WAEjBuF,EAAW,EAAK,EAAI/kB,OAAOY,KAAK2e,gBAAgB5V,GAEhDkb,EAAWryB,KAAKovB,OAAOgD,IAEvBC,EAAWryB,KAAKovB,OAAOjY,GAGzBmb,EAAUtyB,KAAKgvB,sBAAsBqD,GACrC5O,EAAY1L,EAAM0L,UAGlB6O,EAAUA,EAAQjW,QAAQ6V,EAAW,IAEjCI,EAAQn3B,SACVm3B,GAAoB,KAGf,WAAa3Y,EAAO,IAAMuY,EAAY,IAAMC,EAAa,IAAM5O,EAAc,IAAM+O,EAAUC,EAAW,IAAM9O,EAAY,MAOrIjW,OAAOmH,QAAQ5L,UAAUypB,uBAAyB,SAASvD,GACzD,GAAIwD,IAAS,IAAK,IAclB,OAZAxD,GAAMpa,QAAQ,SAASub,GACrB,GAAIzvB,GAAWyvB,EAAKxmB,MAAQ,CAG1B6oB,GAAM71B,KADLwzB,EAAKj0B,GACK,gBAAkBwE,EAAW,aAAeyvB,EAAKj0B,GAAK,KAC3C,SAAdi0B,EAAKnJ,KACF,UAAYtmB,EAAW,IAEvB,KAAOA,EAAW,OAI1B8xB,EAAMzH,KAAK,MAGpBxd,OAAOmH,QAAQ5L,UAAU2pB,uBAAyB,SAASzD,GACzD,GAAI/K,IAAS,OAeb,OAbA+K,GAAMpa,QAAQ,SAASub,GACrB,GAAIzvB,GAAWyvB,EAAKxmB,MAAQ,CAEzBwmB,GAAKj0B,GACN+nB,EAAMtnB,KAAK,IAAMwzB,EAAKj0B,IACA,SAAdi0B,EAAKnJ,MAIb/C,EAAMtnB,KAAK,eAAiB+D,EAAW,OAIpCujB,EAAM8G,KAAK,MAIpBxd,OAAOmH,QAAQ5L,UAAU4pB,qBAAuB,SAAS5d,EAAKyb,GAC5D,GAEIE,GACA+B,EACA7P,EACAgQ,EACA1O,EACA2O,EAPA9R,EAAMyP,GAAQtsB,SACd6T,EAAQgJ,EAAIsC,aAahB,OALkB,gBAARtO,KACRA,EAAM/U,KAAKgT,MAAM+B,IAIC,KAAjBA,EAAIpF,UAEE,GAIT+gB,EAAW3b,EAAIka,MAAMla,EAAIka,MAAM9zB,OAAO,GAEP,mBAArB+I,UAASqe,UACjBkQ,EAAQzyB,KAAKwyB,uBAAuBzd,EAAIka,OACxCrM,EAAiB7B,EAAIwB,SAASkQ,EAAO1R,EAAK,KAAMkC,YAAYC,wBAAyB,MAAMC,kBAGzFe,EAAQlkB,KAAK0yB,uBAAuB3d,EAAIka,OAExC4D,EAAuB9R,EAAIC,cAAckD,GAEtC2O,GAAyC,QAAjBnC,EAASzJ,OAClCrE,EAAiBiQ,EAAqBhF,WAAW6C,EAAS9mB,SAI5DgZ,GAIDA,GAAkB7N,EAAIsb,iBAAmB,GAC1CuC,EAAahQ,EAAeznB,OAEzB4Z,EAAIsb,gBAAkBuC,GACvB7a,EAAMuL,SAASV,EAAgB7N,EAAIsb,iBACnCtY,EAAMyL,OAAOZ,EAAgBgQ,KAE7Bjf,QAAQmf,MAAM,8BAA+B/d,EAAIsb,gBAAiBuC,GAClE7a,EAAMuL,SAASV,EAAgBgQ,EAAa,GAC5C7a,EAAMyL,OAAOZ,EAAgBgQ,KAEvBhQ,GACR7K,EAAMgb,WAAWnQ,GAGZ7K,GAlBE,OAqBXvK,OAAOmH,QAAQ5L,UAAUiqB,YAAc,SAAS5V,GAC9C,MAAqB,gBAAXA,IACuB,IAA/BA,EAAOC,QAAQ,aACN,GAGJ,GAGT7P,OAAOsK,OAAS,SAAStR,EAAKysB,GAgB7B,MAdAjzB,MAAKkzB,UAKJlzB,KAAKizB,GAHFA,EAGOA,EAFA/uB,SAAS4R,cAAc,OAKlCtP,EAAI2sB,YAAcnzB,KAAKmzB,YACvB3sB,EAAI4sB,KAAOpzB,KAAKozB,KAChB5sB,EAAI6sB,OAASrzB,KAAKqzB,OAClB7sB,EAAI8sB,OAAStzB,KAAKszB,OAClB9sB,EAAI+sB,YAAcvzB,KAAKuzB,YAEhBvzB,MAGRwN,OAAOsK,OAAO/O,UAAUoqB,YAAc,SAASK,GAC9C,GAAIx1B,GAAI,GAAIy1B,aAAYD,EAExB,OADAxzB,MAAKkzB,OAAOM,GAAOx1B,EACZA,GAGRwP,OAAOsK,OAAO/O,UAAUqqB,KAAO,SAASI,EAAKE,GAC5C,GAAI11B,EAEAgC,MAAKkzB,OAAOM,GAIfx1B,EAAIgC,KAAKkzB,OAAOM,IAHhB7f,QAAQoF,KAAK,YAAaya,EAAK,0BAC/Bx1B,EAAIgC,KAAKmzB,YAAYK,IAKnBE,IAAK11B,EAAE01B,IAAMA,GAChB1zB,KAAKizB,GAAGU,cAAc31B,IAIvBwP,OAAOsK,OAAO/O,UAAUsqB,OAAS,SAASG,EAAK/O,EAAMmP,GACpD,MAAI5zB,MAAKkzB,OAAOM,QAMbI,EACF5zB,KAAKizB,GAAGnhB,iBAAiB0hB,EAAK/O,EAAK5T,KAAK+iB,IAAS,GAEjD5zB,KAAKizB,GAAGnhB,iBAAiB0hB,EAAK/O,GAAM,KARpC9Q,QAAQoF,KAAK,YAAaya,EAAK,8BAC/BxzB,MAAKmzB,YAAYK,KAYnBhmB,OAAOsK,OAAO/O,UAAUuqB,OAAS,SAASE,EAAK/O,GAC9CzkB,KAAKizB,GAAGtT,oBAAoB6T,EAAK/O,GAAM,IAGxCjX,OAAOsK,OAAO/O,UAAUwqB,YAAc,SAASM,EAAOC,EAAQrP,EAAMmP,GAGnE,QAASG,KACR/zB,KAAKszB,OAAOO,EAAOpP,GACnBzkB,KAAKszB,OAAOQ,EAAQC,GAJrB/zB,KAAKqzB,OAAOQ,EAAOpP,EAAMmP,GAOzB5zB,KAAKqzB,OAAOS,EAAQC,EAAU/zB,OAE/BwN,OAAOwmB,SACPxmB,OAAOgT,MAAQ,WACd,QAASwT,MAmGT,MAhGAA,GAAMjrB,UAAU0X,SAAW,WAC1B,GAAIwT,EACJj0B,MAAKg0B,SACLxwB,MAAMuF,UAAUwc,MAAMxnB,KAAKpC,WAAWkZ,QAAQ,SAAShS,GACtD7C,KAAKg0B,MAAMnxB,OACT7C,KAEH,KAAK,GAAIk0B,KAAYl0B,MAAKg0B,MACzBC,EAAQzmB,OAAOY,KAAKzI,OAAO6H,OAAOwmB,MAAME,IAExCD,EAAMpf,QAAQ,SAASsf,GACtBn0B,KAAKoc,aAAa8X,EAAUC,IAC1Bn0B,OAMLg0B,EAAMjrB,UAAUqT,aAAe,SAAS6K,EAAMmN,EAAOC,GAErB,mBAArBr0B,MAAKg0B,MAAM/M,GAEC,kBAAZ,GACLoN,EACFr0B,KAAKg0B,MAAM/M,GAAMoI,QAAQ+E,GAEzBp0B,KAAKg0B,MAAM/M,GAAMrqB,KAAKw3B,GAEf5wB,MAAMC,QAAQ2wB,IACtBA,EAAMvf,QAAQ,SAASsf,GACnBE,EACFr0B,KAAKg0B,MAAM/M,GAAMoI,QAAQ8E,GAEzBn0B,KAAKg0B,MAAM/M,GAAMrqB,KAAKu3B,IAErBn0B,OAIJA,KAAKg0B,MAAM/M,IAASmN,GAEC,kBAAZ,GACRp0B,KAAKg0B,MAAM/M,IAASmN,GACZ5wB,MAAMC,QAAQ2wB,KACtBp0B,KAAKg0B,MAAM/M,MACXmN,EAAMvf,QAAQ,SAASsf,GACtBn0B,KAAKg0B,MAAM/M,GAAMrqB,KAAKu3B,IACpBn0B,SAMNg0B,EAAMjrB,UAAUurB,WAAa,SAASrN,EAAMsN,GAC3C,GAAI3qB,EAE2B,oBAArB5J,MAAKg0B,MAAM/M,KAEI,kBAAf,IACRrd,EAAQ5J,KAAKg0B,MAAM/M,GAAM5J,QAAQkX,GAC7B3qB,EAAQ,IACX5J,KAAKg0B,MAAM/M,GAAMpd,OAAOD,EAAO,IAExBpG,MAAMC,QAAQ8wB,IACtBA,EAAS1f,QAAQ,SAASsf,GACzBvqB,EAAQ5J,KAAKg0B,MAAM/M,GAAM5J,QAAQ8W,GAC7BvqB,EAAQ,IACX5J,KAAKg0B,MAAM/M,GAAMpd,OAAOD,EAAO,IAE9B5J,QAKNg0B,EAAMjrB,UAAUqY,aAAe,SAAS6F,EAAMjsB,EAAUw5B,GAYvD,QAASC,KACRjP,IACY,GAATA,GAAcxqB,GAAUA,IAb5B,GAAIg5B,GAAOxO,CAEX,OAA+B,mBAArBxlB,MAAKg0B,MAAM/M,IAA8B,GAEnD+M,EAAQh0B,KAAKg0B,MAAM/M,GAEnBzB,EAAQwO,EAAM74B,OACD,IAAVqqB,GAAexqB,GACjBA,QAQDg5B,GAAMnf,QAAQ,SAASsf,GACtBA,EAAKM,EAAWD,QAKjBE,SAAU,SAASl5B,GAElB,GAD0BuD,SAAvByO,OAAOwmB,MAAMx4B,KAAuBgS,OAAOwmB,MAAMx4B,OACnB,gBAAvBgS,QAAOwmB,MAAMx4B,GAAsB,KAAM,uBAAuBA,CAC1E,OAAOgS,QAAOwmB,MAAMx4B,IAErBgO,MAAO,SAASnO,GACf,IAAK,GAAI0yB,KAAQiG,GAAMjrB,UACtB1N,EAAO0yB,GAAQiG,EAAMjrB,UAAUglB,QAMnCvgB,OAAOmnB,OAASnnB,OAAOmnB,WAEvBnnB,OAAOmnB,OAAOC,WAAa,WAC1B50B,KAAKsiB,gBAAkB,KACvBtiB,KAAK60B,YAAc,MAGpBrnB,OAAOmnB,OAAOC,WAAW7rB,UAAU+rB,OAAS,SAASxS,EAAiBhN,EAAQC,EAASwf,GAEtF,GAAIC,GAAaxnB,OAAOY,KAAK2Q,SAAS,cAClCkW,EAAYznB,OAAOY,KAAK2Q,SAAS,aACjCmW,EAAc1nB,OAAOY,KAAK2Q,SAAS,eACnCoW,EAAa3nB,OAAOY,KAAK2Q,SAAS,cAGlClQ,EAAQsc,KAAKE,MAAM/V,GAEnByI,EAAUoN,KAAKE,MAAMxc,EAAQ,GAC7BK,EAAO6lB,GAAQ,EAAKA,EAAShX,EAAU,IAAM,EAAKA,EAAUA,EAAU,CAsB1E,OArBA/d,MAAKsiB,gBAAkBA,EAEvBtiB,KAAK60B,YAAehmB,EAAQK,EAG5BoT,EAAgBvM,MAAME,SAAW,SAGjCqM,EAAgBvM,MAAMlH,MAAQA,EAAQ,KAGtCyT,EAAgBvM,MAAMjH,OAASyG,EAAU,KAGzC+M,EAAgBvM,MAAMif,GAAc,aACpC1S,EAAgBvM,MAAMof,GAAc,OACpC7S,EAAgBvM,MAAMmf,GAAermB,EAAM,KAC3CyT,EAAgBvM,MAAMkf,GAAa/lB,EAAI,KACvClP,KAAKo1B,SAAWvmB,EAChB7O,KAAKkP,IAAMA,GAGVmmB,UAAYr1B,KAAK60B,YACjBS,WAAa/f,IAIf/H,OAAOmnB,OAAOC,WAAW7rB,UAAUwsB,eAAiB,WACnD,GAAIC,GAAYC,CAKhB,OAJAz1B,MAAKsiB,gBAAgBvM,MAAMlH,MAAQ,OACnC2mB,EAAax1B,KAAKsiB,gBAAgBoT,YAClCD,EAAiBtK,KAAKwK,KAAKH,EAAax1B,KAAK60B,cAG5CY,eAAiBA,EACjBG,UAAYH,IAIdjoB,OAAOmnB,OAAOkB,kBAAoB,WACjC71B,KAAKsiB,gBAAkB,KACvBtiB,KAAK60B,YAAc,MAGpBrnB,OAAOmnB,OAAOkB,kBAAkB9sB,UAAU+rB,OAAS,SAASxS,EAAiBhN,EAAQC,EAASwf,GAC7F,GAAIC,GAAaxnB,OAAOY,KAAK2Q,SAAS,cAClCkW,EAAYznB,OAAOY,KAAK2Q,SAAS,aACjCmW,EAAc1nB,OAAOY,KAAK2Q,SAAS,eACnCoW,EAAa3nB,OAAOY,KAAK2Q,SAAS,cAElC+W,EAAU,EAIVC,EAAY5K,KAAKE,MAAM/V,GACvBzG,EAASknB,EAAY,IAAM,EAAKA,EAAYA,EAAY,EAExDhY,EAAUoN,KAAKE,MAAMxc,EAAQ,GAC7BK,EAAO6lB,GAAQ,EAAKA,EAAShX,EAAU,IAAM,EAAKA,EAAUA,EAAU,EAGtEqX,EAAWjK,KAAKE,OAAOxc,EAAQK,GAAO4mB,EAsB1C,OApBA91B,MAAKsiB,gBAAkBA,EACvBtiB,KAAK60B,aAAeO,EAAWlmB,GAAO4mB,EAGtCxT,EAAgBvM,MAAME,SAAW,SAGjCqM,EAAgBvM,MAAMlH,MAAQA,EAAQ,KAGtCyT,EAAgBvM,MAAMjH,OAASyG,EAAU,KAGzC+M,EAAgBvM,MAAMif,GAAc,aACpC1S,EAAgBvM,MAAMof,GAAc,OACpC7S,EAAgBvM,MAAMkf,GAAa/lB,EAAI,KACvCoT,EAAgBvM,MAAMmf,GAAeE,EAAS,KAE9Cp1B,KAAKo1B,SAAWA,EAChBp1B,KAAKkP,IAAMA,GAEVmmB,UAAYr1B,KAAK60B,YACjBS,WAAa/f,IAIf/H,OAAOmnB,OAAOkB,kBAAkB9sB,UAAUwsB,eAAiB,WAC1D,GAAIC,GAAax1B,KAAKsiB,gBAAgBoT,YAClCD,EAAiBtK,KAAKwK,KAAKH,EAAax1B,KAAK60B,YAKjD,OAFA70B,MAAKsiB,gBAAgBvM,MAAMlH,MAAU4mB,EAAiBz1B,KAAK60B,YAAe70B,KAAKkP,IAAO,MAGrFumB,eAAiBA,EACjBG,UAA6B,EAAjBH,IAIdjoB,OAAOmnB,OAAOqB,MAAQ,WACrBh2B,KAAKsiB,gBAAkB,MAGxB9U,OAAOmnB,OAAOqB,MAAMjtB,UAAU+rB,OAAS,SAASxS,GAC/C,GAEI2T,GACAriB,EACA/E,EAAOC,EAJPomB,EAAc1nB,OAAOY,KAAK2Q,SAAS,eACnCmX,EAAW5T,EAAgBtB,cAAc,kBAiC7C,OA7BAhhB,MAAKsiB,gBAAkBA,EAKpB4T,GAAYA,EAASC,aAAa,aACpCF,EAAUC,EAAS3P,aAAa,WAChC3S,EAAWqiB,EAAQnY,MAAM,KACtBlK,EAAS,KACX/E,EAAQ+E,EAAS,GAAGyI,QAAQ,SAAU,KAEpCzI,EAAS,KACX9E,EAAS8E,EAAS,GAAGyI,QAAQ,UAAW,MAK1CiG,EAAgBvM,MAAMlH,MAASA,EAAQ,MAAQ,OAC/CyT,EAAgBvM,MAAMjH,OAAUA,EAAS,MAAQ,OAGjDwT,EAAgBvM,MAAMmf,GAAe,OAGrC5S,EAAgBvM,MAAME,SAAW,OAEjCjW,KAAKo1B,SAAWvmB,EAChB7O,KAAKkP,IAAM,GAGVmmB,UAAYxmB,EACZymB,WAAaxmB,IAKftB,OAAOmnB,OAAOqB,MAAMjtB,UAAUwsB,eAAiB,WAC9C,OACCE,eAAiB,EACjBG,UAAY,IAIdpoB,OAAO6G,UAAY,SAASlE,EAAOyB,EAAOgN,GACxC5e,KAAKmQ,MAAQA,EACbnQ,KAAK4R,MAAQA,EACb5R,KAAK4e,YAAcA,EAEnB5e,KAAK0U,QAAU,GAAIlH,QAAOmH,QAE1B3U,KAAKo2B,cACLp2B,KAAKoqB,MAAQ,EAEbpqB,KAAKq2B,MAAQ,IAEbr2B,KAAKs2B,SAAW,GAIlB9oB,OAAO6G,UAAUtL,UAAUwtB,SAAW,WACrC,CAAA,GAAIjxB,GAAW,GAAI4K,MAAK/C,MACpBwC,EAAW,GACX2G,EAActW,KAAKmQ,MAAMhV,OACzBqb,EAAc,SAASlR,GAC1B,GAAImR,GACAC,EAAO/G,EAAW,EAClBgH,EAAOrR,GAAY,GAAI4K,MAAK/C,KAgBhC,OAdGuJ,IAAQJ,EACVK,EAAK7U,WAEL6N,EAAW+G,EACXD,EAAU,GAAIjJ,QAAOoJ,QAAQ5W,KAAKmQ,MAAMR,GAAW3P,KAAK4R,MAAO5R,KAAK4e,aAEjE5e,KAAKmD,QAAQsT,GAAS/Y,KAAK,WAE7B7B,WAAW,WACV2a,EAAYG,IACV,MAIEA,EAAKja,SACXmU,KAAK7Q,KAEQwW,KAAc9Y,KAAK,WAC/BsC,KAAKoqB,MAAQpqB,KAAKo2B,WAAWj7B,OAAO,EAEhC6E,KAAKw2B,cACPx2B,KAAKy2B,gBAAkBz2B,KAAKw2B,aAEhClxB,EAASxD,QAAQ9B,KAAKo2B,aACrBvlB,KAAK7Q,OAEP,MAAOsF,GAAS5I,SAGjB8Q,OAAO6G,UAAUtL,UAAU5F,QAAU,SAASsT,GAC5C,MAAOA,GAAQgJ,OACZ/hB,KAAK,SAAS8yB,GAEb,GAAIzY,GAIAgF,EAHAgE,EAAMyP,EACN5c,EAAWmN,EAAIuB,gBAAgBtB,cAAc,QAC7C0V,EAAU,CAGd12B,MAAK22B,OAAO/iB,EAAU,SAAStQ,GAC7B,GACIszB,GADA/a,EAAMvY,EAAKnI,OAEX6gB,EAAM,CAgBV,KAbgB,IAAZ0a,IACF3e,EAAQgJ,EAAIsC,cACZtL,EAAMuL,SAAShgB,EAAM,IAGvBszB,EAAO52B,KAAKq2B,MAAQK,EAGjBE,EAAO/a,IACR6a,GAAW7a,EACXG,EAAMH,GAGKA,EAANG,GACL0a,EAAU12B,KAAKq2B,MACfra,GAAOhc,KAAKq2B,MAGTra,GAAOH,EAER6a,EAAU7a,GAAOG,EAAMhc,KAAKq2B,QAK5Bte,EAAMyL,OAAOlgB,EAAM0Y,GACnBjH,IAAM0B,EAAQ+L,aAAazK,GAC3B/X,KAAKo2B,WAAWx5B,KAAKmY,KACrB2hB,EAAU,EAGV1a,GAAO,EACPjE,EAAQgJ,EAAIsC,cACZtL,EAAMuL,SAAShgB,EAAM0Y,GAKzBe,GAAOzZ,GAEPuN,KAAK7Q,OAGH+X,IACFA,EAAMyL,OAAOzG,EAAMA,EAAK5hB,QACxB4Z,IAAM0B,EAAQ+L,aAAazK,GAC3B/X,KAAKo2B,WAAWx5B,KAAKmY,KACrB2hB,EAAU,IAGZ7lB,KAAK7Q,QAIXwN,OAAO6G,UAAUtL,UAAU4tB,OAAS,SAAS9oB,EAAM4W,GAGlD,IAFA,GAAIC,GAAaxgB,SAASygB,iBAAiB9W,EAAM+W,WAAWC,UAAW,MAAM,GAErEvhB,KAAOohB,EAAWQ,YACzBT,EAAKnhB,OAKPkK,OAAO6G,UAAUtL,UAAU8tB,gBAAkB,SAAS9hB,GAErD,MAA8B,KAA3B/U,KAAKo2B,WAAWj7B,OACX,GAGAqS,OAAOY,KAAKod,WAAWzW,EAAK/U,KAAKo2B,WAAYp2B,KAAK0U,QAAQ6c,UAGnE/jB,OAAO6G,UAAUtL,UAAU+tB,kBAAoB,SAAS/hB,GAEtD,GAAIgiB,GAAM/2B,KAAK62B,gBAAgB9hB,EAE/B,OAAO/U,MAAKg3B,uBAAuBD,IAGrCvpB,OAAO6G,UAAUtL,UAAUiuB,uBAAyB,SAASD,GAC3D,MAAKA,IAAQ/2B,KAAKoqB,MAGV2M,EAAM/2B,KAAKoqB,MAFV,GAKX5c,OAAO6G,UAAUtL,UAAUkuB,gBAAkB,SAASF,GACrD,GAAIhiB,GAAM,EAUV,OARiB,gBAAPgiB,KACTA,EAAMxZ,SAASwZ,IAGbA,GAAO,GAAKA,EAAM/2B,KAAKo2B,WAAWj7B,SACpC4Z,EAAM/U,KAAKo2B,WAAWW,IAGhBhiB,GAGRvH,OAAO6G,UAAUtL,UAAUmuB,kBAAoB,SAASz7B,GACtD,GAAI8c,GAAc9c,EAAQ,EAAKA,EAAQ,IAAMA,EAC1Cs7B,EAAM5L,KAAKwK,KAAK31B,KAAKoqB,MAAQ7R,EAEjC,OAAOvY,MAAKi3B,gBAAgBF,IAG7BvpB,OAAO6G,UAAUtL,UAAU0W,KAAO,SAASrL,GAGzC,MAFDpU,MAAKo2B,WAAa1e,KAAK1E,MAAMoB,GAC5BpU,KAAKoqB,MAAQpqB,KAAKo2B,WAAWj7B,OAAO,EAC7B6E,KAAKo2B,YAGd5oB,OAAO6G,UAAUtL,UAAUouB,KAAO,WACjC,MAAOzf,MAAKkD,UAAU5a,KAAKo2B,aAG5B5oB,OAAO6G,UAAUtL,UAAUquB,WAAa,WACvC,MAAOp3B,MAAKs2B,UAGb9oB,OAAO6G,UAAUtL,UAAUsuB,WAAa,SAAShN,GAC/C,GAAI0M,EAEJ,IAAkB,gBAAR1M,GACRrqB,KAAKw2B,YAAcnM,MACd,CAAA,GAAmB,gBAARA,GAGhB,MAFArqB,MAAKs2B,SAAWjM,EAKY,IAA3BrqB,KAAKo2B,WAAWj7B,SAID,gBAARkvB,IACR0M,EAAM/2B,KAAK62B,gBAAgBxM,GAC3BrqB,KAAKs2B,SAAWS,GAEhBA,EAAM1M,EAGRrqB,KAAK8J,QAAQ,WACXyO,WAAYvY,KAAKg3B,uBAAuBD,OAI5CjuB,OAAOif,eAAeva,OAAO6G,UAAUtL,UAAW,mBAChDuuB,IAAK,WACH,MAAOt3B,MAAKs2B,UAEdiB,IAAK,SAAUlN,GACbrqB,KAAKq3B,WAAWhN,MAIpBna,KAAK9C,YAAY5D,MAAMgE,OAAO6G,UAAUtL,WAExCyE,OAAOkD,WAAa,SAASH,GAC5BvQ,KAAKsgB,SACLtgB,KAAKoU,aACLpU,KAAK0U,QAAU,GAAIlH,QAAOmH,QACvBpE,GAAYA,EAASpV,QACvB6E,KAAKmD,QAAQoN,IAIf/C,OAAOkD,WAAW3H,UAAU5F,QAAU,SAASoN,GAC9CA,EAASsE,QAAQ,SAASkC,GACzB/W,KAAKsgB,MAAM1jB,KAAKma,EAAKE,MACrBjX,KAAKoU,UAAUxX,KAAKma,EAAKhC,MACvB/U,MAEHA,KAAKuQ,SAAWA,EAChBvQ,KAAKie,UAAYV,SAASvd,KAAKsgB,MAAM,IACrCtgB,KAAKyc,SAAWc,SAASvd,KAAKsgB,MAAMtgB,KAAKsgB,MAAMnlB,OAAO,IACtD6E,KAAKw3B,WAAax3B,KAAKyc,SAAWzc,KAAKie,WAGxCzQ,OAAOkD,WAAW3H,UAAUqP,YAAc,SAASrD,GAClD,GAAID,GAAK,EAGT,IAA6B,IAA1B9U,KAAKoU,UAAUjZ,OACjB,MAAO,EAOR,IAAIyO,GAAQ4D,OAAOY,KAAK0d,cAAc/W,EAAK/U,KAAKoU,UAAWpU,KAAK0U,QAAQ6c,QAkBxE,OAjBY,IAAT3nB,GAAeA,EAAS5J,KAAKsgB,MAAMnlB,OAAO,EAC5C2Z,EAAK9U,KAAKsgB,MAAM1W,IAKhBA,EAAQ4D,OAAOY,KAAKod,WAAWzW,EAAK/U,KAAKoU,UAAWpU,KAAK0U,QAAQ6c,SAEjEzc,EAAKlL,EAAM,GAAK,EAAI5J,KAAKsgB,MAAM1W,EAAM,GAAK5J,KAAKsgB,MAAM,GAC3CvhB,SAAP+V,IAIFA,EAAK,KAIAA,GAGRtH,OAAOkD,WAAW3H,UAAUmV,YAAc,SAASpJ,GAClD,GAAIC,GAAM,EAEM,iBAAND,KACTA,EAAKyI,SAASzI,GAKf,IAAIlL,GAAQ5J,KAAKsgB,MAAMjD,QAAQvI,EAK/B,OAJY,IAATlL,IACFmL,EAAM/U,KAAKoU,UAAUxK,IAGfmL,GAGRvH,OAAOkD,WAAW3H,UAAUoV,mBAAqB,SAASjG,GACzD,GAAIpD,GAAKqW,KAAKsM,MAAMz3B,KAAKw3B,WAAatf,EACtC,OAAOpD,IAIRtH,OAAOkD,WAAW3H,UAAUsP,mBAAqB,SAASvD,GACzD,GAAIyD,IAAczD,EAAK9U,KAAKie,WAAaje,KAAKw3B,UAC9C,OAAOrM,MAAKsM,MAAmB,IAAblf,GAAqB,KAIxC/K,OAAOkD,WAAW3H,UAAU+tB,kBAAoB,SAAS/hB,GACxD,GAAID,GAAK9U,KAAKoY,YAAYrD,GACtBwD,EAAavY,KAAKqY,mBAAmBvD,EACzC,OAAOyD,IAER/K,OAAOyF,OAAS,SAASykB,GACxB13B,KAAK03B,QAAUA,GAAW,IAG3BlqB,OAAOyF,OAAOlK,UAAUsK,UAAY,SAASD,GAE3C,GAAIukB,GAAUC,EAAU1O,EAAQxV,CAEhC,OAAIN,IAKJukB,EAAWvkB,EAAa4N,cAAc,cAOtC4W,EAAWD,EAASpR,aAAa,aACjC2C,EAAS1b,OAAOY,KAAKsK,IAAIkf,GAAU/O,UACnCnV,EAAWN,EAAaykB,aAIvBpkB,YAAgBmkB,EAChBpkB,SAAa0V,EACbxV,SAAaA,QAZbC,SAAQrX,MAAM,yBAPdqX,SAAQrX,MAAM,6BAuBjBkR,OAAOyF,OAAOlK,UAAU2J,WAAa,SAASD,GAC7C,GAAIqlB,EAEJ,OAAIrlB,IAKJqlB,EAAerlB,EAAWuO,cAAc,YAEpC8W,EAKG93B,KAAK+3B,eAAeD,EAAc,kBAJxCnkB,SAAQrX,MAAM,0BAPdqX,SAAQrX,MAAM,2BAchBkR,OAAOyF,OAAOlK,UAAU8K,gBAAkB,SAASpB,EAAYilB,GAC9D,GACII,GAAcE,EAAcC,EAC5BhoB,EAAUqE,EAASY,EAAShB,EAC5BC,EACAhE,EACA2D,EACA1D,EANA4C,EAAQhT,IAUZ,OAFG03B,KAAS13B,KAAK03B,QAAUA,GAEvBjlB,GAKJqlB,EAAerlB,EAAWuO,cAAc,cAMxCgX,EAAevlB,EAAWuO,cAAc,cAMxCiX,EAAYxlB,EAAWuO,cAAc,WAMrC/Q,EAAW+C,EAAM/C,SAAS+nB,GAC1B1jB,EAAUtB,EAAMklB,YAAYF,GAC5B9iB,EAAUlC,EAAMmlB,YAAYH,EAAcC,GAC1C/jB,EAAYlB,EAAMolB,cAAcJ,GAEhC7jB,EAAiB3Q,MAAMuF,UAAUsU,QAAQtf,KAAKk6B,EAAUjL,WAAWa,WAAYoK,GAE/E9nB,EAAQ6C,EAAM7C,MAAM8nB,EAAWhoB,GAE/B6D,KACA3D,EAAM0E,QAAQ,SAASkC,GACtBjD,EAAgBiD,EAAK9B,MAAQ8B,EAAKnN,QAGnCwG,EAAW4C,EAAM5C,SAAS0nB,GAE1B1nB,EAASgL,UAAY6c,EAAU1R,aAAa,+BAG3CnW,SAAaA,EACbD,MAAaA,EACbF,SAAaA,EACbqE,QAAaA,EACbY,QAAaA,EACbhB,UAAaA,EACbC,eAAmBA,EACnBL,gBAAoBA,QA9BpBH,SAAQrX,MAAM,sBANdqX,SAAQrX,MAAM,yBANdqX,SAAQrX,MAAM,yBANdqX,SAAQrX,MAAM,2BAqDhBkR,OAAOyF,OAAOlK,UAAUmvB,YAAc,SAASF,GAG7C,GAAI10B,GAAO00B,EAAahX,cAAc,+EACtC,OAAO1d,GAAOA,EAAKijB,aAAa,SAAU,GAI5C/Y,OAAOyF,OAAOlK,UAAUovB,YAAc,SAASH,EAAcC,GAC5D,GACII,GADA/0B,EAAO00B,EAAahX,cAAc,8CAatC,OAPK1d,KACJ+0B,EAAQJ,EAAU1R,aAAa,OAC5B8R,IACF/0B,EAAO00B,EAAahX,cAAc,YAAcqX,EAAQ,QAInD/0B,EAAOA,EAAKijB,aAAa,SAAU,GAI3C/Y,OAAOyF,OAAOlK,UAAUqvB,cAAgB,SAASJ,GAChD,GAAI10B,GAAO00B,EAAahX,cAAc,iCACtC,OAAO1d,GAAOA,EAAKijB,aAAa,SAAU,GAI3C/Y,OAAOyF,OAAOlK,UAAUqH,SAAW,SAASyQ,GAC3C,GAAIzQ,MACFtI,EAAI9H,IAmBN,OAjBAoQ,GAASkoB,UAAYxwB,EAAEiwB,eAAelX,EAAK,SAC3CzQ,EAASmoB,QAAUzwB,EAAEiwB,eAAelX,EAAK,WACzCzQ,EAASooB,YAAc1wB,EAAEiwB,eAAelX,EAAK,eAE7CzQ,EAASqoB,QAAU3wB,EAAEiwB,eAAelX,EAAK,QAEzCzQ,EAASsoB,UAAY5wB,EAAEiwB,eAAelX,EAAK,aAE3CzQ,EAASsC,WAAa5K,EAAEiwB,eAAelX,EAAK,cAC5CzQ,EAASuoB,SAAW7wB,EAAEiwB,eAAelX,EAAK,YAC1CzQ,EAASwoB,OAAS9wB,EAAEiwB,eAAelX,EAAK,UAExCzQ,EAASyoB,cAAgB/wB,EAAEgxB,kBAAkBjY,EAAK,qCAClDzQ,EAAS4P,OAASlY,EAAEgxB,kBAAkBjY,EAAK,qCAC3CzQ,EAASpB,YAAclH,EAAEgxB,kBAAkBjY,EAAK,0CAChDzQ,EAAS6P,OAASnY,EAAEgxB,kBAAkBjY,EAAK,qCAEpCzQ,GAGR5C,OAAOyF,OAAOlK,UAAUgvB,eAAiB,SAASlX,EAAK1B,GACtD,GACC8T,GADG8F,EAAQlY,EAAImY,uBAAuB,mCAAoC7Z,EAG3E,OAAI4Z,IAA0B,IAAjBA,EAAM59B,QAEnB83B,EAAK8F,EAAM,GAER9F,EAAGpF,WAAW1yB,OACT83B,EAAGpF,WAAW,GAAGoL,UAGlB,IARiC,IAYzCzrB,OAAOyF,OAAOlK,UAAU+vB,kBAAoB,SAASjY,EAAKqY,GACzD,GAAIjG,GAAKpS,EAAIG,cAAckY,EAE3B,OAAGjG,IAAMA,EAAGpF,WAAW1yB,OACf83B,EAAGpF,WAAW,GAAGoL,UAGlB,IAGRzrB,OAAOyF,OAAOlK,UAAUkH,SAAW,SAASkpB,GAC3C,GAAIzB,GAAU13B,KAAK03B,QACjBznB,KAGEmpB,EAAWD,EAAY7T,iBAAiB,QAC3CD,EAAQ7hB,MAAMuF,UAAUwc,MAAMxnB,KAAKq7B,EAkBpC,OAfA/T,GAAMxQ,QAAQ,SAASkC,GACtB,GAAI5a,GAAK4a,EAAKwP,aAAa,MACzBtR,EAAO8B,EAAKwP,aAAa,SAAW,GACpCU,EAAOlQ,EAAKwP,aAAa,eAAiB,GAC1CnG,EAAarJ,EAAKwP,aAAa,eAAiB,EAElDtW,GAAS9T,IACR8Y,KAASA,EACTwD,IAAQif,EAAUziB,EAClBgS,KAASA,EACN7G,WAAeA,KAKbnQ,GAIRzC,OAAOyF,OAAOlK,UAAUoH,MAAQ,SAASkpB,EAAUppB,GAClD,GAAIE,MAEAipB,EAAWC,EAASnf,qBAAqB,WAC3CmL,EAAQ7hB,MAAMuF,UAAUwc,MAAMxnB,KAAKq7B,GAEjCjlB,EAAiB3Q,MAAMuF,UAAUsU,QAAQtf,KAAKs7B,EAASrM,WAAWa,WAAYwL,GAE9E3kB,EAAU,GAAIlH,QAAOmH,OAwBzB,OArBA0Q,GAAMxQ,QAAQ,SAASkC,EAAMnN,GAC5B,GAAI0vB,GAAKviB,EAAKwP,aAAa,SACvBpG,EAAUzL,EAAQma,yBAAyB1a,EAAgBvK,EAAO0vB,GAClE5K,EAAQ3X,EAAKwP,aAAa,eAAiB,GAC3CgT,EAAY7K,EAAMvzB,OAASuzB,EAAM5Q,MAAM,QACvC0b,EAAgBvpB,EAASqpB,GAAIlZ,WAC7BqZ,EAAoBD,EAAcr+B,OAASq+B,EAAc1b,MAAM,QAC/D4b,GACHv9B,GAAOm9B,EACPrc,OAAWlG,EAAKwP,aAAa,WAAa,GAC1CnG,WAAemZ,EACflZ,mBAAuBoZ,EACvBxkB,KAAShF,EAASqpB,GAAIrkB,KACtBwD,IAASxI,EAASqpB,GAAI7gB,IACtB7O,MAAUA,EACVuW,QAAYA,EACZpL,IAAQ,WAAaoL,EAAU,IAEhChQ,GAAMvT,KAAK88B,KAGLvpB,GAGR3C,OAAOyF,OAAOlK,UAAU0L,IAAM,SAASD,EAASV,EAAiB6lB,GAOhE,QAASC,GAAcn6B,GACtB,GAAI4lB,KAYJ,OAVA7hB,OAAMuF,UAAUwc,MAAMxnB,KAAK0B,EAAOouB,YAAYhZ,QAAQ,SAASvR,GAC3D,MAAQA,EAAKkpB,SACfhpB,MAAMuF,UAAUwc,MAAMxnB,KAAKuF,EAAKuqB,YAAYhZ,QAAQ,SAASkC,GACzD,MAAQA,EAAKyV,SACfnH,EAAMzoB,KAAKma,OAMRsO,EAKR,QAASwU,GAAiBp6B,GACzB,GAAIsX,GAAO,IAQX,OANAvT,OAAMuF,UAAUwc,MAAMxnB,KAAK0B,EAAOouB,YAAYhZ,QAAQ,SAASvR,IAC3D,KAAOA,EAAKkpB,SAAW,QAAUlpB,EAAKkpB,WACxCzV,EAAOzT,KAIFyT,EAGR,QAAS+iB,GAAOr6B,GACf,GAAIs6B,MACFC,EAAQJ,EAAcn6B,GACtB4lB,EAAQ7hB,MAAMuF,UAAUwc,MAAMxnB,KAAKi8B,GACnC7+B,EAASkqB,EAAMlqB,MAGjB,OAAc,KAAXA,GAAqB,GAExBkqB,EAAMxQ,QAAQ,SAASkC,GACtB,GAAI5a,GAAK4a,EAAKwP,aAAa,QAAS,EACnC0P,EAAU4D,EAAiB9iB,GAC3B9B,EAAOghB,EAAQ1P,aAAa,SAAW,GACvClC,EAAO4R,EAAQpS,aAAe,GAC9B/F,EAAQ7I,EAAK6I,MAAM,KACnB4Z,EAAU5Z,EAAM,GAChBmc,EAAWH,EAAO/iB,GAClBpH,EAAWmE,EAAgB4jB,GAC3B7Z,EAAY8b,EAAUhqB,GACtBoF,EAAO8I,EAAYA,EAAU9I,IAAM,EAEhC5Y,KACAwT,GACFkO,EAAY8b,EAAUhqB,GACtBxT,EAAK0hB,EAAU1hB,GACf4Y,EAAM8I,EAAU9I,KAEhB5Y,EAAK,yBAA4B+9B,KAInCnjB,EAAKkK,aAAa,KAAM9kB,GACxB49B,EAAKn9B,MACJT,GAAMA,EACN8Y,KAAQA,EACRhY,MAASonB,EACT4V,SAAaA,EACbx6B,OAAWA,EAASA,EAAO8mB,aAAa,MAAQ,KAChDxR,IAAQA;GAKHglB,GA/ER,GAAII,GAAQ3lB,EAAQwM,cAAc,qBAChCkZ,EAAY,CAEd,OAAIC,GA+EGL,EAAOK,OAGf3sB,OAAOyF,OAAOlK,UAAUuH,IAAM,SAAS8E,EAAQtB,EAAiB6lB,GAI/D,QAASG,GAAOr6B,GACf,GAAIs6B,MACHK,EAAWhlB,EAAOmN,SAAS,6BAA8B9iB,EAAQ,KAAMwjB,YAAYoX,2BAA4B,MAC/Gl/B,EAASi/B,EAASE,cAEnB,IAAc,IAAXn/B,EAAc,QAEjB,KAAM,GAAIF,GAAEE,EAAO,EAAIF,GAAK,EAAGA,IAAM,CACpC,GAAI8b,GAAOqjB,EAASG,aAAat/B,GAE7BkB,EAAK4a,EAAKwP,aAAa,QAAS,EAClC0P,EAAUlf,EAAKiK,cAAc,WAC7BsF,EAAM2P,EAAQ1P,aAAa,OAC3BiU,EAAWzjB,EAAKiK,cAAc,YAC9BqD,EAAOmW,EAAS3W,YAAc2W,EAAS3W,YAAc,GACrD/F,EAAQwI,EAAIxI,MAAM,KAClB4Z,EAAU5Z,EAAM,GAChBnO,EAAWmE,EAAgB4jB,GAC3B7Z,EAAY8b,EAAUhqB,GACtBsqB,EAAWH,EAAO/iB,GAClBhC,EAAO8I,EAAYA,EAAU9I,IAAM,EAEjC5Y,KACAwT,GACFkO,EAAY8b,EAAUhqB,GACtBxT,EAAK0hB,EAAU1hB,GACf4Y,EAAO8I,EAAU9I,KAEjB5Y,EAAK,yBAA4B+9B,aAInCH,EAAK1K,SACFlzB,GAAMA,EACN8Y,KAAQqR,EACRrpB,MAASonB,EACT1U,SAAYA,EACZsqB,SAAaA,EACbx6B,OAAWA,EAASA,EAAO8mB,aAAa,MAAQ,KAChDxR,IAAQA,IAKZ,MAAOglB,GA/CR,GAAIU,GAASrlB,EAAO4L,cAAc,SAClC,OAAIyZ,GAiDGX,EAAOW,OAGfjtB,OAAOyF,OAAOlK,UAAUwH,SAAW,SAASiE,GAO3C,QAASolB,GAAcn6B,GACtB,GAAI4lB,KAYJ,OAVA7hB,OAAMuF,UAAUwc,MAAMxnB,KAAK0B,EAAOouB,YAAYhZ,QAAQ,SAASvR,GAC3D,MAAQA,EAAKkpB,SACfhpB,MAAMuF,UAAUwc,MAAMxnB,KAAKuF,EAAKuqB,YAAYhZ,QAAQ,SAASkC,GACzD,MAAQA,EAAKyV,SACfnH,EAAMzoB,KAAKma,OAMRsO,EAKR,QAASwU,GAAiBp6B,GACzB,GAAIsX,GAAO,IAQX,OANAvT,OAAMuF,UAAUwc,MAAMxnB,KAAK0B,EAAOouB,YAAYhZ,QAAQ,SAASvR,IAC3D,KAAOA,EAAKkpB,SAAW,QAAUlpB,EAAKkpB,WACxCzV,EAAOzT,KAIFyT,EAGR,QAAS6K,GAASniB,GACjB,GAAIs6B,MACFC,EAAQJ,EAAcn6B,GACtB4lB,EAAQ7hB,MAAMuF,UAAUwc,MAAMxnB,KAAKi8B,GACnC7+B,EAASkqB,EAAMlqB,MAGjB,OAAc,KAAXA,GAAqB,GAExBkqB,EAAMxQ,QAAQ,SAASkC,GACtB,GAMC+G,GACAvP,EACAwG,EAPAkhB,GADQlf,EAAKwP,aAAa,QAAS,EACzBsT,EAAiB9iB,IAC3B9B,EAAOghB,EAAQ1P,aAAa,SAAW,GACvClC,EAAO4R,EAAQpS,aAAe,GAC9B5M,EAAOsG,SAAS8G,GAChBqW,EAAQzlB,EAAKoI,QAAQ,UAKV,KAATqd,GACF5c,EAAQ7I,EAAK6I,MAAM,KACnBvP,EAAauP,EAAM,GACnB/I,EAAM+I,EAAM3iB,OAAS,EAAI2iB,EAAM,IAAK,EACpCic,EAAKn9B,MACJmY,IAAQA,EACRE,KAASA,EACT1G,WAAeA,EACf0I,KAASA,KAGV8iB,EAAKn9B,MACJqY,KAASA,EACTgC,KAASA,MAML8iB,GA3ER,GAAII,GAAQ3lB,EAAQwM,cAAc,0BAGlC,OAAImZ,GA2EGvY,EAASuY,OAGjB3sB,OAAOI,OAAO+sB,OAAS,WACtB36B,KAAK46B,OAAS,KACd56B,KAAKkE,SAAW,KAChBlE,KAAKiL,OAAS,KACdjL,KAAKmZ,MAAQ,KACbnZ,KAAK66B,OAAS,KAEd76B,KAAK86B,QAAU,EACf96B,KAAKq1B,UAAY,GAIlB7nB,OAAOI,OAAO+sB,OAAO5xB,UAAUM,OAAS,WAavC,MAZArJ,MAAK46B,OAAS12B,SAAS4R,cAAc,UACrC9V,KAAK46B,OAAOz+B,GAAK,iBAAmBqR,OAAOY,KAAK6c,OAChDjrB,KAAK46B,OAAOG,UAAY,KACxB/6B,KAAK46B,OAAOI,SAAW,WAEvBh7B,KAAK46B,OAAO7kB,MAAMklB,OAAS,OAE3Bj7B,KAAK46B,OAAO9oB,iBAAiB,OAAQ9R,KAAKugB,OAAO1P,KAAK7Q,OAAO,GAE7DA,KAAKk7B,SAAWrrB,UAAUsrB,UAAU53B,MAAM,sCAC1CvD,KAAKo7B,UAAY5tB,OAAOY,KAAK2Q,SAAS,aAE/B/e,KAAK46B,QAQbptB,OAAOI,OAAO+sB,OAAO5xB,UAAU0W,KAAO,SAAS7L,GAC9C,GAAIsF,GAASlZ,KACXsF,EAAW,GAAI4K,MAAK/C,KAiDrB,OA/CEnN,MAAKiL,QACPjL,KAAK+R,SAGN/R,KAAK46B,OAAOlU,OAAS,WAGpBxN,EAAOhV,SAAWgV,EAAO0hB,OAAOS,gBAChCniB,EAAOC,MAAQD,EAAOhV,SAASoe,gBAC/BpJ,EAAOoiB,OAASpiB,EAAOhV,SAASoY,KAChCpD,EAAO2hB,OAAS3hB,EAAOhV,SAAS+lB,MAAQ/Q,EAAOhV,SAAS8c,cAAc,QACtE9H,EAAOjO,OAASiO,EAAO0hB,OAAOW,cAE9BriB,EAAOjO,OAAO6G,iBAAiB,SAAUoH,EAAOsiB,QAAQ3qB,KAAKqI,IAAS,GAGtEA,EAAO4hB,QAAU,EACjB5hB,EAAOuiB,QAAQ,GAGZviB,EAAO2hB,SACT3hB,EAAO2hB,OAAO9kB,MAAM2lB,OAAS,KAMP,OAApBxiB,EAAOkC,WAA0C,OAApBlC,EAAOC,MAAMwiB,MAC5CziB,EAAOC,MAAMwiB,IAAM,MACnBziB,EAAOC,MAAMpD,MAAMpV,SAAW,WAC9BuY,EAAOC,MAAMpD,MAAM6lB,MAAQ,KAG5Bt2B,EAASxD,QAAQoX,EAAOC,QAGzBnZ,KAAK46B,OAAOhU,QAAU,SAAS5oB,GAE9BsH,EAASC,QACPqX,QAAU,2BAA6B5e,EACvCzB,OAAQ,GAAIc,QAAQd,SAKvByD,KAAKkE,SAAWlE,KAAK46B,OAAOS,gBAEvBr7B,KAAKkE,UAKTlE,KAAKkE,SAAS2N,OACd7R,KAAKkE,SAAS23B,MAAMjoB,GACpB5T,KAAKkE,SAAS43B,QAERx2B,EAAS5I,UARb4I,EAASC,OAAO,GAAIlI,OAAM,0BACnBiI,IAWXkI,OAAOI,OAAO+sB,OAAO5xB,UAAUwX,OAAS,WACvC,GACIwb,GAAQpiB,EADRlB,EAAMzY,KAAK46B,OAAOW,cAAczhB,SAAS7E,IAG7CjV,MAAKkE,SAAWlE,KAAK46B,OAAOS,gBAC5Br7B,KAAKmZ,MAAQnZ,KAAKkE,SAASoe,gBAC3BtiB,KAAKs7B,OAASt7B,KAAKkE,SAASoY,KAC5Btc,KAAK66B,OAAS76B,KAAKkE,SAAS+lB,MAAQjqB,KAAKkE,SAAS8c,cAAc,QAChEhhB,KAAKiL,OAASjL,KAAK46B,OAAOW,cAEhB,eAAP9iB,IACFsjB,EAAS/7B,KAAK46B,OAAOS,gBAAgBra,cAAc,QACnDrH,EAAOoiB,EAAOxV,aAAa,QAC3BvmB,KAAK8J,QAAQ,gBAAiB6P,KAKhCnM,OAAOI,OAAO+sB,OAAO5xB,UAAUizB,OAAS,SAASntB,EAAOC,GAGnD9O,KAAK46B,SAET56B,KAAK46B,OAAO9rB,OAASA,EAEjB2O,MAAM5O,IAAUA,EAAQ,IAAM,IACjCA,GAAS,GAGV7O,KAAK46B,OAAO/rB,MAAQA,EAGpB7O,KAAK6O,MAAQ7O,KAAK46B,OAAOhlB,wBAAwB/G,OAASA,EAC1D7O,KAAK8O,OAAS9O,KAAK46B,OAAOhlB,wBAAwB9G,QAAUA,IAI7DtB,OAAOI,OAAO+sB,OAAO5xB,UAAUyyB,QAAU,WAExCx7B,KAAK6O,MAAQ7O,KAAK46B,OAAOhlB,wBAAwB/G,MACjD7O,KAAK8O,OAAS9O,KAAK46B,OAAOhlB,wBAAwB9G,QAGnDtB,OAAOI,OAAO+sB,OAAO5xB,UAAUysB,WAAa,WAC3C,MAAOx1B,MAAKmZ,MAAMuc,aAGnBloB,OAAOI,OAAO+sB,OAAO5xB,UAAUkzB,YAAc,WAC5C,MAAOj8B,MAAKmZ,MAAM+iB,cAGnB1uB,OAAOI,OAAO+sB,OAAO5xB,UAAUozB,kBAAoB,SAAS9G,EAAWC,GACtEt1B,KAAKq1B,UAAYA,EACjBr1B,KAAKs1B,WAAaA,GAKnB9nB,OAAOI,OAAO+sB,OAAO5xB,UAAUsS,aAAe,SAASD,GAEtDpb,KAAKob,UAAYA,EAGdpb,KAAKmZ,OAA2B,OAAlBnZ,KAAKmZ,MAAMwiB,MAC3B37B,KAAKmZ,MAAMwiB,IAAM,MACjB37B,KAAKmZ,MAAMpD,MAAMpV,SAAW,SAC5BX,KAAKmZ,MAAMpD,MAAM6lB,MAAQ,SAK3BpuB,OAAOI,OAAO+sB,OAAO5xB,UAAU0yB,QAAU,SAASX,GAK7C96B,KAAKk7B,SACRl7B,KAAKmZ,MAAMpD,MAAM/V,KAAKo7B,WAAa,cAAgBN,EAAW,SAE9D96B,KAAKkE,SAASk4B,YAAYC,SAASvB,EAAS,IAK9CttB,OAAOI,OAAO+sB,OAAO5xB,UAAU+V,SAAW,SAAS/I,EAAO/N,EAAK+W,GAC3DA,IACFhJ,EAAQvI,OAAOY,KAAK2Q,SAAShJ,IAG3B/V,KAAK66B,SAAQ76B,KAAK66B,OAAO9kB,MAAMA,GAAS/N,IAG5CwF,OAAOI,OAAO+sB,OAAO5xB,UAAUkW,YAAc,SAASlJ,GAElD/V,KAAK66B,SAAQ76B,KAAK66B,OAAO9kB,MAAMA,GAAS,KAI5CvI,OAAOI,OAAO+sB,OAAO5xB,UAAUmW,WAAa,SAASC,EAAKC,EAAOoR,GAChE,GAAIzP,GAAMyP,GAAQxwB,KAAKkE,SACnBo4B,EAAQvb,EAAIjL,cAAcqJ,GAC1Bmc,EAASva,EAAIzE,IAEjB,KAAI,GAAIsJ,KAAQxG,GACfkd,EAAMrb,aAAa2E,EAAMxG,EAAMwG,GAG7B0V,IAAQA,EAAOpa,aAAaob,EAAOhB,EAAOna,aAG9C3T,OAAOI,OAAO+sB,OAAO5xB,UAAUkO,KAAO,SAASnC,GAC9C9U,KAAK86B,QAAU96B,KAAKq1B,WAAavgB,EAAG,GAGd,QAAnB9U,KAAKob,YACPpb,KAAK86B,QAAyB,GAAf96B,KAAK86B,SAGrB96B,KAAKy7B,QAAQz7B,KAAK86B,UAInBttB,OAAOI,OAAO+sB,OAAO5xB,UAAUwzB,uBAAyB,SAAStJ,GAChE,GAAIuJ,GAAM1nB,CACV,IAAIme,EAMJ,MAJAuJ,GAAOx8B,KAAK86B,QAAU7H,EAAGrd,wBAAwB4mB,KAEjD1nB,EAAKqW,KAAKE,MAAMmR,EAAOx8B,KAAKq1B,WAAa,GAM1C7nB,OAAOI,OAAO+sB,OAAO5xB,UAAU0zB,oBAAsB,SAASC,GAC7D,GAAIF,GAAM1nB,CAKV,OAHA0nB,GAAOx8B,KAAK86B,QAAU4B,EAAmBF,KACzC1nB,EAAKqW,KAAKE,MAAMmR,EAAOx8B,KAAKq1B,WAAa,GAM1C7nB,OAAOI,OAAO+sB,OAAO5xB,UAAU4zB,eAAiB,WAC/C,MAAO38B,MAAK66B,QAIbrtB,OAAOI,OAAO+sB,OAAO5xB,UAAU6zB,mBAAqB,WACnD,MAAO58B,MAAKmZ,OAIb3L,OAAOI,OAAO+sB,OAAO5xB,UAAU8zB,iBAAmB,SAAS5J,GAC1D,GAAI6J,GACAN,CAEJ,OAAGvJ,IAA0C,kBAA7BA,GAAGrd,wBAClBknB,EAAO7J,EAAGrd,wBACV4mB,EAAOM,EAAKN,KACO,IAAfM,EAAKjuB,OACS,IAAhBiuB,EAAKhuB,QACL0tB,GAAQ,GACRA,EAAOx8B,KAAKq1B,YACN,GAIF,GAIR7nB,OAAOI,OAAO+sB,OAAO5xB,UAAUg0B,OAAS,SAASC,GAE/Ch9B,KAAK46B,OAAOG,UADViC,EACsB,MAEA,MAK1BxvB,OAAOI,OAAO+sB,OAAO5xB,UAAUgJ,OAAS,WACvC/R,KAAKiL,OAAO0U,oBAAoB,SAAU3f,KAAKw7B,SAC/Cx7B,KAAKiL,OAAO6O,SAAS1K,UAItBc,KAAK9C,YAAY5D,MAAMgE,OAAOI,OAAO+sB,OAAO5xB,WAE5CyE,OAAO8D,SAAW,SAAS2rB,EAAcC,GAExCl9B,KAAKm9B,gBAAkB,UAAW,QAAS,aAAc,UAAW,YAAa,SACjFn9B,KAAKo9B,QAAU,UACfp9B,KAAKq9B,UAAY,YACd,gBAAkBn5B,UAASoe,kBAC7BtiB,KAAKm9B,eAAevgC,KAAK,aAAc,YACvCoD,KAAKo9B,QAAU,WACfp9B,KAAKq9B,UAAY,cAMfJ,GAAuD,mBAAhCzvB,QAAOI,OAAOqvB,GACvCj9B,KAAKkZ,OAAS,GAAI1L,QAAOI,OAAOqvB,GAEhCtpB,QAAQrX,MAAM,gCAIf0D,KAAKkZ,OAAOzP,GAAG,gBAAiBzJ,KAAKugB,OAAO1P,KAAK7Q,OAGjDA,KAAK0gB,UAGL1gB,KAAK0U,QAAU,GAAIlH,QAAOmH,QAE1B3U,KAAKkX,SAAU,EACflX,KAAKs9B,gBAAiB,EACtBt9B,KAAKw7B,QAAUx7B,KAAKu9B,UAAU1sB,KAAK7Q,MAEnCA,KAAKw9B,kBAELx9B,KAAKk9B,OAASA,IAAU,EAGxB1vB,OAAOgT,MAAMhX,MAAMxJ,MAEnBA,KAAKygB,SAAS,wBAGdzgB,KAAK+Q,GAAKvD,OAAOY,KAAK4C,MAAMhR,MAE5BA,KAAKmR,SAAU,GAKhB3D,OAAO8D,SAASvI,UAAU+O,QACzB,mBACA,iBACA,sBACA,mBACA,qBACA,iBACA,sBACA,oBACA,oBACA,2BACA,4BACA,2BACA,kCACA,mBACA,oBAODtK,OAAO8D,SAASvI,UAAUoN,WAAa,SAASR,EAAS9G,EAAOC,GAC/D9O,KAAKqT,UAAYsC,EACjB3V,KAAK2V,QAAU3V,KAAKkZ,OAAO7P,SAE3BrJ,KAAKy9B,UAAY5uB,EACjB7O,KAAK09B,WAAa5uB,EAElB9O,KAAK6O,MAAQA,GAAS7O,KAAKqT,UAAUsqB,YACrC39B,KAAK8O,OAASA,GAAU9O,KAAKqT,UAAUuqB,aAEvC59B,KAAKqT,UAAU6C,YAAYlW,KAAK2V,SAE7B9G,GAASC,EACX9O,KAAKkZ,OAAO8iB,OAAOh8B,KAAK6O,MAAO7O,KAAK8O,QAEpC9O,KAAKkZ,OAAO8iB,OAAO,OAAQ,QAG5B93B,SAAS4N,iBAAiB,oBAAqB9R,KAAKu9B,YAQrD/vB,OAAO8D,SAASvI,UAAU8N,eAAiB,SAASJ,EAASonB,GAE5D,MAAG79B,MAAKmR,YACPwC,SAAQrX,MAAM,0BAGf0D,KAAKmR,SAAU,EAERsF,EAAQyC,SACdxb,KAAK,SAASkW,GA0Bb,MAvBG5T,MAAK4Y,iBACP5Y,KAAK4Y,eAAe7G,SAEjB/R,KAAKkZ,OAAOjO,QACdjL,KAAKkZ,OAAOjO,OAAO0U,oBAAoB,SAAU3f,KAAKw7B,SAGvDx7B,KAAK89B,uBACL99B,KAAK+9B,2BACL/9B,KAAK8J,QAAQ,4BACb9J,KAAK4T,SAAW,KAChB5T,KAAK+gB,IAAM,KACX/gB,KAAK8W,QAAU,MAGhB9W,KAAK4Y,eAAiBnC,EAEtBzW,KAAKg+B,WAAa,EAElBh+B,KAAKi+B,sBAAwBxnB,EAAQ0J,QAErCngB,KAAKw9B,eAAiBx9B,KAAKk+B,wBAAwBL,EAAcpnB,EAAQ2J,YAElEpgB,KAAKyf,KAAK7L,EAAU6C,EAAQxB,OAElCpE,KAAK7Q,SAUTwN,OAAO8D,SAASvI,UAAU0W,KAAO,SAAS7L,EAAU6E,GACnD,GAAInT,GAAW,GAAI4K,MAAK/C,KA6BxB,OAzBAnN,MAAKm+B,aAAen+B,KAAKo+B,gBAAgBp+B,KAAKw9B,gBAC9Cx9B,KAAKggB,OAAS,GAAIxS,QAAOmnB,OAAO30B,KAAKm+B,cAErCn+B,KAAKq+B,SAAQ,GAEbnlB,OAASlZ,KAAKkZ,OAAOuG,KAAK7L,EAAU6E,GAEpCS,OAAOxb,KAAK,SAASkW,GAEpB5T,KAAKiZ,UAAUrF,GAGf5T,KAAKoZ,cAAc,WAElBpZ,KAAKqZ,eAELrZ,KAAKq+B,SAAQ,GAGb/4B,EAASxD,QAAQ9B,OAEhB6Q,KAAK7Q,QAEN6Q,KAAK7Q,OAEAsF,EAAS5I,SAGjB8Q,OAAO8D,SAASvI,UAAUkQ,UAAY,SAASrF,GAE9C5T,KAAK4Y,eAAekI,YAAY9gB,KAAKkZ,OAAOhV,UAC5ClE,KAAK4T,SAAWA,EAChB5T,KAAK+gB,IAAM/gB,KAAKkZ,OAAOhV,SAGvBlE,KAAKs+B,SAAWt+B,KAAKggB,OAAO8U,OAAOlhB,EAAU5T,KAAKkZ,OAAOrK,MAAO7O,KAAKkZ,OAAOpK,OAAQ9O,KAAKkP,KACzFlP,KAAKkZ,OAAOijB,kBAAkBn8B,KAAKs+B,SAASjJ,UAAWr1B,KAAKs+B,SAAShJ,YAGjEt1B,KAAKy9B,WAAcz9B,KAAK09B,YAC3B19B,KAAKkZ,OAAOjO,OAAO6G,iBAAiB,SAAU9R,KAAKw7B,SAAS,GAG7Dx7B,KAAKu+B,oBACLv+B,KAAKw+B,yBAINhxB,OAAO8D,SAASvI,UAAUsQ,aAAe,WAExC,GAAIiH,GAAQtgB,KAAKggB,OAAOuV,iBACpB7B,EAAM1zB,KAAK4Y,eACX6lB,EAASz+B,KAAK+Q,GAAG5V,QACrB6E,MAAKmR,SAAU,EAEfnR,KAAK0+B,YAAYpe,GAEjBtgB,KAAK2+B,gBAAkB3+B,KAAK4+B,qBAC5B5+B,KAAKmd,mBAAqBnd,KAAK2+B,gBAAgB3nB,MAEjC,IAAXynB,IACFz+B,KAAK8J,QAAQ,2BAA4B9J,KAAKmd,oBAC9Cnd,KAAK8J,QAAQ,+BAAgC9J,KAAK2+B,kBAGnDjL,EAAI3e,IAAM/U,KAAKmd,mBACfnd,KAAK8J,QAAQ,4BAA6B4pB,IAI3ClmB,OAAO8D,SAASvI,UAAUwX,OAAS,SAAS9H,GAC3CzY,KAAK8J,QAAQ,gBAAiB2O,IAY/BjL,OAAO8D,SAASvI,UAAUm1B,wBAA0B,SAASjyB,EAAQwK,GACpE,GAAItI,KAGJ,KAAK,GAAIyX,KAAQ3Z,GACZA,EAAON,eAAeia,KACzBzX,EAASyX,GAAQ3Z,EAAO2Z,GAgB1B,OAZAnP,GAAQ5B,QAAQ,SAASkZ,GACxB,GAEI8Q,GAAUpjC,EAFVqjC,EAAY/Q,EAAK1R,QAAQ,aAAc,IACvCyB,EAAQghB,EAAUzhB,QAAQ,IAGlB,KAATS,IACF+gB,EAAWC,EAAUvZ,MAAM,EAAGzH,GAC9BriB,EAAQqjC,EAAUvZ,MAAMzH,EAAM,GAE9B3P,EAAS0wB,GAAYpjC,KAGhB0S,GASRX,OAAO8D,SAASvI,UAAUq1B,gBAAkB,SAASjwB,GAEpD,GAAI+I,GAAUlX,KAAK++B,iBAAiB/+B,KAAKiP,gBACrCkvB,EAAejnB,EAAU,oBAAsB,aAC/C6lB,GAAS,CAuBb,OArBuB,kBAApB5uB,EAAS6R,SACXme,EAAe,QACfpB,GAAS,EACT7lB,GAAU,GAGY,eAApB/I,EAAS6R,QAA+C,SAApB7R,EAAS8R,SAC/Cke,EAAe,aACfpB,GAAS,EACT7lB,GAAU,GAGY,eAApB/I,EAAS6R,QAA+C,SAApB7R,EAAS8R,SAC/Cke,EAAe,oBACfpB,GAAS,EACT7lB,GAAU,GAGXlX,KAAKkX,QAAUA,EACflX,KAAKkZ,OAAO6jB,OAAOA,GACnB/8B,KAAK8J,QAAQ,mBAAoBoN,GAC1BinB,GAIR3wB,OAAO8D,SAASvI,UAAUqQ,cAAgB,SAASpe,GAClDgF,KAAKohB,aAAa,uBAAwBpmB,EAAUgF,OAIrDwN,OAAO8D,SAASvI,UAAU21B,YAAc,WACvC1+B,KAAK8W,QAAU9W,KAAKg/B,UAInBh/B,KAAKy1B,eADFz1B,KAAKkX,QACciU,KAAKwK,KAAK31B,KAAK8W,QAAQ3b,OAAS,GAEhC6E,KAAK8W,QAAQ3b,OAIpC6E,KAAK4Y,eAAe0H,MAAQtgB,KAAK8W,QAAQ3b,OAEzC6E,KAAK+Q,GAAG6O,SAITpS,OAAO8D,SAASvI,UAAUuQ,SAAW,WACpC,GACcgH,GADVjP,EAAWrR,IAEXA,MAAK4T,WAETsD,QAAUlX,KAAK++B,iBAAiB/+B,KAAKiP,gBAGlCiI,SAAWlX,KAAKkX,UAClBlX,KAAKkX,QAAUA,QACflX,KAAKm+B,aAAen+B,KAAKo+B,gBAAgBp+B,KAAKw9B,gBAC9Cx9B,KAAKggB,OAAS,GAAIxS,QAAOmnB,OAAO30B,KAAKm+B,eAItCn+B,KAAKg+B,WAAa,EAElBh+B,KAAKkZ,OAAOjC,KAAKjX,KAAKg+B,YAItB3sB,EAASitB,SAAWjtB,EAAS2O,OAAO8U,OAAOzjB,EAAS6H,OAAOC,MAAO9H,EAAS6H,OAAOrK,MAAOwC,EAAS6H,OAAOpK,OAAQuC,EAASnC,KAC1HmC,EAAS6H,OAAOijB,kBAAkB9qB,EAASitB,SAASjJ,UAAWhkB,EAASitB,SAAShJ,YAEjFhV,EAAQjP,EAAS2O,OAAOuV,iBACxBlkB,EAASqtB,YAAYpe,GAGlBjP,EAAS8L,oBACX9L,EAASqK,QAAQrK,EAAS8L,sBAO5B3P,OAAO8D,SAASvI,UAAUs1B,QAAU,SAASrB,GAC5C,MAAoB,mBAAX,GACDh9B,KAAK2V,QAAQI,MAAMC,gBAGxBgnB,KAAS,GAASh9B,KAAKk9B,OAEjBF,KAAS,IACjBh9B,KAAK2V,QAAQI,MAAMC,WAAa,UAFhChW,KAAK2V,QAAQI,MAAMC,WAAa,YAOlCxI,OAAO8D,SAASvI,UAAUqO,OAAS,WAC/BpX,KAAKkZ,OAAOjO,SACdjL,KAAKkZ,OAAOnH,SACZ/R,KAAKkZ,OAAOjO,OAAO0U,oBAAoB,SAAU3f,KAAKw7B,SACtDx7B,KAAK89B,uBACL99B,KAAK+9B,4BAGN/9B,KAAKqT,UAAUgE,YAAYrX,KAAK2V,UAKjCnI,OAAO8D,SAASvI,UAAU8W,YAAc,SAASvQ,GAChD,IAAK,GAAIyG,KAASzG,GACjBtP,KAAKkZ,OAAO4F,SAAS/I,EAAOzG,EAAOyG,KAIrCvI,OAAO8D,SAASvI,UAAU+V,SAAW,SAAS/I,EAAO/N,EAAK+W,GACzD/e,KAAKkZ,OAAO4F,SAAS/I,EAAO/N,EAAK+W,IAGlCvR,OAAO8D,SAASvI,UAAUkW,YAAc,SAASlJ,GAChD/V,KAAKkZ,OAAO+F,YAAYlJ,IAIzBvI,OAAO8D,SAASvI,UAAU+W,cAAgB,SAASvQ,GAClD,IAAM,GAAI0vB,KAAW1vB,GACpBvP,KAAKkZ,OAAOgG,WAAW+f,EAAS1vB,EAAS0vB,KAM3CzxB,OAAO8D,SAASvI,UAAUkO,KAAO,SAASnC,GACzC,MAAI9U,MAAK8W,QAMNhC,GAAM,GAAKA,GAAM9U,KAAKy1B,gBACxBz1B,KAAKg+B,WAAalpB,EAElB9U,KAAKkZ,OAAOjC,KAAKnC,GACjB9U,KAAK2+B,gBAAkB3+B,KAAK4+B,qBAC5B5+B,KAAKmd,mBAAqBnd,KAAK2+B,gBAAgB3nB,MAC/ChX,KAAK8J,QAAQ,2BAA4B9J,KAAKmd,oBAC9Cnd,KAAK8J,QAAQ,+BAAgC9J,KAAK2+B,kBAE3C,IAGD,GAjBNhrB,QAAQoF,KAAK,4BACb/Y,KAAK+Q,GAAGkL,QAAQ,OAAQtgB,YACjB,IAoCT6R,OAAO8D,SAASvI,UAAU8T,SAAW,WACpC,MAAO7c,MAAKiX,KAAKjX,KAAKg+B,WAAa,IAGpCxwB,OAAO8D,SAASvI,UAAU+T,SAAW,WACpC,MAAO9c,MAAKiX,KAAKjX,KAAKg+B,WAAa,IAIpCxwB,OAAO8D,SAASvI,UAAUm2B,cAAgB,SAASjM,GAClD,GAAIne,EACAme,KAEJne,EAAK9U,KAAKkZ,OAAOqjB,uBAAuBtJ,GACxCjzB,KAAKiX,KAAKnC,KAIXtH,OAAO8D,SAASvI,UAAU0T,SAAW,WACpC,MAAGzc,MAAKmR,QACAnR,KAAK+Q,GAAGkL,QAAQ,WAAYtgB,eAGpCqE,MAAKiX,KAAKjX,KAAKy1B,iBAIhBjoB,OAAO8D,SAASvI,UAAUkV,UAAY,WACrC,MAAGje,MAAKmR,QACAnR,KAAK+Q,GAAGkL,QAAQ,YAAatgB,eAGrCqE,MAAKiX,KAAK,IAIXzJ,OAAO8D,SAASvI,UAAUgV,QAAU,SAAS+K,GAC5C,GAAImK,GAAKjzB,KAAK+gB,IAAI8F,eAAeiC,EAG9BmK,IACFjzB,KAAKk/B,cAAcjM,IAKrBzlB,OAAO8D,SAASvI,UAAUo2B,uBAAyB,SAAS77B,GAC3D,GAAIsqB,GAAWtqB,EAAKuqB,WAChBuR,EAAOxR,EAASzyB,MAEpB,OAAGikC,IACFxR,EAAS,IACgB,IAAzBA,EAAS,GAAGhB,UACZgB,EAAS,GAAG/J,YAAYwb,OAAOlkC,QACxB,GAED,GAGRqS,OAAO8D,SAASvI,UAAUu2B,WAAa,SAASh8B,GAC/C,GAAIi8B,IAAoB,QAAS,SAAU,QAAS,SAAU,MAAO,OAAQ,SAAU,MAAO,QAC9F,OAA6D,KAAzDA,EAAiBliB,QAAQ/Z,EAAKkpB,QAAQrI,gBAElC,EAEDnkB,KAAKm/B,uBAAuB77B,IAIpCkK,OAAO8D,SAASvI,UAAUy2B,KAAO,SAASl8B,EAAM5I,EAAG+kC,GAQlD,IAPA,GAAIz6B,GAAG4oB,EAAUwR,EAEhBM,EADAC,EAAYr8B,EAEZ/G,GAASojC,GAENC,EAAO,IAAOC,EAAK,GAEhB76B,GAAKzI,EAAMpB,QAAQ,CAMzB,GALAmI,EAAO/G,EAAM6vB,QACTpsB,KAAK8/B,cAAcx8B,EAAM5I,EAAG+kC,IAAMz/B,KAAKs/B,WAAWh8B,KACrD0B,EAAI1B,IAGD0B,GAAK1B,GAAQA,EAAKy8B,kBAAoB,EAAE,CAE3C,GADAnS,EAAWtqB,EAAKsqB,UACZA,IAAYA,EAASzyB,OAGxB,MAAO6J,EAFPo6B,GAAOxR,EAASzyB,OAASyyB,EAASzyB,OAAS,CAI5C,KAAK,GAAIF,GAAImkC,EAAK,EAAGnkC,GAAK,EAAGA,IACzB2yB,EAAS3yB,IAAMykC,GAAUnjC,EAAM8yB,QAAQzB,EAAS3yB,IAYrD,IARI+J,GAAsB,IAAjBzI,EAAMpB,QAAgBwkC,GAAsC,OAAzBA,EAAU3S,aACrDzwB,EAAMK,KAAK+iC,EAAU3S,YACrB0S,EAAWC,EACXA,EAAYA,EAAU3S,YAIvB6S,IACGA,EAAOD,EAAM,CACfjsB,QAAQrX,MAAM,eACd,QAKF,MAAO0I,IAIRwI,OAAO8D,SAASvI,UAAU+2B,cAAgB,SAAS7M,EAAIv4B,GACtD,GAAIoiC,EAEJ,OAAG7J,IAA0C,kBAA7BA,GAAGrd,wBAClBknB,EAAO7J,EAAGrd,wBAGS,IAAfknB,EAAKjuB,OACS,IAAhBiuB,EAAKhuB,QACLguB,EAAKN,MAAQ9hC,GACbA,GAAKoiC,EAAKN,KAAOM,EAAKjuB,QAChB,GAIF,GAGRrB,OAAO8D,SAASvI,UAAUyb,WAAa,SAAS3W,EAAM4W,GAWrD,IAVA,GASInhB,GATAohB,EAAaxgB,SAASygB,iBAAiB9W,EAAM+W,WAAWC,WAC1DC,WAAY,SAAUxhB,GACpB,MAAO,QAAQyhB,KAAKzhB,EAAKgB,MAGjBsgB,WAAWK,cAFXL,WAAWI,iBAKpB,GAEK1hB,EAAOohB,EAAWQ,YACzBT,EAAKnhB,IAKPkK,OAAO8D,SAASvI,UAAU4tB,OAAS,SAAS9oB,EAAM4W,GAGjD,IAFA,GACInhB,GADAohB,EAAaxgB,SAASygB,iBAAiB9W,EAAM+W,WAAWob,aAAc,MAAM,GAExE18B,EAAOohB,EAAWQ,YACzBT,EAAKnhB,IAKPkK,OAAO8D,SAASvI,UAAUi2B,QAAU,WACnC,GAQIiB,GACAlrB,EATA1D,EAAWrR,KACXgN,KACAa,EAAO7N,KAAKkZ,OAAOyjB,iBACnB1lB,EAAO,EACPpI,EAAQ7O,KAAKggB,OAAOoV,SAAWp1B,KAAKggB,OAAO9Q,IAC3C0iB,EAAS5xB,KAAKs+B,SAASjJ,WAAar1B,KAAKg+B,WAAW,GACpDzZ,EAAS1V,EAAQoI,EAAQ2a,EACzBsO,EAAU,EAGVC,EAAQ,SAAS78B,GACpB,GAAI88B,GACAC,EACAzS,EAAWpqB,MAAMuF,UAAUwc,MAAMxnB,KAAKuF,EAAKuqB,WAC/C,IAAIvqB,EAAKspB,UAAYC,KAAKyT,aAAc,CAMvC,GAJAD,EAAUn8B,SAASmf,cACnBgd,EAAQE,mBAAmBj9B,GAC3B88B,EAAQC,EAAQzqB,yBAEZwqB,GAA0B,IAAhBA,EAAMvxB,OAAgC,IAAjBuxB,EAAMtxB,OACxC,MAIEsxB,GAAM5D,KAAO0D,GACftS,EAAS/Y,QAAQ,SAASvR,GACtBA,EAAKspB,UAAYC,KAAKC,WACxBxpB,EAAKugB,YAAYwb,OAAOlkC,QACxBqlC,EAAUl9B,KAMV88B,EAAMxE,MAAQsE,GAChBtS,EAAS/Y,QAAQ,SAASvR,GACtBA,EAAKspB,UAAYC,KAAKC,WACxBxpB,EAAKugB,YAAYwb,OAAOlkC,QACxBqlC,EAAUl9B,OAOXk9B,EAAY,SAASl9B,GACxB,GAAIm9B,GAASpvB,EAASqvB,6BAA6Bp9B,EACnDm9B,GAAO5rB,QAAQ,SAASkD,GACvB,GAAIiE,GAAMjE,EAAMnC,yBAEZoG,GAAsB,IAAdA,EAAInN,OAA8B,IAAfmN,EAAIlN,SAGhCkN,EAAIwgB,KAAOxgB,EAAInN,MAAQ0V,EACrBvX,EAAIiK,EAAK,KACZc,EAAM4oB,UAAS,GACf5rB,EAAM1D,EAASuH,eAAe4J,aAAazK,GAE3C/K,EAAIpQ,MAAOoa,MAAOjC,EAAKoC,IAAK,SAG1B8oB,IACFA,EAAUU,UAAS,GACnB5rB,EAAM1D,EAASuH,eAAe4J,aAAayd,GAC3CjzB,EAAIA,EAAI7R,OAAO,GAAGgc,IAAMpC,GAGzBgD,EAAM4oB,UAAS,GACf5rB,EAAM1D,EAASuH,eAAe4J,aAAazK,GAC3C/K,EAAIpQ,MACFoa,MAAOjC,EACPoC,IAAK,OAGPF,GAAQ,EACRsN,EAAS1V,EAAQoI,EAAQ2a,EACzBsO,EAAU3b,GAGX0b,EAAYloB,MAKVoB,EAAQnZ,KAAKkZ,OAAO0jB,qBACpBjB,EAAMxiB,EAAMwiB,GA4ChB,OAzCU,OAAPA,IACFxiB,EAAMwiB,IAAM,MACZxiB,EAAMpD,MAAMpV,SAAW,UAGxBX,KAAK22B,OAAO9oB,EAAMsyB,GAGR,OAAPxE,IACFxiB,EAAMwiB,IAAMA,EACZxiB,EAAMpD,MAAMymB,KAAO,OACnBrjB,EAAMpD,MAAM6lB,MAAQ,KAKlBqE,IACFA,EAAUU,UAAS,GAEnB5rB,EAAM1D,EAASuH,eAAe4J,aAAayd,GAC3CjzB,EAAIA,EAAI7R,OAAO,GAAGgc,IAAMpC,GAIrB/H,EAAI7R,SACP4c,MAAQ/X,KAAK+gB,IAAIsC,cACjBtL,MAAMwoB,mBAAmB1yB,GACzBkK,MAAM4oB,UAAS,GAEf5rB,EAAM1D,EAASuH,eAAe4J,aAAazK,OAE3C/K,EAAIpQ,MAAOoa,MAAOjC,EAAKoC,IAAKpC,KAK7BkrB,EAAY,KACZQ,OAAS,KACT1oB,MAAQ,KACRlK,EAAO,KAEAb,GAIRQ,OAAO8D,SAASvI,UAAU63B,qBAAuB,SAAUvc,EAAMwc,GAChE,GAAIC,GAAkB,aAIhBD,KACLA,EAAgB,EAGjB,KAAK,GAAI5lC,GAAI4lC,EAAe5lC,EAAIopB,EAAKlpB,OAAQF,IAC5C,GAA+C,IAA3C6lC,EAAgBzjB,QAAQgH,EAAK0c,OAAO9lC,IACvC,MAAOA,EAIT,OAAO,IAIRuS,OAAO8D,SAASvI,UAAU23B,6BAA+B,SAASp9B,GACjE,GAEIyU,GAFA0oB,KACApc,EAAO/gB,EAAKugB,YAAYwb,MAS5B,IAFArjB,IAAMhc,KAAK4gC,qBAAqBvc,GAErB,KAARrI,IAGF,MAFAjE,GAAQ/X,KAAK+gB,IAAIsC,cACjBtL,EAAMwoB,mBAAmBj9B,IACjByU,EAaT,KAVAA,EAAQ/X,KAAK+gB,IAAIsC,cACjBtL,EAAMuL,SAAShgB,EAAM,GACrByU,EAAMyL,OAAOlgB,EAAM0Y,KACnBykB,EAAO7jC,KAAKmb,GAIZA,EAAQ/X,KAAK+gB,IAAIsC,cACjBtL,EAAMuL,SAAShgB,EAAM0Y,IAAI,GAEV,IAAPA,KAEPA,IAAMhc,KAAK4gC,qBAAqBvc,EAAMrI,IAAM,GACzCA,IAAM,IAELjE,IACFA,EAAMyL,OAAOlgB,EAAM0Y,KACnBykB,EAAO7jC,KAAKmb,IAGbA,EAAQ/X,KAAK+gB,IAAIsC,cACjBtL,EAAMuL,SAAShgB,EAAM0Y,IAAI,GAS3B,OALGjE,KACFA,EAAMyL,OAAOlgB,EAAM+gB,EAAKlpB,QACxBslC,EAAO7jC,KAAKmb,IAGN0oB,GAGRjzB,OAAO8D,SAASvI,UAAUi4B,cAAgB,SAASjpB,GAClD,GAAI+kB,GACA/C,CAIJ,OAFAA,GAAOhiB,EAAMkpB,iBAEVlH,EAAK5+B,OACP2hC,EAAO/C,EAAK,GAIN,MA0BRvsB,OAAO8D,SAASvI,UAAUm4B,WAAa,WACtC,GAAIpsB,EAQJ,OAPI9U,MAAKkX,SACRpC,EAAqB,EAAhB9U,KAAKg+B,WACVmD,WAAanhC,KAAK8W,QAAQhC,EAAG,KAE7BA,EAAK9U,KAAKg+B,WACVmD,WAAanhC,KAAK8W,QAAQhC,EAAG,IAEvB9U,KAAK8W,QAA2B,EAAlB9W,KAAKg+B,WAAiB,GAAGhnB,OAG/CxJ,OAAO8D,SAASvI,UAAUq4B,SAAW,SAAS1mC,EAAG+kC,EAAG4B,GACnD,GACI1gC,GADAoX,EAAQ/X,KAAK+gB,IAAIsC,aAmBrB,OAjBAge,IAAe,EAC+B,mBAApCn9B,UAASo9B,wBAA2CD,EAGZ,mBAAjCn9B,UAASq9B,qBAAwCF,GAGjErhC,KAAKwhC,WAAaxhC,KAAKyhC,iBAAiB/mC,EAAG+kC,GAC3C1nB,EAAMuL,SAAStjB,KAAKwhC,WAAY,IAHhCzpB,EAAQ/X,KAAK+gB,IAAIwgB,oBAAoB7mC,EAAG+kC,IAHxC9+B,EAAWX,KAAK+gB,IAAIugB,uBAAuB5mC,EAAG+kC,GAC9C1nB,EAAMuL,SAAS3iB,EAAS+gC,WAAY/gC,EAASixB,SAcvC7Z,GAwBRvK,OAAO8D,SAASvI,UAAU44B,sBAAwB,WACjD,GAAIC,GACAzmC,CAEJ,OAAI6E,MAAK8W,SAKT3b,EAAS6E,KAAK8W,QAAQ3b,OAGrBymC,EADE5hC,KAAKkX,QACDiU,KAAKwK,KAAKx6B,EAAS,GAEnBA,IATNwY,QAAQoF,KAAK,wBACN,IAcTvL,OAAO8D,SAASvI,UAAU84B,oBAAsB,WAC/C,GAAI/sB,EAEJ,OAAI9U,MAAK8W,QAMRhC,EADG9U,KAAKkX,SAAWlX,KAAKggB,OAAO4V,UAAY,EACtB,EAAhB51B,KAAKg+B,WAELh+B,KAAKg+B,YAPVrqB,QAAQoF,KAAK,wBACN,IAYTvL,OAAO8D,SAASvI,UAAU+4B,qBAAuB,WAChD,GAAIhtB,GACA2H,EACAslB,CAEJ,OAAI/hC,MAAK8W,SAKT2F,EAAWzc,KAAK8W,QAAQ3b,OAGvB2Z,EADG9U,KAAKkX,QACa,EAAhBlX,KAAKg+B,WAELh+B,KAAKg+B,WAGX+D,EAAYtlB,EAAW3H,IAZtBnB,QAAQoF,KAAK,wBACN,IAgBTvL,OAAO8D,SAASvI,UAAU61B,mBAAqB,WAC9C,GAAI9pB,GACAqsB,EAAYa,CAEhB,OAAIhiC,MAAK8W,SAKL9W,KAAKkX,SACRpC,EAAqB,EAAhB9U,KAAKg+B,WACVmD,EAAanhC,KAAK8W,QAAQhC,EAAG,GAC7BktB,EAAWb,EAERnhC,KAAKggB,OAAO4V,UAAY,IAC1BoM,EAAWhiC,KAAK8W,QAAQhC,EAAG,MAG5BA,EAAK9U,KAAKg+B,WACVmD,EAAanhC,KAAK8W,QAAQhC,EAAG,GAC7BktB,EAAWb,GAGRA,IACHxtB,QAAQoF,KAAK,mBAAoBjE,EAAI9U,KAAK8W,SAC1CqqB,EAAanhC,KAAK8W,QAAQ9W,KAAK8W,QAAQ3b,OAAO,GAC9C6mC,EAAWb,IAIXnqB,MAAOmqB,EAAWnqB,MAClBG,IAAK6qB,EAAS7qB,OA1BdxD,QAAQoF,KAAK,wBACN,IA8BTvL,OAAO8D,SAASvI,UAAU2S,QAAU,SAAS3G,GAC5C,GAAID,GACA6b,EACA5Y,CAEJ,IAAG/X,KAAKmR,QACP,MAAOnR,MAAK+Q,GAAGkL,QAAQ,UAAWtgB,UAOnC,IAJG6R,OAAOY,KAAKogB,SAASzZ,KACvBA,EAAM/U,KAAK0U,QAAQ1B,MAAM+B,IAGM,mBAAtB7Q,UAASqe,SAClBoO,EAAS3wB,KAAK0U,QAAQ6b,UAAUxb,EAAK/U,KAAK+gB,KACvC4P,IACF7b,EAAK9U,KAAKkZ,OAAOqjB,uBAAuB5L,GAExC3wB,KAAK0U,QAAQuc,aAAaN,EAAQ3wB,KAAK+gB,KACvC/gB,KAAKiX,KAAKnC,QAIX,IADAiD,EAAQ/X,KAAK0U,QAAQie,qBAAqB5d,EAAK/U,KAAK+gB,KAC1C,CAMT,GAAI+b,GAAO/kB,EAAMnC,uBAEhBd,GADGgoB,EACE98B,KAAKkZ,OAAOujB,oBAAoBK,GAIhC,EAGN98B,KAAKiX,KAAKnC,GAGV9U,KAAKmd,mBAAqBpI,EAAIyY,QAG9BxtB,MAAKiX,KAAK,IAMbzJ,OAAO8D,SAASvI,UAAUk5B,iBAAmB,SAASC,GACrD,GACInJ,GADA9F,EAAKiP,GAAWliC,KAAKkZ,OAAOyjB,gBAOhC,OAFA5D,GAAQ/4B,KAAKw/B,KAAKvM,EAAI,EAAG,GAEtB8F,EACKA,EAEAmJ,GAKT10B,OAAO8D,SAASvI,UAAU04B,iBAAmB,SAAS/mC,EAAG+kC,EAAGyC,GAC3D,GACInJ,GADA9F,EAAKiP,GAAWliC,KAAKkZ,OAAOyjB,gBAGhC,OADA5D,GAAQ/4B,KAAKw/B,KAAKvM,EAAIv4B,EAAG+kC,GACtB1G,EACKA,EAEA9F,GAsBTzlB,OAAO8D,SAASvI,UAAUizB,OAAS,SAASntB,EAAOC,EAAQqzB,GAG1DniC,KAAK6O,MAAQA,EACb7O,KAAK8O,OAASA,EAEXqzB,KAAY,GACdniC,KAAKkZ,OAAO8iB,OAAOh8B,KAAK6O,MAAO7O,KAAK8O,QAKlC9O,KAAK4T,UACP5T,KAAKsZ,WAGNtZ,KAAK8J,QAAQ,oBACZ+E,MAAO7O,KAAK6O,MACZC,OAAQ9O,KAAK8O,UAMftB,OAAO8D,SAASvI,UAAUw0B,UAAY,WACrC,GAAI1uB,GAAQ7O,KAAKqT,UAAUsqB,YACvB7uB,EAAS9O,KAAKqT,UAAUuqB,YAE5B59B,MAAKg8B,OAAOntB,EAAOC,GAAQ,IAG5BtB,OAAO8D,SAASvI,UAAUw1B,kBAAoB,WACzCv+B,KAAKkZ,OAAOhV,UAGhBlE,KAAKm9B,eAAetoB,QAAQ,SAASpY,GACpCuD,KAAKkZ,OAAOhV,SAAS4N,iBAAiBrV,EAAWuD,KAAKoiC,aAAavxB,KAAK7Q,OAAO,IAC7EA,OAIJwN,OAAO8D,SAASvI,UAAU+0B,qBAAuB,WAC5C99B,KAAKkZ,OAAOhV,UAGhBlE,KAAKm9B,eAAetoB,QAAQ,SAASpY,GACpCuD,KAAKkZ,OAAOhV,SAASyb,oBAAoBljB,EAAWuD,KAAKoiC,cAAc,IACrEpiC,OAKJwN,OAAO8D,SAASvI,UAAUq5B,aAAe,SAASpkC,GACjDgC,KAAK8J,QAAQ,YAAY9L,EAAEipB,KAAMjpB,IAGlCwP,OAAO8D,SAASvI,UAAUy1B,sBAAwB,WACjDx+B,KAAKkZ,OAAOhV,SAAS4N,iBAAiB,kBAAmB9R,KAAKqiC,kBAAkBxxB,KAAK7Q,OAAO,IAG7FwN,OAAO8D,SAASvI,UAAUg1B,yBAA2B,WAChD/9B,KAAKkZ,OAAOhV,UAGhBlE,KAAK+gB,IAAIpB,oBAAoB,kBAAmB3f,KAAKqiC,mBAAmB,IAGzE70B,OAAO8D,SAASvI,UAAUs5B,kBAAoB,WACzCriC,KAAKsiC,qBACR3b,aAAa3mB,KAAKsiC,qBAEnBtiC,KAAKsiC,oBAAsBzmC,WAAW,WACrCmE,KAAKuiC,cAAgBviC,KAAKkZ,OAAOjO,OAAOu3B,eACxCxiC,KAAK8J,QAAQ,oBAAqB9J,KAAKuiC,gBACtC1xB,KAAK7Q,MAAO,MAMfwN,OAAO8D,SAASvI,UAAUwI,kBAAoB,SAAS1C,GACtD7O,KAAKiP,eAAiBJ,EACtB7O,KAAKkX,QAAUlX,KAAK++B,iBAAiBlwB,IAGtCrB,OAAO8D,SAASvI,UAAUg2B,iBAAmB,SAAS0D,GACrD,MAAGziC,MAAKs9B,iBAAmBmF,GAAUziC,KAAK6O,MAAQ4zB,GAC1C,GAEA,GAITj1B,OAAO8D,SAASvI,UAAU8M,YAAc,SAASmnB,GAE/Ch9B,KAAKs9B,eADHN,GACoB,GAGA,GAKxBxvB,OAAO8D,SAASvI,UAAUyI,OAAS,SAAStC,GAC3ClP,KAAKkP,IAAMA,GAGZ1B,OAAO8D,SAASvI,UAAUsS,aAAe,SAASD,GACjDpb,KAAKob,UAAYA,EACjBpb,KAAKkZ,OAAOmC,aAAarb,KAAKob,YAK/B5N,OAAO8D,SAASvI,UAAUsT,QAAU,SAAS6H,EAAOO,EAAMU,EAAUC,GACnE,GAAIC,GAAQrlB,KAAK4T,SAAS0R,iBAAiBpB,GAC1C3H,EAAY/Y,MAAMuF,UAAUwc,MAAMxnB,KAAKsnB,GACvCG,EAAQjJ,EAAUphB,MAGnB,OAAa,KAAVqqB,MACFL,IAAS,OAGV5I,GAAU1H,QAAQ,SAASkC,GAC1B,GAAI0O,IAAS,EACT/a,EAAQ,SAAStC,EAAQsd,GACzBD,KAAW,IACbD,IACGJ,GAAUA,EAAShd,EAAQsd,EAAMF,GACxB,GAATA,GAAcL,GAAUA,GAAS,GACpCM,GAAS,GAIXhB,GAAK1N,EAAMrM,IAEVmG,KAAK7Q,QAKRkQ,KAAK9C,YAAY5D,MAAMgE,OAAO8D,SAASvI,UAEvC,IAAIyE,QAASA,UACbA,QAAO6O,WAGP7O,OAAO6O,QAAQ0D,MAAQ,SAAS/kB,EAAUqW,GACzC,GAAIa,GAAOlS,KACP0iC,EAAc,SAASrc,EAAM1P,GAChC,GAEEkS,GACA8Z,EAHE1tB,EAAOoR,EAAKE,aAAa,QAC3Bqc,EAAa3tB,EAAKgU,OAAO,MAK3B,IAAiB,IAAd2Z,EAEFvc,EAAKpF,aAAa,SAAU,cAExB,CAEK,GAAIvI,GAAMlL,OAAOY,KAAKsK,IAAIrH,EAAS6H,OAAOjO,OAAO6O,SAAS7E,KAE1D4T,GAAYnQ,EAAImQ,UAQR8Z,EANL9Z,EAKsB,SAAjBnQ,EAAIkB,SACOpM,OAAOY,KAAK+L,WAAWzB,EAAIiB,KAAM1E,GAEjCzH,OAAOY,KAAK+L,WAAW0O,EAAW5T,GAGtCA,EAGxBoR,EAAKwc,QAAU,WAEd,MADA3wB,GAAK7C,KAAKszB,IACH,GAIThsB,IAIDtF,GAASgL,QAAQ,UAAWqmB,EAAa1nC,IAI1CwS,OAAO6O,QAAQC,KAAO,SAASthB,EAAUqW,GAExCA,EAASsU,kBAAkB,aAAc,OAAQnY,OAAO6O,QAAQymB,MAAO9nC,IAMxEwS,OAAO6O,QAAQE,UAAY,SAASvhB,EAAUqW,GAE7CA,EAASsU,kBAAkB,QAAS,MAAOnY,OAAO6O,QAAQ0mB,KAAM/nC,IAIjEwS,OAAO6O,QAAQG,IAAM,SAASxhB,EAAUqW,GAEvCA,EAASsU,kBAAkB,QAAS,aAAc,SAAShF,EAAQ+E,EAAM/O,GACxEgK,EAAOc,OAAOiE,GAAMhoB,KAAKiZ,IACvB3b,IAIJwS,OAAO6O,QAAQ0mB,KAAO,SAASpiB,EAAQ+E,EAAM/O,GAE5CgK,EAAOc,OAAOiE,GAAMhoB,KAAKiZ,IAK1BnJ,OAAO6O,QAAQymB,MAAQ,SAASniB,EAAQ+E,EAAM/O,EAAM0P,GAEnB,eAA7BA,EAAKE,aAAa,OACpB/Y,OAAO6O,QAAQ2mB,YAAYriB,EAAQ+E,GAAMhoB,KAAK,SAAS+a,EAAKiN,GAE3D/O,EAAK8B,EAAKiN,IACP,WAEH/O,EAAK,QAGNgK,EAAOc,OAAOiE,GAAMhoB,KAAKiZ,EAAM,WAE9BA,EAAK,SAKRnJ,OAAO6O,QAAQ2mB,YAAc,SAASriB,EAAQ+E,GAC7C,GAAIpgB,GAAW,GAAI4K,MAAK/C,KAExB,IAAIwT,EAqBJ,MAnBAA,GAAOsiB,QAAQvd,GAAMhoB,KAAK,SAAS2mB,GAGlC7W,OAAO6O,QAAQ6mB,QAAQviB,EAAQ+E,EAAMrB,GAAM3mB,KAAK,SAASylC,GACxD,GAAIC,GAAOn4B,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,OAEhDva,EAAO,GAAItB,OAAM0b,IAAYlc,KAAS,aACxCxO,EAAM2qB,EAAKG,gBAAgBxa,EAE7BzjB,GAASxD,QAAQ2W,IAEf,SAASla,GACX+G,EAASC,OAAOhH,MAGf,SAASA,GACX+G,EAASC,OAAOhH,KAGV+G,EAAS5I,SAGjB8Q,OAAO6O,QAAQ6mB,QAAU,SAASviB,EAAQhH,EAAM0K,GAC/C,GAAI/e,GAAW,GAAI4K,MAAK/C,MACvB1H,KACAwe,EAAUI,EAAK9gB,MAAM,sCAEtB,IAAIod,EAEJ,MAAIsD,IAKJA,EAAQpP,QAAQ,SAAS2Y,GACxB,GAAI9H,GAAOlY,OAAOY,KAAK+L,WAAWR,EAAM6T,EAAInR,QAAQ,qBAAsB,KACtEmnB,EAAW7iB,EAAOc,OAAOiE,GAAMhoB,KAAK,SAAS+a,GAChD4L,EAAOA,EAAKhI,QAAQmR,EAAK,QAAQ/U,EAAI,OACnC,SAASla,GACX+G,EAASC,OAAOhH,IAGjBkH,GAAS7I,KAAK4mC,KAGftzB,KAAKvN,IAAI8C,GAAU/H,KAAK,WACvB4H,EAASxD,QAAQuiB,KAGX/e,EAAS5I,UAnBf4I,EAASxD,QAAQuiB,GACV/e,EAAS5I,UAsBlB8Q,OAAOmR,QAAU,SAASnP,GAEzBxP,KAAKyjC,oBACLzjC,KAAK0jC,YACL1jC,KAAKwP,gBAAkBA,EACvBxP,KAAK0nB,IAAMzc,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,OACpDtjC,KAAK6e,SAAU,GAIhBrR,OAAOmR,QAAQ5V,UAAU06B,kBAAoB,WAClB,mBAAjB,cAA8B9vB,QAAQrX,MAAM,mCAGtDkR,OAAOmR,QAAQ5V,UAAUuV,IAAM,SAASD,GACvC,GAAI/Y,GAAW,GAAI4K,MAAK/C,MACpBqY,EAAQnH,EAAOljB,OACfwoC,EAAU,EACVjtB,EAAO,SAASpR,GACnB,GACImT,GACAmrB,EAFAjtB,EAAOrR,GAAY,GAAI4K,MAAK/C,KAuBhC,OAnBGw2B,IAAWne,EACb7O,EAAK7U,WAEL2W,EAAM4F,EAAOslB,GAASlrB,IACtBmrB,EAAa34B,OAAO44B,mBAAmBprB,GAEvCjL,OAAOY,KAAKsL,QAAQjB,EAAK,UACxB/a,KAAK,SAAU4G,GACf,MAAOw/B,aAAYnpB,QAAQipB,EAAYt/B,KAEvC5G,KAAK,WACLimC,IAEA9nC,WAAW,WACV6a,EAAKC,IACH,MAIEA,EAAKja,SACXmU,KAAK7Q,KAUP,OARIwD,OAAMC,QAAQ4a,KACjBA,GAAUA,IAGX3H,IAAOhZ,KAAK,WACX4H,EAASxD,WACR+O,KAAK7Q,OAEAsF,EAAS5I,SAGjB8Q,OAAOmR,QAAQ5V,UAAU2V,MAAQ,SAASjG,EAAKhd,GAC9C,GAAImoC,GAAa34B,OAAO44B,mBAAmBprB,EAC3C,OAAOqrB,aAAYnpB,QAAQipB,EAAYnoC,GACrCiC,KAAK,SAAU0K,GACf,MAAe,QAAXA,GACI,GAEA,KAKXoF,OAAOmR,QAAQ5V,UAAU0V,SAAW,SAAShG,GAC5C,GAAImrB,GAAa34B,OAAO44B,mBAAmBprB,EAC3C,OAAOqrB,aAAYrpB,QAAQmpB,GACzBlmC,KAAK,SAAU0K,GACf,MAAe,QAAXA,GACI,GAEA,KAKXoF,OAAOmR,QAAQ5V,UAAUk6B,QAAU,SAASxqB,GAC3C,GAAImrB,GAAa34B,OAAO44B,mBAAmBprB,EAE3C,OAAOjL,QAAOY,KAAKsL,QAAQjB,EAAK,cAAezY,KAAKwP,iBAClD9R,KAAK,SAASqmC,GAOd,MALG/jC,MAAK6e,UACP7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAEzBg6B,YAAYnpB,QAAQipB,EAAYG,GACzBA,GACNlzB,KAAK7Q,OACNtC,KAAK,SAAS4G,GACd,GAAIgB,GAAW,GAAI4K,MAAK/C,MACpB62B,EAAWx2B,OAAOY,KAAK61B,YAAYxrB,GACnCsQ,EAAO,GAAItB,OAAMnjB,IAAQ2iB,KAAO+c,IAChCE,EAAS,GAAIC,WAKjB,OAJAD,GAAOpyB,iBAAiB,UAAW,WAClCxM,EAASxD,QAAQoiC,EAAO97B,UAEzB87B,EAAOE,WAAWrb,EAAMib,GACjB1+B,EAAS5I,UAEhBiO,MAAM,WAEN,GAAIrF,GAAW,GAAI4K,MAAK/C,MACpBrR,EAAQgoC,YAAYrpB,QAAQmpB,EAOhC,OALI5jC,MAAK6e,UACR7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAGrBhO,GAQJA,EAAM4B,KAAK,SAAS4G,GACnB,GAAI0/B,GAAWx2B,OAAOY,KAAK61B,YAAYxrB,GACnCsQ,EAAO,GAAItB,OAAMnjB,IAAQ2iB,KAAO+c,IAChCE,EAAS,GAAIC,WACjBD,GAAOpyB,iBAAiB,UAAW,WAClCxM,EAASxD,QAAQoiC,EAAO97B,UAEzB87B,EAAOE,WAAWrb,EAAMib,KAGlB1+B,EAAS5I,UAjBf4I,EAASC,QACRqX,QAAU,kCAAoCnE,EAC9Clc,OAAQ,GAAIc,QAAQd,QAEd+I,EAAS5I,UAchBmU,KAAK7Q,QAGTwN,OAAOmR,QAAQ5V,UAAU0Y,OAAS,SAAShJ,GAC1C,GAAImrB,GAAa34B,OAAO44B,mBAAmBprB,EAE3C,OAAOjL,QAAOY,KAAKsL,QAAQjB,EAAK,cAAezY,KAAKwP,iBAClD9R,KAAK,SAASqmC,GAMd,MALG/jC,MAAK6e,UACP7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAEzBg6B,YAAYnpB,QAAQipB,EAAYG,GACzBtrB,GACN5H,KAAK7Q,OACN2K,MAAM,WACN,GACI7O,GAEA0lB,EAHAlc,EAAW,GAAI4K,MAAK/C,MAEpBi2B,EAAOn4B,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,MAQpD,OALItjC,MAAK6e,UACR7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAGtB85B,IAAc5jC,MAAK0jC,UACrBp+B,EAASxD,QAAQ9B,KAAK0jC,SAASE,IACxBt+B,EAAS5I,UAGjBZ,EAAQgoC,YAAYrpB,QAAQmpB,KAU5B9nC,EAAM4B,KAAK,SAAS4G,GACnB,GAAIykB,GAAO,GAAItB,OAAMnjB,IAAQ2iB,KAAOzZ,OAAOY,KAAK61B,YAAYxrB,IAC5D+I,GAAU4hB,EAAKG,gBAAgBxa,GAC/BzjB,EAASxD,QAAQ0f,GACjBxhB,KAAK0jC,SAASE,GAAcpiB,GAC3B3Q,KAAK7Q,OAGAsF,EAAS5I,UAff4I,EAASC,QACRqX,QAAU,kCAAoCnE,EAC9Clc,OAAQ,GAAIc,QAAQd,QAEd+I,EAAS5I,UAYjBmU,KAAK7Q,QAGRwN,OAAOmR,QAAQ5V,UAAUyQ,OAAS,SAASf,GAC1C,GAAImrB,GAAa34B,OAAO44B,mBAAmBprB,EAE3C,OAAOjL,QAAOY,KAAKsL,QAAQjB,EAAK,cAAezY,KAAKwP,iBAClD9R,KAAK,SAASqmC,GAMd,MALG/jC,MAAK6e,UACP7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAEzBg6B,YAAYnpB,QAAQipB,EAAYG,GACzBA,GACNlzB,KAAK7Q,OACNtC,KAAK,SAAS4G,GACd,GAAIgB,GAAW,GAAI4K,MAAK/C,MACpB62B,EAAWx2B,OAAOY,KAAK61B,YAAYxrB,GACnCsQ,EAAO,GAAItB,OAAMnjB,IAAQ2iB,KAAO+c,IAChCE,EAAS,GAAIC,WAOjB,OANAD,GAAOpyB,iBAAiB,UAAW,WAClC,GAAIuyB,GAAS,GAAIC,WACbvjB,EAAMsjB,EAAOE,gBAAgBL,EAAO97B,OAAQ,WAChD9C,GAASxD,QAAQif,KAElBmjB,EAAOE,WAAWrb,EAAMib,GACjB1+B,EAAS5I,UAEhBiO,MAAM,WACN,GAAIrF,GAAW,GAAI4K,MAAK/C,MACpBrR,EAAQgoC,YAAYrpB,QAAQmpB,EAOhC,OALI5jC,MAAK6e,UACR7e,KAAK6e,SAAU,EACf7e,KAAK8J,QAAQ,WAAW,IAGrBhO,GAQJA,EAAM4B,KAAK,SAAS4G,GACnB,GAAI0/B,GAAWx2B,OAAOY,KAAK61B,YAAYxrB,GACnCsQ,EAAO,GAAItB,OAAMnjB,IAAQ2iB,KAAO+c,IAChCE,EAAS,GAAIC,WACjBD,GAAOpyB,iBAAiB,UAAW,WAClC,GAAIuyB,GAAS,GAAIC,WACbvjB,EAAMsjB,EAAOE,gBAAgBL,EAAO97B,OAAQ,WAChD9C,GAASxD,QAAQif,KAElBmjB,EAAOE,WAAWrb,EAAMib,KAGlB1+B,EAAS5I,UAnBf4I,EAASC,QACRqX,QAAU,kCAAoCnE,EAC9Clc,OAAQ,GAAIc,QAAQd,QAEd+I,EAAS5I,UAgBhBmU,KAAK7Q,QAGTwN,OAAOmR,QAAQ5V,UAAUgZ,UAAY,SAAStJ,GAC7C,GAAI2qB,GAAOn4B,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,OAChDkB,EAAYxkC,KAAK0jC,SAASjrB,EAC3B+rB,IAAWpB,EAAKqB,gBAAgBD,IAGpCh3B,OAAOmR,QAAQ5V,UAAU3I,OAAS,SAAS9D,GAC1CqX,QAAQrX,MAAMA,IAGf4T,KAAK9C,YAAY5D,MAAMgE,OAAOmR,QAAQ5V,WAEtCyE,OAAO6M,WAAa,WAEnBra,KAAKyjC,oBACLzjC,KAAK0jC,aAKNl2B,OAAO6M,WAAWtR,UAAU06B,kBAAoB,WAC3B,mBAAX,QAAwB9vB,QAAQrX,MAAM,yBAGhDkR,OAAO6M,WAAWtR,UAAU8I,KAAO,SAAS6yB,GAC5B,GAAIx0B,MAAK/C,KAExB,OAAOK,QAAOY,KAAKsL,QAAQgrB,EAAQ,UAAUhnC,KAAK,SAAS4G,GAC1DtE,KAAKyZ,IAAM,GAAIkrB,OAAMrgC,IACpBuM,KAAK7Q,QAGRwN,OAAO6M,WAAWtR,UAAUyQ,OAAS,SAASf,EAAK/E,GAClD,GAAIkxB,GAAe35B,OAAO45B,mBAAmBpsB,EAC7C,OAAOzY,MAAKijC,QAAQ2B,EAAclxB,GAChChW,KAAK,SAAS2mB,GACb,GAAIggB,GAAS,GAAIC,UACjB,OAAOD,GAAOE,gBAAgBlgB,EAAM,eAKxC7W,OAAO6M,WAAWtR,UAAU0Y,OAAS,SAAShJ,GAC7C,GAKI+I,GACAuH,EANA+b,EAAa9kC,KACbsF,EAAW,GAAI4K,MAAK/C,MACpBy3B,EAAe35B,OAAO45B,mBAAmBpsB,GACzC3c,EAAQkE,KAAKyZ,IAAIsrB,KAAKH,GACtBxB,EAAOn4B,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,MAIpD,OAAIxnC,GAQD2c,IAAOzY,MAAK0jC,UACdp+B,EAASxD,QAAQ9B,KAAK0jC,SAASjrB,IACxBnT,EAAS5I,UAGjBqsB,EAAO,GAAItB,OAAM3rB,EAAMkpC,iBAAkB/d,KAAOzZ,OAAOY,KAAK61B,YAAYnoC,EAAMN,QAE9EgmB,EAAU4hB,EAAKG,gBAAgBxa,GAC/BzjB,EAASxD,QAAQ0f,GACjBsjB,EAAWpB,SAASjrB,GAAO+I,EAEpBlc,EAAS5I,UAlBf4I,EAASC,QACRqX,QAAU,+BAAiCnE,EAC3Clc,OAAQ,GAAIc,QAAQd,QAEd+I,EAAS5I,UAiBlB8Q,OAAO6M,WAAWtR,UAAUk6B,QAAU,SAASxqB,GAC9C,GAII4L,GAHA/e,EAAW,GAAI4K,MAAK/C,MACpBy3B,EAAe35B,OAAO45B,mBAAmBpsB,GACzC3c,EAAQkE,KAAKyZ,IAAIsrB,KAAKH,EAG1B,OAAI9oC,IAQJuoB,EAAOvoB,EAAMmpC,SACb3/B,EAASxD,QAAQuiB,GAEV/e,EAAS5I,UAVf4I,EAASC,QACRqX,QAAU,+BAAiCnE,EAC3Clc,OAAQ,GAAIc,QAAQd,QAEd+I,EAAS5I,UASlB8Q,OAAO6M,WAAWtR,UAAUgZ,UAAY,SAAStJ,GAChD,GAAI2qB,GAAOn4B,OAAOyc,KAAOzc,OAAOo4B,WAAap4B,OAAOq4B,OAChDkB,EAAYxkC,KAAK0jC,SAASjrB,EAC3B+rB,IAAWpB,EAAKqB,gBAAgBD,IAGpCh3B,OAAO6M,WAAWtR,UAAU3I,OAAS,SAAS9D,GAC7CqX,QAAQrX,MAAMA,IAGfkR,OAAO6M,WAAWtR,UAAUm8B,WAAa,WACxCllC,KAAKhF,YAGNwS,OAAO6M,WAAWtR,UAAUyV,UAAY,SAAS9c,GAMhD,QAAS1G,KACRwqB,IACa,IAAVA,GAAa2f,EAAKD,aAPtB,GAAIze,GAAU,EACb2e,EAAQ,GACRD,EAAOnlC,KACPwlB,EAAQ9jB,EAAQvG,MAOjBuG,GAAQmT,QAAQ,SAAS/Y,GAExBD,WAAW,SAASC,GACnBqpC,EAAKE,uBAAuBvpC,EAAOd,IACjCyrB,EAAS3qB,GAEZ2qB,GAAW2e,IAGZzxB,QAAQ+P,IAAI,OAAQ+C,IAgBrB,WACC,YACA,IAAI6e,IACHC,aACCC,YAAiB,KAAM,QACvBC,WAAe,KACfC,IAAQ,MACRC,IAAQ,MACRC,YAAiB,KAAM,KAAM,MAAO,OAAQ,OAAQ,OAAQ,QAC5DC,UAAY,MACZC,MAAW,MAAO,QAClBC,aAAgB,QAAS,OACzBllB,KAAU,MAAO,MAAO,OACxBpH,IAAQ,MACRusB,gBAAkB,QAClBC,UAAY,QACZC,WAAc,MAAO,QAAS,QAAS,KAAM,KAAM,OAAQ,SAC3DC,WAAa,IACbC,qBAAwB,MAAO,QAC/BC,gBAAkB,MAClBC,WAAa,OACbC,aAAe,MACfC,aAAgB,MAAO,SACvBC,KAAS,OACTC,cAAgB,SAChBC,aAAe,SACfC,eAAiB,WACjBC,IAAQ,OACRC,oBAAsB,MACtBC,YAAc,QACdC,KAAS,OACTC,mBAAqB,MACrBC,OAAW,MACXC,eAAiB,MACjBC,eAAiB,MACjBC,oBAAsB,MACtBC,aAAe,MACfC,qBAAuB,MACvBC,mBAAqB,MACrBC,aAAe,MACfC,aAAe,MACfC,aAAe,MACfC,cAAiB,MAAO,OACxBC,gBAAmB,MAAO,MAAO,MAAO,OACxCC,cAAgB,OAChBC,sBAAyB,MAAO,QAChCC,gBAAkB,MAClBC,QAAU,MACVC,SAAW,MACXC,WAAa,OACbC,UAAY,MACZC,YAAc,MACdC,WAAa,OACbC,2BAA6B,MAC7BC,aAAe,IACfC,eAAiB,MACjBC,SAAW,MAEZC,OACCC,KAAS,OACTC,MAAW,MAAO,OAAQ,MAAO,OACjCC,MAAW,OAAQ,QAAS,MAAO,MAAO,MAAO,OAAQ,MAAO,OAChEC,QAAY,MACZrD,KAAU,MAAO,MAAO,OACxBsD,UAAa,MAAO,OAAQ,QAC5BC,WAAa,MACbC,QAAU,MACVC,MAAU,MACVtC,IAAQ,OACRuC,KAAS,OACTC,QAAU,MACVC,QAAU,MACVC,aAAe,MACfC,wBAA0B,MAC1BC,GAAO,KACPC,KAAU,MAAO,QAElBC,OACCC,IAAQ,MACRC,IAAQ,MACRC,MAAW,OAAQ,MAAO,OAC1BC,IAAQ,MACRC,IAAQ,MACRC,WAAc,MAAO,QACrBC,MAAW,OAAQ,OACnBC,SAAW,MACXC,IAAQ,MACRC,KAAS,OACTC,UAAa,MAAO,OACpBC,QAAU,MACVC,UAAY,OAEb5tB,SACC6tB,QAAa,MAAO,OAAQ,MAAO,QAAS,QAE7CpmB,MACCqmB,kBAAqB,WAAY,YACjCC,UAAe,MAAO,MAAO,OAC7BC,IAAQ,MACRC,IAAQ,MACRC,KAAS,MACTC,MAAW,OAAQ,MAAO,QAAS,OACnCC,KAAS,MACTC,OAAW,MACXC,OAAY,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAM,OACtEC,SAAa,MACbC,uBAAyB,MACzBC,WAAa,MACbC,SAAW,IACXC,UAAa,OAAQ,SACrBC,YAAc,KACdC,SAAW,OACXC,qBAAuB,MACvBC,QAAU,MACVC,YAAe,IAAK,OACpBC,YAAc,MACdC,UAAa,KAAM,MACnBC,WAAa,KACbC,UAAY,QACZC,WAAa,MACbC,SAAY,MAAO,MACnBC,SAAY,MAAO,MAAO,MAAO,OACjCC,UAAY,MACZC,MAAW,OAAQ,OACnBC,OAAU,IAAK,KAAM,MAAO,MAAO,IAAK,KAAM,OAC9CC,aAAgB,IAAK,MAAO,MAAO,OACnCC,SAAW,OACXC,QAAU,MACVC,QAAU,MACVC,aAAe,KACfC,YAAgB,OAEjBC,OACC/D,MAAW,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAC7DjC,KAAU,MAAO,OAAQ,QACzBiG,WAAgB,KAAM,OACtBpH,IAAQ,MACRqH,eAAkB,MAAO,OACzBC,QAAU,MACVC,YAAe,MAAO,OACtBC,QAAU,MACVC,YAAe,MAAO,MAAO,OAC7BC,UAAY,KACZC,WAAa,MACbC,WAAa,MACbC,WAAa,MACbC,YAAc,MACdC,cAAgB,QAChBlE,cAAiB,MAAO,MAAO,OAAQ,OACvCmE,QAAU,MACVC,KAAS,OACTC,KAAS,OACTC,KAAS,OACT/D,KAAS,OACTgE,KAAU,MAAO,QACjBC,KAAU,MAAO,QACjBC,6BAA+B,MAC/BC,gBAAmB,MAAO,QAC1BC,WAAa,MACb9E,KAAS,OACT+E,QAAU,MACVC,QAAU,MACVC,WAAa,MACbC,QAAU,QAIRC,EAAY,WACf,GAAItnB,GAAMunB,EAASxmC,EAAK4B,EAAO2kC,IAC/B;IAAKtnB,IAAQqe,GACZ,GAAIA,EAAM35B,eAAesb,GACxB,IAAKunB,IAAWlJ,GAAMre,GACrB,GAAIqe,EAAMre,GAAMtb,eAAe6iC,GAE9B,GADAxmC,EAAMs9B,EAAMre,GAAMunB,GACA,gBAAPxmC,GACVumC,EAAUvmC,GAAOif,EAAO,IAAMunB,MAE9B,KAAK5kC,EAAQ,EAAGA,EAAQ5B,EAAI7M,OAAQyO,IACnC2kC,EAAUvmC,EAAI4B,IAAUqd,EAAO,IAAMunB,CAO3C,OAAOD,KAGR/gC,QAAOY,KAAK61B,YAAc,SAASjrB,GAClC,GAAIy1B,GAAe,YACnB,OAAOz1B,IAAYu1B,EAAUv1B,EAAS8E,MAAM,KAAKgN,MAAM3G,gBAAkBsqB"} \ No newline at end of file +{"version":3,"file":"epub.min.js","sources":["epub.js"],"names":["$$rsvp$events$$indexOf","callbacks","callback","i","l","length","$$rsvp$events$$callbacksFor","object","_promiseCallbacks","$$rsvp$config$$configure","name","value","$$rsvp$config$$config","on","arguments","$$utils$$objectOrFunction","x","$$utils$$isFunction","$$utils$$isMaybeThenable","$$utils$$F","$$$internal$$noop","$$$internal$$getThen","promise","then","error","$$$internal$$GET_THEN_ERROR","$$$internal$$tryThen","fulfillmentHandler","rejectionHandler","call","e","$$$internal$$handleForeignThenable","thenable","async","sealed","$$$internal$$resolve","$$$internal$$fulfill","reason","$$$internal$$reject","_label","$$$internal$$handleOwnThenable","_state","$$$internal$$FULFILLED","_result","$$$internal$$REJECTED","$$$internal$$subscribe","undefined","$$$internal$$handleMaybeThenable","maybeThenable","constructor","$$$internal$$publishRejection","_onerror","$$$internal$$publish","$$$internal$$PENDING","_subscribers","instrument","$$instrument$$default","parent","child","onFulfillment","onRejection","subscribers","settled","detail","$$$internal$$invokeCallback","$$$internal$$ErrorObject","this","$$$internal$$tryCatch","$$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","TypeError","$$$internal$$initializePromise","resolver","$$enumerator$$makeSettledResult","state","position","$$enumerator$$Enumerator","Constructor","input","abortOnReject","label","_instanceConstructor","_abortOnReject","_validateInput","_input","_remaining","_init","_enumerate","_validationError","$$rsvp$promise$$needsResolver","$$rsvp$promise$$needsNew","$$rsvp$promise$$Promise","_id","$$rsvp$promise$$counter","$$rsvp$node$$Result","$$rsvp$node$$getThen","obj","$$rsvp$node$$ERROR","$$rsvp$node$$tryApply","f","s","a","apply","$$rsvp$node$$makeObject","_","argumentNames","args","Array","$$rsvp$node$$arrayResult","$$rsvp$node$$wrapThenable","onFulFillment","$$rsvp$node$$handleValueInput","nodeFunc","self","result","$$rsvp$node$$handlePromiseInput","$$rsvp$promise$$default","all","$$rsvp$node$$needsPromiseInput","arg","$$rsvp$all$settled$$AllSettled","entries","_superConstructor","$$promise$hash$$PromiseHash","$$rsvp$hash$settled$$HashSettled","$$rsvp$asap$$useNextTick","process","nextTick","$$rsvp$asap$$flush","$$rsvp$asap$$useMutationObserver","iterations","observer","$$rsvp$asap$$BrowserMutationObserver","node","document","createTextNode","observe","characterData","data","$$rsvp$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","$$rsvp$asap$$useSetTimeout","setTimeout","$$rsvp$asap$$len","$$rsvp$asap$$queue","$$rsvp$$async","$$rsvp$$on","$$rsvp$$off","off","$$rsvp$events$$default","mixin","trigger","eventName","allCallbacks","push","index","splice","options","$$utils$$_isArray","isArray","Object","prototype","toString","$$utils$$isArray","$$utils$$now","Date","now","getTime","$$utils$$o_create","create","o","Error","$$instrument$$queue","payload","guid","_guidKey","childGuid","timeStamp","stack","entry","$$enumerator$$default","_eachEntry","c","_settledAt","_willSettleAt","resolve","_makeResult","enumerator","$$promise$all$$default","$$promise$race$$default","$$promise$resolve$$default","$$promise$reject$$default","$$rsvp$promise$$guidKey","cast","race","reject","catch","finally","$$rsvp$node$$GET_THEN_ERROR","$$rsvp$node$$default","fn","promiseInput","p","err","val","__proto__","$$rsvp$all$$default","array","$$rsvp$all$settled$$default","$$rsvp$race$$default","$$promise$hash$$default","results","key","hasOwnProperty","$$rsvp$hash$$default","$$rsvp$asap$$scheduleFlush","$$rsvp$hash$settled$$default","$$rsvp$rethrow$$default","$$rsvp$defer$$default","deferred","$$rsvp$map$$default","promises","mapFn","values","$$rsvp$resolve$$default","$$rsvp$reject$$default","$$rsvp$filter$$default","filterFn","filtered","newLength","$$rsvp$asap$$default","$$rsvp$asap$$browserGlobal","window","MutationObserver","WebKitMutationObserver","$$rsvp$asap$$isWorker","Uint8ClampedArray","importScripts","$$rsvp$$callbacks","$$rsvp$$eventName","rsvp$umd$$RSVP","Promise","allSettled","hash","hashSettled","denodeify","map","filter","rethrow","defer","EventTarget","configure","define","amd","module","exports","EPUBJS","VERSION","plugins","filePath","Render","root","ePub","bookPath","Book","settings","core","defaults","bookKey","packageUrl","storage","fromStorage","saved","online","contained","width","height","layoutOveride","orientation","minSpreadWidth","gap","version","restore","reload","goto","styles","headTags","withCredentials","render_method","EPUBJSVERSION","spinePos","stored","navigator","onLine","networkListeners","ready","manifest","RSVP","spine","metadata","cover","toc","pageList","readyPromises","pagination","Pagination","pageListReady","_ready","bind","isRendered","_q","queue","_rendering","_displayQ","_moving","_gotoQ","renderer","Renderer","setMinSpreadWidth","setGap","listenToRenderer","defer_opened","opened","store","open","addEventListener","unload","forceReload","epubpackage","book","bookUrl","urlFrom","isContained","unarchive","loadPackage","localStorage","packageXml","identifier","packageIdentifier","restored","unpack","_registerReplacements","_containerPath","parse","Parser","containerPath","loadXml","containerXml","container","paths","contentsPath","basePath","packagePath","encoding","console","contents","packageContents","spineIndexByURL","generateBookKey","globalLayoutProperties","parseLayoutProperties","coverPath","spineNodeIndex","locations","Locations","navPath","navUrl","navHtml","nav","epubcfi","EpubCFI","wait","forEach","pg","cfi","generateCfiFromHref","href","tocPath","tocUrl","tocXml","createHiddenRender","_width","_height","hiddenContainer","hiddenEl","box","element","getBoundingClientRect","forceSingle","createElement","style","visibility","overflow","appendChild","initialize","generatePageList","pager","spineLength","currentPage","nextChapter","chapter","next","done","Chapter","displayChapter","pageMap","item","start","page","spreads","end","remove","removeChild","generatePagination","defered","loadPagination","pagelistJSON","JSON","getPageList","getMetadata","getToc","Events","range","startPage","endPage","percent","pageRange","pageFromCfi","percentageFromPage","anchorPage","percentage","loadChange","url","uri","chapterUri","currentChapter","absolute","path","warn","filename","afterLoad","render","docEl","beforeDisplay","afterDisplay","reformat","unlistenToRenderer","getXml","zip","request","base","protocol","fromRoot","location","origin","host","baseTag","getElementsByTagName","resolveUrl","pathname","Unarchiver","extension","isSaved","storedSettings","getItem","saveContents","setItem","stringify","removeSavedContents","removeItem","renderTo","elem","rendered","isElement","getEl","direction","setDirection","_rendered","startDisplay","display","previousLocationCfi","gotoCfi","fetch","fromStore","len","clearSaved","chap","pos","enqueue","isNumber","_needsAssetReplacement","registerHook","replace","head","resources","svg","lastPage","preloadNextChapter","dequeue","message","nextPage","prevPage","prev","prevChapter","linear","getCurrentLocationCfi","currentLocationCfi","target","indexOf","gotoPercentage","parseInt","substring","isNaN","gotoPage","gotoHref","cfiString","spineItem","split","section","relativeURL","firstPage","cfiFromPage","pageFromPercentage","storeOffline","assets","put","availableOffline","toStorage","isStored","token","Storage","credentials","offline","setStyle","prefixed","noreflow","removeStyle","addHeadTag","tag","attrs","useSpreads","use","_use","force","load","destroy","removeEventListener","flush","applyStyles","applyHeadTags","hrefs","layout","spread","spineObject","id","cfiBase","properties","manifestProperties","pages","loaded","Hooks","getHooks","caches","_store","_credentials","xml","setDocument","doc","querySelector","setAttribute","insertBefore","firstChild","triggerHooks","serializer","XMLSerializer","serializeToString","tempUrl","getUrl","setPages","num","getPages","getID","ID","revokeUrl","_document","namespaceURI","doctype","implementation","createDocument","importNode","documentElement","evaluate","cfiFromRange","_range","startXpath","endXpath","startContainer","endContainer","cleanEndTextContent","getElementXPath","nsResolver","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","collapsed","createRange","setStart","startOffset","setEnd","endOffset","log","cleanStartTextContent","cleanStringForXpath","textContent","generateCfiFromRange","find","_query","matches","query","toLowerCase","excerpt","text","last","limit","textSprint","func","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","acceptNode","test","FILTER_ACCEPT","FILTER_REJECT","nextNode","finished","progress","items","querySelectorAll","slice","count","called","after","full","replaceWithStored","attr","_oldUrls","_newUrls","_cache","_uri","_chapterBase","_attr","_wait","clone","link","src","getAttribute","replaceUrl","timeout","onload","clearTimeout","onerror","getElementById","getEls","classes","getElementsByClassName","type","handler","readyState","DONE","status","response","r","responseXML","supportsURL","Blob","URL","BLOB_RESPONSE","xhr","XMLHttpRequest","xhrPrototype","defineProperty","onreadystatechange","responseType","setRequestHeader","overrideMimeType","send","toArray","arr","member","newitm","ident","withoutProtocol","dot","firstSlash","directory","fragment","blob","doubleSlash","search","folder","lastIndexOf","lastSlash","dataURLToBlob","dataURL","parts","contentType","raw","rawLength","uInt8Array","BASE64_MARKER","atob","Uint8Array","charCodeAt","addScript","body","addScripts","srcArr","total","curr","cb","addCss","rel","unprefixed","vendors","upper","toUpperCase","segments","folders","pop","concat","join","uuid","d","Math","random","floor","insert","compareFunction","locationOf","_start","_end","compared","pivot","b","indexOfSorted","_scope","scope","funcName","context","inwait","shift","clear","getElementTreeXPath","nodeName","tagName","pathIndex","isXhtml","ownerDocument","nodeType","Node","TEXT_NODE","indexOfTextNode","parentNode","sibling","previousSibling","DOCUMENT_TYPE_NODE","prefix","ns","xhtml","epub","str","match","part","textNode","sib","children","childNodes","source","prop","extend","sources","getOwnPropertyNames","propName","getOwnPropertyDescriptor","n","parseFloat","isFinite","isString","String","props","keys","cfiStr","generateChapterComponent","_spineNodeIndex","_pos","generatePathComponent","steps","segment","generateCfiFromElement","pathTo","unshift","getChapterComponent","splitStr","getPathComponent","pathComponent","getCharecterOffsetComponent","chapSegment","chapterComponent","charecterOffsetComponent","assertion","chapId","endInt","parseStep","has_brackets","spineId","step","characterOffset","textLocationAssertion","addMarker","_doc","_marker","lastStep","marker","createMarker","findParent","splitText","classList","add","removeMarker","contains","nextSib","nextSibling","prevSib","sections","compare","cfiOne","cfiTwo","generateCfiFromTextNode","anchor","offset","generateCfiFromRangeAnchor","anchorNode","anchorOffset","startElement","startSteps","startPath","startIndex","endElement","endSteps","endPath","endIndex","generateXpathFromSteps","xpath","generateQueryFromSteps","generateRangeFromCfi","textLength","startContainerParent","debug","selectNode","isCfiString","el","events","createEvent","tell","listen","deafen","listenUntil","evt","CustomEvent","msg","dispatchEvent","bindto","OnEvt","OffEvt","unlisten","hooks","plugs","plugType","hook","toAdd","toFront","removeHook","toRemove","passed","countdown","register","Layout","Reflowable","spreadWidth","format","_gap","columnAxis","columnGap","columnWidth","columnFill","colWidth","pageWidth","pageHeight","calculatePages","totalWidth","displayedPages","scrollWidth","ceil","pageCount","ReflowableSpreads","divisor","fullWidth","Fixed","content","viewport","hasAttribute","_locations","break","_current","generate","_currentCfi","currentLocation","counter","sprint","dist","locationFromCfi","percentageFromCfi","loc","percentageFromLocation","cfiFromLocation","cfiFromPercentage","save","getCurrent","setCurrent","get","set","totalPages","round","baseUrl","rootfile","fullpath","xmlEncoding","metadataNode","getElementText","manifestNode","spineNode","findNavPath","findTocPath","findCoverPath","tocId","bookTitle","creator","description","pubdate","publisher","language","rights","modified_date","querySelectorText","found","getElementsByTagNameNS","nodeValue","q","manifestXml","selected","spineXml","Id","propArray","manifestProps","manifestPropArray","vert","bookSpine","findListItems","findAnchorOrSpan","getTOC","list","nodes","subitems","idCounter","navEl","snapshot","ORDERED_NODE_SNAPSHOT_TYPE","snapshotLength","snapshotItem","navLabel","navMap","isCfi","Iframe","iframe","bodyEl","leftPos","scrolling","seamless","border","isMobile","userAgent","transform","contentDocument","headEl","contentWindow","resized","setLeft","margin","dir","right","write","close","baseEl","resize","totalHeight","scrollHeight","setPageDimensions","defaultView","scrollTo","tagEl","getPageNumberByElement","left","getPageNumberByRect","boundingClientRect","getBaseElement","getDocumentElement","isElementVisible","rect","scroll","bool","renderMethod","hidden","listenedEvents","upEvent","downEvent","isForcedSingle","onResized","layoutSettings","initWidth","initHeight","clientWidth","clientHeight","globalLayout","removeEventListeners","removeSelectionListeners","chapterPos","currentChapterCfiBase","reconcileLayoutSettings","layoutMethod","determineLayout","visible","formated","addEventListeners","addSelectionListeners","queued","updatePages","visibleRangeCfi","getVisibleRangeCfi","global","property","rendition","determineSpreads","mapPage","headTag","pageByElement","firstElementisTextNode","leng","trim","isGoodNode","embeddedElements","walk","y","prevNode","startNode","STOP","ITER","containsPoint","childElementCount","SHOW_ELEMENT","prevRange","elLimit","check","elPos","elRange","ELEMENT_NODE","selectNodeContents","checkText","ranges","splitTextNodeIntoWordsRanges","collapse","indexOfBreakableChar","startPosition","whiteCharacters","charAt","rangePosition","getClientRects","getPageCfi","startRange","getRange","forceElement","caretPositionFromPoint","caretRangeFromPoint","visibileEl","findElementAfter","offsetNode","pagesInCurrentChapter","pgs","currentRenderedPage","getRenderedPagesLeft","pagesLeft","endRange","findFirstVisible","startEl","setSize","triggerEvent","onSelectionChange","selectionEndTimeout","selectedRange","getSelection","cutoff","replacments","relative","isRelative","onclick","links","srcs","stylesheets","getText","cssUrls","newText","_URL","webkitURL","mozURL","createObjectURL","replaced","checkRequirements","urlCache","current","encodedUrl","encodeURIComponent","localforage","buffer","mimeType","getMimeType","reader","FileReader","readAsText","parser","DOMParser","parseFromString","fromCache","revokeObjectURL","zipUrl","JSZip","decodededUrl","decodeURIComponent","unarchiver","file","asUint8Array","asText","afterSaved","that","delay","saveEntryFileToStorage","table","application","ecmascript","javascript","ogg","pdf","postscript","rdf+xml","smil","xhtml+xml","x-httpd-eruby","x-latex","x-maker","x-object","x-shockwave-flash","x-silverlight","epub+zip","font-tdpfr","inkml+xml","json","jsonml+json","mathml+xml","metalink+xml","mp4","oebps-package+xml","omdoc+xml","oxps","vnd.amazon.ebook","widget","x-dtbncx+xml","x-dtbook+xml","x-dtbresource+xml","x-font-bdf","x-font-ghostscript","x-font-linux-psf","x-font-otf","x-font-pcf","x-font-snf","x-font-ttf","x-font-type1","x-font-woff","x-mobipocket-ebook","x-mspublisher","x-nzb","x-tgif","xaml+xml","xml-dtd","xproc+xml","xslt+xml","internet-property-stream","x-compress","x-compressed","x-gzip","audio","flac","midi","mpeg","mpegurl","x-aiff","x-ms-wma","x-wav","adpcm","webm","x-aac","x-caf","x-matroska","x-pn-realaudio-plugin","xm","mid","image","gif","ief","jpeg","pcx","png","svg+xml","tiff","x-icon","bmp","webp","x-pict","x-tga","cis-cod","rfc822","cache-manifest","calendar","css","csv","h323","html","iuls","mathml","plain","richtext","tab-separated-values","x-bibtex","x-dsrc","x-diff","x-haskell","x-java","x-literate-haskell","x-moc","x-pascal","x-pcs-gcd","x-perl","x-python","x-scala","x-setext","x-tcl","x-tex","x-vcard","sgml","x-c","x-fortran","x-opml","x-nfo","x-sfv","x-uuencode","webviewhtml","video","quicktime","vnd.mpegurl","x-flv","x-la-asf","x-mng","x-ms-asf","x-ms-wm","x-ms-wmv","x-ms-wmx","x-ms-wvx","x-msvideo","x-sgi-movie","3gpp2","h261","h263","h264","jpm","mj2","vnd.ms-playready.media.pyv","vnd.uvvu.mp4","vnd.vivo","x-f4v","x-m4v","x-ms-vob","x-smv","mimeTypes","subtype","defaultValue"],"mappings":"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"} \ No newline at end of file diff --git a/reader/js/epub.min.js b/reader/js/epub.min.js index c2d9bf990..d1c4f6b8c 100644 --- a/reader/js/epub.min.js +++ b/reader/js/epub.min.js @@ -3,49 +3,13 @@ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors * @license Licensed under MIT license * See https://raw.githubusercontent.com/tildeio/rsvp.js/master/LICENSE - * @version 3.1.0 + * @version 3.0.14 */ (function() { "use strict"; - function lib$rsvp$utils$$objectOrFunction(x) { - return typeof x === 'function' || (typeof x === 'object' && x !== null); - } - - function lib$rsvp$utils$$isFunction(x) { - return typeof x === 'function'; - } - - function lib$rsvp$utils$$isMaybeThenable(x) { - return typeof x === 'object' && x !== null; - } - - var lib$rsvp$utils$$_isArray; - if (!Array.isArray) { - lib$rsvp$utils$$_isArray = function (x) { - return Object.prototype.toString.call(x) === '[object Array]'; - }; - } else { - lib$rsvp$utils$$_isArray = Array.isArray; - } - var lib$rsvp$utils$$isArray = lib$rsvp$utils$$_isArray; - - var lib$rsvp$utils$$now = Date.now || function() { return new Date().getTime(); }; - - function lib$rsvp$utils$$F() { } - - var lib$rsvp$utils$$o_create = (Object.create || function (o) { - if (arguments.length > 1) { - throw new Error('Second argument not supported'); - } - if (typeof o !== 'object') { - throw new TypeError('Argument must be an object'); - } - lib$rsvp$utils$$F.prototype = o; - return new lib$rsvp$utils$$F(); - }); - function lib$rsvp$events$$indexOf(callbacks, callback) { + function $$rsvp$events$$indexOf(callbacks, callback) { for (var i=0, l=callbacks.length; i 1) { + throw new Error('Second argument not supported'); + } + if (typeof o !== 'object') { + throw new TypeError('Argument must be an object'); + } + $$utils$$F.prototype = o; + return new $$utils$$F(); + }); + + var $$instrument$$queue = []; + + var $$instrument$$default = function instrument(eventName, promise, child) { + if (1 === $$instrument$$queue.push({ + name: eventName, + payload: { + guid: promise._guidKey + promise._id, + eventName: eventName, + detail: promise._result, + childGuid: child && promise._guidKey + child._id, + label: promise._label, + timeStamp: $$utils$$now(), + stack: new Error(promise._label).stack + }})) { + + setTimeout(function() { + var entry; + for (var i = 0; i < $$instrument$$queue.length; i++) { + entry = $$instrument$$queue[i]; + $$rsvp$config$$config.trigger(entry.name, entry.payload); + } + $$instrument$$queue.length = 0; + }, 50); + } + }; - var lib$rsvp$$internal$$GET_THEN_ERROR = new lib$rsvp$$internal$$ErrorObject(); + function $$$internal$$noop() {} + var $$$internal$$PENDING = void 0; + var $$$internal$$FULFILLED = 1; + var $$$internal$$REJECTED = 2; + var $$$internal$$GET_THEN_ERROR = new $$$internal$$ErrorObject(); - function lib$rsvp$$internal$$getThen(promise) { + function $$$internal$$getThen(promise) { try { return promise.then; } catch(error) { - lib$rsvp$$internal$$GET_THEN_ERROR.error = error; - return lib$rsvp$$internal$$GET_THEN_ERROR; + $$$internal$$GET_THEN_ERROR.error = error; + return $$$internal$$GET_THEN_ERROR; } } - function lib$rsvp$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) { + function $$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) { try { then.call(value, fulfillmentHandler, rejectionHandler); } catch(e) { @@ -339,129 +316,129 @@ } } - function lib$rsvp$$internal$$handleForeignThenable(promise, thenable, then) { - lib$rsvp$config$$config.async(function(promise) { + function $$$internal$$handleForeignThenable(promise, thenable, then) { + $$rsvp$config$$config.async(function(promise) { var sealed = false; - var error = lib$rsvp$$internal$$tryThen(then, thenable, function(value) { + var error = $$$internal$$tryThen(then, thenable, function(value) { if (sealed) { return; } sealed = true; if (thenable !== value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } }, function(reason) { if (sealed) { return; } sealed = true; - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }, 'Settle: ' + (promise._label || ' unknown promise')); if (!sealed && error) { sealed = true; - lib$rsvp$$internal$$reject(promise, error); + $$$internal$$reject(promise, error); } }, promise); } - function lib$rsvp$$internal$$handleOwnThenable(promise, thenable) { - if (thenable._state === lib$rsvp$$internal$$FULFILLED) { - lib$rsvp$$internal$$fulfill(promise, thenable._result); - } else if (thenable._state === lib$rsvp$$internal$$REJECTED) { - thenable._onError = null; - lib$rsvp$$internal$$reject(promise, thenable._result); + function $$$internal$$handleOwnThenable(promise, thenable) { + if (thenable._state === $$$internal$$FULFILLED) { + $$$internal$$fulfill(promise, thenable._result); + } else if (promise._state === $$$internal$$REJECTED) { + $$$internal$$reject(promise, thenable._result); } else { - lib$rsvp$$internal$$subscribe(thenable, undefined, function(value) { + $$$internal$$subscribe(thenable, undefined, function(value) { if (thenable !== value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } }, function(reason) { - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }); } } - function lib$rsvp$$internal$$handleMaybeThenable(promise, maybeThenable) { + function $$$internal$$handleMaybeThenable(promise, maybeThenable) { if (maybeThenable.constructor === promise.constructor) { - lib$rsvp$$internal$$handleOwnThenable(promise, maybeThenable); + $$$internal$$handleOwnThenable(promise, maybeThenable); } else { - var then = lib$rsvp$$internal$$getThen(maybeThenable); + var then = $$$internal$$getThen(maybeThenable); - if (then === lib$rsvp$$internal$$GET_THEN_ERROR) { - lib$rsvp$$internal$$reject(promise, lib$rsvp$$internal$$GET_THEN_ERROR.error); + if (then === $$$internal$$GET_THEN_ERROR) { + $$$internal$$reject(promise, $$$internal$$GET_THEN_ERROR.error); } else if (then === undefined) { - lib$rsvp$$internal$$fulfill(promise, maybeThenable); - } else if (lib$rsvp$utils$$isFunction(then)) { - lib$rsvp$$internal$$handleForeignThenable(promise, maybeThenable, then); + $$$internal$$fulfill(promise, maybeThenable); + } else if ($$utils$$isFunction(then)) { + $$$internal$$handleForeignThenable(promise, maybeThenable, then); } else { - lib$rsvp$$internal$$fulfill(promise, maybeThenable); + $$$internal$$fulfill(promise, maybeThenable); } } } - function lib$rsvp$$internal$$resolve(promise, value) { + function $$$internal$$resolve(promise, value) { if (promise === value) { - lib$rsvp$$internal$$fulfill(promise, value); - } else if (lib$rsvp$utils$$objectOrFunction(value)) { - lib$rsvp$$internal$$handleMaybeThenable(promise, value); + $$$internal$$fulfill(promise, value); + } else if ($$utils$$objectOrFunction(value)) { + $$$internal$$handleMaybeThenable(promise, value); } else { - lib$rsvp$$internal$$fulfill(promise, value); + $$$internal$$fulfill(promise, value); } } - function lib$rsvp$$internal$$publishRejection(promise) { - if (promise._onError) { - promise._onError(promise._result); + function $$$internal$$publishRejection(promise) { + if (promise._onerror) { + promise._onerror(promise._result); } - lib$rsvp$$internal$$publish(promise); + $$$internal$$publish(promise); } - function lib$rsvp$$internal$$fulfill(promise, value) { - if (promise._state !== lib$rsvp$$internal$$PENDING) { return; } + function $$$internal$$fulfill(promise, value) { + if (promise._state !== $$$internal$$PENDING) { return; } promise._result = value; - promise._state = lib$rsvp$$internal$$FULFILLED; + promise._state = $$$internal$$FULFILLED; if (promise._subscribers.length === 0) { - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('fulfilled', promise); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('fulfilled', promise); } } else { - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publish, promise); + $$rsvp$config$$config.async($$$internal$$publish, promise); } } - function lib$rsvp$$internal$$reject(promise, reason) { - if (promise._state !== lib$rsvp$$internal$$PENDING) { return; } - promise._state = lib$rsvp$$internal$$REJECTED; + function $$$internal$$reject(promise, reason) { + if (promise._state !== $$$internal$$PENDING) { return; } + promise._state = $$$internal$$REJECTED; promise._result = reason; - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publishRejection, promise); + + $$rsvp$config$$config.async($$$internal$$publishRejection, promise); } - function lib$rsvp$$internal$$subscribe(parent, child, onFulfillment, onRejection) { + function $$$internal$$subscribe(parent, child, onFulfillment, onRejection) { var subscribers = parent._subscribers; var length = subscribers.length; - parent._onError = null; + parent._onerror = null; subscribers[length] = child; - subscribers[length + lib$rsvp$$internal$$FULFILLED] = onFulfillment; - subscribers[length + lib$rsvp$$internal$$REJECTED] = onRejection; + subscribers[length + $$$internal$$FULFILLED] = onFulfillment; + subscribers[length + $$$internal$$REJECTED] = onRejection; if (length === 0 && parent._state) { - lib$rsvp$config$$config.async(lib$rsvp$$internal$$publish, parent); + $$rsvp$config$$config.async($$$internal$$publish, parent); } } - function lib$rsvp$$internal$$publish(promise) { + function $$$internal$$publish(promise) { var subscribers = promise._subscribers; var settled = promise._state; - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default(settled === lib$rsvp$$internal$$FULFILLED ? 'fulfilled' : 'rejected', promise); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default(settled === $$$internal$$FULFILLED ? 'fulfilled' : 'rejected', promise); } if (subscribers.length === 0) { return; } @@ -473,7 +450,7 @@ callback = subscribers[i + settled]; if (child) { - lib$rsvp$$internal$$invokeCallback(settled, child, callback, detail); + $$$internal$$invokeCallback(settled, child, callback, detail); } else { callback(detail); } @@ -482,29 +459,29 @@ promise._subscribers.length = 0; } - function lib$rsvp$$internal$$ErrorObject() { + function $$$internal$$ErrorObject() { this.error = null; } - var lib$rsvp$$internal$$TRY_CATCH_ERROR = new lib$rsvp$$internal$$ErrorObject(); + var $$$internal$$TRY_CATCH_ERROR = new $$$internal$$ErrorObject(); - function lib$rsvp$$internal$$tryCatch(callback, detail) { + function $$$internal$$tryCatch(callback, detail) { try { return callback(detail); } catch(e) { - lib$rsvp$$internal$$TRY_CATCH_ERROR.error = e; - return lib$rsvp$$internal$$TRY_CATCH_ERROR; + $$$internal$$TRY_CATCH_ERROR.error = e; + return $$$internal$$TRY_CATCH_ERROR; } } - function lib$rsvp$$internal$$invokeCallback(settled, promise, callback, detail) { - var hasCallback = lib$rsvp$utils$$isFunction(callback), + function $$$internal$$invokeCallback(settled, promise, callback, detail) { + var hasCallback = $$utils$$isFunction(callback), value, error, succeeded, failed; if (hasCallback) { - value = lib$rsvp$$internal$$tryCatch(callback, detail); + value = $$$internal$$tryCatch(callback, detail); - if (value === lib$rsvp$$internal$$TRY_CATCH_ERROR) { + if (value === $$$internal$$TRY_CATCH_ERROR) { failed = true; error = value.error; value = null; @@ -513,7 +490,7 @@ } if (promise === value) { - lib$rsvp$$internal$$reject(promise, lib$rsvp$$internal$$withOwnPromise()); + $$$internal$$reject(promise, new TypeError('A promises callback cannot return that same promise.')); return; } @@ -522,184 +499,175 @@ succeeded = true; } - if (promise._state !== lib$rsvp$$internal$$PENDING) { + if (promise._state !== $$$internal$$PENDING) { // noop } else if (hasCallback && succeeded) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } else if (failed) { - lib$rsvp$$internal$$reject(promise, error); - } else if (settled === lib$rsvp$$internal$$FULFILLED) { - lib$rsvp$$internal$$fulfill(promise, value); - } else if (settled === lib$rsvp$$internal$$REJECTED) { - lib$rsvp$$internal$$reject(promise, value); + $$$internal$$reject(promise, error); + } else if (settled === $$$internal$$FULFILLED) { + $$$internal$$fulfill(promise, value); + } else if (settled === $$$internal$$REJECTED) { + $$$internal$$reject(promise, value); } } - function lib$rsvp$$internal$$initializePromise(promise, resolver) { - var resolved = false; + function $$$internal$$initializePromise(promise, resolver) { try { resolver(function resolvePromise(value){ - if (resolved) { return; } - resolved = true; - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); }, function rejectPromise(reason) { - if (resolved) { return; } - resolved = true; - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); }); } catch(e) { - lib$rsvp$$internal$$reject(promise, e); + $$$internal$$reject(promise, e); } } - function lib$rsvp$enumerator$$makeSettledResult(state, position, value) { - if (state === lib$rsvp$$internal$$FULFILLED) { + function $$enumerator$$makeSettledResult(state, position, value) { + if (state === $$$internal$$FULFILLED) { return { state: 'fulfilled', value: value }; } else { - return { + return { state: 'rejected', reason: value }; } } - function lib$rsvp$enumerator$$Enumerator(Constructor, input, abortOnReject, label) { - var enumerator = this; - - enumerator._instanceConstructor = Constructor; - enumerator.promise = new Constructor(lib$rsvp$$internal$$noop, label); - enumerator._abortOnReject = abortOnReject; + function $$enumerator$$Enumerator(Constructor, input, abortOnReject, label) { + this._instanceConstructor = Constructor; + this.promise = new Constructor($$$internal$$noop, label); + this._abortOnReject = abortOnReject; - if (enumerator._validateInput(input)) { - enumerator._input = input; - enumerator.length = input.length; - enumerator._remaining = input.length; + if (this._validateInput(input)) { + this._input = input; + this.length = input.length; + this._remaining = input.length; - enumerator._init(); + this._init(); - if (enumerator.length === 0) { - lib$rsvp$$internal$$fulfill(enumerator.promise, enumerator._result); + if (this.length === 0) { + $$$internal$$fulfill(this.promise, this._result); } else { - enumerator.length = enumerator.length || 0; - enumerator._enumerate(); - if (enumerator._remaining === 0) { - lib$rsvp$$internal$$fulfill(enumerator.promise, enumerator._result); + this.length = this.length || 0; + this._enumerate(); + if (this._remaining === 0) { + $$$internal$$fulfill(this.promise, this._result); } } } else { - lib$rsvp$$internal$$reject(enumerator.promise, enumerator._validationError()); + $$$internal$$reject(this.promise, this._validationError()); } } - var lib$rsvp$enumerator$$default = lib$rsvp$enumerator$$Enumerator; - - lib$rsvp$enumerator$$Enumerator.prototype._validateInput = function(input) { - return lib$rsvp$utils$$isArray(input); + $$enumerator$$Enumerator.prototype._validateInput = function(input) { + return $$utils$$isArray(input); }; - lib$rsvp$enumerator$$Enumerator.prototype._validationError = function() { + $$enumerator$$Enumerator.prototype._validationError = function() { return new Error('Array Methods must be provided an Array'); }; - lib$rsvp$enumerator$$Enumerator.prototype._init = function() { + $$enumerator$$Enumerator.prototype._init = function() { this._result = new Array(this.length); }; - lib$rsvp$enumerator$$Enumerator.prototype._enumerate = function() { - var enumerator = this; - var length = enumerator.length; - var promise = enumerator.promise; - var input = enumerator._input; + var $$enumerator$$default = $$enumerator$$Enumerator; + + $$enumerator$$Enumerator.prototype._enumerate = function() { + var length = this.length; + var promise = this.promise; + var input = this._input; - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { - enumerator._eachEntry(input[i], i); + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { + this._eachEntry(input[i], i); } }; - lib$rsvp$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { - var enumerator = this; - var c = enumerator._instanceConstructor; - if (lib$rsvp$utils$$isMaybeThenable(entry)) { - if (entry.constructor === c && entry._state !== lib$rsvp$$internal$$PENDING) { - entry._onError = null; - enumerator._settledAt(entry._state, i, entry._result); + $$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { + var c = this._instanceConstructor; + if ($$utils$$isMaybeThenable(entry)) { + if (entry.constructor === c && entry._state !== $$$internal$$PENDING) { + entry._onerror = null; + this._settledAt(entry._state, i, entry._result); } else { - enumerator._willSettleAt(c.resolve(entry), i); + this._willSettleAt(c.resolve(entry), i); } } else { - enumerator._remaining--; - enumerator._result[i] = enumerator._makeResult(lib$rsvp$$internal$$FULFILLED, i, entry); + this._remaining--; + this._result[i] = this._makeResult($$$internal$$FULFILLED, i, entry); } }; - lib$rsvp$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { - var enumerator = this; - var promise = enumerator.promise; + $$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { + var promise = this.promise; - if (promise._state === lib$rsvp$$internal$$PENDING) { - enumerator._remaining--; + if (promise._state === $$$internal$$PENDING) { + this._remaining--; - if (enumerator._abortOnReject && state === lib$rsvp$$internal$$REJECTED) { - lib$rsvp$$internal$$reject(promise, value); + if (this._abortOnReject && state === $$$internal$$REJECTED) { + $$$internal$$reject(promise, value); } else { - enumerator._result[i] = enumerator._makeResult(state, i, value); + this._result[i] = this._makeResult(state, i, value); } } - if (enumerator._remaining === 0) { - lib$rsvp$$internal$$fulfill(promise, enumerator._result); + if (this._remaining === 0) { + $$$internal$$fulfill(promise, this._result); } }; - lib$rsvp$enumerator$$Enumerator.prototype._makeResult = function(state, i, value) { + $$enumerator$$Enumerator.prototype._makeResult = function(state, i, value) { return value; }; - lib$rsvp$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { + $$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { var enumerator = this; - lib$rsvp$$internal$$subscribe(promise, undefined, function(value) { - enumerator._settledAt(lib$rsvp$$internal$$FULFILLED, i, value); + $$$internal$$subscribe(promise, undefined, function(value) { + enumerator._settledAt($$$internal$$FULFILLED, i, value); }, function(reason) { - enumerator._settledAt(lib$rsvp$$internal$$REJECTED, i, reason); + enumerator._settledAt($$$internal$$REJECTED, i, reason); }); }; - function lib$rsvp$promise$all$$all(entries, label) { - return new lib$rsvp$enumerator$$default(this, entries, true /* abort on reject */, label).promise; - } - var lib$rsvp$promise$all$$default = lib$rsvp$promise$all$$all; - function lib$rsvp$promise$race$$race(entries, label) { + + var $$promise$all$$default = function all(entries, label) { + return new $$enumerator$$default(this, entries, true /* abort on reject */, label).promise; + }; + + var $$promise$race$$default = function race(entries, label) { /*jshint validthis:true */ var Constructor = this; - var promise = new Constructor(lib$rsvp$$internal$$noop, label); + var promise = new Constructor($$$internal$$noop, label); - if (!lib$rsvp$utils$$isArray(entries)) { - lib$rsvp$$internal$$reject(promise, new TypeError('You must pass an array to race.')); + if (!$$utils$$isArray(entries)) { + $$$internal$$reject(promise, new TypeError('You must pass an array to race.')); return promise; } var length = entries.length; function onFulfillment(value) { - lib$rsvp$$internal$$resolve(promise, value); + $$$internal$$resolve(promise, value); } function onRejection(reason) { - lib$rsvp$$internal$$reject(promise, reason); + $$$internal$$reject(promise, reason); } - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { - lib$rsvp$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection); + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { + $$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection); } return promise; - } - var lib$rsvp$promise$race$$default = lib$rsvp$promise$race$$race; - function lib$rsvp$promise$resolve$$resolve(object, label) { + }; + + var $$promise$resolve$$default = function resolve(object, label) { /*jshint validthis:true */ var Constructor = this; @@ -707,78 +675,175 @@ return object; } - var promise = new Constructor(lib$rsvp$$internal$$noop, label); - lib$rsvp$$internal$$resolve(promise, object); + var promise = new Constructor($$$internal$$noop, label); + $$$internal$$resolve(promise, object); return promise; - } - var lib$rsvp$promise$resolve$$default = lib$rsvp$promise$resolve$$resolve; - function lib$rsvp$promise$reject$$reject(reason, label) { + }; + + var $$promise$reject$$default = function reject(reason, label) { /*jshint validthis:true */ var Constructor = this; - var promise = new Constructor(lib$rsvp$$internal$$noop, label); - lib$rsvp$$internal$$reject(promise, reason); + var promise = new Constructor($$$internal$$noop, label); + $$$internal$$reject(promise, reason); return promise; - } - var lib$rsvp$promise$reject$$default = lib$rsvp$promise$reject$$reject; + }; - var lib$rsvp$promise$$guidKey = 'rsvp_' + lib$rsvp$utils$$now() + '-'; - var lib$rsvp$promise$$counter = 0; + var $$rsvp$promise$$guidKey = 'rsvp_' + $$utils$$now() + '-'; + var $$rsvp$promise$$counter = 0; - function lib$rsvp$promise$$needsResolver() { + function $$rsvp$promise$$needsResolver() { throw new TypeError('You must pass a resolver function as the first argument to the promise constructor'); } - function lib$rsvp$promise$$needsNew() { + function $$rsvp$promise$$needsNew() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); } - function lib$rsvp$promise$$Promise(resolver, label) { - var promise = this; + var $$rsvp$promise$$default = $$rsvp$promise$$Promise; + + /** + Promise objects represent the eventual result of an asynchronous operation. The + primary way of interacting with a promise is through its `then` method, which + registers callbacks to receive either a promise’s eventual value or the reason + why the promise cannot be fulfilled. + + Terminology + ----------- + + - `promise` is an object or function with a `then` method whose behavior conforms to this specification. + - `thenable` is an object or function that defines a `then` method. + - `value` is any legal JavaScript value (including undefined, a thenable, or a promise). + - `exception` is a value that is thrown using the throw statement. + - `reason` is a value that indicates why a promise was rejected. + - `settled` the final resting state of a promise, fulfilled or rejected. + + A promise can be in one of three states: pending, fulfilled, or rejected. + + Promises that are fulfilled have a fulfillment value and are in the fulfilled + state. Promises that are rejected have a rejection reason and are in the + rejected state. A fulfillment value is never a thenable. + + Promises can also be said to *resolve* a value. If this value is also a + promise, then the original promise's settled state will match the value's + settled state. So a promise that *resolves* a promise that rejects will + itself reject, and a promise that *resolves* a promise that fulfills will + itself fulfill. + + + Basic Usage: + ------------ + + ```js + var promise = new Promise(function(resolve, reject) { + // on success + resolve(value); + + // on failure + reject(reason); + }); + + promise.then(function(value) { + // on fulfillment + }, function(reason) { + // on rejection + }); + ``` + + Advanced Usage: + --------------- + + Promises shine when abstracting away asynchronous interactions such as + `XMLHttpRequest`s. + + ```js + function getJSON(url) { + return new Promise(function(resolve, reject){ + var xhr = new XMLHttpRequest(); + + xhr.open('GET', url); + xhr.onreadystatechange = handler; + xhr.responseType = 'json'; + xhr.setRequestHeader('Accept', 'application/json'); + xhr.send(); + + function handler() { + if (this.readyState === this.DONE) { + if (this.status === 200) { + resolve(this.response); + } else { + reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']')); + } + } + }; + }); + } + + getJSON('/posts.json').then(function(json) { + // on fulfillment + }, function(reason) { + // on rejection + }); + ``` + + Unlike callbacks, promises are great composable primitives. - promise._id = lib$rsvp$promise$$counter++; - promise._label = label; - promise._state = undefined; - promise._result = undefined; - promise._subscribers = []; + ```js + Promise.all([ + getJSON('/posts'), + getJSON('/comments') + ]).then(function(values){ + values[0] // => postsJSON + values[1] // => commentsJSON + + return values; + }); + ``` - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('created', promise); + @class RSVP.Promise + @param {function} resolver + @param {String} label optional string for labeling the promise. + Useful for tooling. + @constructor + */ + function $$rsvp$promise$$Promise(resolver, label) { + this._id = $$rsvp$promise$$counter++; + this._label = label; + this._state = undefined; + this._result = undefined; + this._subscribers = []; + + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('created', this); } - if (lib$rsvp$$internal$$noop !== resolver) { - if (!lib$rsvp$utils$$isFunction(resolver)) { - lib$rsvp$promise$$needsResolver(); + if ($$$internal$$noop !== resolver) { + if (!$$utils$$isFunction(resolver)) { + $$rsvp$promise$$needsResolver(); } - if (!(promise instanceof lib$rsvp$promise$$Promise)) { - lib$rsvp$promise$$needsNew(); + if (!(this instanceof $$rsvp$promise$$Promise)) { + $$rsvp$promise$$needsNew(); } - lib$rsvp$$internal$$initializePromise(promise, resolver); + $$$internal$$initializePromise(this, resolver); } } - var lib$rsvp$promise$$default = lib$rsvp$promise$$Promise; - // deprecated - lib$rsvp$promise$$Promise.cast = lib$rsvp$promise$resolve$$default; - lib$rsvp$promise$$Promise.all = lib$rsvp$promise$all$$default; - lib$rsvp$promise$$Promise.race = lib$rsvp$promise$race$$default; - lib$rsvp$promise$$Promise.resolve = lib$rsvp$promise$resolve$$default; - lib$rsvp$promise$$Promise.reject = lib$rsvp$promise$reject$$default; - - lib$rsvp$promise$$Promise.prototype = { - constructor: lib$rsvp$promise$$Promise, - - _guidKey: lib$rsvp$promise$$guidKey, - - _onError: function (reason) { - var promise = this; - lib$rsvp$config$$config.after(function() { - if (promise._onError) { - lib$rsvp$config$$config['trigger']('error', reason, promise._label); - } - }); + $$rsvp$promise$$Promise.cast = $$promise$resolve$$default; + + $$rsvp$promise$$Promise.all = $$promise$all$$default; + $$rsvp$promise$$Promise.race = $$promise$race$$default; + $$rsvp$promise$$Promise.resolve = $$promise$resolve$$default; + $$rsvp$promise$$Promise.reject = $$promise$reject$$default; + + $$rsvp$promise$$Promise.prototype = { + constructor: $$rsvp$promise$$Promise, + + _guidKey: $$rsvp$promise$$guidKey, + + _onerror: function (reason) { + $$rsvp$config$$config.trigger('error', reason); }, /** @@ -969,8 +1034,8 @@ ``` @method then - @param {Function} onFulfillment - @param {Function} onRejection + @param {Function} onFulfilled + @param {Function} onRejected @param {String} label optional string for labeling the promise. Useful for tooling. @return {Promise} @@ -979,29 +1044,29 @@ var parent = this; var state = parent._state; - if (state === lib$rsvp$$internal$$FULFILLED && !onFulfillment || state === lib$rsvp$$internal$$REJECTED && !onRejection) { - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('chained', parent, parent); + if (state === $$$internal$$FULFILLED && !onFulfillment || state === $$$internal$$REJECTED && !onRejection) { + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('chained', this, this); } - return parent; + return this; } - parent._onError = null; + parent._onerror = null; - var child = new parent.constructor(lib$rsvp$$internal$$noop, label); + var child = new this.constructor($$$internal$$noop, label); var result = parent._result; - if (lib$rsvp$config$$config.instrument) { - lib$rsvp$instrument$$default('chained', parent, child); + if ($$rsvp$config$$config.instrument) { + $$instrument$$default('chained', parent, child); } if (state) { var callback = arguments[state - 1]; - lib$rsvp$config$$config.async(function(){ - lib$rsvp$$internal$$invokeCallback(state, child, callback, result); + $$rsvp$config$$config.async(function(){ + $$$internal$$invokeCallback(state, child, callback, result); }); } else { - lib$rsvp$$internal$$subscribe(parent, child, onFulfillment, onRejection); + $$$internal$$subscribe(parent, child, onFulfillment, onRejection); } return child; @@ -1036,7 +1101,7 @@ @return {Promise} */ 'catch': function(onRejection, label) { - return this.then(undefined, onRejection, label); + return this.then(null, onRejection, label); }, /** @@ -1080,10 +1145,9 @@ @return {Promise} */ 'finally': function(callback, label) { - var promise = this; - var constructor = promise.constructor; + var constructor = this.constructor; - return promise.then(function(value) { + return this.then(function(value) { return constructor.resolve(callback()).then(function(){ return value; }); @@ -1095,210 +1159,202 @@ } }; - function lib$rsvp$all$settled$$AllSettled(Constructor, entries, label) { - this._superConstructor(Constructor, entries, false /* don't abort on reject */, label); + function $$rsvp$node$$Result() { + this.value = undefined; } - lib$rsvp$all$settled$$AllSettled.prototype = lib$rsvp$utils$$o_create(lib$rsvp$enumerator$$default.prototype); - lib$rsvp$all$settled$$AllSettled.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$all$settled$$AllSettled.prototype._makeResult = lib$rsvp$enumerator$$makeSettledResult; - lib$rsvp$all$settled$$AllSettled.prototype._validationError = function() { - return new Error('allSettled must be called with an array'); - }; + var $$rsvp$node$$ERROR = new $$rsvp$node$$Result(); + var $$rsvp$node$$GET_THEN_ERROR = new $$rsvp$node$$Result(); - function lib$rsvp$all$settled$$allSettled(entries, label) { - return new lib$rsvp$all$settled$$AllSettled(lib$rsvp$promise$$default, entries, label).promise; - } - var lib$rsvp$all$settled$$default = lib$rsvp$all$settled$$allSettled; - function lib$rsvp$all$$all(array, label) { - return lib$rsvp$promise$$default.all(array, label); - } - var lib$rsvp$all$$default = lib$rsvp$all$$all; - var lib$rsvp$asap$$len = 0; - var lib$rsvp$asap$$toString = {}.toString; - var lib$rsvp$asap$$vertxNext; - function lib$rsvp$asap$$asap(callback, arg) { - lib$rsvp$asap$$queue[lib$rsvp$asap$$len] = callback; - lib$rsvp$asap$$queue[lib$rsvp$asap$$len + 1] = arg; - lib$rsvp$asap$$len += 2; - if (lib$rsvp$asap$$len === 2) { - // If len is 1, that means that we need to schedule an async flush. - // If additional callbacks are queued before the queue is flushed, they - // will be processed by this flush that we are scheduling. - lib$rsvp$asap$$scheduleFlush(); + function $$rsvp$node$$getThen(obj) { + try { + return obj.then; + } catch(error) { + $$rsvp$node$$ERROR.value= error; + return $$rsvp$node$$ERROR; } } - var lib$rsvp$asap$$default = lib$rsvp$asap$$asap; + function $$rsvp$node$$tryApply(f, s, a) { + try { + f.apply(s, a); + } catch(error) { + $$rsvp$node$$ERROR.value = error; + return $$rsvp$node$$ERROR; + } + } - var lib$rsvp$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined; - var lib$rsvp$asap$$browserGlobal = lib$rsvp$asap$$browserWindow || {}; - var lib$rsvp$asap$$BrowserMutationObserver = lib$rsvp$asap$$browserGlobal.MutationObserver || lib$rsvp$asap$$browserGlobal.WebKitMutationObserver; - var lib$rsvp$asap$$isNode = typeof self === 'undefined' && - typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; + function $$rsvp$node$$makeObject(_, argumentNames) { + var obj = {}; + var name; + var i; + var length = _.length; + var args = new Array(length); - // test for web worker but not in IE10 - var lib$rsvp$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' && - typeof importScripts !== 'undefined' && - typeof MessageChannel !== 'undefined'; + for (var x = 0; x < length; x++) { + args[x] = _[x]; + } - // node - function lib$rsvp$asap$$useNextTick() { - var nextTick = process.nextTick; - // node version 0.10.x displays a deprecation warning when nextTick is used recursively - // setImmediate should be used instead instead - var version = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/); - if (Array.isArray(version) && version[1] === '0' && version[2] === '10') { - nextTick = setImmediate; + for (i = 0; i < argumentNames.length; i++) { + name = argumentNames[i]; + obj[name] = args[i + 1]; } - return function() { - nextTick(lib$rsvp$asap$$flush); - }; - } - // vertx - function lib$rsvp$asap$$useVertxTimer() { - return function() { - lib$rsvp$asap$$vertxNext(lib$rsvp$asap$$flush); - }; + return obj; } - function lib$rsvp$asap$$useMutationObserver() { - var iterations = 0; - var observer = new lib$rsvp$asap$$BrowserMutationObserver(lib$rsvp$asap$$flush); - var node = document.createTextNode(''); - observer.observe(node, { characterData: true }); + function $$rsvp$node$$arrayResult(_) { + var length = _.length; + var args = new Array(length - 1); - return function() { - node.data = (iterations = ++iterations % 2); - }; - } + for (var i = 1; i < length; i++) { + args[i - 1] = _[i]; + } - // web worker - function lib$rsvp$asap$$useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = lib$rsvp$asap$$flush; - return function () { - channel.port2.postMessage(0); - }; + return args; } - function lib$rsvp$asap$$useSetTimeout() { - return function() { - setTimeout(lib$rsvp$asap$$flush, 1); + function $$rsvp$node$$wrapThenable(then, promise) { + return { + then: function(onFulFillment, onRejection) { + return then.call(promise, onFulFillment, onRejection); + } }; } - var lib$rsvp$asap$$queue = new Array(1000); - function lib$rsvp$asap$$flush() { - for (var i = 0; i < lib$rsvp$asap$$len; i+=2) { - var callback = lib$rsvp$asap$$queue[i]; - var arg = lib$rsvp$asap$$queue[i+1]; + var $$rsvp$node$$default = function denodeify(nodeFunc, options) { + var fn = function() { + var self = this; + var l = arguments.length; + var args = new Array(l + 1); + var arg; + var promiseInput = false; - callback(arg); + for (var i = 0; i < l; ++i) { + arg = arguments[i]; - lib$rsvp$asap$$queue[i] = undefined; - lib$rsvp$asap$$queue[i+1] = undefined; - } + if (!promiseInput) { + // TODO: clean this up + promiseInput = $$rsvp$node$$needsPromiseInput(arg); + if (promiseInput === $$rsvp$node$$GET_THEN_ERROR) { + var p = new $$rsvp$promise$$default($$$internal$$noop); + $$$internal$$reject(p, $$rsvp$node$$GET_THEN_ERROR.value); + return p; + } else if (promiseInput && promiseInput !== true) { + arg = $$rsvp$node$$wrapThenable(promiseInput, arg); + } + } + args[i] = arg; + } - lib$rsvp$asap$$len = 0; - } + var promise = new $$rsvp$promise$$default($$$internal$$noop); - function lib$rsvp$asap$$attemptVertex() { - try { - var r = require; - var vertx = r('vertx'); - lib$rsvp$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext; - return lib$rsvp$asap$$useVertxTimer(); - } catch(e) { - return lib$rsvp$asap$$useSetTimeout(); + args[l] = function(err, val) { + if (err) + $$$internal$$reject(promise, err); + else if (options === undefined) + $$$internal$$resolve(promise, val); + else if (options === true) + $$$internal$$resolve(promise, $$rsvp$node$$arrayResult(arguments)); + else if ($$utils$$isArray(options)) + $$$internal$$resolve(promise, $$rsvp$node$$makeObject(arguments, options)); + else + $$$internal$$resolve(promise, val); + }; + + if (promiseInput) { + return $$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self); + } else { + return $$rsvp$node$$handleValueInput(promise, args, nodeFunc, self); + } + }; + + fn.__proto__ = nodeFunc; + + return fn; + }; + + function $$rsvp$node$$handleValueInput(promise, args, nodeFunc, self) { + var result = $$rsvp$node$$tryApply(nodeFunc, self, args); + if (result === $$rsvp$node$$ERROR) { + $$$internal$$reject(promise, result.value); } + return promise; } - var lib$rsvp$asap$$scheduleFlush; - // Decide what async method to use to triggering processing of queued callbacks: - if (lib$rsvp$asap$$isNode) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useNextTick(); - } else if (lib$rsvp$asap$$BrowserMutationObserver) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useMutationObserver(); - } else if (lib$rsvp$asap$$isWorker) { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useMessageChannel(); - } else if (lib$rsvp$asap$$browserWindow === undefined && typeof require === 'function') { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$attemptVertex(); - } else { - lib$rsvp$asap$$scheduleFlush = lib$rsvp$asap$$useSetTimeout(); + function $$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self){ + return $$rsvp$promise$$default.all(args).then(function(args){ + var result = $$rsvp$node$$tryApply(nodeFunc, self, args); + if (result === $$rsvp$node$$ERROR) { + $$$internal$$reject(promise, result.value); + } + return promise; + }); } - function lib$rsvp$defer$$defer(label) { - var deferred = {}; - deferred['promise'] = new lib$rsvp$promise$$default(function(resolve, reject) { - deferred['resolve'] = resolve; - deferred['reject'] = reject; - }, label); - - return deferred; - } - var lib$rsvp$defer$$default = lib$rsvp$defer$$defer; - function lib$rsvp$filter$$filter(promises, filterFn, label) { - return lib$rsvp$promise$$default.all(promises, label).then(function(values) { - if (!lib$rsvp$utils$$isFunction(filterFn)) { - throw new TypeError("You must pass a function as filter's second argument."); + function $$rsvp$node$$needsPromiseInput(arg) { + if (arg && typeof arg === 'object') { + if (arg.constructor === $$rsvp$promise$$default) { + return true; + } else { + return $$rsvp$node$$getThen(arg); } + } else { + return false; + } + } - var length = values.length; - var filtered = new Array(length); + var $$rsvp$all$$default = function all(array, label) { + return $$rsvp$promise$$default.all(array, label); + }; - for (var i = 0; i < length; i++) { - filtered[i] = filterFn(values[i]); - } + function $$rsvp$all$settled$$AllSettled(Constructor, entries, label) { + this._superConstructor(Constructor, entries, false /* don't abort on reject */, label); + } - return lib$rsvp$promise$$default.all(filtered, label).then(function(filtered) { - var results = new Array(length); - var newLength = 0; + $$rsvp$all$settled$$AllSettled.prototype = $$utils$$o_create($$enumerator$$default.prototype); + $$rsvp$all$settled$$AllSettled.prototype._superConstructor = $$enumerator$$default; + $$rsvp$all$settled$$AllSettled.prototype._makeResult = $$enumerator$$makeSettledResult; - for (var i = 0; i < length; i++) { - if (filtered[i]) { - results[newLength] = values[i]; - newLength++; - } - } + $$rsvp$all$settled$$AllSettled.prototype._validationError = function() { + return new Error('allSettled must be called with an array'); + }; - results.length = newLength; + var $$rsvp$all$settled$$default = function allSettled(entries, label) { + return new $$rsvp$all$settled$$AllSettled($$rsvp$promise$$default, entries, label).promise; + }; - return results; - }); - }); - } - var lib$rsvp$filter$$default = lib$rsvp$filter$$filter; + var $$rsvp$race$$default = function race(array, label) { + return $$rsvp$promise$$default.race(array, label); + }; - function lib$rsvp$promise$hash$$PromiseHash(Constructor, object, label) { + function $$promise$hash$$PromiseHash(Constructor, object, label) { this._superConstructor(Constructor, object, true, label); } - var lib$rsvp$promise$hash$$default = lib$rsvp$promise$hash$$PromiseHash; + var $$promise$hash$$default = $$promise$hash$$PromiseHash; + $$promise$hash$$PromiseHash.prototype = $$utils$$o_create($$enumerator$$default.prototype); + $$promise$hash$$PromiseHash.prototype._superConstructor = $$enumerator$$default; - lib$rsvp$promise$hash$$PromiseHash.prototype = lib$rsvp$utils$$o_create(lib$rsvp$enumerator$$default.prototype); - lib$rsvp$promise$hash$$PromiseHash.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$promise$hash$$PromiseHash.prototype._init = function() { + $$promise$hash$$PromiseHash.prototype._init = function() { this._result = {}; }; - lib$rsvp$promise$hash$$PromiseHash.prototype._validateInput = function(input) { + $$promise$hash$$PromiseHash.prototype._validateInput = function(input) { return input && typeof input === 'object'; }; - lib$rsvp$promise$hash$$PromiseHash.prototype._validationError = function() { + $$promise$hash$$PromiseHash.prototype._validationError = function() { return new Error('Promise.hash must be called with an object'); }; - lib$rsvp$promise$hash$$PromiseHash.prototype._enumerate = function() { - var enumerator = this; - var promise = enumerator.promise; - var input = enumerator._input; - var results = []; + $$promise$hash$$PromiseHash.prototype._enumerate = function() { + var promise = this.promise; + var input = this._input; + var results = []; for (var key in input) { - if (promise._state === lib$rsvp$$internal$$PENDING && Object.prototype.hasOwnProperty.call(input, key)) { + if (promise._state === $$$internal$$PENDING && input.hasOwnProperty(key)) { results.push({ position: key, entry: input[key] @@ -1307,38 +1363,56 @@ } var length = results.length; - enumerator._remaining = length; + this._remaining = length; var result; - for (var i = 0; promise._state === lib$rsvp$$internal$$PENDING && i < length; i++) { + for (var i = 0; promise._state === $$$internal$$PENDING && i < length; i++) { result = results[i]; - enumerator._eachEntry(result.entry, result.position); + this._eachEntry(result.entry, result.position); } }; - function lib$rsvp$hash$settled$$HashSettled(Constructor, object, label) { + var $$rsvp$hash$$default = function hash(object, label) { + return new $$promise$hash$$default($$rsvp$promise$$default, object, label).promise; + }; + + function $$rsvp$hash$settled$$HashSettled(Constructor, object, label) { this._superConstructor(Constructor, object, false, label); } - lib$rsvp$hash$settled$$HashSettled.prototype = lib$rsvp$utils$$o_create(lib$rsvp$promise$hash$$default.prototype); - lib$rsvp$hash$settled$$HashSettled.prototype._superConstructor = lib$rsvp$enumerator$$default; - lib$rsvp$hash$settled$$HashSettled.prototype._makeResult = lib$rsvp$enumerator$$makeSettledResult; + $$rsvp$hash$settled$$HashSettled.prototype = $$utils$$o_create($$promise$hash$$default.prototype); + $$rsvp$hash$settled$$HashSettled.prototype._superConstructor = $$enumerator$$default; + $$rsvp$hash$settled$$HashSettled.prototype._makeResult = $$enumerator$$makeSettledResult; - lib$rsvp$hash$settled$$HashSettled.prototype._validationError = function() { + $$rsvp$hash$settled$$HashSettled.prototype._validationError = function() { return new Error('hashSettled must be called with an object'); }; - function lib$rsvp$hash$settled$$hashSettled(object, label) { - return new lib$rsvp$hash$settled$$HashSettled(lib$rsvp$promise$$default, object, label).promise; - } - var lib$rsvp$hash$settled$$default = lib$rsvp$hash$settled$$hashSettled; - function lib$rsvp$hash$$hash(object, label) { - return new lib$rsvp$promise$hash$$default(lib$rsvp$promise$$default, object, label).promise; - } - var lib$rsvp$hash$$default = lib$rsvp$hash$$hash; - function lib$rsvp$map$$map(promises, mapFn, label) { - return lib$rsvp$promise$$default.all(promises, label).then(function(values) { - if (!lib$rsvp$utils$$isFunction(mapFn)) { + var $$rsvp$hash$settled$$default = function hashSettled(object, label) { + return new $$rsvp$hash$settled$$HashSettled($$rsvp$promise$$default, object, label).promise; + }; + + var $$rsvp$rethrow$$default = function rethrow(reason) { + setTimeout(function() { + throw reason; + }); + throw reason; + }; + + var $$rsvp$defer$$default = function defer(label) { + var deferred = { }; + + deferred.promise = new $$rsvp$promise$$default(function(resolve, reject) { + deferred.resolve = resolve; + deferred.reject = reject; + }, label); + + return deferred; + }; + + var $$rsvp$map$$default = function map(promises, mapFn, label) { + return $$rsvp$promise$$default.all(promises, label).then(function(values) { + if (!$$utils$$isFunction(mapFn)) { throw new TypeError("You must pass a function as map's second argument."); } @@ -1349,257 +1423,195 @@ results[i] = mapFn(values[i]); } - return lib$rsvp$promise$$default.all(results, label); + return $$rsvp$promise$$default.all(results, label); }); - } - var lib$rsvp$map$$default = lib$rsvp$map$$map; + }; - function lib$rsvp$node$$Result() { - this.value = undefined; - } + var $$rsvp$resolve$$default = function resolve(value, label) { + return $$rsvp$promise$$default.resolve(value, label); + }; - var lib$rsvp$node$$ERROR = new lib$rsvp$node$$Result(); - var lib$rsvp$node$$GET_THEN_ERROR = new lib$rsvp$node$$Result(); + var $$rsvp$reject$$default = function reject(reason, label) { + return $$rsvp$promise$$default.reject(reason, label); + }; - function lib$rsvp$node$$getThen(obj) { - try { - return obj.then; - } catch(error) { - lib$rsvp$node$$ERROR.value= error; - return lib$rsvp$node$$ERROR; - } - } + var $$rsvp$filter$$default = function filter(promises, filterFn, label) { + return $$rsvp$promise$$default.all(promises, label).then(function(values) { + if (!$$utils$$isFunction(filterFn)) { + throw new TypeError("You must pass a function as filter's second argument."); + } + var length = values.length; + var filtered = new Array(length); - function lib$rsvp$node$$tryApply(f, s, a) { - try { - f.apply(s, a); - } catch(error) { - lib$rsvp$node$$ERROR.value = error; - return lib$rsvp$node$$ERROR; - } - } + for (var i = 0; i < length; i++) { + filtered[i] = filterFn(values[i]); + } - function lib$rsvp$node$$makeObject(_, argumentNames) { - var obj = {}; - var name; - var i; - var length = _.length; - var args = new Array(length); + return $$rsvp$promise$$default.all(filtered, label).then(function(filtered) { + var results = new Array(length); + var newLength = 0; - for (var x = 0; x < length; x++) { - args[x] = _[x]; - } + for (var i = 0; i < length; i++) { + if (filtered[i]) { + results[newLength] = values[i]; + newLength++; + } + } - for (i = 0; i < argumentNames.length; i++) { - name = argumentNames[i]; - obj[name] = args[i + 1]; - } + results.length = newLength; - return obj; - } + return results; + }); + }); + }; - function lib$rsvp$node$$arrayResult(_) { - var length = _.length; - var args = new Array(length - 1); + var $$rsvp$asap$$len = 0; - for (var i = 1; i < length; i++) { - args[i - 1] = _[i]; + var $$rsvp$asap$$default = function asap(callback, arg) { + $$rsvp$asap$$queue[$$rsvp$asap$$len] = callback; + $$rsvp$asap$$queue[$$rsvp$asap$$len + 1] = arg; + $$rsvp$asap$$len += 2; + if ($$rsvp$asap$$len === 2) { + // If len is 1, that means that we need to schedule an async flush. + // If additional callbacks are queued before the queue is flushed, they + // will be processed by this flush that we are scheduling. + $$rsvp$asap$$scheduleFlush(); } + }; - return args; - } + var $$rsvp$asap$$browserGlobal = (typeof window !== 'undefined') ? window : {}; + var $$rsvp$asap$$BrowserMutationObserver = $$rsvp$asap$$browserGlobal.MutationObserver || $$rsvp$asap$$browserGlobal.WebKitMutationObserver; - function lib$rsvp$node$$wrapThenable(then, promise) { - return { - then: function(onFulFillment, onRejection) { - return then.call(promise, onFulFillment, onRejection); - } + // test for web worker but not in IE10 + var $$rsvp$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' && + typeof importScripts !== 'undefined' && + typeof MessageChannel !== 'undefined'; + + // node + function $$rsvp$asap$$useNextTick() { + return function() { + process.nextTick($$rsvp$asap$$flush); }; } - function lib$rsvp$node$$denodeify(nodeFunc, options) { - var fn = function() { - var self = this; - var l = arguments.length; - var args = new Array(l + 1); - var arg; - var promiseInput = false; - - for (var i = 0; i < l; ++i) { - arg = arguments[i]; - - if (!promiseInput) { - // TODO: clean this up - promiseInput = lib$rsvp$node$$needsPromiseInput(arg); - if (promiseInput === lib$rsvp$node$$GET_THEN_ERROR) { - var p = new lib$rsvp$promise$$default(lib$rsvp$$internal$$noop); - lib$rsvp$$internal$$reject(p, lib$rsvp$node$$GET_THEN_ERROR.value); - return p; - } else if (promiseInput && promiseInput !== true) { - arg = lib$rsvp$node$$wrapThenable(promiseInput, arg); - } - } - args[i] = arg; - } - - var promise = new lib$rsvp$promise$$default(lib$rsvp$$internal$$noop); - - args[l] = function(err, val) { - if (err) - lib$rsvp$$internal$$reject(promise, err); - else if (options === undefined) - lib$rsvp$$internal$$resolve(promise, val); - else if (options === true) - lib$rsvp$$internal$$resolve(promise, lib$rsvp$node$$arrayResult(arguments)); - else if (lib$rsvp$utils$$isArray(options)) - lib$rsvp$$internal$$resolve(promise, lib$rsvp$node$$makeObject(arguments, options)); - else - lib$rsvp$$internal$$resolve(promise, val); - }; + function $$rsvp$asap$$useMutationObserver() { + var iterations = 0; + var observer = new $$rsvp$asap$$BrowserMutationObserver($$rsvp$asap$$flush); + var node = document.createTextNode(''); + observer.observe(node, { characterData: true }); - if (promiseInput) { - return lib$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self); - } else { - return lib$rsvp$node$$handleValueInput(promise, args, nodeFunc, self); - } + return function() { + node.data = (iterations = ++iterations % 2); }; + } - fn.__proto__ = nodeFunc; + // web worker + function $$rsvp$asap$$useMessageChannel() { + var channel = new MessageChannel(); + channel.port1.onmessage = $$rsvp$asap$$flush; + return function () { + channel.port2.postMessage(0); + }; + } - return fn; + function $$rsvp$asap$$useSetTimeout() { + return function() { + setTimeout($$rsvp$asap$$flush, 1); + }; } - var lib$rsvp$node$$default = lib$rsvp$node$$denodeify; + var $$rsvp$asap$$queue = new Array(1000); - function lib$rsvp$node$$handleValueInput(promise, args, nodeFunc, self) { - var result = lib$rsvp$node$$tryApply(nodeFunc, self, args); - if (result === lib$rsvp$node$$ERROR) { - lib$rsvp$$internal$$reject(promise, result.value); - } - return promise; - } + function $$rsvp$asap$$flush() { + for (var i = 0; i < $$rsvp$asap$$len; i+=2) { + var callback = $$rsvp$asap$$queue[i]; + var arg = $$rsvp$asap$$queue[i+1]; - function lib$rsvp$node$$handlePromiseInput(promise, args, nodeFunc, self){ - return lib$rsvp$promise$$default.all(args).then(function(args){ - var result = lib$rsvp$node$$tryApply(nodeFunc, self, args); - if (result === lib$rsvp$node$$ERROR) { - lib$rsvp$$internal$$reject(promise, result.value); - } - return promise; - }); - } + callback(arg); - function lib$rsvp$node$$needsPromiseInput(arg) { - if (arg && typeof arg === 'object') { - if (arg.constructor === lib$rsvp$promise$$default) { - return true; - } else { - return lib$rsvp$node$$getThen(arg); - } - } else { - return false; + $$rsvp$asap$$queue[i] = undefined; + $$rsvp$asap$$queue[i+1] = undefined; } + + $$rsvp$asap$$len = 0; } - var lib$rsvp$platform$$platform; - /* global self */ - if (typeof self === 'object') { - lib$rsvp$platform$$platform = self; + var $$rsvp$asap$$scheduleFlush; - /* global global */ - } else if (typeof global === 'object') { - lib$rsvp$platform$$platform = global; + // Decide what async method to use to triggering processing of queued callbacks: + if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useNextTick(); + } else if ($$rsvp$asap$$BrowserMutationObserver) { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useMutationObserver(); + } else if ($$rsvp$asap$$isWorker) { + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useMessageChannel(); } else { - throw new Error('no global: `self` or `global` found'); + $$rsvp$asap$$scheduleFlush = $$rsvp$asap$$useSetTimeout(); } - var lib$rsvp$platform$$default = lib$rsvp$platform$$platform; - function lib$rsvp$race$$race(array, label) { - return lib$rsvp$promise$$default.race(array, label); - } - var lib$rsvp$race$$default = lib$rsvp$race$$race; - function lib$rsvp$reject$$reject(reason, label) { - return lib$rsvp$promise$$default.reject(reason, label); - } - var lib$rsvp$reject$$default = lib$rsvp$reject$$reject; - function lib$rsvp$resolve$$resolve(value, label) { - return lib$rsvp$promise$$default.resolve(value, label); - } - var lib$rsvp$resolve$$default = lib$rsvp$resolve$$resolve; - function lib$rsvp$rethrow$$rethrow(reason) { - setTimeout(function() { - throw reason; - }); - throw reason; - } - var lib$rsvp$rethrow$$default = lib$rsvp$rethrow$$rethrow; + // default async is asap; + $$rsvp$config$$config.async = $$rsvp$asap$$default; - // defaults - lib$rsvp$config$$config.async = lib$rsvp$asap$$default; - lib$rsvp$config$$config.after = function(cb) { - setTimeout(cb, 0); - }; - var lib$rsvp$$cast = lib$rsvp$resolve$$default; - function lib$rsvp$$async(callback, arg) { - lib$rsvp$config$$config.async(callback, arg); + var $$rsvp$$cast = $$rsvp$resolve$$default; + + function $$rsvp$$async(callback, arg) { + $$rsvp$config$$config.async(callback, arg); } - function lib$rsvp$$on() { - lib$rsvp$config$$config['on'].apply(lib$rsvp$config$$config, arguments); + function $$rsvp$$on() { + $$rsvp$config$$config.on.apply($$rsvp$config$$config, arguments); } - function lib$rsvp$$off() { - lib$rsvp$config$$config['off'].apply(lib$rsvp$config$$config, arguments); + function $$rsvp$$off() { + $$rsvp$config$$config.off.apply($$rsvp$config$$config, arguments); } // Set up instrumentation through `window.__PROMISE_INTRUMENTATION__` if (typeof window !== 'undefined' && typeof window['__PROMISE_INSTRUMENTATION__'] === 'object') { - var lib$rsvp$$callbacks = window['__PROMISE_INSTRUMENTATION__']; - lib$rsvp$config$$configure('instrument', true); - for (var lib$rsvp$$eventName in lib$rsvp$$callbacks) { - if (lib$rsvp$$callbacks.hasOwnProperty(lib$rsvp$$eventName)) { - lib$rsvp$$on(lib$rsvp$$eventName, lib$rsvp$$callbacks[lib$rsvp$$eventName]); + var $$rsvp$$callbacks = window['__PROMISE_INSTRUMENTATION__']; + $$rsvp$config$$configure('instrument', true); + for (var $$rsvp$$eventName in $$rsvp$$callbacks) { + if ($$rsvp$$callbacks.hasOwnProperty($$rsvp$$eventName)) { + $$rsvp$$on($$rsvp$$eventName, $$rsvp$$callbacks[$$rsvp$$eventName]); } } } - var lib$rsvp$umd$$RSVP = { - 'race': lib$rsvp$race$$default, - 'Promise': lib$rsvp$promise$$default, - 'allSettled': lib$rsvp$all$settled$$default, - 'hash': lib$rsvp$hash$$default, - 'hashSettled': lib$rsvp$hash$settled$$default, - 'denodeify': lib$rsvp$node$$default, - 'on': lib$rsvp$$on, - 'off': lib$rsvp$$off, - 'map': lib$rsvp$map$$default, - 'filter': lib$rsvp$filter$$default, - 'resolve': lib$rsvp$resolve$$default, - 'reject': lib$rsvp$reject$$default, - 'all': lib$rsvp$all$$default, - 'rethrow': lib$rsvp$rethrow$$default, - 'defer': lib$rsvp$defer$$default, - 'EventTarget': lib$rsvp$events$$default, - 'configure': lib$rsvp$config$$configure, - 'async': lib$rsvp$$async + var rsvp$umd$$RSVP = { + 'race': $$rsvp$race$$default, + 'Promise': $$rsvp$promise$$default, + 'allSettled': $$rsvp$all$settled$$default, + 'hash': $$rsvp$hash$$default, + 'hashSettled': $$rsvp$hash$settled$$default, + 'denodeify': $$rsvp$node$$default, + 'on': $$rsvp$$on, + 'off': $$rsvp$$off, + 'map': $$rsvp$map$$default, + 'filter': $$rsvp$filter$$default, + 'resolve': $$rsvp$resolve$$default, + 'reject': $$rsvp$reject$$default, + 'all': $$rsvp$all$$default, + 'rethrow': $$rsvp$rethrow$$default, + 'defer': $$rsvp$defer$$default, + 'EventTarget': $$rsvp$events$$default, + 'configure': $$rsvp$config$$configure, + 'async': $$rsvp$$async }; /* global define:true module:true window: true */ - if (typeof define === 'function' && define['amd']) { - define(function() { return lib$rsvp$umd$$RSVP; }); - } else if (typeof module !== 'undefined' && module['exports']) { - module['exports'] = lib$rsvp$umd$$RSVP; - } else if (typeof lib$rsvp$platform$$default !== 'undefined') { - lib$rsvp$platform$$default['RSVP'] = lib$rsvp$umd$$RSVP; + if (typeof define === 'function' && define.amd) { + define(function() { return rsvp$umd$$RSVP; }); + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = rsvp$umd$$RSVP; + } else if (typeof this !== 'undefined') { + this['RSVP'] = rsvp$umd$$RSVP; } }).call(this); - - 'use strict'; var EPUBJS = EPUBJS || {}; -EPUBJS.VERSION = "0.2.7"; +EPUBJS.VERSION = "0.2.10"; EPUBJS.plugins = EPUBJS.plugins || {}; diff --git a/reader/js/hooks.js.map b/reader/js/hooks.js.map index b6b64cc6f..7ae9050c5 100644 --- a/reader/js/hooks.js.map +++ b/reader/js/hooks.js.map @@ -13,5 +13,5 @@ "reader_src/controllers/toc_controller.js" ], "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A" + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA" } \ No newline at end of file diff --git a/reader/js/hooks.min.js b/reader/js/hooks.min.js index bb4dedae1..5e8c36fd7 100644 --- a/reader/js/hooks.min.js +++ b/reader/js/hooks.min.js @@ -1,2 +1,2 @@ -EPUBJS.Hooks.register("beforeChapterDisplay").endnotes=function(a,b){var c=b.contents.querySelectorAll("a[href]"),d=Array.prototype.slice.call(c),e="epub:type",f="noteref",g=EPUBJS.core.folder(location.pathname),h=g+EPUBJS.cssPath||g,i={};EPUBJS.core.addCss(h+"popup.css",!1,b.render.document.head),d.forEach(function(a){function c(){var c,e,f=b.height,j=b.width,p=225;o||(c=l.cloneNode(!0),o=c.querySelector("p")),i[k]||(i[k]=document.createElement("div"),i[k].setAttribute("class","popup"),pop_content=document.createElement("div"),i[k].appendChild(pop_content),pop_content.appendChild(o),pop_content.setAttribute("class","pop_content"),b.render.document.body.appendChild(i[k]),i[k].addEventListener("mouseover",d,!1),i[k].addEventListener("mouseout",g,!1),b.on("renderer:pageChanged",h,this),b.on("renderer:pageChanged",g,this)),c=i[k],e=a.getBoundingClientRect(),m=e.left,n=e.top,c.classList.add("show"),popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width/2+"px",c.style.top=n+"px",p>f/2.5&&(p=f/2.5,pop_content.style.maxHeight=p+"px"),popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),m-popRect.width<=0?(c.style.left=m+"px",c.classList.add("left")):c.classList.remove("left"),m+popRect.width/2>=j?(c.style.left=m-300+"px",popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width+"px",popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),c.classList.add("right")):c.classList.remove("right")}function d(){i[k].classList.add("on")}function g(){i[k].classList.remove("on")}function h(){setTimeout(function(){i[k].classList.remove("show")},100)}var j,k,l,m,n,o,p=a.getAttribute(e);p==f&&(j=a.getAttribute("href"),k=j.replace("#",""),l=b.render.document.getElementById(k),a.addEventListener("mouseover",c,!1),a.addEventListener("mouseout",h,!1))}),a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").mathml=function(a,b){if(-1!==b.currentChapter.manifestProperties.indexOf("mathml")){b.render.iframe.contentWindow.mathmlCallback=a;var c=document.createElement("script");c.type="text/x-mathjax-config",c.innerHTML=' MathJax.Hub.Register.StartupHook("End",function () { window.mathmlCallback(); }); MathJax.Hub.Config({jax: ["input/TeX","input/MathML","output/SVG"],extensions: ["tex2jax.js","mml2jax.js","MathEvents.js"],TeX: {extensions: ["noErrors.js","noUndefined.js","autoload-all.js"]},MathMenu: {showRenderer: false},menuSettings: {zoom: "Click"},messageStyle: "none"}); ',b.doc.body.appendChild(c),EPUBJS.core.addScript("http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",null,b.doc.head)}else a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").smartimages=function(a,b){var c=b.contents.querySelectorAll("img"),d=Array.prototype.slice.call(c),e=b.height;return"reflowable"!=b.layoutSettings.layout?void a():(d.forEach(function(a){function c(){var c,d=a.getBoundingClientRect(),f=d.height,g=d.top,h=a.getAttribute("data-height"),i=h||f,j=Number(getComputedStyle(a,"").fontSize.match(/(\d*(\.\d*)?)px/)[1]),k=j?j/2:0;e=b.contents.clientHeight,0>g&&(g=0),i+g>=e?(e/2>g?(c=e-g-k,a.style.maxHeight=c+"px",a.style.width="auto"):(i>e&&(a.style.maxHeight=e+"px",a.style.width="auto",d=a.getBoundingClientRect(),i=d.height),a.style.display="block",a.style.WebkitColumnBreakBefore="always",a.style.breakBefore="column"),a.setAttribute("data-height",c)):(a.style.removeProperty("max-height"),a.style.removeProperty("margin-top"))}a.addEventListener("load",c,!1),b.on("renderer:resized",c),b.on("renderer:chapterUnloaded",function(){a.removeEventListener("load",c),b.off("renderer:resized",c)}),c()}),void(a&&a()))},EPUBJS.Hooks.register("beforeChapterDisplay").transculsions=function(a,b){var c=b.contents.querySelectorAll("[transclusion]"),d=Array.prototype.slice.call(c);d.forEach(function(a){function c(){j=g,k=h,j>chapter.colWidth&&(d=chapter.colWidth/j,j=chapter.colWidth,k*=d),f.width=j,f.height=k}var d,e=a.getAttribute("ref"),f=document.createElement("iframe"),g=a.getAttribute("width"),h=a.getAttribute("height"),i=a.parentNode,j=g,k=h;c(),b.listenUntil("renderer:resized","renderer:chapterUnloaded",c),f.src=e,i.replaceChild(f,a)}),a&&a()}; +EPUBJS.Hooks.register("beforeChapterDisplay").endnotes=function(a,b){var c=b.contents.querySelectorAll("a[href]"),d=Array.prototype.slice.call(c),e="epub:type",f="noteref",g=EPUBJS.core.folder(location.pathname),h=(g+EPUBJS.cssPath||g,{});EPUBJS.core.addCss(EPUBJS.cssPath+"popup.css",!1,b.render.document.head),d.forEach(function(a){function c(){var c,e,f=b.height,j=b.width,p=225;o||(c=l.cloneNode(!0),o=c.querySelector("p")),h[k]||(h[k]=document.createElement("div"),h[k].setAttribute("class","popup"),pop_content=document.createElement("div"),h[k].appendChild(pop_content),pop_content.appendChild(o),pop_content.setAttribute("class","pop_content"),b.render.document.body.appendChild(h[k]),h[k].addEventListener("mouseover",d,!1),h[k].addEventListener("mouseout",g,!1),b.on("renderer:pageChanged",i,this),b.on("renderer:pageChanged",g,this)),c=h[k],e=a.getBoundingClientRect(),m=e.left,n=e.top,c.classList.add("show"),popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width/2+"px",c.style.top=n+"px",p>f/2.5&&(p=f/2.5,pop_content.style.maxHeight=p+"px"),popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),m-popRect.width<=0?(c.style.left=m+"px",c.classList.add("left")):c.classList.remove("left"),m+popRect.width/2>=j?(c.style.left=m-300+"px",popRect=c.getBoundingClientRect(),c.style.left=m-popRect.width+"px",popRect.height+n>=f-25?(c.style.top=n-popRect.height+"px",c.classList.add("above")):c.classList.remove("above"),c.classList.add("right")):c.classList.remove("right")}function d(){h[k].classList.add("on")}function g(){h[k].classList.remove("on")}function i(){setTimeout(function(){h[k].classList.remove("show")},100)}var j,k,l,m,n,o,p=a.getAttribute(e);p==f&&(j=a.getAttribute("href"),k=j.replace("#",""),l=b.render.document.getElementById(k),a.addEventListener("mouseover",c,!1),a.addEventListener("mouseout",i,!1))}),a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").mathml=function(a,b){if(-1!==b.currentChapter.manifestProperties.indexOf("mathml")){b.render.iframe.contentWindow.mathmlCallback=a;var c=document.createElement("script");c.type="text/x-mathjax-config",c.innerHTML=' MathJax.Hub.Register.StartupHook("End",function () { window.mathmlCallback(); }); MathJax.Hub.Config({jax: ["input/TeX","input/MathML","output/SVG"],extensions: ["tex2jax.js","mml2jax.js","MathEvents.js"],TeX: {extensions: ["noErrors.js","noUndefined.js","autoload-all.js"]},MathMenu: {showRenderer: false},menuSettings: {zoom: "Click"},messageStyle: "none"}); ',b.doc.body.appendChild(c),EPUBJS.core.addScript("http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",null,b.doc.head)}else a&&a()},EPUBJS.Hooks.register("beforeChapterDisplay").smartimages=function(a,b){var c=b.contents.querySelectorAll("img"),d=Array.prototype.slice.call(c),e=b.height;return"reflowable"!=b.layoutSettings.layout?void a():(d.forEach(function(a){function c(){var c,d=a.getBoundingClientRect(),f=d.height,g=d.top,h=a.getAttribute("data-height"),i=h||f,j=Number(getComputedStyle(a,"").fontSize.match(/(\d*(\.\d*)?)px/)[1]),k=j?j/2:0;e=b.contents.clientHeight,0>g&&(g=0),i+g>=e?(e/2>g?(c=e-g-k,a.style.maxHeight=c+"px",a.style.width="auto"):(i>e&&(a.style.maxHeight=e+"px",a.style.width="auto",d=a.getBoundingClientRect(),i=d.height),a.style.display="block",a.style.WebkitColumnBreakBefore="always",a.style.breakBefore="column"),a.setAttribute("data-height",c)):(a.style.removeProperty("max-height"),a.style.removeProperty("margin-top"))}a.addEventListener("load",c,!1),b.on("renderer:resized",c),b.on("renderer:chapterUnloaded",function(){a.removeEventListener("load",c),b.off("renderer:resized",c)}),c()}),void(a&&a()))},EPUBJS.Hooks.register("beforeChapterDisplay").transculsions=function(a,b){var c=b.contents.querySelectorAll("[transclusion]"),d=Array.prototype.slice.call(c);d.forEach(function(a){function c(){j=g,k=h,j>chapter.colWidth&&(d=chapter.colWidth/j,j=chapter.colWidth,k*=d),f.width=j,f.height=k}var d,e=a.getAttribute("ref"),f=document.createElement("iframe"),g=a.getAttribute("width"),h=a.getAttribute("height"),i=a.parentNode,j=g,k=h;c(),b.listenUntil("renderer:resized","renderer:chapterUnloaded",c),f.src=e,i.replaceChild(f,a)}),a&&a()}; //# sourceMappingURL=hooks.min.map \ No newline at end of file diff --git a/reader/js/plugins/hypothesis.js b/reader/js/plugins/hypothesis.js index a815aaad0..3978a5f74 100644 --- a/reader/js/plugins/hypothesis.js +++ b/reader/js/plugins/hypothesis.js @@ -40,7 +40,7 @@ EPUBJS.reader.plugins.HypothesisController = function (Book) { }); Book.on("renderer:locationChanged", updateAnnotations); - Book.on("renderer:chapterDisplayed", updateAnnotations); + // Book.on("renderer:chapterDisplayed", updateAnnotations); return {} }; diff --git a/reader_src/plugins/hypothesis.js b/reader_src/plugins/hypothesis.js index a815aaad0..3978a5f74 100644 --- a/reader_src/plugins/hypothesis.js +++ b/reader_src/plugins/hypothesis.js @@ -40,7 +40,7 @@ EPUBJS.reader.plugins.HypothesisController = function (Book) { }); Book.on("renderer:locationChanged", updateAnnotations); - Book.on("renderer:chapterDisplayed", updateAnnotations); + // Book.on("renderer:chapterDisplayed", updateAnnotations); return {} }; diff --git a/src/base.js b/src/base.js index bd1a5ca14..9e6ae0363 100644 --- a/src/base.js +++ b/src/base.js @@ -1,7 +1,7 @@ 'use strict'; var EPUBJS = EPUBJS || {}; -EPUBJS.VERSION = "0.2.7"; +EPUBJS.VERSION = "0.2.10"; EPUBJS.plugins = EPUBJS.plugins || {};