@clickup/rest-client 2.10.293 → 2.10.296

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.
Files changed (92) hide show
  1. package/.eslintrc.base.js +20 -2
  2. package/README.md +3 -1
  3. package/SECURITY.md +39 -0
  4. package/dist/.eslintcache +1 -0
  5. package/dist/RestClient.js +1 -1
  6. package/dist/RestClient.js.map +1 -1
  7. package/dist/RestOptions.d.ts +5 -7
  8. package/dist/RestOptions.d.ts.map +1 -1
  9. package/dist/RestOptions.js +2 -2
  10. package/dist/RestOptions.js.map +1 -1
  11. package/dist/RestRequest.d.ts.map +1 -1
  12. package/dist/RestRequest.js +7 -13
  13. package/dist/RestRequest.js.map +1 -1
  14. package/dist/RestResponse.d.ts +4 -1
  15. package/dist/RestResponse.d.ts.map +1 -1
  16. package/dist/RestResponse.js +2 -1
  17. package/dist/RestResponse.js.map +1 -1
  18. package/dist/RestStream.js.map +1 -1
  19. package/dist/errors/RestRateLimitError.d.ts.map +1 -1
  20. package/dist/errors/RestRateLimitError.js.map +1 -1
  21. package/dist/errors/RestRetriableError.d.ts.map +1 -1
  22. package/dist/errors/RestRetriableError.js.map +1 -1
  23. package/dist/errors/RestTokenInvalidError.d.ts.map +1 -1
  24. package/dist/errors/RestTokenInvalidError.js.map +1 -1
  25. package/dist/helpers/depaginate.d.ts +1 -1
  26. package/dist/helpers/depaginate.d.ts.map +1 -1
  27. package/dist/helpers/depaginate.js.map +1 -1
  28. package/dist/internal/RestFetchReader.d.ts +9 -2
  29. package/dist/internal/RestFetchReader.d.ts.map +1 -1
  30. package/dist/internal/RestFetchReader.js +14 -3
  31. package/dist/internal/RestFetchReader.js.map +1 -1
  32. package/dist/internal/RestRangeUploader.js.map +1 -1
  33. package/dist/internal/calcRetryDelay.js.map +1 -1
  34. package/dist/internal/inferResBodyEncoding.js.map +1 -1
  35. package/dist/internal/inspectPossibleJSON.js.map +1 -1
  36. package/dist/internal/substituteParams.js.map +1 -1
  37. package/dist/internal/throwIfErrorResponse.js.map +1 -1
  38. package/dist/middlewares/paceRequests.js.map +1 -1
  39. package/dist/pacers/PacerQPS.js.map +1 -1
  40. package/docs/README.md +3 -1
  41. package/docs/classes/PacerComposite.md +7 -3
  42. package/docs/classes/PacerQPS.md +7 -3
  43. package/docs/classes/RestClient.md +32 -28
  44. package/docs/classes/RestContentSizeOverLimitError.md +5 -1
  45. package/docs/classes/RestError.md +5 -1
  46. package/docs/classes/RestRateLimitError.md +6 -2
  47. package/docs/classes/RestRequest.md +22 -18
  48. package/docs/classes/RestResponse.md +25 -10
  49. package/docs/classes/RestResponseError.md +5 -1
  50. package/docs/classes/RestRetriableError.md +6 -2
  51. package/docs/classes/RestStream.md +12 -8
  52. package/docs/classes/RestTimeoutError.md +5 -1
  53. package/docs/classes/RestTokenInvalidError.md +6 -2
  54. package/docs/interfaces/Middleware.md +4 -4
  55. package/docs/interfaces/Pacer.md +2 -2
  56. package/docs/interfaces/PacerQPSBackend.md +2 -2
  57. package/docs/interfaces/RestLogEvent.md +1 -1
  58. package/docs/interfaces/RestOptions.md +59 -23
  59. package/docs/interfaces/TokenGetter.md +3 -3
  60. package/docs/modules.md +4 -4
  61. package/jest.config.js +3 -0
  62. package/package.json +40 -8
  63. package/src/RestClient.ts +490 -0
  64. package/src/RestOptions.ts +186 -0
  65. package/src/RestRequest.ts +441 -0
  66. package/src/RestResponse.ts +49 -0
  67. package/src/RestStream.ts +89 -0
  68. package/src/errors/RestContentSizeOverLimitError.ts +3 -0
  69. package/src/errors/RestError.ts +6 -0
  70. package/src/errors/RestRateLimitError.ts +12 -0
  71. package/src/errors/RestResponseError.ts +46 -0
  72. package/src/errors/RestRetriableError.ts +12 -0
  73. package/src/errors/RestTimeoutError.ts +3 -0
  74. package/src/errors/RestTokenInvalidError.ts +11 -0
  75. package/src/helpers/depaginate.ts +37 -0
  76. package/src/index.ts +50 -0
  77. package/src/internal/RestFetchReader.ts +188 -0
  78. package/src/internal/RestRangeUploader.ts +61 -0
  79. package/src/internal/calcRetryDelay.ts +59 -0
  80. package/src/internal/inferResBodyEncoding.ts +33 -0
  81. package/src/internal/inspectPossibleJSON.ts +71 -0
  82. package/src/internal/prependNewlineIfMultiline.ts +3 -0
  83. package/src/internal/substituteParams.ts +25 -0
  84. package/src/internal/throwIfErrorResponse.ts +89 -0
  85. package/src/internal/toFloatMs.ts +3 -0
  86. package/src/middlewares/paceRequests.ts +42 -0
  87. package/src/pacers/Pacer.ts +22 -0
  88. package/src/pacers/PacerComposite.ts +29 -0
  89. package/src/pacers/PacerQPS.ts +147 -0
  90. package/tsconfig.json +5 -13
  91. package/typedoc.json +6 -1
  92. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,71 @@
