@warp-drive/ember 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +19 -7
- package/README.md +2 -2
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/logos/NCC-1701-a-blue.svg +4 -0
- package/logos/NCC-1701-a-gold.svg +4 -0
- package/logos/NCC-1701-a-gold_100.svg +1 -0
- package/logos/NCC-1701-a-gold_base-64.txt +1 -0
- package/logos/NCC-1701-a.svg +4 -0
- package/logos/README.md +4 -0
- package/logos/docs-badge.svg +2 -0
- package/logos/ember-data-logo-dark.svg +12 -0
- package/logos/ember-data-logo-light.svg +12 -0
- package/logos/github-header.svg +444 -0
- package/logos/social1.png +0 -0
- package/logos/social2.png +0 -0
- package/logos/warp-drive-logo-dark.svg +4 -0
- package/logos/warp-drive-logo-gold.svg +4 -0
- package/package.json +39 -61
- package/unstable-preview-types/-private/await.d.ts.map +1 -1
- package/unstable-preview-types/-private/request.d.ts.map +1 -1
- package/unstable-preview-types/index.d.ts +1 -1
package/LICENSE.md
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Copyright (c) 2017-2025 Ember.js and contributors
|
|
4
|
+
Copyright (c) 2011-2017 Tilde, Inc. and contributors
|
|
5
|
+
Copyright (c) 2011 LivingSocial Inc.
|
|
6
6
|
|
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
8
13
|
|
|
9
|
-
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
10
16
|
|
|
11
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<img
|
|
3
3
|
class="project-logo"
|
|
4
|
-
src="./NCC-1701-a-blue.svg#gh-light-mode-only"
|
|
4
|
+
src="./logos/NCC-1701-a-blue.svg#gh-light-mode-only"
|
|
5
5
|
alt="WarpDrive"
|
|
6
6
|
width="120px"
|
|
7
7
|
title="WarpDrive" />
|
|
8
8
|
<img
|
|
9
9
|
class="project-logo"
|
|
10
|
-
src="./NCC-1701-a.svg#gh-dark-mode-only"
|
|
10
|
+
src="./logos/NCC-1701-a.svg#gh-dark-mode-only"
|
|
11
11
|
alt="WarpDrive"
|
|
12
12
|
width="120px"
|
|
13
13
|
title="WarpDrive" />
|
package/dist/index.js
CHANGED
|
@@ -723,9 +723,7 @@ class Request extends Component {
|
|
|
723
723
|
autorefreshThreshold
|
|
724
724
|
} = this.args;
|
|
725
725
|
const hasValidThreshold = typeof autorefreshThreshold === 'number' && autorefreshThreshold > 0;
|
|
726
|
-
if (
|
|
727
|
-
// dont schedule in SSR
|
|
728
|
-
typeof window === 'undefined' ||
|
|
726
|
+
if (typeof window === 'undefined' ||
|
|
729
727
|
// dont schedule without a threshold
|
|
730
728
|
!hasValidThreshold ||
|
|
731
729
|
// dont schedule if we weren't told to
|
|
@@ -792,9 +790,40 @@ class Request extends Component {
|
|
|
792
790
|
{
|
|
793
791
|
const latest = this.store.requestManager._deduped.get(requestId);
|
|
794
792
|
const priority = latest?.priority;
|
|
793
|
+
const state = this.reqState;
|
|
795
794
|
if (!priority) {
|
|
795
|
+
// if there is no priority, we have completed whatever request
|
|
796
|
+
// was occurring and so we are no longer refreshing (if we were)
|
|
796
797
|
this.isRefreshing = false;
|
|
797
|
-
} else if (priority.blocking) {
|
|
798
|
+
} else if (priority.blocking && !state.isLoading) {
|
|
799
|
+
// if we are blocking, there is an active request for this identity
|
|
800
|
+
// that MUST be fulfilled from network (not cache).
|
|
801
|
+
// Thus this is not "refreshing" because we should clear out and
|
|
802
|
+
// block on this request.
|
|
803
|
+
//
|
|
804
|
+
// we receive state notifications when either a request initiates
|
|
805
|
+
// or completes.
|
|
806
|
+
//
|
|
807
|
+
// In the completes case: we may receive the state notification
|
|
808
|
+
// slightly before the request is finalized because the NotificationManager
|
|
809
|
+
// may sync flush it (and thus deliver it before the microtask completes)
|
|
810
|
+
//
|
|
811
|
+
// In the initiates case: we aren't supposed to receive one unless there
|
|
812
|
+
// is no other request in flight for this identity.
|
|
813
|
+
//
|
|
814
|
+
// However, there is a race condition here where the completed
|
|
815
|
+
// notification can trigger an update that generates a new request
|
|
816
|
+
// thus giving us an initiated notification before the older request
|
|
817
|
+
// finalizes.
|
|
818
|
+
//
|
|
819
|
+
// When this occurs, if the triggered update happens to have caused
|
|
820
|
+
// a new request to be made for the same identity AND that request
|
|
821
|
+
// is the one passed into this component as the @request arg, then
|
|
822
|
+
// getRequestState will return the state of the new request.
|
|
823
|
+
// We can detect this by checking if the request state is "loading"
|
|
824
|
+
// as outside of this case we would have a completed request.
|
|
825
|
+
//
|
|
826
|
+
// That is the reason for the `&& !state.isLoading` check above.
|
|
798
827
|
// TODO should we just treat this as refreshing?
|
|
799
828
|
this.isRefreshing = false;
|
|
800
829
|
this.maybeUpdate('policy', true);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/decorator-transforms@2.3.0_@babel+core@7.26.0/node_modules/decorator-transforms/dist/runtime-BPCpkOf1.js","../src/-private/request-state.ts","../src/-private/promise-state.ts","../src/-private/await.gts","../src/-private/request.gts"],"sourcesContent":["const deferred = /* @__PURE__ */ new WeakMap();\nfunction deferDecorator(proto, prop, desc) {\n let map = deferred.get(proto);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n deferred.set(proto, map);\n }\n map.set(prop, desc);\n}\nfunction findDeferredDecorator(target, prop) {\n var _a;\n let cursor = target.prototype;\n while (cursor) {\n let desc = (_a = deferred.get(cursor)) == null ? void 0 : _a.get(prop);\n if (desc) {\n return desc;\n }\n cursor = cursor.prototype;\n }\n}\nfunction decorateFieldV1(target, prop, decorators, initializer) {\n return decorateFieldV2(target.prototype, prop, decorators, initializer);\n}\nfunction decorateFieldV2(prototype, prop, decorators, initializer) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n };\n if (initializer) {\n desc.initializer = initializer;\n }\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(prototype, prop, desc);\n } else {\n deferDecorator(prototype, prop, desc);\n }\n}\nfunction decorateMethodV1({ prototype }, prop, decorators) {\n return decorateMethodV2(prototype, prop, decorators);\n}\nfunction decorateMethodV2(prototype, prop, decorators) {\n const origDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n let desc = { ...origDesc };\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(prototype) : void 0;\n desc.initializer = void 0;\n }\n Object.defineProperty(prototype, prop, desc);\n}\nfunction initializeDeferredDecorator(target, prop) {\n let desc = findDeferredDecorator(target.constructor, prop);\n if (desc) {\n Object.defineProperty(target, prop, {\n enumerable: desc.enumerable,\n configurable: desc.configurable,\n writable: desc.writable,\n value: desc.initializer ? desc.initializer.call(target) : void 0\n });\n }\n}\nfunction decorateClass(target, decorators) {\n return decorators.reduce(\n (accum, decorator) => decorator(accum) || accum,\n target\n );\n}\nfunction decoratePOJO(pojo, decorated) {\n for (let [type, prop, decorators] of decorated) {\n if (type === \"field\") {\n decoratePojoField(pojo, prop, decorators);\n } else {\n decorateMethodV2(pojo, prop, decorators);\n }\n }\n return pojo;\n}\nfunction decoratePojoField(pojo, prop, decorators) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: () => {\n var _a;\n return (_a = Object.getOwnPropertyDescriptor(pojo, prop)) == null ? void 0 : _a.value;\n }\n };\n for (let decorator of decorators) {\n desc = decorator(pojo, prop, desc) || desc;\n }\n if (desc.initializer) {\n desc.value = desc.initializer.call(pojo);\n delete desc.initializer;\n }\n Object.defineProperty(pojo, prop, desc);\n}\nconst runtime = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n c: decorateClass,\n f: decorateFieldV1,\n g: decorateFieldV2,\n i: initializeDeferredDecorator,\n m: decorateMethodV1,\n n: decorateMethodV2,\n p: decoratePOJO\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n decorateFieldV2 as a,\n decorateMethodV1 as b,\n decorateMethodV2 as c,\n decorateFieldV1 as d,\n decorateClass as e,\n decoratePOJO as f,\n initializeDeferredDecorator as i,\n runtime as r\n};\n//# sourceMappingURL=runtime-BPCpkOf1.js.map\n","import { tracked } from '@glimmer/tracking';\n\nimport type {\n Future,\n ImmutableRequestInfo,\n ResponseInfo,\n StructuredDocument,\n StructuredErrorDocument,\n} from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst RequestCache = new WeakMap<Future<unknown>, RequestState>();\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException && error.name === 'AbortError';\n}\n\nasync function watchStream(stream: ReadableStream<Uint8Array>, state: RequestLoadingState): Promise<void> {\n const reader = stream.getReader();\n let bytesLoaded = 0;\n let shouldForward = state._stream !== null && state._stream.readable.locked;\n let isForwarding = shouldForward;\n let writer = state._stream?.writable.getWriter();\n const buffer = [];\n\n state._isPending = false;\n state._isStarted = true;\n state._startTime = performance.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n bytesLoaded += value.byteLength;\n state._bytesLoaded = bytesLoaded;\n state._lastPacketTime = performance.now();\n\n shouldForward = shouldForward || (state._stream !== null && state._stream.readable.locked);\n\n if (shouldForward) {\n if (!isForwarding) {\n isForwarding = true;\n writer = state._stream!.writable.getWriter();\n for (const item of buffer) {\n await writer.ready;\n await writer.write(item);\n }\n buffer.length = 0;\n }\n await writer!.ready;\n await writer!.write(value);\n } else {\n buffer.push(value);\n }\n }\n\n // if we are still forwarding, we need to close the writer\n if (isForwarding) {\n await writer!.ready;\n await writer!.close();\n } else if (state._stream) {\n // if we are not forwarding, we need to cancel the stream\n await state._stream.readable.cancel('The Stream Has Already Ended');\n state._stream = null;\n }\n\n const endTime = performance.now();\n state._endTime = endTime;\n state._isComplete = true;\n state._isStarted = false;\n}\n\nexport class RequestLoadingState {\n _stream: TransformStream | null = null;\n _future: Future<unknown>;\n _triggered = false;\n _trigger() {\n if (this._triggered) {\n return;\n }\n this._triggered = true;\n const future = this._future;\n const promise: Promise<ReadableStream<Uint8Array> | null> & { sizeHint?: number } = future.getStream();\n if (promise.sizeHint) {\n this._sizeHint = promise.sizeHint;\n }\n this.promise = promise.then(\n (stream) => {\n if (!stream) {\n this._isPending = false;\n this._isComplete = true;\n return;\n }\n return watchStream(stream, this);\n },\n (error: Error) => {\n this._isPending = false;\n this._isStarted = false;\n if (isAbortError(error)) {\n this._isCancelled = true;\n this._isComplete = true;\n }\n this._isErrored = true;\n this._error = error;\n }\n );\n }\n\n promise: Promise<void> | null = null;\n @tracked _sizeHint = 0;\n @tracked _bytesLoaded = 0;\n\n @tracked _startTime = 0;\n @tracked _endTime = 0;\n @tracked _lastPacketTime = 0;\n\n @tracked _isPending = true;\n @tracked _isStarted = false;\n @tracked _isComplete = false;\n @tracked _isCancelled = false;\n @tracked _isErrored = false;\n @tracked _error: Error | null = null;\n\n get isPending(): boolean {\n this._trigger();\n return this._isPending;\n }\n\n get sizeHint(): number {\n this._trigger();\n return this._sizeHint;\n }\n\n get stream(): ReadableStream | null {\n this._trigger();\n if (!this._stream) {\n if (this._isComplete || this._isCancelled || this._isErrored) {\n return null;\n }\n this._stream = new TransformStream();\n }\n return this._stream.readable;\n }\n\n get isStarted(): boolean {\n this._trigger();\n return this._isStarted;\n }\n\n get bytesLoaded(): number {\n this._trigger();\n return this._bytesLoaded;\n }\n\n get startTime(): number {\n this._trigger();\n return this._startTime;\n }\n\n get endTime(): number {\n this._trigger();\n return this._endTime;\n }\n\n get lastPacketTime(): number {\n this._trigger();\n return this._lastPacketTime;\n }\n\n get isComplete(): boolean {\n this._trigger();\n return this._isComplete;\n }\n\n get isCancelled(): boolean {\n this._trigger();\n return this._isCancelled;\n }\n\n get isErrored(): boolean {\n this._trigger();\n return this._isErrored;\n }\n\n get error(): Error | null {\n this._trigger();\n return this._error;\n }\n\n get elapsedTime(): number {\n return (this.endTime || this.lastPacketTime) - this.startTime;\n }\n\n get completedRatio(): number {\n return this.sizeHint ? this.bytesLoaded / this.sizeHint : 0;\n }\n\n get remainingRatio(): number {\n return 1 - this.completedRatio;\n }\n\n get duration(): number {\n return this.endTime - this.startTime;\n }\n\n get speed(): number {\n // bytes per second\n return this.bytesLoaded / (this.elapsedTime / 1000);\n }\n\n constructor(future: Future<unknown>) {\n this._future = future;\n }\n\n abort = (): void => {\n this._future.abort();\n };\n}\n\nexport class RequestState<T = unknown, RT = unknown> {\n #request: Future<RT>;\n #loadingState: RequestLoadingState | null = null;\n\n @tracked result: RT | null = null;\n @tracked error: StructuredErrorDocument | null = null;\n @tracked isLoading = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n @tracked request: ImmutableRequestInfo<T, RT> | null = null;\n @tracked response: Response | ResponseInfo | null = null;\n\n get isCancelled(): boolean {\n return this.isError && isAbortError(this.error);\n }\n\n get loadingState() {\n if (!this.#loadingState) {\n this.#loadingState = new RequestLoadingState(this.#request);\n }\n\n return this.#loadingState;\n }\n\n constructor(future: Future<RT>) {\n this.#request = future;\n const state = getPromiseResult<StructuredDocument<RT>, StructuredErrorDocument>(future);\n\n if (state) {\n this.request = state.result.request as ImmutableRequestInfo<T, RT>;\n this.response = state.result.response;\n this.isLoading = false;\n\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n } else {\n this.result = state.result.content!;\n this.isSuccess = true;\n }\n } else {\n void future.then(\n (result) => {\n setPromiseResult(future, { isError: false, result });\n this.result = result.content;\n this.isSuccess = true;\n this.isLoading = false;\n this.request = result.request as ImmutableRequestInfo<T, RT>;\n this.response = result.response;\n },\n (error: StructuredErrorDocument) => {\n setPromiseResult(future, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isLoading = false;\n this.request = error.request as ImmutableRequestInfo<T, RT>;\n this.response = error.response;\n }\n );\n }\n }\n}\n\nexport function getRequestState<RT, T>(future: Future<RT>): RequestState<T, RT> {\n let state = RequestCache.get(future) as RequestState<T, RT> | undefined;\n\n if (!state) {\n state = new RequestState(future);\n RequestCache.set(future, state);\n }\n\n return state;\n}\n","import { tracked } from '@glimmer/tracking';\n\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst PromiseCache = new WeakMap<Awaitable, PromiseState>();\n\nexport class PromiseState<T = unknown, E = unknown> {\n @tracked result: T | null = null;\n @tracked error: E | null = null;\n @tracked isPending = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n\n constructor(promise: Promise<T> | Awaitable<T, E>) {\n const state = getPromiseResult<T, E>(promise);\n\n if (state) {\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n this.isPending = false;\n } else {\n this.result = state.result;\n this.isSuccess = true;\n this.isPending = false;\n }\n } else {\n void promise.then(\n (result) => {\n setPromiseResult(promise, { isError: false, result });\n this.result = result;\n this.isSuccess = true;\n this.isPending = false;\n },\n (error: E) => {\n setPromiseResult(promise, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isPending = false;\n }\n );\n }\n }\n}\n\nconst LegacyPromiseProxy = Symbol.for('LegacyPromiseProxy');\ntype LegacyAwaitable<T, E> = { promise: Promise<T> | Awaitable<T, E>; [LegacyPromiseProxy]: true };\n\nfunction isLegacyAwaitable<T, E>(promise: object): promise is LegacyAwaitable<T, E> {\n return LegacyPromiseProxy in promise && 'promise' in promise && promise[LegacyPromiseProxy] === true;\n}\n\nfunction getPromise<T, E>(promise: Promise<T> | Awaitable<T, E> | LegacyAwaitable<T, E>): Promise<T> | Awaitable<T, E> {\n return isLegacyAwaitable(promise) ? promise.promise : promise;\n}\n\nexport function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): PromiseState<T, E> {\n const _promise = getPromise(promise);\n let state = PromiseCache.get(_promise) as PromiseState<T, E> | undefined;\n\n if (!state) {\n state = new PromiseState(_promise);\n PromiseCache.set(_promise, state);\n }\n\n return state;\n}\n","import { template as template_bdcd531f072142a3b443932fdbf904a8 } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseState } from './promise-state.ts';\nexport const and = (x: unknown, y: unknown)=>Boolean(x && y);\ninterface ThrowSignature<E = Error | string | object> {\n Args: {\n error: E;\n };\n}\nexport class Throw<T> extends Component<ThrowSignature<T>> {\n constructor(owner: unknown, args: ThrowSignature<T>['Args']){\n super(owner, args);\n // this error is opaque (user supplied) so we don't validate it\n // as an Error instance.\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.args.error;\n }\n static{\n template_bdcd531f072142a3b443932fdbf904a8(``, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\ninterface AwaitSignature<T, E = Error | string | object> {\n Args: {\n promise: Promise<T> | Awaitable<T, E>;\n };\n Blocks: {\n pending: [];\n error: [error: E];\n success: [value: T];\n };\n}\nexport class Await<T, E> extends Component<AwaitSignature<T, E>> {\n get state() {\n return getPromiseState<T, E>(this.args.promise);\n }\n get error() {\n return this.state.error as E;\n }\n get result() {\n return this.state.result as T;\n }\n static{\n template_bdcd531f072142a3b443932fdbf904a8(`\n {{#if this.state.isPending}}\n {{yield to=\"pending\"}}\n {{else if (and this.state.isError (has-block \"error\"))}}\n {{yield this.error to=\"error\"}}\n {{else if this.state.isSuccess}}\n {{yield this.result to=\"success\"}}\n {{else}}\n <Throw @error={{this.error}} />\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvYXdhaXQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcblxuaW1wb3J0IHR5cGUgeyBBd2FpdGFibGUgfSBmcm9tICdAZW1iZXItZGF0YS9yZXF1ZXN0JztcblxuaW1wb3J0IHsgZ2V0UHJvbWlzZVN0YXRlIH0gZnJvbSAnLi9wcm9taXNlLXN0YXRlLnRzJztcblxuZXhwb3J0IGNvbnN0IGFuZCA9ICh4OiB1bmtub3duLCB5OiB1bmtub3duKSA9PiBCb29sZWFuKHggJiYgeSk7XG5pbnRlcmZhY2UgVGhyb3dTaWduYXR1cmU8RSA9IEVycm9yIHwgc3RyaW5nIHwgb2JqZWN0PiB7XG4gIEFyZ3M6IHtcbiAgICBlcnJvcjogRTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRocm93PFQ-IGV4dGVuZHMgQ29tcG9uZW50PFRocm93U2lnbmF0dXJlPFQ-PiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBUaHJvd1NpZ25hdHVyZTxUPlsnQXJncyddKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIC8vIHRoaXMgZXJyb3IgaXMgb3BhcXVlICh1c2VyIHN1cHBsaWVkKSBzbyB3ZSBkb24ndCB2YWxpZGF0ZSBpdFxuICAgIC8vIGFzIGFuIEVycm9yIGluc3RhbmNlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhyb3ctbGl0ZXJhbFxuICAgIHRocm93IHRoaXMuYXJncy5lcnJvcjtcbiAgfVxuICA8dGVtcGxhdGU-PC90ZW1wbGF0ZT5cbn1cblxuaW50ZXJmYWNlIEF3YWl0U2lnbmF0dXJlPFQsIEUgPSBFcnJvciB8IHN0cmluZyB8IG9iamVjdD4ge1xuICBBcmdzOiB7XG4gICAgcHJvbWlzZTogUHJvbWlzZTxUPiB8IEF3YWl0YWJsZTxULCBFPjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgcGVuZGluZzogW107XG4gICAgZXJyb3I6IFtlcnJvcjogRV07XG4gICAgc3VjY2VzczogW3ZhbHVlOiBUXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEF3YWl0PFQsIEU-IGV4dGVuZHMgQ29tcG9uZW50PEF3YWl0U2lnbmF0dXJlPFQsIEU-PiB7XG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UHJvbWlzZVN0YXRlPFQsIEU-KHRoaXMuYXJncy5wcm9taXNlKTtcbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciBhcyBFO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZXN1bHQgYXMgVDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiB0aGlzLnN0YXRlLmlzUGVuZGluZ319XG4gICAgICB7e3lpZWxkIHRvPVwicGVuZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnN0YXRlLmlzRXJyb3IgKGhhcy1ibG9jayBcImVycm9yXCIpKX19XG4gICAgICB7e3lpZWxkIHRoaXMuZXJyb3IgdG89XCJlcnJvclwifX1cbiAgICB7e2Vsc2UgaWYgdGhpcy5zdGF0ZS5pc1N1Y2Nlc3N9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlc3VsdCB0bz1cInN1Y2Nlc3NcIn19XG4gICAge3tlbHNlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3t0aGlzLmVycm9yfX0gLz5cbiAgICB7ey9pZn19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFFM0MsY0FBYyxTQUFTLFFBQVEsc0JBQXNCO0FBRXJELFNBQVMsZUFBZSxRQUFRLHFCQUFxQjtBQUVyRCxPQUFPLE1BQU0sTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsT0FBTyxHQUFLLFFBQVEsS0FBSyxHQUFHO1VBQ3JELGVBQWUsSUFBSSxRQUFRLE1BQU0sR0FBRyxNQUFNO0lBQ2xEO1FBQ0UsT0FBTzs7O0FBSVgsT0FBTyxNQUFNLE1BQU0sV0FBVyxVQUFVLGVBQWU7SUFDckQsWUFBWSxPQUFPLE9BQU8sRUFBRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUU7UUFDM0QsS0FBSyxDQUFDLE9BQU87UUFDYiwrREFBK0Q7UUFDL0Qsd0JBQXdCO1FBQ3hCLCtEQUErRDtRQUMvRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztJQUN2QjtJQUNBLE1BQUE7UUFBQSwwQ0FBVSxDQUFBLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQUFWO0FBQ1o7VUFFVSxlQUFlLEdBQUcsSUFBSSxRQUFRLE1BQU0sR0FBRyxNQUFNO0lBQ3JEO1FBQ0UsU0FBUyxRQUFRLEtBQUssVUFBVSxHQUFHOztJQUVyQztRQUNFO1FBQ0EsUUFBUSxPQUFPO1FBQ2YsVUFBVSxPQUFPOzs7QUFJckIsT0FBTyxNQUFNLE1BQU0sR0FBRyxXQUFXLFVBQVUsZUFBZSxHQUFHO0lBQzNELElBQUksUUFBUTtRQUNWLE9BQU8sZ0JBQWdCLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87SUFDaEQ7SUFFQSxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJO0lBQzdCO0lBRUEsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSTtJQUM5QjtJQUVBLE1BQUE7UUFBQSwwQ0FBVSxDQUFBOzs7Ozs7Ozs7O0VBVVYsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBVkE7QUFXWiJ9","import { template as template_01b3a9c09f274749bb081882efaa2eb1 } from \"@ember/template-compiler\";\nimport { service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { importSync, macroCondition, moduleExists } from '@embroider/macros';\nimport type { Future, StructuredErrorDocument } from '@ember-data/request';\nimport type { StoreRequestInput } from '@ember-data/store';\nimport type Store from '@ember-data/store';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableDocumentIdentifier } from '@warp-drive/core-types/identifier.js';\nimport { EnableHydration, type RequestInfo } from '@warp-drive/core-types/request';\nimport { and, Throw } from './await.gts';\nimport type { RequestLoadingState, RequestState } from './request-state.ts';\nimport { getRequestState } from './request-state.ts';\nfunction notNull(x: null): never;\nfunction notNull<T>(x: T): Exclude<T, null>;\nfunction notNull<T>(x: T | null) {\n assert('Expected a non-null value, but got null', x !== null);\n return x;\n}\nconst not = (x: unknown)=>!x;\n// default to 30 seconds unavailable before we refresh\nconst DEFAULT_DEADLINE = 30_000;\nconst IdleBlockMissingError = new Error('No idle block provided for <Request> component, and no query or request was provided.');\nlet consume = service;\nif (macroCondition(moduleExists('ember-provide-consume-context'))) {\n const { consume: contextConsume } = importSync('ember-provide-consume-context') as {\n consume: typeof service;\n };\n consume = contextConsume;\n}\nfunction isNeverString(val: never): string {\n return val;\n}\ntype AutorefreshBehaviorType = 'online' | 'interval' | 'invalid';\ntype AutorefreshBehaviorCombos = true | AutorefreshBehaviorType | `${AutorefreshBehaviorType},${AutorefreshBehaviorType}` | `${AutorefreshBehaviorType},${AutorefreshBehaviorType},${AutorefreshBehaviorType}`;\ntype ContentFeatures<RT> = {\n isOnline: boolean;\n isHidden: boolean;\n isRefreshing: boolean;\n refresh: () => Promise<void>;\n reload: () => Promise<void>;\n abort?: () => void;\n latestRequest?: Future<RT>;\n};\ninterface RequestSignature<T, RT> {\n Args: {\n request?: Future<RT>;\n query?: StoreRequestInput<T, RT>;\n store?: Store;\n autorefresh?: AutorefreshBehaviorCombos;\n autorefreshThreshold?: number;\n autorefreshBehavior?: 'refresh' | 'reload' | 'policy';\n };\n Blocks: {\n idle: [];\n loading: [state: RequestLoadingState];\n cancelled: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n error: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n content: [value: RT, features: ContentFeatures<RT>];\n always: [state: RequestState<T, RT>];\n };\n}\n/**\n * The `<Request>` component is a powerful tool for managing data fetching and\n * state in your Ember application. It provides declarative reactive control-flow\n * for managing requests and state in your application.\n *\n * @typedoc\n */ export class Request<T, RT> extends Component<RequestSignature<T, RT>> {\n /**\n * The store instance to use for making requests. If contexts are available, this\n * will be the `store` on the context, else it will be the store service.\n *\n * @internal\n */ @consume('store')\n _store: Store;\n /**\n * Whether the browser reports that the network is online.\n *\n * @internal\n */ @tracked\n isOnline = true;\n /**\n * Whether the browser reports that the tab is hidden.\n *\n * @internal\n */ @tracked\n isHidden = true;\n /**\n * Whether the component is currently refreshing the request.\n *\n * @internal\n */ @tracked\n isRefreshing = false;\n /**\n * The most recent blocking request that was made, typically\n * the result of a reload.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */ @tracked\n _localRequest: Future<RT> | undefined;\n /**\n * The most recent request that was made, typically due to either a\n * reload or a refresh.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */ @tracked\n _latestRequest: Future<RT> | undefined;\n /**\n * The time at which the network was reported as offline.\n *\n * @internal\n */ unavailableStart: number | null;\n intervalStart: number | null;\n nextInterval: number | null;\n invalidated: boolean;\n isUpdating: boolean;\n /**\n * The event listener for network status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */ onlineChanged: (event: Event) => void;\n /**\n * The event listener for visibility status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */ backgroundChanged: (event: Event) => void;\n /**\n * The last request passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */ _originalRequest: Future<RT> | undefined;\n /**\n * The last query passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */ _originalQuery: StoreRequestInput<T, RT> | undefined;\n _subscription: object | null;\n _subscribedTo: object | null;\n constructor(owner: unknown, args: RequestSignature<T, RT>['Args']){\n super(owner, args);\n this._subscribedTo = null;\n this._subscription = null;\n this.intervalStart = null;\n this.invalidated = false;\n this.nextInterval = null;\n this.installListeners();\n void this.beginPolling();\n }\n async beginPolling() {\n // await the initial request\n try {\n await this.request;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n } finally{\n if (!this.isDestroyed) {\n void this.scheduleInterval();\n }\n }\n }\n @cached\n get isIdle() {\n const { request, query } = this.args;\n return Boolean(!request && !query);\n }\n @cached\n get autorefreshTypes(): Set<AutorefreshBehaviorType> {\n const { autorefresh } = this.args;\n let types: AutorefreshBehaviorType[];\n if (autorefresh === true) {\n types = [\n 'online',\n 'invalid'\n ];\n } else if (typeof autorefresh === 'string') {\n types = autorefresh.split(',') as AutorefreshBehaviorType[];\n } else {\n types = [];\n }\n return new Set(types);\n }\n // we only run this function on component creation\n // and when an update is triggered, so it does not\n // react to changes in the autorefreshThreshold\n // or autorefresh args.\n //\n // if we need to react to those changes, we can\n // use a modifier or internal component or some\n // such to trigger a re-run of this function.\n async scheduleInterval() {\n const { autorefreshThreshold } = this.args;\n const hasValidThreshold = typeof autorefreshThreshold === 'number' && autorefreshThreshold > 0;\n if (// dont schedule in SSR\n typeof window === 'undefined' || // dont schedule without a threshold\n !hasValidThreshold || // dont schedule if we weren't told to\n !this.autorefreshTypes.has('interval') || // dont schedule if we're already scheduled\n this.intervalStart !== null) {\n return;\n }\n // if we have a current request, wait for it to finish\n // before scheduling the next one\n if (this._latestRequest) {\n try {\n await this._latestRequest;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n }\n if (this.isDestroyed) {\n return;\n }\n }\n // setup the next interval\n this.intervalStart = Date.now();\n this.nextInterval = setTimeout(()=>{\n this.maybeUpdate();\n }, autorefreshThreshold);\n }\n clearInterval() {\n if (this.nextInterval) {\n clearTimeout(this.nextInterval);\n this.intervalStart = null;\n }\n }\n updateSubscriptions() {\n if (this.isIdle) {\n return;\n }\n const requestId = this._request.lid;\n // if we're already subscribed to this request, we don't need to do anything\n if (this._subscribedTo === requestId) {\n return;\n }\n // if we're subscribed to a different request, we need to unsubscribe\n this.removeSubscriptions();\n // if we have a request, we need to subscribe to it\n if (requestId) {\n this._subscribedTo = requestId;\n this._subscription = this.store.notifications.subscribe(requestId, (_id: StableDocumentIdentifier, op: 'invalidated' | 'state' | 'added' | 'updated' | 'removed')=>{\n // ignore subscription events that occur while our own component's request\n // is ocurring\n if (this.isUpdating) {\n return;\n }\n switch(op){\n case 'invalidated':\n {\n // if we're subscribed to invalidations, we need to update\n if (this.autorefreshTypes.has('invalid')) {\n this.invalidated = true;\n this.maybeUpdate();\n }\n break;\n }\n case 'state':\n {\n const latest = this.store.requestManager._deduped.get(requestId);\n const priority = latest?.priority;\n if (!priority) {\n this.isRefreshing = false;\n } else if (priority.blocking) {\n // TODO should we just treat this as refreshing?\n this.isRefreshing = false;\n this.maybeUpdate('policy', true);\n } else {\n this.isRefreshing = true;\n }\n }\n }\n });\n }\n }\n removeSubscriptions() {\n if (this._subscription) {\n this.store.notifications.unsubscribe(this._subscription);\n this._subscribedTo = null;\n this._subscription = null;\n }\n }\n /**\n * Install the event listeners for network and visibility changes.\n * This is only done in browser environments with a global `window`.\n *\n * @internal\n */ installListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n this.isOnline = window.navigator.onLine;\n this.unavailableStart = this.isOnline ? null : Date.now();\n this.isHidden = document.visibilityState === 'hidden';\n this.onlineChanged = (event: Event)=>{\n this.isOnline = event.type === 'online';\n if (event.type === 'offline' && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n this.backgroundChanged = ()=>{\n const isHidden = document.visibilityState === 'hidden';\n this.isHidden = isHidden;\n if (isHidden && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n window.addEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n });\n window.addEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n });\n document.addEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n });\n }\n /**\n * If the network is online and the tab is visible, either reload or refresh the request\n * based on the component's configuration and the requested update mode.\n *\n * Valid modes are:\n *\n * - `'reload'`: Force a reload of the request.\n * - `'refresh'`: Refresh the request in the background.\n * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.\n * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.\n *\n * @internal\n */ maybeUpdate(mode?: 'reload' | 'refresh' | 'policy' | 'invalidated', silent?: boolean): void {\n if (this.isIdle) {\n return;\n }\n const canAttempt = Boolean(this.isOnline && !this.isHidden && (mode || this.autorefreshTypes.size));\n if (!canAttempt) {\n if (!silent && mode && mode !== 'invalidated') {\n throw new Error(`Reload not available: the network is not online or the tab is hidden`);\n }\n return;\n }\n const { autorefreshTypes } = this;\n let shouldAttempt = this.invalidated || Boolean(mode);\n if (!shouldAttempt && autorefreshTypes.has('online')) {\n const { unavailableStart } = this;\n const { autorefreshThreshold } = this.args;\n const deadline = typeof autorefreshThreshold === 'number' ? autorefreshThreshold : DEFAULT_DEADLINE;\n shouldAttempt = Boolean(unavailableStart && Date.now() - unavailableStart > deadline);\n }\n if (!shouldAttempt && autorefreshTypes.has('interval')) {\n const { intervalStart } = this;\n const { autorefreshThreshold } = this.args;\n if (intervalStart && typeof autorefreshThreshold === 'number' && autorefreshThreshold > 0) {\n shouldAttempt = Boolean(Date.now() - intervalStart >= autorefreshThreshold);\n }\n }\n this.unavailableStart = null;\n this.invalidated = false;\n if (shouldAttempt) {\n this.clearInterval();\n const request = Object.assign({}, this.reqState.request as unknown as RequestInfo<T, RT>);\n const realMode = mode === 'invalidated' ? null : mode;\n const val = realMode ?? this.args.autorefreshBehavior ?? 'policy';\n switch(val){\n case 'reload':\n request.cacheOptions = Object.assign({}, request.cacheOptions, {\n reload: true\n });\n break;\n case 'refresh':\n request.cacheOptions = Object.assign({}, request.cacheOptions, {\n backgroundReload: true\n });\n break;\n case 'policy':\n break;\n default:\n throw new Error(`Invalid ${mode ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val)}`);\n }\n const wasStoreRequest = (request as {\n [EnableHydration]: boolean;\n })[EnableHydration] === true;\n assert(`Cannot supply a different store via context than was used to create the request`, !request.store || request.store === this.store);\n this.isUpdating = true;\n this._latestRequest = wasStoreRequest ? this.store.request(request) : this.store.requestManager.request(request);\n if (val !== 'refresh') {\n this._localRequest = this._latestRequest;\n }\n void this.scheduleInterval();\n void this._latestRequest.finally(()=>{\n this.isUpdating = false;\n });\n } else {\n // TODO probably want this\n // void this.scheduleInterval();\n }\n }\n /**\n * Retry the request, reloading it from the server.\n *\n * @internal\n */ retry = async ()=>{\n this.maybeUpdate('reload');\n await this._localRequest;\n };\n /**\n * Refresh the request, updating it in the background.\n *\n * @internal\n */ refresh = async ()=>{\n this.maybeUpdate('refresh');\n await this._latestRequest;\n };\n @cached\n get errorFeatures() {\n return {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n retry: this.retry\n };\n }\n @cached\n get contentFeatures() {\n const feat: ContentFeatures<RT> = {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n reload: this.retry,\n refresh: this.refresh,\n isRefreshing: this.isRefreshing,\n latestRequest: this._latestRequest\n };\n if (feat.isRefreshing) {\n feat.abort = ()=>{\n this._latestRequest?.abort();\n };\n }\n return feat;\n }\n willDestroy() {\n this.removeSubscriptions();\n if (typeof window === 'undefined') {\n return;\n }\n this.clearInterval();\n window.removeEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n window.removeEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n document.removeEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n }\n @cached\n get _request(): Future<RT> {\n const { request, query } = this.args;\n assert(`Cannot use both @request and @query args with the <Request> component`, !request || !query);\n const { _localRequest, _originalRequest, _originalQuery } = this;\n const isOriginalRequest = request === _originalRequest && query === _originalQuery;\n if (_localRequest && isOriginalRequest) {\n return _localRequest;\n }\n // update state checks for the next time\n this._originalQuery = query;\n this._originalRequest = request;\n if (request) {\n return request;\n }\n assert(`You must provide either @request or an @query arg with the <Request> component`, query);\n return this.store.request<RT, T>(query);\n }\n @cached\n get request(): Future<RT> {\n const request = this._request;\n this.updateSubscriptions();\n return request;\n }\n get store(): Store {\n const store = this.args.store || this._store;\n assert(moduleExists('ember-provide-consume-context') ? `No store was provided to the <Request> component. Either provide a store via the @store arg or via the context API provided by ember-provide-consume-context.` : `No store was provided to the <Request> component. Either provide a store via the @store arg or by registering a store service.`, store);\n return store;\n }\n get reqState() {\n return getRequestState<RT, T>(this.request);\n }\n get result() {\n return this.reqState.result as RT;\n }\n static{\n template_01b3a9c09f274749bb081882efaa2eb1(`\n {{#if (and this.isIdle (has-block \"idle\"))}}\n {{yield to=\"idle\"}}\n {{else if this.isIdle}}\n <Throw @error={{IdleBlockMissingError}} />\n {{else if this.reqState.isLoading}}\n {{yield this.reqState.loadingState to=\"loading\"}}\n {{else if (and this.reqState.isCancelled (has-block \"cancelled\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"cancelled\"}}\n {{else if (and this.reqState.isError (has-block \"error\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"error\"}}\n {{else if this.reqState.isSuccess}}\n {{yield this.result this.contentFeatures to=\"content\"}}\n {{else if (not this.reqState.isCancelled)}}\n <Throw @error={{(notNull this.reqState.error)}} />\n {{/if}}\n {{yield this.reqState to=\"always\"}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvcmVxdWVzdC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VydmljZSB9IGZyb20gJ0BlbWJlci9zZXJ2aWNlJztcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGNhY2hlZCwgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuaW1wb3J0IHsgaW1wb3J0U3luYywgbWFjcm9Db25kaXRpb24sIG1vZHVsZUV4aXN0cyB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHR5cGUgeyBGdXR1cmUsIFN0cnVjdHVyZWRFcnJvckRvY3VtZW50IH0gZnJvbSAnQGVtYmVyLWRhdGEvcmVxdWVzdCc7XG5pbXBvcnQgdHlwZSB7IFN0b3JlUmVxdWVzdElucHV0IH0gZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHR5cGUgU3RvcmUgZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQHdhcnAtZHJpdmUvYnVpbGQtY29uZmlnL21hY3Jvcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWJsZURvY3VtZW50SWRlbnRpZmllciB9IGZyb20gJ0B3YXJwLWRyaXZlL2NvcmUtdHlwZXMvaWRlbnRpZmllci5qcyc7XG5pbXBvcnQgeyBFbmFibGVIeWRyYXRpb24sIHR5cGUgUmVxdWVzdEluZm8gfSBmcm9tICdAd2FycC1kcml2ZS9jb3JlLXR5cGVzL3JlcXVlc3QnO1xuXG5pbXBvcnQgeyBhbmQsIFRocm93IH0gZnJvbSAnLi9hd2FpdC5ndHMnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0TG9hZGluZ1N0YXRlLCBSZXF1ZXN0U3RhdGUgfSBmcm9tICcuL3JlcXVlc3Qtc3RhdGUudHMnO1xuaW1wb3J0IHsgZ2V0UmVxdWVzdFN0YXRlIH0gZnJvbSAnLi9yZXF1ZXN0LXN0YXRlLnRzJztcblxuZnVuY3Rpb24gbm90TnVsbCh4OiBudWxsKTogbmV2ZXI7XG5mdW5jdGlvbiBub3ROdWxsPFQ-KHg6IFQpOiBFeGNsdWRlPFQsIG51bGw-O1xuZnVuY3Rpb24gbm90TnVsbDxUPih4OiBUIHwgbnVsbCkge1xuICBhc3NlcnQoJ0V4cGVjdGVkIGEgbm9uLW51bGwgdmFsdWUsIGJ1dCBnb3QgbnVsbCcsIHggIT09IG51bGwpO1xuICByZXR1cm4geDtcbn1cblxuY29uc3Qgbm90ID0gKHg6IHVua25vd24pID0-ICF4O1xuLy8gZGVmYXVsdCB0byAzMCBzZWNvbmRzIHVuYXZhaWxhYmxlIGJlZm9yZSB3ZSByZWZyZXNoXG5jb25zdCBERUZBVUxUX0RFQURMSU5FID0gMzBfMDAwO1xuY29uc3QgSWRsZUJsb2NrTWlzc2luZ0Vycm9yID0gbmV3IEVycm9yKFxuICAnTm8gaWRsZSBibG9jayBwcm92aWRlZCBmb3IgPFJlcXVlc3Q-IGNvbXBvbmVudCwgYW5kIG5vIHF1ZXJ5IG9yIHJlcXVlc3Qgd2FzIHByb3ZpZGVkLidcbik7XG5cbmxldCBjb25zdW1lID0gc2VydmljZTtcbmlmIChtYWNyb0NvbmRpdGlvbihtb2R1bGVFeGlzdHMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JykpKSB7XG4gIGNvbnN0IHsgY29uc3VtZTogY29udGV4dENvbnN1bWUgfSA9IGltcG9ydFN5bmMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JykgYXMgeyBjb25zdW1lOiB0eXBlb2Ygc2VydmljZSB9O1xuICBjb25zdW1lID0gY29udGV4dENvbnN1bWU7XG59XG5cbmZ1bmN0aW9uIGlzTmV2ZXJTdHJpbmcodmFsOiBuZXZlcik6IHN0cmluZyB7XG4gIHJldHVybiB2YWw7XG59XG5cbnR5cGUgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGUgPSAnb25saW5lJyB8ICdpbnRlcnZhbCcgfCAnaW52YWxpZCc7XG50eXBlIEF1dG9yZWZyZXNoQmVoYXZpb3JDb21ib3MgPVxuICB8IHRydWVcbiAgfCBBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZVxuICB8IGAke0F1dG9yZWZyZXNoQmVoYXZpb3JUeXBlfSwke0F1dG9yZWZyZXNoQmVoYXZpb3JUeXBlfWBcbiAgfCBgJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX0sJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX0sJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX1gO1xuXG50eXBlIENvbnRlbnRGZWF0dXJlczxSVD4gPSB7XG4gIGlzT25saW5lOiBib29sZWFuO1xuICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgaXNSZWZyZXNoaW5nOiBib29sZWFuO1xuICByZWZyZXNoOiAoKSA9PiBQcm9taXNlPHZvaWQ-O1xuICByZWxvYWQ6ICgpID0-IFByb21pc2U8dm9pZD47XG4gIGFib3J0PzogKCkgPT4gdm9pZDtcbiAgbGF0ZXN0UmVxdWVzdD86IEZ1dHVyZTxSVD47XG59O1xuXG5pbnRlcmZhY2UgUmVxdWVzdFNpZ25hdHVyZTxULCBSVD4ge1xuICBBcmdzOiB7XG4gICAgcmVxdWVzdD86IEZ1dHVyZTxSVD47XG4gICAgcXVlcnk_OiBTdG9yZVJlcXVlc3RJbnB1dDxULCBSVD47XG4gICAgc3RvcmU_OiBTdG9yZTtcbiAgICBhdXRvcmVmcmVzaD86IEF1dG9yZWZyZXNoQmVoYXZpb3JDb21ib3M7XG4gICAgYXV0b3JlZnJlc2hUaHJlc2hvbGQ_OiBudW1iZXI7XG4gICAgYXV0b3JlZnJlc2hCZWhhdmlvcj86ICdyZWZyZXNoJyB8ICdyZWxvYWQnIHwgJ3BvbGljeSc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGlkbGU6IFtdO1xuICAgIGxvYWRpbmc6IFtzdGF0ZTogUmVxdWVzdExvYWRpbmdTdGF0ZV07XG4gICAgY2FuY2VsbGVkOiBbXG4gICAgICBlcnJvcjogU3RydWN0dXJlZEVycm9yRG9jdW1lbnQsXG4gICAgICBmZWF0dXJlczogeyBpc09ubGluZTogYm9vbGVhbjsgaXNIaWRkZW46IGJvb2xlYW47IHJldHJ5OiAoKSA9PiBQcm9taXNlPHZvaWQ-IH0sXG4gICAgXTtcbiAgICBlcnJvcjogW1xuICAgICAgZXJyb3I6IFN0cnVjdHVyZWRFcnJvckRvY3VtZW50LFxuICAgICAgZmVhdHVyZXM6IHsgaXNPbmxpbmU6IGJvb2xlYW47IGlzSGlkZGVuOiBib29sZWFuOyByZXRyeTogKCkgPT4gUHJvbWlzZTx2b2lkPiB9LFxuICAgIF07XG4gICAgY29udGVudDogW3ZhbHVlOiBSVCwgZmVhdHVyZXM6IENvbnRlbnRGZWF0dXJlczxSVD5dO1xuICAgIGFsd2F5czogW3N0YXRlOiBSZXF1ZXN0U3RhdGU8VCwgUlQ-XTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGUgYDxSZXF1ZXN0PmAgY29tcG9uZW50IGlzIGEgcG93ZXJmdWwgdG9vbCBmb3IgbWFuYWdpbmcgZGF0YSBmZXRjaGluZyBhbmRcbiAqIHN0YXRlIGluIHlvdXIgRW1iZXIgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIGRlY2xhcmF0aXZlIHJlYWN0aXZlIGNvbnRyb2wtZmxvd1xuICogZm9yIG1hbmFnaW5nIHJlcXVlc3RzIGFuZCBzdGF0ZSBpbiB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIEB0eXBlZG9jXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0PFQsIFJUPiBleHRlbmRzIENvbXBvbmVudDxSZXF1ZXN0U2lnbmF0dXJlPFQsIFJUPj4ge1xuICAvKipcbiAgICogVGhlIHN0b3JlIGluc3RhbmNlIHRvIHVzZSBmb3IgbWFraW5nIHJlcXVlc3RzLiBJZiBjb250ZXh0cyBhcmUgYXZhaWxhYmxlLCB0aGlzXG4gICAqIHdpbGwgYmUgdGhlIGBzdG9yZWAgb24gdGhlIGNvbnRleHQsIGVsc2UgaXQgd2lsbCBiZSB0aGUgc3RvcmUgc2VydmljZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAY29uc3VtZSgnc3RvcmUnKSBkZWNsYXJlIF9zdG9yZTogU3RvcmU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJyb3dzZXIgcmVwb3J0cyB0aGF0IHRoZSBuZXR3b3JrIGlzIG9ubGluZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBpc09ubGluZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJyb3dzZXIgcmVwb3J0cyB0aGF0IHRoZSB0YWIgaXMgaGlkZGVuLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEB0cmFja2VkIGlzSGlkZGVuID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSByZWZyZXNoaW5nIHRoZSByZXF1ZXN0LlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEB0cmFja2VkIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnQgYmxvY2tpbmcgcmVxdWVzdCB0aGF0IHdhcyBtYWRlLCB0eXBpY2FsbHlcbiAgICogdGhlIHJlc3VsdCBvZiBhIHJlbG9hZC5cbiAgICpcbiAgICogVGhpcyB3aWxsIG5ldmVyIGJlIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHBhc3NlZCBhcyBhbiBhcmcgdG9cbiAgICogdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBfbG9jYWxSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnQgcmVxdWVzdCB0aGF0IHdhcyBtYWRlLCB0eXBpY2FsbHkgZHVlIHRvIGVpdGhlciBhXG4gICAqIHJlbG9hZCBvciBhIHJlZnJlc2guXG4gICAqXG4gICAqIFRoaXMgd2lsbCBuZXZlciBiZSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBwYXNzZWQgYXMgYW4gYXJnIHRvXG4gICAqIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQHRyYWNrZWQgX2xhdGVzdFJlcXVlc3Q6IEZ1dHVyZTxSVD4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBuZXR3b3JrIHdhcyByZXBvcnRlZCBhcyBvZmZsaW5lLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgdW5hdmFpbGFibGVTdGFydDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBpbnRlcnZhbFN0YXJ0OiBudW1iZXIgfCBudWxsO1xuICBkZWNsYXJlIG5leHRJbnRlcnZhbDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBpbnZhbGlkYXRlZDogYm9vbGVhbjtcbiAgZGVjbGFyZSBpc1VwZGF0aW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgbGlzdGVuZXIgZm9yIG5ldHdvcmsgc3RhdHVzIGNoYW5nZXMsXG4gICAqIGNhY2hlZCB0byB1c2UgdGhlIHJlZmVyZW5jZSBmb3IgcmVtb3ZhbC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIG9ubGluZUNoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCBsaXN0ZW5lciBmb3IgdmlzaWJpbGl0eSBzdGF0dXMgY2hhbmdlcyxcbiAgICogY2FjaGVkIHRvIHVzZSB0aGUgcmVmZXJlbmNlIGZvciByZW1vdmFsLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgYmFja2dyb3VuZENoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHJlcXVlc3QgcGFzc2VkIGFzIGFuIGFyZyB0byB0aGUgY29tcG9uZW50LFxuICAgKiBjYWNoZWQgZm9yIGNvbXBhcmlzb24uXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGVjbGFyZSBfb3JpZ2luYWxSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFzdCBxdWVyeSBwYXNzZWQgYXMgYW4gYXJnIHRvIHRoZSBjb21wb25lbnQsXG4gICAqIGNhY2hlZCBmb3IgY29tcGFyaXNvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIF9vcmlnaW5hbFF1ZXJ5OiBTdG9yZVJlcXVlc3RJbnB1dDxULCBSVD4gfCB1bmRlZmluZWQ7XG5cbiAgZGVjbGFyZSBfc3Vic2NyaXB0aW9uOiBvYmplY3QgfCBudWxsO1xuICBkZWNsYXJlIF9zdWJzY3JpYmVkVG86IG9iamVjdCB8IG51bGw7XG5cbiAgY29uc3RydWN0b3Iob3duZXI6IHVua25vd24sIGFyZ3M6IFJlcXVlc3RTaWduYXR1cmU8VCwgUlQ-WydBcmdzJ10pIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gbnVsbDtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIHRoaXMuaW50ZXJ2YWxTdGFydCA9IG51bGw7XG4gICAgdGhpcy5pbnZhbGlkYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMubmV4dEludGVydmFsID0gbnVsbDtcblxuICAgIHRoaXMuaW5zdGFsbExpc3RlbmVycygpO1xuICAgIHZvaWQgdGhpcy5iZWdpblBvbGxpbmcoKTtcbiAgfVxuXG4gIGFzeW5jIGJlZ2luUG9sbGluZygpIHtcbiAgICAvLyBhd2FpdCB0aGUgaW5pdGlhbCByZXF1ZXN0XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucmVxdWVzdDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlnbm9yZSBlcnJvcnMgaGVyZSwgd2UganVzdCB3YW50IHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0IHRvIGZpbmlzaFxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgdm9pZCB0aGlzLnNjaGVkdWxlSW50ZXJ2YWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBpc0lkbGUoKSB7XG4gICAgY29uc3QgeyByZXF1ZXN0LCBxdWVyeSB9ID0gdGhpcy5hcmdzO1xuXG4gICAgcmV0dXJuIEJvb2xlYW4oIXJlcXVlc3QgJiYgIXF1ZXJ5KTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IGF1dG9yZWZyZXNoVHlwZXMoKTogU2V0PEF1dG9yZWZyZXNoQmVoYXZpb3JUeXBlPiB7XG4gICAgY29uc3QgeyBhdXRvcmVmcmVzaCB9ID0gdGhpcy5hcmdzO1xuICAgIGxldCB0eXBlczogQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcblxuICAgIGlmIChhdXRvcmVmcmVzaCA9PT0gdHJ1ZSkge1xuICAgICAgdHlwZXMgPSBbJ29ubGluZScsICdpbnZhbGlkJ107XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXV0b3JlZnJlc2ggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0eXBlcyA9IGF1dG9yZWZyZXNoLnNwbGl0KCcsJykgYXMgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZXMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNldCh0eXBlcyk7XG4gIH1cblxuICAvLyB3ZSBvbmx5IHJ1biB0aGlzIGZ1bmN0aW9uIG9uIGNvbXBvbmVudCBjcmVhdGlvblxuICAvLyBhbmQgd2hlbiBhbiB1cGRhdGUgaXMgdHJpZ2dlcmVkLCBzbyBpdCBkb2VzIG5vdFxuICAvLyByZWFjdCB0byBjaGFuZ2VzIGluIHRoZSBhdXRvcmVmcmVzaFRocmVzaG9sZFxuICAvLyBvciBhdXRvcmVmcmVzaCBhcmdzLlxuICAvL1xuICAvLyBpZiB3ZSBuZWVkIHRvIHJlYWN0IHRvIHRob3NlIGNoYW5nZXMsIHdlIGNhblxuICAvLyB1c2UgYSBtb2RpZmllciBvciBpbnRlcm5hbCBjb21wb25lbnQgb3Igc29tZVxuICAvLyBzdWNoIHRvIHRyaWdnZXIgYSByZS1ydW4gb2YgdGhpcyBmdW5jdGlvbi5cbiAgYXN5bmMgc2NoZWR1bGVJbnRlcnZhbCgpIHtcbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgY29uc3QgaGFzVmFsaWRUaHJlc2hvbGQgPSB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMDtcbiAgICBpZiAoXG4gICAgICAvLyBkb250IHNjaGVkdWxlIGluIFNTUlxuICAgICAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgd2l0aG91dCBhIHRocmVzaG9sZFxuICAgICAgIWhhc1ZhbGlkVGhyZXNob2xkIHx8XG4gICAgICAvLyBkb250IHNjaGVkdWxlIGlmIHdlIHdlcmVuJ3QgdG9sZCB0b1xuICAgICAgIXRoaXMuYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ2ludGVydmFsJykgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgaWYgd2UncmUgYWxyZWFkeSBzY2hlZHVsZWRcbiAgICAgIHRoaXMuaW50ZXJ2YWxTdGFydCAhPT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYSBjdXJyZW50IHJlcXVlc3QsIHdhaXQgZm9yIGl0IHRvIGZpbmlzaFxuICAgIC8vIGJlZm9yZSBzY2hlZHVsaW5nIHRoZSBuZXh0IG9uZVxuICAgIGlmICh0aGlzLl9sYXRlc3RSZXF1ZXN0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGlnbm9yZSBlcnJvcnMgaGVyZSwgd2UganVzdCB3YW50IHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0IHRvIGZpbmlzaFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0dXAgdGhlIG5leHQgaW50ZXJ2YWxcbiAgICB0aGlzLmludGVydmFsU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMubmV4dEludGVydmFsID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfSwgYXV0b3JlZnJlc2hUaHJlc2hvbGQpO1xuICB9XG5cbiAgY2xlYXJJbnRlcnZhbCgpIHtcbiAgICBpZiAodGhpcy5uZXh0SW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5leHRJbnRlcnZhbCk7XG4gICAgICB0aGlzLmludGVydmFsU3RhcnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuaXNJZGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMuX3JlcXVlc3QubGlkO1xuXG4gICAgLy8gaWYgd2UncmUgYWxyZWFkeSBzdWJzY3JpYmVkIHRvIHRoaXMgcmVxdWVzdCwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgIGlmICh0aGlzLl9zdWJzY3JpYmVkVG8gPT09IHJlcXVlc3RJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHdlJ3JlIHN1YnNjcmliZWQgdG8gYSBkaWZmZXJlbnQgcmVxdWVzdCwgd2UgbmVlZCB0byB1bnN1YnNjcmliZVxuICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgLy8gaWYgd2UgaGF2ZSBhIHJlcXVlc3QsIHdlIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGl0XG4gICAgaWYgKHJlcXVlc3RJZCkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gcmVxdWVzdElkO1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5ub3RpZmljYXRpb25zLnN1YnNjcmliZShcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAoX2lkOiBTdGFibGVEb2N1bWVudElkZW50aWZpZXIsIG9wOiAnaW52YWxpZGF0ZWQnIHwgJ3N0YXRlJyB8ICdhZGRlZCcgfCAndXBkYXRlZCcgfCAncmVtb3ZlZCcpID0-IHtcbiAgICAgICAgICAvLyBpZ25vcmUgc3Vic2NyaXB0aW9uIGV2ZW50cyB0aGF0IG9jY3VyIHdoaWxlIG91ciBvd24gY29tcG9uZW50J3MgcmVxdWVzdFxuICAgICAgICAgIC8vIGlzIG9jdXJyaW5nXG4gICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICAgICAgICBjYXNlICdpbnZhbGlkYXRlZCc6IHtcbiAgICAgICAgICAgICAgLy8gaWYgd2UncmUgc3Vic2NyaWJlZCB0byBpbnZhbGlkYXRpb25zLCB3ZSBuZWVkIHRvIHVwZGF0ZVxuICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvcmVmcmVzaFR5cGVzLmhhcygnaW52YWxpZCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXliZVVwZGF0ZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnc3RhdGUnOiB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IHRoaXMuc3RvcmUucmVxdWVzdE1hbmFnZXIuX2RlZHVwZWQuZ2V0KHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHByaW9yaXR5ID0gbGF0ZXN0Py5wcmlvcml0eTtcbiAgICAgICAgICAgICAgaWYgKCFwcmlvcml0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJpb3JpdHkuYmxvY2tpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPIHNob3VsZCB3ZSBqdXN0IHRyZWF0IHRoaXMgYXMgcmVmcmVzaGluZz9cbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVVcGRhdGUoJ3BvbGljeScsIHRydWUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVTdWJzY3JpcHRpb25zKCkge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RvcmUubm90aWZpY2F0aW9ucy51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpcHRpb24pO1xuICAgICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gbnVsbDtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgdGhlIGV2ZW50IGxpc3RlbmVycyBmb3IgbmV0d29yayBhbmQgdmlzaWJpbGl0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgZG9uZSBpbiBicm93c2VyIGVudmlyb25tZW50cyB3aXRoIGEgZ2xvYmFsIGB3aW5kb3dgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGluc3RhbGxMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09ubGluZSA9IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IHRoaXMuaXNPbmxpbmUgPyBudWxsIDogRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlzSGlkZGVuID0gZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJztcblxuICAgIHRoaXMub25saW5lQ2hhbmdlZCA9IChldmVudDogRXZlbnQpID0-IHtcbiAgICAgIHRoaXMuaXNPbmxpbmUgPSBldmVudC50eXBlID09PSAnb25saW5lJztcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnb2ZmbGluZScgJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfTtcbiAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nO1xuICAgICAgdGhpcy5pc0hpZGRlbiA9IGlzSGlkZGVuO1xuXG4gICAgICBpZiAoaXNIaWRkZW4gJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWF5YmVVcGRhdGUoKTtcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMuYmFja2dyb3VuZENoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgbmV0d29yayBpcyBvbmxpbmUgYW5kIHRoZSB0YWIgaXMgdmlzaWJsZSwgZWl0aGVyIHJlbG9hZCBvciByZWZyZXNoIHRoZSByZXF1ZXN0XG4gICAqIGJhc2VkIG9uIHRoZSBjb21wb25lbnQncyBjb25maWd1cmF0aW9uIGFuZCB0aGUgcmVxdWVzdGVkIHVwZGF0ZSBtb2RlLlxuICAgKlxuICAgKiBWYWxpZCBtb2RlcyBhcmU6XG4gICAqXG4gICAqIC0gYCdyZWxvYWQnYDogRm9yY2UgYSByZWxvYWQgb2YgdGhlIHJlcXVlc3QuXG4gICAqIC0gYCdyZWZyZXNoJ2A6IFJlZnJlc2ggdGhlIHJlcXVlc3QgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqIC0gYCdwb2xpY3knYDogTWFrZSB0aGUgcmVxdWVzdCwgbGV0dGluZyB0aGUgc3RvcmUncyBjb25maWd1cmVkIENhY2hlUG9saWN5IGRlY2lkZSB3aGV0aGVyIHRvIHJlbG9hZCwgcmVmcmVzaCwgb3IgZG8gbm90aGluZy5cbiAgICogLSBgdW5kZWZpbmVkYDogTWFrZSB0aGUgcmVxdWVzdCB1c2luZyB0aGUgY29tcG9uZW50J3MgYXV0b3JlZnJlc2hCZWhhdmlvciBzZXR0aW5nIGlmIHRoZSBhdXRvcmVmcmVzaFRocmVzaG9sZCBoYXMgcGFzc2VkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG1heWJlVXBkYXRlKG1vZGU_OiAncmVsb2FkJyB8ICdyZWZyZXNoJyB8ICdwb2xpY3knIHwgJ2ludmFsaWRhdGVkJywgc2lsZW50PzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSWRsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjYW5BdHRlbXB0ID0gQm9vbGVhbih0aGlzLmlzT25saW5lICYmICF0aGlzLmlzSGlkZGVuICYmIChtb2RlIHx8IHRoaXMuYXV0b3JlZnJlc2hUeXBlcy5zaXplKSk7XG5cbiAgICBpZiAoIWNhbkF0dGVtcHQpIHtcbiAgICAgIGlmICghc2lsZW50ICYmIG1vZGUgJiYgbW9kZSAhPT0gJ2ludmFsaWRhdGVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlbG9hZCBub3QgYXZhaWxhYmxlOiB0aGUgbmV0d29yayBpcyBub3Qgb25saW5lIG9yIHRoZSB0YWIgaXMgaGlkZGVuYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVHlwZXMgfSA9IHRoaXM7XG4gICAgbGV0IHNob3VsZEF0dGVtcHQgPSB0aGlzLmludmFsaWRhdGVkIHx8IEJvb2xlYW4obW9kZSk7XG5cbiAgICBpZiAoIXNob3VsZEF0dGVtcHQgJiYgYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ29ubGluZScpKSB7XG4gICAgICBjb25zdCB7IHVuYXZhaWxhYmxlU3RhcnQgfSA9IHRoaXM7XG4gICAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgICBjb25zdCBkZWFkbGluZSA9IHR5cGVvZiBhdXRvcmVmcmVzaFRocmVzaG9sZCA9PT0gJ251bWJlcicgPyBhdXRvcmVmcmVzaFRocmVzaG9sZCA6IERFRkFVTFRfREVBRExJTkU7XG4gICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbih1bmF2YWlsYWJsZVN0YXJ0ICYmIERhdGUubm93KCkgLSB1bmF2YWlsYWJsZVN0YXJ0ID4gZGVhZGxpbmUpO1xuICAgIH1cblxuICAgIGlmICghc2hvdWxkQXR0ZW1wdCAmJiBhdXRvcmVmcmVzaFR5cGVzLmhhcygnaW50ZXJ2YWwnKSkge1xuICAgICAgY29uc3QgeyBpbnRlcnZhbFN0YXJ0IH0gPSB0aGlzO1xuICAgICAgY29uc3QgeyBhdXRvcmVmcmVzaFRocmVzaG9sZCB9ID0gdGhpcy5hcmdzO1xuXG4gICAgICBpZiAoaW50ZXJ2YWxTdGFydCAmJiB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMCkge1xuICAgICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbihEYXRlLm5vdygpIC0gaW50ZXJ2YWxTdGFydCA-PSBhdXRvcmVmcmVzaFRocmVzaG9sZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID0gbnVsbDtcbiAgICB0aGlzLmludmFsaWRhdGVkID0gZmFsc2U7XG5cbiAgICBpZiAoc2hvdWxkQXR0ZW1wdCkge1xuICAgICAgdGhpcy5jbGVhckludGVydmFsKCk7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZXFTdGF0ZS5yZXF1ZXN0IGFzIHVua25vd24gYXMgUmVxdWVzdEluZm88VCwgUlQ-KTtcbiAgICAgIGNvbnN0IHJlYWxNb2RlID0gbW9kZSA9PT0gJ2ludmFsaWRhdGVkJyA_IG51bGwgOiBtb2RlO1xuICAgICAgY29uc3QgdmFsID0gcmVhbE1vZGUgPz8gdGhpcy5hcmdzLmF1dG9yZWZyZXNoQmVoYXZpb3IgPz8gJ3BvbGljeSc7XG4gICAgICBzd2l0Y2ggKHZhbCkge1xuICAgICAgICBjYXNlICdyZWxvYWQnOlxuICAgICAgICAgIHJlcXVlc3QuY2FjaGVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxdWVzdC5jYWNoZU9wdGlvbnMsIHsgcmVsb2FkOiB0cnVlIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWZyZXNoJzpcbiAgICAgICAgICByZXF1ZXN0LmNhY2hlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcXVlc3QuY2FjaGVPcHRpb25zLCB7IGJhY2tncm91bmRSZWxvYWQ6IHRydWUgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3BvbGljeSc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgJHttb2RlID8gJ3VwZGF0ZSBtb2RlJyA6ICdAYXV0b3JlZnJlc2hCZWhhdmlvcid9IGZvciA8UmVxdWVzdCAvPjogJHtpc05ldmVyU3RyaW5nKHZhbCl9YFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdhc1N0b3JlUmVxdWVzdCA9IChyZXF1ZXN0IGFzIHsgW0VuYWJsZUh5ZHJhdGlvbl06IGJvb2xlYW4gfSlbRW5hYmxlSHlkcmF0aW9uXSA9PT0gdHJ1ZTtcbiAgICAgIGFzc2VydChcbiAgICAgICAgYENhbm5vdCBzdXBwbHkgYSBkaWZmZXJlbnQgc3RvcmUgdmlhIGNvbnRleHQgdGhhbiB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHJlcXVlc3RgLFxuICAgICAgICAhcmVxdWVzdC5zdG9yZSB8fCByZXF1ZXN0LnN0b3JlID09PSB0aGlzLnN0b3JlXG4gICAgICApO1xuXG4gICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbGF0ZXN0UmVxdWVzdCA9IHdhc1N0b3JlUmVxdWVzdCA_IHRoaXMuc3RvcmUucmVxdWVzdChyZXF1ZXN0KSA6IHRoaXMuc3RvcmUucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgaWYgKHZhbCAhPT0gJ3JlZnJlc2gnKSB7XG4gICAgICAgIHRoaXMuX2xvY2FsUmVxdWVzdCA9IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gICAgICB9XG5cbiAgICAgIHZvaWQgdGhpcy5zY2hlZHVsZUludGVydmFsKCk7XG4gICAgICB2b2lkIHRoaXMuX2xhdGVzdFJlcXVlc3QuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE8gcHJvYmFibHkgd2FudCB0aGlzXG4gICAgICAvLyB2b2lkIHRoaXMuc2NoZWR1bGVJbnRlcnZhbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyeSB0aGUgcmVxdWVzdCwgcmVsb2FkaW5nIGl0IGZyb20gdGhlIHNlcnZlci5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZXRyeSA9IGFzeW5jICgpID0-IHtcbiAgICB0aGlzLm1heWJlVXBkYXRlKCdyZWxvYWQnKTtcbiAgICBhd2FpdCB0aGlzLl9sb2NhbFJlcXVlc3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIHJlcXVlc3QsIHVwZGF0aW5nIGl0IGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2ggPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5tYXliZVVwZGF0ZSgncmVmcmVzaCcpO1xuICAgIGF3YWl0IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gIH07XG5cbiAgQGNhY2hlZFxuICBnZXQgZXJyb3JGZWF0dXJlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNIaWRkZW46IHRoaXMuaXNIaWRkZW4sXG4gICAgICBpc09ubGluZTogdGhpcy5pc09ubGluZSxcbiAgICAgIHJldHJ5OiB0aGlzLnJldHJ5LFxuICAgIH07XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBjb250ZW50RmVhdHVyZXMoKSB7XG4gICAgY29uc3QgZmVhdDogQ29udGVudEZlYXR1cmVzPFJUPiA9IHtcbiAgICAgIGlzSGlkZGVuOiB0aGlzLmlzSGlkZGVuLFxuICAgICAgaXNPbmxpbmU6IHRoaXMuaXNPbmxpbmUsXG4gICAgICByZWxvYWQ6IHRoaXMucmV0cnksXG4gICAgICByZWZyZXNoOiB0aGlzLnJlZnJlc2gsXG4gICAgICBpc1JlZnJlc2hpbmc6IHRoaXMuaXNSZWZyZXNoaW5nLFxuICAgICAgbGF0ZXN0UmVxdWVzdDogdGhpcy5fbGF0ZXN0UmVxdWVzdCxcbiAgICB9O1xuXG4gICAgaWYgKGZlYXQuaXNSZWZyZXNoaW5nKSB7XG4gICAgICBmZWF0LmFib3J0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9sYXRlc3RSZXF1ZXN0Py5hYm9ydCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmVhdDtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckludGVydmFsKCk7XG5cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmJhY2tncm91bmRDaGFuZ2VkLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9IGFzIHVua25vd24gYXMgYm9vbGVhbik7XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBfcmVxdWVzdCgpOiBGdXR1cmU8UlQ-IHtcbiAgICBjb25zdCB7IHJlcXVlc3QsIHF1ZXJ5IH0gPSB0aGlzLmFyZ3M7XG4gICAgYXNzZXJ0KGBDYW5ub3QgdXNlIGJvdGggQHJlcXVlc3QgYW5kIEBxdWVyeSBhcmdzIHdpdGggdGhlIDxSZXF1ZXN0PiBjb21wb25lbnRgLCAhcmVxdWVzdCB8fCAhcXVlcnkpO1xuICAgIGNvbnN0IHsgX2xvY2FsUmVxdWVzdCwgX29yaWdpbmFsUmVxdWVzdCwgX29yaWdpbmFsUXVlcnkgfSA9IHRoaXM7XG4gICAgY29uc3QgaXNPcmlnaW5hbFJlcXVlc3QgPSByZXF1ZXN0ID09PSBfb3JpZ2luYWxSZXF1ZXN0ICYmIHF1ZXJ5ID09PSBfb3JpZ2luYWxRdWVyeTtcblxuICAgIGlmIChfbG9jYWxSZXF1ZXN0ICYmIGlzT3JpZ2luYWxSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gX2xvY2FsUmVxdWVzdDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgc3RhdGUgY2hlY2tzIGZvciB0aGUgbmV4dCB0aW1lXG4gICAgdGhpcy5fb3JpZ2luYWxRdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuX29yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3Q7XG5cbiAgICBpZiAocmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzc2VydChgWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgQHJlcXVlc3Qgb3IgYW4gQHF1ZXJ5IGFyZyB3aXRoIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50YCwgcXVlcnkpO1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnJlcXVlc3Q8UlQsIFQ-KHF1ZXJ5KTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IHJlcXVlc3QoKTogRnV0dXJlPFJUPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuX3JlcXVlc3Q7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb25zKCk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBnZXQgc3RvcmUoKTogU3RvcmUge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5hcmdzLnN0b3JlIHx8IHRoaXMuX3N0b3JlO1xuICAgIGFzc2VydChcbiAgICAgIG1vZHVsZUV4aXN0cygnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnKVxuICAgICAgICA_IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIHZpYSB0aGUgY29udGV4dCBBUEkgcHJvdmlkZWQgYnkgZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQuYFxuICAgICAgICA6IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIGJ5IHJlZ2lzdGVyaW5nIGEgc3RvcmUgc2VydmljZS5gLFxuICAgICAgc3RvcmVcbiAgICApO1xuICAgIHJldHVybiBzdG9yZTtcbiAgfVxuXG4gIGdldCByZXFTdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdFN0YXRlPFJULCBUPih0aGlzLnJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXFTdGF0ZS5yZXN1bHQgYXMgUlQ7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGFuZCB0aGlzLmlzSWRsZSAoaGFzLWJsb2NrIFwiaWRsZVwiKSl9fVxuICAgICAge3t5aWVsZCB0bz1cImlkbGVcIn19XG4gICAge3tlbHNlIGlmIHRoaXMuaXNJZGxlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3tJZGxlQmxvY2tNaXNzaW5nRXJyb3J9fSAvPlxuICAgIHt7ZWxzZSBpZiB0aGlzLnJlcVN0YXRlLmlzTG9hZGluZ319XG4gICAgICB7e3lpZWxkIHRoaXMucmVxU3RhdGUubG9hZGluZ1N0YXRlIHRvPVwibG9hZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnJlcVN0YXRlLmlzQ2FuY2VsbGVkIChoYXMtYmxvY2sgXCJjYW5jZWxsZWRcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiY2FuY2VsbGVkXCJ9fVxuICAgIHt7ZWxzZSBpZiAoYW5kIHRoaXMucmVxU3RhdGUuaXNFcnJvciAoaGFzLWJsb2NrIFwiZXJyb3JcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiZXJyb3JcIn19XG4gICAge3tlbHNlIGlmIHRoaXMucmVxU3RhdGUuaXNTdWNjZXNzfX1cbiAgICAgIHt7eWllbGQgdGhpcy5yZXN1bHQgdGhpcy5jb250ZW50RmVhdHVyZXMgdG89XCJjb250ZW50XCJ9fVxuICAgIHt7ZWxzZSBpZiAobm90IHRoaXMucmVxU3RhdGUuaXNDYW5jZWxsZWQpfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3sobm90TnVsbCB0aGlzLnJlcVN0YXRlLmVycm9yKX19IC8-XG4gICAge3svaWZ9fVxuICAgIHt7eWllbGQgdGhpcy5yZXFTdGF0ZSB0bz1cImFsd2F5c1wifX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxPQUFPLFFBQVEsaUJBQWlCO0FBQ3pDLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxNQUFNLEVBQUUsT0FBTyxRQUFRLG9CQUFvQjtBQUVwRCxTQUFTLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxRQUFRLG9CQUFvQjtBQUU3RSxjQUFjLE1BQU0sRUFBRSx1QkFBdUIsUUFBUSxzQkFBc0I7QUFDM0UsY0FBYyxpQkFBaUIsUUFBUSxvQkFBb0I7QUFDM0QsWUFBWSxXQUFXLG9CQUFvQjtBQUMzQyxTQUFTLE1BQU0sUUFBUSxrQ0FBa0M7QUFDekQsY0FBYyx3QkFBd0IsUUFBUSx1Q0FBdUM7QUFDckYsU0FBUyxlQUFlLEVBQUUsS0FBSyxXQUFXLFFBQVEsaUNBQWlDO0FBRW5GLFNBQVMsR0FBRyxFQUFFLEtBQUssUUFBUSxjQUFjO0FBQ3pDLGNBQWMsbUJBQW1CLEVBQUUsWUFBWSxRQUFRLHFCQUFxQjtBQUM1RSxTQUFTLGVBQWUsUUFBUSxxQkFBcUI7QUFFckQsU0FBUyxRQUFRLEdBQUcsSUFBSSxHQUFHLEtBQUs7QUFDaEMsU0FBUyxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUk7QUFDMUMsU0FBUyxRQUFRLEdBQUcsR0FBRyxJQUFJLElBQUk7SUFDN0IsT0FBTywyQ0FBMkMsTUFBTTtJQUN4RCxPQUFPO0FBQ1Q7QUFFQSxNQUFNLE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBSyxDQUFDO0FBQzdCLHNEQUFzRDtBQUN0RCxNQUFNLG1CQUFtQjtBQUN6QixNQUFNLHdCQUF3QixJQUFJLE1BQ2hDO0FBR0YsSUFBSSxVQUFVO0FBQ2QsSUFBSSxlQUFlLGFBQWEsbUNBQW1DO0lBQ2pFLE1BQU0sRUFBRSxTQUFTLGNBQWMsRUFBRSxHQUFHLFdBQVc7UUFBc0MsZ0JBQWdCOztJQUNy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"],"names":["deferred","WeakMap","deferDecorator","proto","prop","desc","map","get","Map","set","findDeferredDecorator","target","_a","cursor","prototype","decorateFieldV2","decorators","initializer","configurable","enumerable","writable","decorator","Object","defineProperty","decorateMethodV2","origDesc","getOwnPropertyDescriptor","value","call","initializeDeferredDecorator","constructor","RequestCache","isAbortError","error","DOMException","name","watchStream","stream","state","reader","getReader","bytesLoaded","shouldForward","_stream","readable","locked","isForwarding","writer","getWriter","buffer","_isPending","_isStarted","_startTime","performance","now","done","read","byteLength","_bytesLoaded","_lastPacketTime","item","ready","write","length","push","close","cancel","endTime","_endTime","_isComplete","RequestLoadingState","_future","_triggered","_trigger","future","promise","getStream","sizeHint","_sizeHint","then","_isCancelled","_isErrored","_error","g","tracked","i","void 0","isPending","TransformStream","isStarted","startTime","lastPacketTime","isComplete","isCancelled","isErrored","elapsedTime","completedRatio","remainingRatio","duration","speed","abort","RequestState","isError","loadingState","getPromiseResult","request","result","response","isLoading","content","isSuccess","setPromiseResult","getRequestState","PromiseCache","PromiseState","LegacyPromiseProxy","Symbol","for","isLegacyAwaitable","getPromise","getPromiseState","_promise","and","x","y","Boolean","Throw","Component","owner","args","setComponentTemplate","precompileTemplate","strictMode","Await","scope","notNull","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","not","DEFAULT_DEADLINE","IdleBlockMissingError","consume","service","moduleExists","contextConsume","importSync","isNeverString","val","Request","unavailableStart","intervalStart","nextInterval","invalidated","isUpdating","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","_subscription","_subscribedTo","installListeners","beginPolling","isDestroyed","scheduleInterval","isIdle","query","n","cached","autorefreshTypes","autorefresh","types","split","Set","autorefreshThreshold","hasValidThreshold","window","has","_latestRequest","Date","setTimeout","maybeUpdate","clearInterval","clearTimeout","updateSubscriptions","requestId","_request","lid","removeSubscriptions","store","notifications","subscribe","_id","op","latest","requestManager","_deduped","priority","isRefreshing","blocking","unsubscribe","isOnline","navigator","onLine","isHidden","document","visibilityState","event","type","addEventListener","passive","capture","mode","silent","canAttempt","size","shouldAttempt","deadline","assign","reqState","realMode","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest","EnableHydration","_localRequest","finally","retry","refresh","errorFeatures","contentFeatures","feat","latestRequest","willDestroy","removeEventListener","isOriginalRequest","_store"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/decorat_e3cbd74f60cbc6601d9238bdf69fcbb4/node_modules/decorator-transforms/dist/runtime-BPCpkOf1.js","../src/-private/request-state.ts","../src/-private/promise-state.ts","../src/-private/await.gts","../src/-private/request.gts"],"sourcesContent":["const deferred = /* @__PURE__ */ new WeakMap();\nfunction deferDecorator(proto, prop, desc) {\n let map = deferred.get(proto);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n deferred.set(proto, map);\n }\n map.set(prop, desc);\n}\nfunction findDeferredDecorator(target, prop) {\n var _a;\n let cursor = target.prototype;\n while (cursor) {\n let desc = (_a = deferred.get(cursor)) == null ? void 0 : _a.get(prop);\n if (desc) {\n return desc;\n }\n cursor = cursor.prototype;\n }\n}\nfunction decorateFieldV1(target, prop, decorators, initializer) {\n return decorateFieldV2(target.prototype, prop, decorators, initializer);\n}\nfunction decorateFieldV2(prototype, prop, decorators, initializer) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n };\n if (initializer) {\n desc.initializer = initializer;\n }\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(prototype, prop, desc);\n } else {\n deferDecorator(prototype, prop, desc);\n }\n}\nfunction decorateMethodV1({ prototype }, prop, decorators) {\n return decorateMethodV2(prototype, prop, decorators);\n}\nfunction decorateMethodV2(prototype, prop, decorators) {\n const origDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n let desc = { ...origDesc };\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(prototype) : void 0;\n desc.initializer = void 0;\n }\n Object.defineProperty(prototype, prop, desc);\n}\nfunction initializeDeferredDecorator(target, prop) {\n let desc = findDeferredDecorator(target.constructor, prop);\n if (desc) {\n Object.defineProperty(target, prop, {\n enumerable: desc.enumerable,\n configurable: desc.configurable,\n writable: desc.writable,\n value: desc.initializer ? desc.initializer.call(target) : void 0\n });\n }\n}\nfunction decorateClass(target, decorators) {\n return decorators.reduce(\n (accum, decorator) => decorator(accum) || accum,\n target\n );\n}\nfunction decoratePOJO(pojo, decorated) {\n for (let [type, prop, decorators] of decorated) {\n if (type === \"field\") {\n decoratePojoField(pojo, prop, decorators);\n } else {\n decorateMethodV2(pojo, prop, decorators);\n }\n }\n return pojo;\n}\nfunction decoratePojoField(pojo, prop, decorators) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: () => {\n var _a;\n return (_a = Object.getOwnPropertyDescriptor(pojo, prop)) == null ? void 0 : _a.value;\n }\n };\n for (let decorator of decorators) {\n desc = decorator(pojo, prop, desc) || desc;\n }\n if (desc.initializer) {\n desc.value = desc.initializer.call(pojo);\n delete desc.initializer;\n }\n Object.defineProperty(pojo, prop, desc);\n}\nconst runtime = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n c: decorateClass,\n f: decorateFieldV1,\n g: decorateFieldV2,\n i: initializeDeferredDecorator,\n m: decorateMethodV1,\n n: decorateMethodV2,\n p: decoratePOJO\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n decorateFieldV2 as a,\n decorateMethodV1 as b,\n decorateMethodV2 as c,\n decorateFieldV1 as d,\n decorateClass as e,\n decoratePOJO as f,\n initializeDeferredDecorator as i,\n runtime as r\n};\n//# sourceMappingURL=runtime-BPCpkOf1.js.map\n","import { tracked } from '@glimmer/tracking';\n\nimport type {\n Future,\n ImmutableRequestInfo,\n ResponseInfo,\n StructuredDocument,\n StructuredErrorDocument,\n} from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst RequestCache = new WeakMap<Future<unknown>, RequestState>();\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException && error.name === 'AbortError';\n}\n\nasync function watchStream(stream: ReadableStream<Uint8Array>, state: RequestLoadingState): Promise<void> {\n const reader = stream.getReader();\n let bytesLoaded = 0;\n let shouldForward = state._stream !== null && state._stream.readable.locked;\n let isForwarding = shouldForward;\n let writer = state._stream?.writable.getWriter();\n const buffer = [];\n\n state._isPending = false;\n state._isStarted = true;\n state._startTime = performance.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n bytesLoaded += value.byteLength;\n state._bytesLoaded = bytesLoaded;\n state._lastPacketTime = performance.now();\n\n shouldForward = shouldForward || (state._stream !== null && state._stream.readable.locked);\n\n if (shouldForward) {\n if (!isForwarding) {\n isForwarding = true;\n writer = state._stream!.writable.getWriter();\n for (const item of buffer) {\n await writer.ready;\n await writer.write(item);\n }\n buffer.length = 0;\n }\n await writer!.ready;\n await writer!.write(value);\n } else {\n buffer.push(value);\n }\n }\n\n // if we are still forwarding, we need to close the writer\n if (isForwarding) {\n await writer!.ready;\n await writer!.close();\n } else if (state._stream) {\n // if we are not forwarding, we need to cancel the stream\n await state._stream.readable.cancel('The Stream Has Already Ended');\n state._stream = null;\n }\n\n const endTime = performance.now();\n state._endTime = endTime;\n state._isComplete = true;\n state._isStarted = false;\n}\n\nexport class RequestLoadingState {\n _stream: TransformStream | null = null;\n _future: Future<unknown>;\n _triggered = false;\n _trigger() {\n if (this._triggered) {\n return;\n }\n this._triggered = true;\n const future = this._future;\n const promise: Promise<ReadableStream<Uint8Array> | null> & { sizeHint?: number } = future.getStream();\n if (promise.sizeHint) {\n this._sizeHint = promise.sizeHint;\n }\n this.promise = promise.then(\n (stream) => {\n if (!stream) {\n this._isPending = false;\n this._isComplete = true;\n return;\n }\n return watchStream(stream, this);\n },\n (error: Error) => {\n this._isPending = false;\n this._isStarted = false;\n if (isAbortError(error)) {\n this._isCancelled = true;\n this._isComplete = true;\n }\n this._isErrored = true;\n this._error = error;\n }\n );\n }\n\n promise: Promise<void> | null = null;\n @tracked _sizeHint = 0;\n @tracked _bytesLoaded = 0;\n\n @tracked _startTime = 0;\n @tracked _endTime = 0;\n @tracked _lastPacketTime = 0;\n\n @tracked _isPending = true;\n @tracked _isStarted = false;\n @tracked _isComplete = false;\n @tracked _isCancelled = false;\n @tracked _isErrored = false;\n @tracked _error: Error | null = null;\n\n get isPending(): boolean {\n this._trigger();\n return this._isPending;\n }\n\n get sizeHint(): number {\n this._trigger();\n return this._sizeHint;\n }\n\n get stream(): ReadableStream | null {\n this._trigger();\n if (!this._stream) {\n if (this._isComplete || this._isCancelled || this._isErrored) {\n return null;\n }\n this._stream = new TransformStream();\n }\n return this._stream.readable;\n }\n\n get isStarted(): boolean {\n this._trigger();\n return this._isStarted;\n }\n\n get bytesLoaded(): number {\n this._trigger();\n return this._bytesLoaded;\n }\n\n get startTime(): number {\n this._trigger();\n return this._startTime;\n }\n\n get endTime(): number {\n this._trigger();\n return this._endTime;\n }\n\n get lastPacketTime(): number {\n this._trigger();\n return this._lastPacketTime;\n }\n\n get isComplete(): boolean {\n this._trigger();\n return this._isComplete;\n }\n\n get isCancelled(): boolean {\n this._trigger();\n return this._isCancelled;\n }\n\n get isErrored(): boolean {\n this._trigger();\n return this._isErrored;\n }\n\n get error(): Error | null {\n this._trigger();\n return this._error;\n }\n\n get elapsedTime(): number {\n return (this.endTime || this.lastPacketTime) - this.startTime;\n }\n\n get completedRatio(): number {\n return this.sizeHint ? this.bytesLoaded / this.sizeHint : 0;\n }\n\n get remainingRatio(): number {\n return 1 - this.completedRatio;\n }\n\n get duration(): number {\n return this.endTime - this.startTime;\n }\n\n get speed(): number {\n // bytes per second\n return this.bytesLoaded / (this.elapsedTime / 1000);\n }\n\n constructor(future: Future<unknown>) {\n this._future = future;\n }\n\n abort = (): void => {\n this._future.abort();\n };\n}\n\nexport class RequestState<T = unknown, RT = unknown> {\n #request: Future<RT>;\n #loadingState: RequestLoadingState | null = null;\n\n @tracked result: RT | null = null;\n @tracked error: StructuredErrorDocument | null = null;\n @tracked isLoading = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n @tracked request: ImmutableRequestInfo<T, RT> | null = null;\n @tracked response: Response | ResponseInfo | null = null;\n\n get isCancelled(): boolean {\n return this.isError && isAbortError(this.error);\n }\n\n get loadingState() {\n if (!this.#loadingState) {\n this.#loadingState = new RequestLoadingState(this.#request);\n }\n\n return this.#loadingState;\n }\n\n constructor(future: Future<RT>) {\n this.#request = future;\n const state = getPromiseResult<StructuredDocument<RT>, StructuredErrorDocument>(future);\n\n if (state) {\n this.request = state.result.request as ImmutableRequestInfo<T, RT>;\n this.response = state.result.response;\n this.isLoading = false;\n\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n } else {\n this.result = state.result.content!;\n this.isSuccess = true;\n }\n } else {\n void future.then(\n (result) => {\n setPromiseResult(future, { isError: false, result });\n this.result = result.content;\n this.isSuccess = true;\n this.isLoading = false;\n this.request = result.request as ImmutableRequestInfo<T, RT>;\n this.response = result.response;\n },\n (error: StructuredErrorDocument) => {\n setPromiseResult(future, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isLoading = false;\n this.request = error.request as ImmutableRequestInfo<T, RT>;\n this.response = error.response;\n }\n );\n }\n }\n}\n\nexport function getRequestState<RT, T>(future: Future<RT>): RequestState<T, RT> {\n let state = RequestCache.get(future) as RequestState<T, RT> | undefined;\n\n if (!state) {\n state = new RequestState(future);\n RequestCache.set(future, state);\n }\n\n return state;\n}\n","import { tracked } from '@glimmer/tracking';\n\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst PromiseCache = new WeakMap<Awaitable, PromiseState>();\n\nexport class PromiseState<T = unknown, E = unknown> {\n @tracked result: T | null = null;\n @tracked error: E | null = null;\n @tracked isPending = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n\n constructor(promise: Promise<T> | Awaitable<T, E>) {\n const state = getPromiseResult<T, E>(promise);\n\n if (state) {\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n this.isPending = false;\n } else {\n this.result = state.result;\n this.isSuccess = true;\n this.isPending = false;\n }\n } else {\n void promise.then(\n (result) => {\n setPromiseResult(promise, { isError: false, result });\n this.result = result;\n this.isSuccess = true;\n this.isPending = false;\n },\n (error: E) => {\n setPromiseResult(promise, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isPending = false;\n }\n );\n }\n }\n}\n\nconst LegacyPromiseProxy = Symbol.for('LegacyPromiseProxy');\ntype LegacyAwaitable<T, E> = { promise: Promise<T> | Awaitable<T, E>; [LegacyPromiseProxy]: true };\n\nfunction isLegacyAwaitable<T, E>(promise: object): promise is LegacyAwaitable<T, E> {\n return LegacyPromiseProxy in promise && 'promise' in promise && promise[LegacyPromiseProxy] === true;\n}\n\nfunction getPromise<T, E>(promise: Promise<T> | Awaitable<T, E> | LegacyAwaitable<T, E>): Promise<T> | Awaitable<T, E> {\n return isLegacyAwaitable(promise) ? promise.promise : promise;\n}\n\nexport function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): PromiseState<T, E> {\n const _promise = getPromise(promise);\n let state = PromiseCache.get(_promise) as PromiseState<T, E> | undefined;\n\n if (!state) {\n state = new PromiseState(_promise);\n PromiseCache.set(_promise, state);\n }\n\n return state;\n}\n","import Component from '@glimmer/component';\n\nimport type { Awaitable } from '@ember-data/request';\n\nimport { getPromiseState } from './promise-state.ts';\n\nexport const and = (x: unknown, y: unknown) => Boolean(x && y);\ninterface ThrowSignature<E = Error | string | object> {\n Args: {\n error: E;\n };\n}\n\nexport class Throw<T> extends Component<ThrowSignature<T>> {\n constructor(owner: unknown, args: ThrowSignature<T>['Args']) {\n super(owner, args);\n // this error is opaque (user supplied) so we don't validate it\n // as an Error instance.\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.args.error;\n }\n <template></template>\n}\n\ninterface AwaitSignature<T, E = Error | string | object> {\n Args: {\n promise: Promise<T> | Awaitable<T, E>;\n };\n Blocks: {\n pending: [];\n error: [error: E];\n success: [value: T];\n };\n}\n\nexport class Await<T, E> extends Component<AwaitSignature<T, E>> {\n get state() {\n return getPromiseState<T, E>(this.args.promise);\n }\n\n get error() {\n return this.state.error as E;\n }\n\n get result() {\n return this.state.result as T;\n }\n\n <template>\n {{#if this.state.isPending}}\n {{yield to=\"pending\"}}\n {{else if (and this.state.isError (has-block \"error\"))}}\n {{yield this.error to=\"error\"}}\n {{else if this.state.isSuccess}}\n {{yield this.result to=\"success\"}}\n {{else}}\n <Throw @error={{this.error}} />\n {{/if}}\n </template>\n}\n","import { service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\n\nimport { importSync, macroCondition, moduleExists } from '@embroider/macros';\n\nimport type { Future, StructuredErrorDocument } from '@ember-data/request';\nimport type { StoreRequestInput } from '@ember-data/store';\nimport type Store from '@ember-data/store';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableDocumentIdentifier } from '@warp-drive/core-types/identifier.js';\nimport { EnableHydration, type RequestInfo } from '@warp-drive/core-types/request';\n\nimport { and, Throw } from './await.gts';\nimport type { RequestLoadingState, RequestState } from './request-state.ts';\nimport { getRequestState } from './request-state.ts';\n\nfunction notNull(x: null): never;\nfunction notNull<T>(x: T): Exclude<T, null>;\nfunction notNull<T>(x: T | null) {\n assert('Expected a non-null value, but got null', x !== null);\n return x;\n}\n\nconst not = (x: unknown) => !x;\n// default to 30 seconds unavailable before we refresh\nconst DEFAULT_DEADLINE = 30_000;\nconst IdleBlockMissingError = new Error(\n 'No idle block provided for <Request> component, and no query or request was provided.'\n);\n\nlet consume = service;\nif (macroCondition(moduleExists('ember-provide-consume-context'))) {\n const { consume: contextConsume } = importSync('ember-provide-consume-context') as { consume: typeof service };\n consume = contextConsume;\n}\n\nfunction isNeverString(val: never): string {\n return val;\n}\n\ntype AutorefreshBehaviorType = 'online' | 'interval' | 'invalid';\ntype AutorefreshBehaviorCombos =\n | true\n | AutorefreshBehaviorType\n | `${AutorefreshBehaviorType},${AutorefreshBehaviorType}`\n | `${AutorefreshBehaviorType},${AutorefreshBehaviorType},${AutorefreshBehaviorType}`;\n\ntype ContentFeatures<RT> = {\n isOnline: boolean;\n isHidden: boolean;\n isRefreshing: boolean;\n refresh: () => Promise<void>;\n reload: () => Promise<void>;\n abort?: () => void;\n latestRequest?: Future<RT>;\n};\n\ninterface RequestSignature<T, RT> {\n Args: {\n request?: Future<RT>;\n query?: StoreRequestInput<T, RT>;\n store?: Store;\n autorefresh?: AutorefreshBehaviorCombos;\n autorefreshThreshold?: number;\n autorefreshBehavior?: 'refresh' | 'reload' | 'policy';\n };\n Blocks: {\n idle: [];\n loading: [state: RequestLoadingState];\n cancelled: [\n error: StructuredErrorDocument,\n features: { isOnline: boolean; isHidden: boolean; retry: () => Promise<void> },\n ];\n error: [\n error: StructuredErrorDocument,\n features: { isOnline: boolean; isHidden: boolean; retry: () => Promise<void> },\n ];\n content: [value: RT, features: ContentFeatures<RT>];\n always: [state: RequestState<T, RT>];\n };\n}\n\n/**\n * The `<Request>` component is a powerful tool for managing data fetching and\n * state in your Ember application. It provides declarative reactive control-flow\n * for managing requests and state in your application.\n *\n * @typedoc\n */\nexport class Request<T, RT> extends Component<RequestSignature<T, RT>> {\n /**\n * The store instance to use for making requests. If contexts are available, this\n * will be the `store` on the context, else it will be the store service.\n *\n * @internal\n */\n @consume('store') declare _store: Store;\n\n /**\n * Whether the browser reports that the network is online.\n *\n * @internal\n */\n @tracked isOnline = true;\n\n /**\n * Whether the browser reports that the tab is hidden.\n *\n * @internal\n */\n @tracked isHidden = true;\n\n /**\n * Whether the component is currently refreshing the request.\n *\n * @internal\n */\n @tracked isRefreshing = false;\n\n /**\n * The most recent blocking request that was made, typically\n * the result of a reload.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */\n @tracked _localRequest: Future<RT> | undefined;\n\n /**\n * The most recent request that was made, typically due to either a\n * reload or a refresh.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */\n @tracked _latestRequest: Future<RT> | undefined;\n\n /**\n * The time at which the network was reported as offline.\n *\n * @internal\n */\n declare unavailableStart: number | null;\n declare intervalStart: number | null;\n declare nextInterval: number | null;\n declare invalidated: boolean;\n declare isUpdating: boolean;\n\n /**\n * The event listener for network status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */\n declare onlineChanged: (event: Event) => void;\n\n /**\n * The event listener for visibility status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */\n declare backgroundChanged: (event: Event) => void;\n\n /**\n * The last request passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */\n declare _originalRequest: Future<RT> | undefined;\n\n /**\n * The last query passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */\n declare _originalQuery: StoreRequestInput<T, RT> | undefined;\n\n declare _subscription: object | null;\n declare _subscribedTo: object | null;\n\n constructor(owner: unknown, args: RequestSignature<T, RT>['Args']) {\n super(owner, args);\n this._subscribedTo = null;\n this._subscription = null;\n this.intervalStart = null;\n this.invalidated = false;\n this.nextInterval = null;\n\n this.installListeners();\n void this.beginPolling();\n }\n\n async beginPolling() {\n // await the initial request\n try {\n await this.request;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n } finally {\n if (!this.isDestroyed) {\n void this.scheduleInterval();\n }\n }\n }\n\n @cached\n get isIdle() {\n const { request, query } = this.args;\n\n return Boolean(!request && !query);\n }\n\n @cached\n get autorefreshTypes(): Set<AutorefreshBehaviorType> {\n const { autorefresh } = this.args;\n let types: AutorefreshBehaviorType[];\n\n if (autorefresh === true) {\n types = ['online', 'invalid'];\n } else if (typeof autorefresh === 'string') {\n types = autorefresh.split(',') as AutorefreshBehaviorType[];\n } else {\n types = [];\n }\n\n return new Set(types);\n }\n\n // we only run this function on component creation\n // and when an update is triggered, so it does not\n // react to changes in the autorefreshThreshold\n // or autorefresh args.\n //\n // if we need to react to those changes, we can\n // use a modifier or internal component or some\n // such to trigger a re-run of this function.\n async scheduleInterval() {\n const { autorefreshThreshold } = this.args;\n const hasValidThreshold = typeof autorefreshThreshold === 'number' && autorefreshThreshold > 0;\n if (\n // dont schedule in SSR\n typeof window === 'undefined' ||\n // dont schedule without a threshold\n !hasValidThreshold ||\n // dont schedule if we weren't told to\n !this.autorefreshTypes.has('interval') ||\n // dont schedule if we're already scheduled\n this.intervalStart !== null\n ) {\n return;\n }\n\n // if we have a current request, wait for it to finish\n // before scheduling the next one\n if (this._latestRequest) {\n try {\n await this._latestRequest;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n }\n\n if (this.isDestroyed) {\n return;\n }\n }\n\n // setup the next interval\n this.intervalStart = Date.now();\n this.nextInterval = setTimeout(() => {\n this.maybeUpdate();\n }, autorefreshThreshold);\n }\n\n clearInterval() {\n if (this.nextInterval) {\n clearTimeout(this.nextInterval);\n this.intervalStart = null;\n }\n }\n\n updateSubscriptions() {\n if (this.isIdle) {\n return;\n }\n const requestId = this._request.lid;\n\n // if we're already subscribed to this request, we don't need to do anything\n if (this._subscribedTo === requestId) {\n return;\n }\n\n // if we're subscribed to a different request, we need to unsubscribe\n this.removeSubscriptions();\n\n // if we have a request, we need to subscribe to it\n if (requestId) {\n this._subscribedTo = requestId;\n this._subscription = this.store.notifications.subscribe(\n requestId,\n (_id: StableDocumentIdentifier, op: 'invalidated' | 'state' | 'added' | 'updated' | 'removed') => {\n // ignore subscription events that occur while our own component's request\n // is ocurring\n if (this.isUpdating) {\n return;\n }\n switch (op) {\n case 'invalidated': {\n // if we're subscribed to invalidations, we need to update\n if (this.autorefreshTypes.has('invalid')) {\n this.invalidated = true;\n this.maybeUpdate();\n }\n break;\n }\n case 'state': {\n const latest = this.store.requestManager._deduped.get(requestId);\n const priority = latest?.priority;\n const state = this.reqState;\n if (!priority) {\n // if there is no priority, we have completed whatever request\n // was occurring and so we are no longer refreshing (if we were)\n this.isRefreshing = false;\n } else if (priority.blocking && !state.isLoading) {\n // if we are blocking, there is an active request for this identity\n // that MUST be fulfilled from network (not cache).\n // Thus this is not \"refreshing\" because we should clear out and\n // block on this request.\n //\n // we receive state notifications when either a request initiates\n // or completes.\n //\n // In the completes case: we may receive the state notification\n // slightly before the request is finalized because the NotificationManager\n // may sync flush it (and thus deliver it before the microtask completes)\n //\n // In the initiates case: we aren't supposed to receive one unless there\n // is no other request in flight for this identity.\n //\n // However, there is a race condition here where the completed\n // notification can trigger an update that generates a new request\n // thus giving us an initiated notification before the older request\n // finalizes.\n //\n // When this occurs, if the triggered update happens to have caused\n // a new request to be made for the same identity AND that request\n // is the one passed into this component as the @request arg, then\n // getRequestState will return the state of the new request.\n // We can detect this by checking if the request state is \"loading\"\n // as outside of this case we would have a completed request.\n //\n // That is the reason for the `&& !state.isLoading` check above.\n\n // TODO should we just treat this as refreshing?\n this.isRefreshing = false;\n this.maybeUpdate('policy', true);\n } else {\n this.isRefreshing = true;\n }\n }\n }\n }\n );\n }\n }\n\n removeSubscriptions() {\n if (this._subscription) {\n this.store.notifications.unsubscribe(this._subscription);\n this._subscribedTo = null;\n this._subscription = null;\n }\n }\n\n /**\n * Install the event listeners for network and visibility changes.\n * This is only done in browser environments with a global `window`.\n *\n * @internal\n */\n installListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n\n this.isOnline = window.navigator.onLine;\n this.unavailableStart = this.isOnline ? null : Date.now();\n this.isHidden = document.visibilityState === 'hidden';\n\n this.onlineChanged = (event: Event) => {\n this.isOnline = event.type === 'online';\n if (event.type === 'offline' && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n this.backgroundChanged = () => {\n const isHidden = document.visibilityState === 'hidden';\n this.isHidden = isHidden;\n\n if (isHidden && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n\n this.maybeUpdate();\n };\n\n window.addEventListener('online', this.onlineChanged, { passive: true, capture: true });\n window.addEventListener('offline', this.onlineChanged, { passive: true, capture: true });\n document.addEventListener('visibilitychange', this.backgroundChanged, { passive: true, capture: true });\n }\n\n /**\n * If the network is online and the tab is visible, either reload or refresh the request\n * based on the component's configuration and the requested update mode.\n *\n * Valid modes are:\n *\n * - `'reload'`: Force a reload of the request.\n * - `'refresh'`: Refresh the request in the background.\n * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.\n * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.\n *\n * @internal\n */\n maybeUpdate(mode?: 'reload' | 'refresh' | 'policy' | 'invalidated', silent?: boolean): void {\n if (this.isIdle) {\n return;\n }\n const canAttempt = Boolean(this.isOnline && !this.isHidden && (mode || this.autorefreshTypes.size));\n\n if (!canAttempt) {\n if (!silent && mode && mode !== 'invalidated') {\n throw new Error(`Reload not available: the network is not online or the tab is hidden`);\n }\n\n return;\n }\n\n const { autorefreshTypes } = this;\n let shouldAttempt = this.invalidated || Boolean(mode);\n\n if (!shouldAttempt && autorefreshTypes.has('online')) {\n const { unavailableStart } = this;\n const { autorefreshThreshold } = this.args;\n const deadline = typeof autorefreshThreshold === 'number' ? autorefreshThreshold : DEFAULT_DEADLINE;\n shouldAttempt = Boolean(unavailableStart && Date.now() - unavailableStart > deadline);\n }\n\n if (!shouldAttempt && autorefreshTypes.has('interval')) {\n const { intervalStart } = this;\n const { autorefreshThreshold } = this.args;\n\n if (intervalStart && typeof autorefreshThreshold === 'number' && autorefreshThreshold > 0) {\n shouldAttempt = Boolean(Date.now() - intervalStart >= autorefreshThreshold);\n }\n }\n\n this.unavailableStart = null;\n this.invalidated = false;\n\n if (shouldAttempt) {\n this.clearInterval();\n const request = Object.assign({}, this.reqState.request as unknown as RequestInfo<T, RT>);\n const realMode = mode === 'invalidated' ? null : mode;\n const val = realMode ?? this.args.autorefreshBehavior ?? 'policy';\n switch (val) {\n case 'reload':\n request.cacheOptions = Object.assign({}, request.cacheOptions, { reload: true });\n break;\n case 'refresh':\n request.cacheOptions = Object.assign({}, request.cacheOptions, { backgroundReload: true });\n break;\n case 'policy':\n break;\n default:\n throw new Error(\n `Invalid ${mode ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val)}`\n );\n }\n\n const wasStoreRequest = request[EnableHydration] === true;\n assert(\n `Cannot supply a different store via context than was used to create the request`,\n !request.store || request.store === this.store\n );\n\n this.isUpdating = true;\n this._latestRequest = wasStoreRequest ? this.store.request(request) : this.store.requestManager.request(request);\n\n if (val !== 'refresh') {\n this._localRequest = this._latestRequest;\n }\n\n void this.scheduleInterval();\n void this._latestRequest.finally(() => {\n this.isUpdating = false;\n });\n } else {\n // TODO probably want this\n // void this.scheduleInterval();\n }\n }\n\n /**\n * Retry the request, reloading it from the server.\n *\n * @internal\n */\n retry = async () => {\n this.maybeUpdate('reload');\n await this._localRequest;\n };\n\n /**\n * Refresh the request, updating it in the background.\n *\n * @internal\n */\n refresh = async () => {\n this.maybeUpdate('refresh');\n await this._latestRequest;\n };\n\n @cached\n get errorFeatures() {\n return {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n retry: this.retry,\n };\n }\n\n @cached\n get contentFeatures() {\n const feat: ContentFeatures<RT> = {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n reload: this.retry,\n refresh: this.refresh,\n isRefreshing: this.isRefreshing,\n latestRequest: this._latestRequest,\n };\n\n if (feat.isRefreshing) {\n feat.abort = () => {\n this._latestRequest?.abort();\n };\n }\n\n return feat;\n }\n\n willDestroy() {\n this.removeSubscriptions();\n\n if (typeof window === 'undefined') {\n return;\n }\n\n this.clearInterval();\n\n window.removeEventListener('online', this.onlineChanged, { passive: true, capture: true } as unknown as boolean);\n window.removeEventListener('offline', this.onlineChanged, { passive: true, capture: true } as unknown as boolean);\n document.removeEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true,\n } as unknown as boolean);\n }\n\n @cached\n get _request(): Future<RT> {\n const { request, query } = this.args;\n assert(`Cannot use both @request and @query args with the <Request> component`, !request || !query);\n const { _localRequest, _originalRequest, _originalQuery } = this;\n const isOriginalRequest = request === _originalRequest && query === _originalQuery;\n\n if (_localRequest && isOriginalRequest) {\n return _localRequest;\n }\n\n // update state checks for the next time\n this._originalQuery = query;\n this._originalRequest = request;\n\n if (request) {\n return request;\n }\n assert(`You must provide either @request or an @query arg with the <Request> component`, query);\n return this.store.request<RT, T>(query);\n }\n\n @cached\n get request(): Future<RT> {\n const request = this._request;\n this.updateSubscriptions();\n return request;\n }\n\n get store(): Store {\n const store = this.args.store || this._store;\n assert(\n moduleExists('ember-provide-consume-context')\n ? `No store was provided to the <Request> component. Either provide a store via the @store arg or via the context API provided by ember-provide-consume-context.`\n : `No store was provided to the <Request> component. Either provide a store via the @store arg or by registering a store service.`,\n store\n );\n return store;\n }\n\n get reqState() {\n return getRequestState<RT, T>(this.request);\n }\n\n get result() {\n return this.reqState.result as RT;\n }\n\n <template>\n {{#if (and this.isIdle (has-block \"idle\"))}}\n {{yield to=\"idle\"}}\n {{else if this.isIdle}}\n <Throw @error={{IdleBlockMissingError}} />\n {{else if this.reqState.isLoading}}\n {{yield this.reqState.loadingState to=\"loading\"}}\n {{else if (and this.reqState.isCancelled (has-block \"cancelled\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"cancelled\"}}\n {{else if (and this.reqState.isError (has-block \"error\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"error\"}}\n {{else if this.reqState.isSuccess}}\n {{yield this.result this.contentFeatures to=\"content\"}}\n {{else if (not this.reqState.isCancelled)}}\n <Throw @error={{(notNull this.reqState.error)}} />\n {{/if}}\n {{yield this.reqState to=\"always\"}}\n </template>\n}\n"],"names":["deferred","WeakMap","deferDecorator","proto","prop","desc","map","get","Map","set","findDeferredDecorator","target","_a","cursor","prototype","decorateFieldV2","decorators","initializer","configurable","enumerable","writable","decorator","Object","defineProperty","decorateMethodV2","origDesc","getOwnPropertyDescriptor","value","call","initializeDeferredDecorator","constructor","RequestCache","isAbortError","error","DOMException","name","watchStream","stream","state","reader","getReader","bytesLoaded","shouldForward","_stream","readable","locked","isForwarding","writer","getWriter","buffer","_isPending","_isStarted","_startTime","performance","now","done","read","byteLength","_bytesLoaded","_lastPacketTime","item","ready","write","length","push","close","cancel","endTime","_endTime","_isComplete","RequestLoadingState","_future","_triggered","_trigger","future","promise","getStream","sizeHint","_sizeHint","then","_isCancelled","_isErrored","_error","g","tracked","i","void 0","isPending","TransformStream","isStarted","startTime","lastPacketTime","isComplete","isCancelled","isErrored","elapsedTime","completedRatio","remainingRatio","duration","speed","abort","RequestState","isError","loadingState","getPromiseResult","request","result","response","isLoading","content","isSuccess","setPromiseResult","getRequestState","PromiseCache","PromiseState","LegacyPromiseProxy","Symbol","for","isLegacyAwaitable","getPromise","getPromiseState","_promise","and","x","y","Boolean","Throw","Component","owner","args","setComponentTemplate","precompileTemplate","strictMode","Await","scope","notNull","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","not","DEFAULT_DEADLINE","IdleBlockMissingError","consume","service","moduleExists","contextConsume","importSync","isNeverString","val","Request","unavailableStart","intervalStart","nextInterval","invalidated","isUpdating","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","_subscription","_subscribedTo","installListeners","beginPolling","isDestroyed","scheduleInterval","isIdle","query","n","cached","autorefreshTypes","autorefresh","types","split","Set","autorefreshThreshold","hasValidThreshold","window","has","_latestRequest","Date","setTimeout","maybeUpdate","clearInterval","clearTimeout","updateSubscriptions","requestId","_request","lid","removeSubscriptions","store","notifications","subscribe","_id","op","latest","requestManager","_deduped","priority","reqState","isRefreshing","blocking","unsubscribe","isOnline","navigator","onLine","isHidden","document","visibilityState","event","type","addEventListener","passive","capture","mode","silent","canAttempt","size","shouldAttempt","deadline","assign","realMode","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest","EnableHydration","_localRequest","finally","retry","refresh","errorFeatures","contentFeatures","feat","latestRequest","willDestroy","removeEventListener","isOriginalRequest","_store"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path fill="#0969da" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path fill="#FFC474" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><path d="M91.36 33.566q-6.645-6.623-15.997-6.625-8.439 0-14.761 5.485-6.329 5.484-7.594 13.605l4.465.352Q59.3 46.418 60.18 48h1.582q1.476 0 1.476 1.441 0 1.44-1.476 1.438H60.32q-.843 1.793-2.847 1.863l-4.465.387q1.266 8.085 7.594 13.57t14.761 5.485q9.352 0 15.996-6.645 6.645-6.646 6.645-15.957 0-9.389-6.645-16.012Zm-6.622 15.442a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71-9.258c0 .246.199.45.445.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m-1.04 0c0 .246.2.45.446.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m9.75 10.297a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71 9.305a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-1.04 0a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0M4.32 32.812q1.757-.315 4.22-.492l-3.868-.07ZM45.977 46.91q-1.09-.28-2.356-1.617l-8.437-8.613h-9.278l14.48 10.508v.351q2.708.774 5.59-.633Zm3.972-12.375q-.105.421-.492.809h-.422l-.527-.422h-6.61v-.387Zm-.492-1.336q.387.388.492.844H41.9v-.387h6.609l.527-.457ZM4.32 66.348l.352.562 3.867-.07q-2.812-.282-4.219-.492M45.977 52.25q-2.883-1.44-5.59-.633v.352L25.907 62.48h9.277l8.437-8.648q1.3-1.335 2.356-1.582m3.972 12.375H41.9v-.387h6.609l.527-.457h.422q.387.457.492.844m-.492 1.3h-.422l-.527-.421h-6.61v-.387h8.051q-.105.387-.492.809m-8.543.81q.457.175.95.175h5.413q3.094 0 3.094-2.11 0-1.052-1.16-1.562t-1.934-.511h-5.414q-.598 0-.949.14H13.11q-.633.001-5.87.406-5.24.404-5.239 1.036v.984q0 .561 5.238 1 5.239.44 5.871.441Zm10.441-17.297h-3.55q-.423.14 0 .28h3.55Zm-3.62.703h-.458v-1.125h.457q2.145-.773 4.114-.95l.386-2.109.387.035c.047-.351.14-.851.281-1.508q-3.585-.07-8.93.563.458.523.95.91.597.422 1.16.563l1.055.246-.985.492q-1.688.843-4.183.844-.633 0-.88-.036a10 10 0 0 1-.843-.14l-.281-.106v-.457l-2.004-1.441q-5.162.704-6.992.738-3.938.035-3.938 2.918 0 2.777 3.938 2.918 2.356.036 6.992.738l2.004-1.441v-.457l.281-.106q.316-.105.844-.14.246-.035.879-.035 2.496 0 4.183.843l.985.457-1.055.282q-.563.106-1.16.562-.457.281-.95.88 5.1.631 8.93.597-.21-.915-.28-1.512h-.388l-.386-2.074a20.7 20.7 0 0 1-4.114-.95m4.042-1.688q-1.581.21-2.777.563h2.426l.316-.352Zm-.351 1.688H49q1.196.316 2.777.562l-.035-.21Zm11.386-.703q0-1.055-1.05-1.055h-1.793q-.81-1.582-2.532-1.582l-4.851-.422-.492 2.46-.352.423v.633l.352.421.492 2.426 4.852-.422q1.933 0 2.636-1.828h1.688q1.05 0 1.05-1.054m-3.898.14q0-1.44-1.477-1.441-1.44 0-1.44 1.441 0 1.476 1.44 1.477 1.477 0 1.477-1.477m.387 0q0 1.863-1.864 1.863-1.863 0-1.863-1.863t1.864-1.863 1.863 1.863m-1.16 0q0-.703-.703-.703-.668 0-.668.703t.667.703q.704 0 .704-.703m.386 0q0 1.09-1.09 1.09-1.054 0-1.054-1.09t1.054-1.09q1.09 0 1.09 1.09m-3.656-.176v.352h-2.918v-.352Zm21.547.176q-.07-1.055-1.055-1.055-1.054 0-1.054 1.055t1.054 1.055 1.055-1.055m.387 0q0 1.442-1.442 1.442-1.44 0-1.441-1.442 0-1.44 1.441-1.441 1.442 0 1.442 1.441m2.707 0q0-1.723-1.23-2.953-1.196-1.195-2.919-1.195-1.898 0-4.148 1.441-2.32 1.441-2.32 2.707 0 1.23 2.32 2.707 2.25 1.442 4.148 1.442 1.723 0 2.918-1.23 1.23-1.196 1.23-2.919m.422 0q0 1.863-1.336 3.2-1.337 1.335-3.235 1.335-1.968 0-4.36-1.511-2.53-1.583-2.53-3.024 0-1.44 2.53-3.058c1.595-1.008 3.048-1.508 4.36-1.508 1.219 0 2.297.441 3.235 1.332q1.335 1.371 1.336 3.234m-4.536-2.426q-.492 0-1.582.422-.984.493-.984.633v2.707q0 .387.984.633.985.422 1.582.422 2.427 0 2.497-2.32 0-2.461-2.497-2.497m2.883 2.426v.07q0 2.673-2.883 2.743-.562 0-1.757-.457-.879-.493-.985-.598a.53.53 0 0 1-.21-.422v-2.707q0-.175.175-.387.387-.351 1.02-.597 1.125-.457 1.757-.457 2.813.034 2.883 2.812M40.914 32.391H13.11q-.633 0-5.87.422-5.24.42-5.239 1.054v.95q0 .597 5.238 1.019t5.871.422h27.805q.457.176.95.176h5.413q.667 0 1.88-.563t1.214-1.512q.035-2.109-3.094-2.109h-5.414q-.598 0-.949.14m0 0" style="stroke:none;fill-rule:evenodd;fill:#ffc474;fill-opacity:1"/></svg>
|