1
+ import { inspect } from "util";
2
+ import sortBy from "lodash/sortBy";
3
+ import truncate from "lodash/truncate";
4
+
5
+ export default function inspectPossibleJSON(
6
+ headers: { get(name: string): string | null },
7
+ text: string | Buffer | NodeJS.ReadableStream,
8
+ maxOutputLen: number,
9
+ ): string {
10
+ const MAX_LEN_TO_TRY_PARSE = 1024 * 1024;
11
+
12
+ if (typeof text === "string" && text.length > MAX_LEN_TO_TRY_PARSE) {
13
+ // Don't even try to JSON-parse if the text is too long.
14
+ return ellipsis(text, maxOutputLen);
15
+ }
16
+
17
+ if (text instanceof Buffer) {
18
+ return `<Buffer: ${text.length} bytes>`;
19
+ }
20
+
21
+ if (!text || typeof text === "string") {
22
+ if (!(headers.get("content-type") || "").match(/json/)) {
23
+ return ellipsis(text, maxOutputLen);
24
+ }
25
+
26
+ try {
27
+ const json = JSON.parse(text);
28
+
29
+ if (json && typeof json === "object" && !(json instanceof Array)) {
30
+ // Move error/errors fields on top for better logging. This is a poor
31
+ // man's approach: of course not all APIs return error/errors fields at
32
+ // all, but it's hard to reorder at any other layer of abstraction.
33
+ reorderObjectProps(json, (k) =>
34
+ k === "error" || k === "errors" ? "" : k,
35
+ );
36
+ }
37
+
38
+ return ellipsis(
39
+ inspect(json, { depth: 20, compact: true }),
40
+ maxOutputLen,
41
+ );
42
+ } catch (e: any) {
43
+ return ellipsis(text, maxOutputLen);
44
+ }
45
+ }
46
+
47
+ return "<Stream>";
48
+ }
49
+
50
+ /**
51
+ * In-place-reorders keys in a given object. The important part is to do it
52
+ * in-place to e.g. be able to alter some @Memoized values.
53
+ */
54
+ function reorderObjectProps(
55
+ obj: Record<string, any>,
56
+ ranker: (k: string, v: any) => string | number,
57
+ ) {
58
+ const entries = Object.entries(obj);
59
+ for (const k in obj) {
60
+ delete obj[k];
61
+ }
62
+
63
+ Object.assign(
64
+ obj,
65
+ Object.fromEntries(sortBy(entries, ([k, v]) => ranker(k, v))),
66
+ );
67
+ }
68
+
69
+ function ellipsis(text: any, length: number) {
70
+ return truncate("" + text, { length }).trimEnd();
71
+ }
@@ -0,0 +1,3 @@
1
+ export default function prependNewlineIfMultiline(str: string) {
2
+ return str.trim().includes("\n") ? "\n" + str : str;
3
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Allows to use URLs like /some/:abc/other and pass { abc: "xyz" } as one of
3
+ * body parameters. Such body parameters will be excluded from the body before
4
+ * sending the request (so they're "moved" into the URL).
5
+ */
6
+ export default function substituteParams<TBody>(
7
+ url: string,
8
+ body: TBody,
9
+ ): [string, TBody] {
10
+ if (!body || typeof body !== "object") {
11
+ return [url, body];
12
+ }
13
+
14
+ url = url.replace(/:([a-z0-9_]+)/gi, (match, param) => {
15
+ const value = (body as any)[param];
16
+ if (typeof value === "string" || typeof value === "number") {
17
+ body = { ...body };
18
+ delete (body as any)[param];
19
+ return encodeURIComponent(value);
20
+ }
21
+
22
+ return match;
23
+ });
24
+ return [url, body];
25
+ }
@@ -0,0 +1,89 @@
1
+ import RestRateLimitError from "../errors/RestRateLimitError";
2
+ import RestResponseError from "../errors/RestResponseError";
3
+ import RestRetriableError from "../errors/RestRetriableError";
4
+ import RestTokenInvalidError from "../errors/RestTokenInvalidError";
5
+ import type RestOptions from "../RestOptions";
6
+ import type RestResponse from "../RestResponse";
7
+
8
+ const STATUS_TOO_MANY_REQUESTS = 429;
9
+
10
+ /**
11
+ * The general idea is that we turn all logical errors into exceptions and then
12
+ * deal with exceptions only. I.e. throwing an exception becomes an internal API
13
+ * convention for errors. This is because fetch() throws its own exceptions, and
14
+ * also there may be some exceptions during validation of the response, or
15
+ * inside a middleware etc.
16
+ */
17
+ export default function throwIfErrorResponse(
18
+ options: RestOptions,
19
+ res: RestResponse,
20
+ ) {
21
+ const isSuccessResponse = options.isSuccessResponse(res);
22
+ if (isSuccessResponse === "SUCCESS") {
23
+ return;
24
+ }
25
+
26
+ const rateLimitDelayMs = options.isRateLimitError(res);
27
+ switch (rateLimitDelayMs) {
28
+ case "RATE_LIMIT":
29
+ throw new RestRateLimitError(
30
+ `isRateLimitError() returned ${rateLimitDelayMs}`,
31
+ 0,
32
+ res,
33
+ );
34
+ case "BEST_EFFORT":
35
+ if (res.status === STATUS_TOO_MANY_REQUESTS) {
36
+ const retryAfterHeader = res.headers.get("Retry-After") || "0";
37
+ throw new RestRateLimitError(
38
+ `Rate limited by HTTP status ${STATUS_TOO_MANY_REQUESTS}`,
39
+ parseInt(retryAfterHeader) || 0,
40
+ res,
41
+ );
42
+ }
43
+
44
+ break;
45
+ case "SOMETHING_ELSE":
46
+ break;
47
+ default:
48
+ throw new RestRateLimitError(
49
+ `isRateLimitError() returned retry delay ${rateLimitDelayMs} ms`,
50
+ rateLimitDelayMs,
51
+ res,
52
+ );
53
+ }
54
+
55
+ const isTokenInvalidError = options.isTokenInvalidError(res);
56
+ if (isTokenInvalidError) {
57
+ throw new RestTokenInvalidError("Invalid app token", res);
58
+ }
59
+
60
+ const retryDelayMs = options.isRetriableError(res, null);
61
+ switch (retryDelayMs) {
62
+ case "RETRY":
63
+ throw new RestRetriableError(
64
+ `isRetriableError() returned ${retryDelayMs}`,
65
+ 0,
66
+ res,
67
+ );
68
+ case "BEST_EFFORT":
69
+ case "NEVER_RETRY":
70
+ break;
71
+ default:
72
+ throw new RestRetriableError(
73
+ `"isRetriableError() returned retry delay ${retryDelayMs} ms`,
74
+ retryDelayMs,
75
+ res,
76
+ );
77
+ }
78
+
79
+ if (isSuccessResponse === "THROW") {
80
+ throw new RestResponseError(
81
+ `isSuccessResponse() returned ${isSuccessResponse}`,
82
+ res,
83
+ );
84
+ }
85
+
86
+ if (res.status >= 300) {
87
+ throw new RestResponseError("", res);
88
+ }
89
+ }
@@ -0,0 +1,3 @@
1
+ export default function toFloatMs(elapsed: [number, number]) {
2
+ return elapsed[0] * 1e3 + elapsed[1] / 1e6;
3
+ }
@@ -0,0 +1,42 @@
1
+ import type Pacer from "../pacers/Pacer";
2
+ import type { Middleware } from "../RestOptions";
3
+ import type RestRequest from "../RestRequest";
4
+
5
+ const MIN_LOG_DELAY_MS = 10;
6
+
7
+ /**
8
+ * Rest Client middleware that adds some delay between requests using one of
9
+ * Pacer implementations.
10
+ */
11
+ export default function paceRequests(
12
+ pacer: Pacer | ((req: RestRequest) => Promise<Pacer | null>) | null,
13
+ ): Middleware {
14
+ return async (req, next) => {
15
+ if (typeof pacer === "function") {
16
+ pacer = await pacer(req);
17
+ }
18
+
19
+ if (pacer) {
20
+ const { delayMs, reason } = await pacer.touch();
21
+ if (delayMs > 0) {
22
+ await req.options.heartbeater.delay(delayMs);
23
+ }
24
+
25
+ if (delayMs > MIN_LOG_DELAY_MS) {
26
+ req.options.logger({
27
+ attempt: 0,
28
+ req,
29
+ res: "backoff_delay",
30
+ exception: null,
31
+ timestamp: Date.now(),
32
+ elapsed: delayMs,
33
+ isFinalAttempt: true,
34
+ privateDataInResponse: false,
35
+ comment: reason,
36
+ });
37
+ }
38
+ }
39
+
40
+ return next(req);
41
+ };
42
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A result of some Pacer work.
3
+ */
4
+ export interface PacerDelay {
5
+ delayMs: number;
6
+ reason: string;
7
+ }
8
+
9
+ /**
10
+ * Pacer is a class which allows to pace requests on some resource identified by
11
+ * the instance of this class.
12
+ */
13
+ export default interface Pacer {
14
+ /** Human readable name of the pacer, used when composing multiple pacers. */
15
+ readonly name: string;
16
+
17
+ /**
18
+ * Signals that we're about to send a request. Returns the delay we need to
19
+ * wait for before actually sending.
20
+ */
21
+ touch(): Promise<PacerDelay>;
22
+ }
@@ -0,0 +1,29 @@
1
+ import maxBy from "lodash/maxBy";
2
+ import type Pacer from "./Pacer";
3
+
4
+ /**
5
+ * A Pacer which runs all sub-pacers and chooses the largest delay.
6
+ */
7
+ export default class PacerComposite implements Pacer {
8
+ readonly name = "";
9
+
10
+ constructor(private _pacers: Pacer[]) {}
11
+
12
+ async touch() {
13
+ const delays = await Promise["all"](
14
+ this._pacers.map(async (pacer) => ({
15
+ pacer,
16
+ delay: await pacer.touch(),
17
+ })),
18
+ );
19
+ const pair = maxBy(delays, ({ delay }) => delay.delayMs);
20
+ return pair
21
+ ? {
22
+ ...pair.delay,
23
+ reason: pair.pacer.name
24
+ ? `${pair.pacer.constructor.name} ${pair.pacer.name}\n${pair.delay.reason}`
25
+ : pair.delay.reason,
26
+ }
27
+ : { delayMs: 0, reason: "no pacers" };
28
+ }
29
+ }
@@ -0,0 +1,147 @@
1
+ import random from "lodash/random";
2
+ import type { PacerDelay } from "./Pacer";
3
+ import type Pacer from "./Pacer";
4
+
5
+ /** Start decreasing the delay (and thus speeding up requests) only when we have
6
+ * less requests in the moving window than allowed by the desired QPS multiplied
7
+ * by this factor. I.e. we don't speed up immediately when we're slow; we wait
8
+ * until we're SLIGHTLY below the limits. */
9
+ const DEFAULT_DECREASE_THRESHOLD = 0.75;
10
+
11
+ /** Default moving window length. */
12
+ const DEFAULT_WINDOW_SEC = 30;
13
+
14
+ /** Below how many samples do we stop relying on samples to recalculate the
15
+ * current fleet's average delay and instead keep using the previously
16
+ * calculated (and saved) value for the delay. E.g. it doesn't make much sense
17
+ * to rely on an average of 3-4 samples to calculate the average delay, it makes
18
+ * sense to wait for more samples to come. */
19
+ const MIN_COUNT_FOR_CENTRAL_TENDENCY = 10;
20
+
21
+ /** The value here is multiplied by the fleet average to get the delay
22
+ * increment/decrement step. It basically determines, in how many increments
23
+ * would a "cold started" worker reach the current fleet's average delay. Or, in
24
+ * how many steps would it reach delay=0 situation from the current fleet's
25
+ * average if needed. */
26
+ const DELAY_AVG_TO_STEP_FACTOR = 0.02;
27
+
28
+ /** Delay increments are jittered by +/- this proportion. */
29
+ const DELAY_STEP_JITTER = 0.1;
30
+
31
+ export interface PacerQPSBackend {
32
+ /** Resource key which this backend is operating on. */
33
+ readonly key: string;
34
+
35
+ /**
36
+ * Maintains the array of numbers somewhere in memory (time-value pairs),
37
+ * inserts a new time-value pair to the end of this list, and removes all the
38
+ * entries which are earlier than `minTime`. Returns the size of the resulting
39
+ * array and some central tendency statistics about its values.
40
+ */
41
+ push(props: {
42
+ time: number;
43
+ minTime: number;
44
+ value: number;
45
+ minCountForCentralTendency: number;
46
+ }): Promise<{ count: number; sum: number; avg: number; median: number }>;
47
+ }
48
+
49
+ export interface PacerQPSOptions {
50
+ /** The maximum QPS allowed within the rolling window. */
51
+ qps: number;
52
+ /** The length of the rolling windows in milliseconds. */
53
+ windowSec?: number;
54
+ /** Decrease the delay if the number of requests in the window has dropped
55
+ * below `decreaseThreshold` portion of the limit. */
56
+ decreaseThreshold?: number;
57
+ }
58
+
59
+ /**
60
+ * Implements a very simple heuristic:
61
+ * - increase the delay if we're above the QPS within the rolling window;
62
+ * - decrease the delay if we're below the desired QPS.
63
+ *
64
+ * Each worker keeps (and grows/shrinks) its delay individually; this way, we
65
+ * don't need to elect, who's the "source of truth" for the delay.
66
+ *
67
+ * Backend is a concrete (and minimal) implementation of the storage logic for
68
+ * the pacing algorithm.
69
+ */
70
+ export default class PacerQPS implements Pacer {
71
+ private _isFirstTouch = true;
72
+ private _delay = 0;
73
+
74
+ constructor(
75
+ private _options: PacerQPSOptions,
76
+ private _backend: PacerQPSBackend,
77
+ ) {}
78
+
79
+ get name() {
80
+ return this._backend.key;
81
+ }
82
+
83
+ async touch(): Promise<PacerDelay> {
84
+ const windowSec = this._options.windowSec ?? DEFAULT_WINDOW_SEC;
85
+ const limit = Math.round(windowSec * this._options.qps);
86
+ const decreaseThreshold =
87
+ this._options.decreaseThreshold ?? DEFAULT_DECREASE_THRESHOLD;
88
+
89
+ const time = Date.now();
90
+ const delayPushed = this._delay;
91
+ const { count, sum, avg, median } = await this._backend.push({
92
+ time,
93
+ minTime: time - windowSec * 1000,
94
+ value: this._delay,
95
+ minCountForCentralTendency: MIN_COUNT_FOR_CENTRAL_TENDENCY,
96
+ });
97
+ const sumDivCount = count ? sum / count : 0;
98
+
99
+ // "Cold start": start with the fleet average delay.
100
+ if (this._isFirstTouch && this._delay === 0) {
101
+ this._delay = Math.round(avg);
102
+ this._isFirstTouch = false;
103
+ }
104
+
105
+ // If we imagine there is only 1 worker in the fleet, what would be its
106
+ // delay increment/decrement step. We use this number in a fallback
107
+ // situation, when we don't know much about the entire fleet average delay
108
+ // yet, or when this delay is too small to count on.
109
+ const singleWorkerDelayStepMs = Math.round(
110
+ ((windowSec * 1000) / limit) * DELAY_AVG_TO_STEP_FACTOR,
111
+ );
112
+
113
+ // Considering that there are multiple workers running, and that the current
114
+ // average fleet's delay is representative, what would be a delay increment
115
+ // to reach from delay=0 to that fleet's average delay.
116
+ const multiWorkerDelayStepMs = Math.round(
117
+ avg *
118
+ DELAY_AVG_TO_STEP_FACTOR *
119
+ random(1 - DELAY_STEP_JITTER, 1 + DELAY_STEP_JITTER, true),
120
+ );
121
+
122
+ // If average fleet delay is not representative yet, we fallback to a
123
+ // single-worker delay increment.
124
+ const delayStepMs = multiWorkerDelayStepMs || singleWorkerDelayStepMs || 1;
125
+
126
+ if (count > limit) {
127
+ // Increase the delay if the limit is reached. There is no "max delay":
128
+ // imagine we have 10 QPS limit and 10000 users; it's obvious that in this
129
+ // case, the delay between requests per a single user will be gigantic.
130
+ this._delay += delayStepMs;
131
+ } else if (count < limit * decreaseThreshold) {
132
+ // Decrease the delay if we're significantly under the limit.
133
+ this._delay = Math.max(0, this._delay - delayStepMs);
134
+ }
135
+
136
+ return {
137
+ delayMs: this._delay,
138
+ reason: [
139
+ `count=${count} per ${windowSec}s (limit=${limit})`,
140
+ `delay=${this._delay} step=${delayStepMs} delayPushed=${delayPushed}`,
141
+ `median=${Math.round(median)}`,
142
+ `sum/count=${Math.round(sumDivCount)}`,
143
+ `avg=${Math.round(avg)}`,
144
+ ].join("\n"),
145
+ };
146
+ }
147
+ }
package/tsconfig.json CHANGED
@@ -1,7 +1,5 @@
1
1
  {
2
- "include": [
3
- "src/**/*"
4
- ],
2
+ "include": ["src/**/*"],
5
3
  "compilerOptions": {
6
4
  "allowJs": true,
7
5
  "declaration": true,
@@ -11,11 +9,8 @@
11
9
  "esModuleInterop": true,
12
10
  "experimentalDecorators": true,
13
11
  "incremental": true,
14
- "lib": [
15
- "es2019"
16
- ],
17
- "module": "commonjs",
18
- "moduleResolution": "node",
12
+ "lib": ["ES2019"],
13
+ "module": "Node16",
19
14
  "noEmitOnError": true,
20
15
  "noErrorTruncation": true,
21
16
  "noImplicitOverride": true,
@@ -29,11 +24,8 @@
29
24
  "skipLibCheck": true,
30
25
  "sourceMap": true,
31
26
  "strict": true,
32
- "target": "es2019",
27
+ "target": "ES2019",
33
28
  "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo",
34
- "types": [
35
- "node",
36
- "jest"
37
- ],
29
+ "types": ["node", "jest"]
38
30
  }
39
31
  }
package/typedoc.json CHANGED
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "entryPoints": ["src"],
3
- "exclude": ["src/internal/**", "src/__tests__/**", "**/node-fetch/**", "**/node_modules/**"],
3
+ "exclude": [
4
+ "**/internal/**",
5
+ "**/__tests__/**",
6
+ "**/node_modules/**",
7
+ "**/node-fetch/**"
8
+ ],
4
9
  "entryPointStrategy": "expand",
5
10
  "mergeModulesMergeMode": "project",
6
11
  "sort": ["source-order"],
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../node_modules/@types/lodash/isundefined.d.ts","../node_modules/@types/lodash/omitby.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/form-data/index.d.ts","../node_modules/@types/node-fetch/externals.d.ts","../node_modules/@types/node-fetch/index.d.ts","../node_modules/oauth-1.0a/oauth-1.0a.d.ts","../node_modules/fast-typescript-memoize/dist/memoize.d.ts","../node_modules/fast-typescript-memoize/dist/memoize0.d.ts","../node_modules/fast-typescript-memoize/dist/memoize2.d.ts","../node_modules/fast-typescript-memoize/dist/memoizeexpireunused.d.ts","../node_modules/fast-typescript-memoize/dist/index.d.ts","../node_modules/ipaddr.js/lib/ipaddr.js.d.ts","../node_modules/@types/lodash/random.d.ts","../node_modules/@types/lodash/sortby.d.ts","../node_modules/@types/lodash/truncate.d.ts","../src/internal/inspectpossiblejson.ts","../src/internal/prependnewlineifmultiline.ts","../src/errors/resterror.ts","../src/errors/restresponseerror.ts","../src/errors/restcontentsizeoverlimiterror.ts","../src/errors/resttimeouterror.ts","../src/errors/restratelimiterror.ts","../src/errors/restretriableerror.ts","../node_modules/delay/index.d.ts","../src/restoptions.ts","../src/internal/calcretrydelay.ts","../node_modules/event-target-shim/index.d.ts","../node_modules/abort-controller/dist/abort-controller.d.ts","../src/internal/inferresbodyencoding.ts","../src/internal/restfetchreader.ts","../src/internal/throwiferrorresponse.ts","../src/internal/tofloatms.ts","../src/reststream.ts","../src/restrequest.ts","../src/restresponse.ts","../src/errors/resttokeninvaliderror.ts","../src/internal/restrangeuploader.ts","../src/internal/substituteparams.ts","../src/restclient.ts","../src/helpers/depaginate.ts","../src/pacers/pacer.ts","../src/middlewares/pacerequests.ts","../node_modules/@types/lodash/maxby.d.ts","../src/pacers/pacercomposite.ts","../src/pacers/pacerqps.ts","../src/index.ts","../src/__tests__/restclient.test.ts","../node_modules/@types/lodash/range.d.ts","../src/__tests__/helpers.ts","../src/__tests__/restfetchreader.test.ts","../src/__tests__/restrequest.test.ts","../src/__tests__/reststream.test.ts","../node_modules/superstruct/lib/error.d.ts","../node_modules/superstruct/lib/utils.d.ts","../node_modules/superstruct/lib/struct.d.ts","../node_modules/superstruct/lib/structs/coercions.d.ts","../node_modules/superstruct/lib/structs/refinements.d.ts","../node_modules/superstruct/lib/structs/types.d.ts","../node_modules/superstruct/lib/structs/utilities.d.ts","../node_modules/superstruct/lib/index.d.ts","../src/__tests__/example.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"32ab25b7b28b24a138d879ca371b18c8fdfdd564ad5107e1333c5aa5d5fea494","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","b82fc740467e59abe3d6170417e461527d2a95610f55915fc59557c4b7be55ba","e721209755f152edfd69e10bfdf5462d0a00b90991e2d5c5a9ab9c54fe4ee9fb","19d6c0afaefd2e51db3cc2ec611b33a43bd6d21545e854eb0913243e8d958991","09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","adda9e3915c6bf15e360356a41d950881a51dbe44f9a6088155836b040820663","b4855526ac5a822d6e0005e4b62ee49c599bf89897e4109135283d660e60291c","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","80ad053918e96087d9da8d092ff9f90520c9fc199c8bfd9340266dd8f38f364e","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","d70119390aece1794bf4988f10ea750d13455f5286977d35027d43dd2e9841cf",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"91f8b5abcdff8f9ecb9656b9852878718416fb7700b2c4fad8331e5b97c080bb","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"f49fb15c4aa06b65b0dce4db4584bfd8a9f74644baef1511b404dc95be34af00","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","53d603adbca276d8cd4e5eed5e1e7a91f975962fc41dfcfc515a6b2318025a1c","a7755c2d99539fb62de0630fb339af59614846f4551daccf6cb26586a114e8ba","e1494cd01a096ea81cefcca6ea414cf8fd5adb0256a191f144415f42fa680168","9a447781b2903cea6a609350a58e619a321f821d180764774b58e52175951ba9","0b6980dcb7fae3ceb27025fdcc468c1cbd09d4fd03a08981c7e88564b73f2957","970e6b0a03594d110daef991ad14af8ab05d06b5024bb6163b5bcb738dcc056d","a8215f0406480bad09063082600971c2e9300fabccf23e0a442a5c0994a47df8","662a75272462317059315f3028452dc8044f752ad0b6b61c084a7ae3eeb0f775","9b0e0e8756131143065a76f2e5bbf2a15b1f53e6e40f5aa464c7b1b60dda5ea7","5b164f09f2872a321760a406908ad71e06b7c07f58c9eb7f096f888e99c2bb70","166c1b5eb2abf5af8b31a6862dc9d2d9378ab4f685a8bf5f8720321c7af47e31",{"version":"edc0c953087585eb170a378368f574b424a2c0d4aee2b7dc45e7aea60c5b9e3a","signature":"bee15aab92ae1b487cf6b238296eb94ec752cbeeaf145247445700e66830614d"},{"version":"81f8382e31552d2c02a9041a50c4c27d8dd74d780af163e070b4e9aea002996d","signature":"00684d2074a1750d94e06203b47eb9242a14de64b1034723ef1ce6193b5cfab0"},{"version":"e42f05aaaf819782b88bdcc035c6567e438fa0eda3721cd068dfc8c7867d6001","signature":"79f0607791603b8ff7aeab74b28a0d92efff2113a765ebae6b7a8c8bb147de9c"},{"version":"9a70998f91605cc8097956a986350a9382be6dd7103b13bf42a58c902d12804d","signature":"b8e1ba10a549ec229c24f9acf2e8d3b9fa21ec1367288a95699c8e86141eed36"},{"version":"d1a31931f5325e4677df99351b003b6b17379e4c58d48dbdd7d7744f03b0206b","signature":"793a60ea3c354db31343e97558518da2ec7fc4a13b8221c7b89af721d187c99d"},{"version":"21b549392e3ebd4d3ce8916dd8178f8bee552d29272d879501a1752aab78d52f","signature":"13b1bc24a7eb0be356ab8438c027d3de71070a3e4711e89a085a4e2df298f3f4"},{"version":"c3a9b5b6556215e36c565e8200efc3f1c604dd1daa2aac1e0cb2e2c5e2fe1c89","signature":"443b6359f9afd62ecc3e8b6da61ccab7f03fdee964290579c46799035b790be2"},{"version":"9760b35340158970b28cd5e67b3bed70dd7307689e070a321d07d3582a3528fe","signature":"38575deb7de6ef9aa917a9ffce464abe8f016fda7ac1f12c2fd732d1d75d3c32"},"4c7fb1f4c57f3cd9d571c5e4cae33503530273a45579fa0babaf36b64a776eaa",{"version":"90270873b13869d5e15f1c7cbe0d3619a2b5c97787e8e587523ac0eb05bb1078","signature":"9b9c6e831967fcf20141cca4c47b2ab8e3cdfa79dc9655fed3cf0d250a10fa76"},{"version":"263e8e4ab09d51a95d3ef5e7405dcdf12e7194f930047d8a87249415ac9d9e23","signature":"4afc49f6b96526e9a227f368e6f6c5d8516e1070b41a0eccdfc4b88d1c4f238b"},"2859adaa4f2db3d4f0fc37ad86f056045341496b58fba0dbc16a222f9d5d55b1","655ed305e8f4cb95d3f578040301a4e4d6ace112b1bd8824cd32bda66c3677d1",{"version":"94bd79f9054898dbf637909c2b962f7e8c0de64bef5eb63e6a60e7371337efa2","signature":"eec924bb93ad6aa985bd1a2364d9ced39b1eb9d2bdebf4f63b32f6c5559a9db5"},{"version":"8ce5b3ed250fe03d4768027947c611a41166c138e742c131f9ee47922a425ee5","signature":"a75d179de15facbb156db196984e78e3b861cd554b3bfbe2caa58922af5b9818"},{"version":"5db9b435c31ef2e5d9621f7eadc828b01fd77c3f1db3fc3764b75c5fb21535a0","signature":"7a958bacfc7d732c5175a95ac83de8b830c294d217049785cab5b31c7f3e3c7d"},{"version":"e856168dacb8bb30602e16996a48b6715f5a4c0d471444819edb9c10a497c880","signature":"06f7bfcecf395dbd0299581527d8059f7349ff766d6bba077ef703568d6ec3f6"},{"version":"f8a77f51c9978da183c87ba65096dee1fb918b4115461fcda112c80ac56540b4","signature":"5af96be6143a1b262b6c607e0d9734635389ecb42a25db4139fd974898c35502"},{"version":"36be501b123f2bf8475960b96ce315c5cffebc116119df168b8546e8308db3a4","signature":"bbd9637a5db5992b898b1f416b9c9fd2f8bcfc5a539aac4ada4748dc644cd627"},{"version":"e142af24c9aefb9ec78b7fbae6b587c66fe4b2b8439f00a1d5fc7b3451553af9","signature":"b78e5688f1522616808cac00f67337e347760668e3dc9a83c92712256a0b93f5"},{"version":"942551e18cfe4fcf55bf513a93786e000893982f05ea3c950f556e798470383b","signature":"ae89fa501adcaf84a0d60005fb02f80fb42999753aee7cfa3b73873fc064b2a4"},{"version":"02de79a347c8a2961f753f25b90337b6577a44c8591f3355ac37de8dcb36c264","signature":"6ddfcb36a707c859f0433e2743bc0d6a1e2ee9170ca73a10c4998da134bf2fae"},{"version":"5fb66008714991b3d5cd57e5e0488290b2ddaae3bb4d6b32edce391bf30b3ffc","signature":"259491890e69f9387030cec57bdf0443671665d9b5534469f314a2c70755650c"},{"version":"43227bb01adad4145d725f8302a9c9968428b367389fdd83b875dd9783ef9254","signature":"fa36ac5bc0ad67c9022b4f9deefacf53d58d56039ec188ef4793320ade8804b1"},{"version":"1fd6446477ee3f8605090be9917fa7e0ea6b0eccfc492551829f0c98f6bd3036","signature":"ba3bfeac7dda681d9121e9795f03338753f0f7c05f1d6073a3e07fb907df2a1f"},{"version":"0e205aa301ac78c895857e5bc3cd5629aefe8cbfe6e67f2d308873a3073f45e9","signature":"6c157708e807bd4340d35f0166b5674a388287e42298d52fc04e1f93aca88b87"},{"version":"23fb173b9b1a2c3724a084bf31a80a0b8f381bb6f8b77a314f182aeaefb1c784","signature":"ca5c9ab387db8a7c7610a3cdf1c97cd8f783314bdf41da5a1a0bcfcd0592964e"},"f3dabfe0bf31eea68ec8eb79c7fab7c0c3381174a2f4dd8d06c32e1c5848713f",{"version":"4721bf410b3e877e413c062d7c12debd3fd47078bcb70f2e14d4ef3c045be32f","signature":"e9c66caa80feedaf023f7a8c4664d8cbfe2e8c0d9823dd7f82e17f1794840893"},{"version":"6054013573b292eaae77e1bbace7a4feb79e97f7180cd5ef939dbbfe7f1fb1f6","signature":"f9bb6b2fbe173253c51dbdf9d3c5b30a8fa5f8ec48bdb7d44ff59587061431b0"},{"version":"910ac657cd62b3555534faa394f010eb149222242d054523aae386e0db52b8fd","signature":"fa7640bdc7b3245f8795a5e013e82baeba4647c79b0041b3abd6a4565687639c"},{"version":"88cd2257c63efd31066812365b63e4983b661db1f3b97ee9bd1a44f6de80b8a1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9b58c2cbd15e7c2c5ccd13f983fa2ef06c8c32724787b1f5bf1642129a0ac3c2",{"version":"78fe2e6ab16170bed2f8850c6aedff9dfee854023da008c29cfa3a1ee90174fa","signature":"a093e577e8d9969edb042d0b4220780456328c253ddccd4a553530c24ee93471"},{"version":"05ef283944c005fa93ab4a9e03f6bbb0c33db4723993889ef10b503df320309a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"67c2039f21402fdc8d14fcb32162f9c255b3028d8cfca0785cdafaf3ad2ea23d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"14f9e6f1b4d238c2e81dba9beb6595d3b74ace7ee0e9d8151b8bf684b35ca6e8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"60608809747e51f16c3ad8384609743e9d1745de1ed8e9054174574ea79b952b","8855e0d556c6249f67b3cb9426c5ca1796929a48c2ce01fd050f95f1b69adbc5","aed0c3074556d1eb02516da20784fbb4fa125376c8e258c6c845cf0fddbd2918","c6eff85f66b05eba0a5af516cfa2e7ce0c6d2a2cc71bc4c543915c823cea9ce8","434272013d17121b677ec280c2309b16442cd47060af926d1deba5a00fa26856","5eca2dfcfa34ac7477c33d5ef1e153ec64c3eb08785c20e8557626a5e4c8f452","0c7192e40da80243d167d93fd23c11d2efba22dc27fda3602d99889ed02ade86","0706139fea91b191554d605cc00192d295832707c54782c14b2e770f84786576",{"version":"80a83b97d29fcbfae6a8e48596ff412c698579b9b4c044ebbe84013ae163b1ad","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"9afcfd847523b81d526c73130a247fbb65aa1eba2a1d4195cfacd677a9e4de08","affectsGlobalScope":true}],"root":[[159,166],168,169,[172,185],[187,190],[192,195],204],"options":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noEmitOnError":true,"noErrorTruncation":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"./","removeComments":false,"rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[138],[138,207],[138,209,212],[45,47,48,49,50,51,52,53,54,55,56,57,138],[45,46,48,49,50,51,52,53,54,55,56,57,138],[46,47,48,49,50,51,52,53,54,55,56,57,138],[45,46,47,49,50,51,52,53,54,55,56,57,138],[45,46,47,48,50,51,52,53,54,55,56,57,138],[45,46,47,48,49,51,52,53,54,55,56,57,138],[45,46,47,48,49,50,52,53,54,55,56,57,138],[45,46,47,48,49,50,51,53,54,55,56,57,138],[45,46,47,48,49,50,51,52,54,55,56,57,138],[45,46,47,48,49,50,51,52,53,55,56,57,138],[45,46,47,48,49,50,51,52,53,54,56,57,138],[45,46,47,48,49,50,51,52,53,54,55,57,138],[45,46,47,48,49,50,51,52,53,54,55,56,138],[57,138],[111,137,138,145,146,147],[60,138],[95,138],[96,101,129,138],[97,108,109,116,126,137,138],[97,98,108,116,138],[99,138],[100,101,109,117,138],[101,126,134,138],[102,104,108,116,138],[103,138],[104,105,138],[108,138],[106,108,138],[95,108,138],[108,109,110,126,137,138],[108,109,110,123,126,129,138],[93,138,142],[104,108,111,116,126,137,138],[108,109,111,112,116,126,134,137,138],[111,113,126,134,137,138],[60,61,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144],[108,114,138],[115,137,138,142],[104,108,116,126,138],[117,138],[118,138],[95,119,138],[120,136,138,142],[121,138],[122,138],[108,123,124,138],[123,125,138,140],[96,108,126,127,128,129,138],[96,126,128,138],[126,127,138],[129,138],[130,138],[95,126,138],[108,132,133,138],[132,133,138],[101,116,126,134,138],[135,138],[116,136,138],[96,111,122,137,138],[101,138],[126,138,139],[115,138,140],[138,141],[96,101,108,110,119,126,137,138,140,142],[126,138,143],[138,170],[138,205,211],[138,150,151,152,153],[111,126,138,145],[138,209],[138,206,210],[138,208],[138,196,198,199,200,201,202],[138,196,197],[138,198],[138,197,198],[138,196,198],[70,74,137,138],[70,126,137,138],[65,138],[67,70,134,137,138],[116,134,138],[138,145],[65,138,145],[67,70,116,137,138],[62,63,66,69,96,108,126,137,138],[62,68,138],[66,70,96,129,137,138,145],[96,138,145],[86,96,138,145],[64,65,138,145],[70,138],[64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,138],[70,77,78,138],[68,70,78,79,138],[69,138],[62,65,70,138],[70,74,78,79,138],[74,138],[68,70,73,137,138],[62,67,68,70,74,77,138],[96,126,138],[65,70,86,96,138,142,145],[138,189,203],[111,126,138,148,167,173,189,191],[138,181,189],[138,167,191,192],[138,148,169,174,178,189],[126,138,192],[138,162],[138,162,178],[138,159,160,161,178],[138,148,161,162,163,164,165,166,168,176,177,178,179,182,183,184,185,187,188],[138,163,165,166,168,178,179],[138,148],[138,157,158],[138,148,154,171,172],[138,182],[138,162,165,166,168,178,179],[138,168,177,184],[138,184,186],[138,156,184],[58,59,101,138,148,149,168,177,178,179,180,181],[111,113,138,154,167,177,178],[104,138,148,154,155,156,159,161,163,164,168,169,173,174,175,176,178],[138,148,154,177],[138,154,178],[111,126,173,189],[162],[162,178],[161,178],[148,161,162,163,164,165,166,168,176,177,178,179,182,183,184,185,187,188],[168,178],[148],[182],[168,177,184],[184],[168,177,178],[111,113,177,178],[148,168,176,178],[148,177],[178]],"referencedMap":[[205,1],[208,2],[207,1],[213,3],[46,4],[47,5],[45,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,14],[56,15],[57,16],[58,17],[186,17],[59,17],[156,17],[191,17],[157,17],[158,17],[147,1],[148,18],[60,19],[61,19],[95,20],[96,21],[97,22],[98,23],[99,24],[100,25],[101,26],[102,27],[103,28],[104,29],[105,29],[107,30],[106,31],[108,32],[109,33],[110,34],[94,35],[144,1],[111,36],[112,37],[113,38],[145,39],[114,40],[115,41],[116,42],[117,43],[118,44],[119,45],[120,46],[121,47],[122,48],[123,49],[124,49],[125,50],[126,51],[128,52],[127,53],[129,54],[130,55],[131,56],[132,57],[133,58],[134,59],[135,60],[136,61],[137,62],[138,63],[139,64],[140,65],[141,66],[142,67],[143,68],[171,69],[206,1],[167,1],[170,1],[212,70],[154,71],[150,1],[151,1],[152,1],[153,1],[146,72],[155,1],[210,73],[211,74],[149,1],[209,75],[196,1],[203,76],[198,77],[199,78],[200,78],[201,79],[202,79],[197,80],[43,1],[44,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[18,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[77,81],[84,82],[76,81],[91,83],[68,84],[67,85],[90,86],[85,87],[88,88],[70,89],[69,90],[65,91],[64,92],[87,93],[66,94],[71,95],[72,1],[75,95],[62,1],[93,96],[92,95],[79,97],[80,98],[82,99],[78,100],[81,101],[86,86],[73,102],[74,103],[83,104],[63,105],[89,106],[204,107],[192,108],[190,109],[193,110],[194,111],[195,112],[163,113],[161,1],[165,114],[162,115],[166,114],[164,113],[179,114],[183,1],[189,116],[169,117],[172,118],[159,119],[160,1],[173,120],[180,121],[181,1],[174,122],[175,1],[185,123],[184,1],[187,124],[188,125],[182,126],[168,127],[177,128],[178,129],[176,130]],"exportedModulesMap":[[205,1],[208,2],[207,1],[213,3],[46,4],[47,5],[45,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,14],[56,15],[57,16],[58,17],[186,17],[59,17],[156,17],[191,17],[157,17],[158,17],[147,1],[148,18],[60,19],[61,19],[95,20],[96,21],[97,22],[98,23],[99,24],[100,25],[101,26],[102,27],[103,28],[104,29],[105,29],[107,30],[106,31],[108,32],[109,33],[110,34],[94,35],[144,1],[111,36],[112,37],[113,38],[145,39],[114,40],[115,41],[116,42],[117,43],[118,44],[119,45],[120,46],[121,47],[122,48],[123,49],[124,49],[125,50],[126,51],[128,52],[127,53],[129,54],[130,55],[131,56],[132,57],[133,58],[134,59],[135,60],[136,61],[137,62],[138,63],[139,64],[140,65],[141,66],[142,67],[143,68],[171,69],[206,1],[167,1],[170,1],[212,70],[154,71],[150,1],[151,1],[152,1],[153,1],[146,72],[155,1],[210,73],[211,74],[149,1],[209,75],[196,1],[203,76],[198,77],[199,78],[200,78],[201,79],[202,79],[197,80],[43,1],[44,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[18,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[77,81],[84,82],[76,81],[91,83],[68,84],[67,85],[90,86],[85,87],[88,88],[70,89],[69,90],[65,91],[64,92],[87,93],[66,94],[71,95],[72,1],[75,95],[62,1],[93,96],[92,95],[79,97],[80,98],[82,99],[78,100],[81,101],[86,86],[73,102],[74,103],[83,104],[63,105],[89,106],[192,131],[163,132],[165,133],[162,134],[166,133],[164,132],[179,133],[189,135],[169,136],[172,137],[173,137],[180,138],[174,136],[185,139],[187,140],[188,140],[182,141],[168,142],[177,143],[178,144],[176,145]],"semanticDiagnosticsPerFile":[205,208,207,213,46,47,45,48,49,50,51,52,53,54,55,56,57,58,186,59,156,191,157,158,147,148,60,61,95,96,97,98,99,100,101,102,103,104,105,107,106,108,109,110,94,144,111,112,113,145,114,115,116,117,118,119,120,121,122,123,124,125,126,128,127,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,171,206,167,170,212,154,150,151,152,153,146,155,210,211,149,209,196,203,198,199,200,201,202,197,43,44,9,8,2,10,11,12,13,14,15,16,17,3,4,18,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,77,84,76,91,68,67,90,85,88,70,69,65,64,87,66,71,72,75,62,93,92,79,80,82,78,81,86,73,74,83,63,89,204,192,190,193,194,195,163,161,165,162,166,164,179,183,189,169,172,159,160,173,180,181,174,175,185,184,187,188,182,168,177,178,176]},"version":"5.2.2"}