@rushstack/rush-http-build-cache-plugin 5.97.1 → 5.98.0
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/.heft/build-cache/jest-cache/haste-map-bae913f9b9aa720eb4deeae0a60a4b27-22ae7f4ce9de4306889d8c05e5cc39b9-f6b1af01a3130057bdfe3d86807211f9 +0 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{9d/commons_9d513d1d600f9112f73547da918dcbb7 → 2e/commons_2e52897dfe4222d991674613f5b35882} +356 -314
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/34/PrefixProxyTerminalProvider_34b4603b9c4455de1c3cc05820149fdd +65 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{53/index_53d9d5a344c3984994c801733764f503 → 46/index_46761981528d09d1a0e438f06cd2c548} +6 -2
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{06/ConfigurationFile_06d7f35feb0bd944d9b9a2a4d9e112c8 → 57/ConfigurationFile_57c950e8ef4673e11bff94304a50823c} +10 -4
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{68/rushlib_68c59fa059ba441c9c6883bcfed4a8d2 → 69/rushlib_695f6e29167e91482e2906a8d09b3a5a} +17 -6
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893 +116 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be +1551 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ba/TerminalWritable_ba71b4b7bfe6a26c85f4fd0245057a0a +54 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{5d/Text_5da85b5db9a2f06bbe29cdcd91e6fbca → df/Text_df57ddd200e4237e617fc183dcb5fe67} +7 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4 +4668 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4.map +1 -0
- package/.heft/build-cache/jest-cache/perf-cache-bae913f9b9aa720eb4deeae0a60a4b27-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
- package/.rush/temp/operation/_phase_build/state.json +1 -1
- package/.rush/temp/operation/_phase_test/all.log +14 -14
- package/.rush/temp/operation/_phase_test/state.json +1 -1
- package/.rush/temp/package-deps__phase_build.json +3 -3
- package/.rush/temp/package-deps__phase_test.json +3 -3
- package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-646439b80a2010050f5b4b8a916e50afae04c3ab.log → rushstack+rush-http-build-cache-plugin-_phase_build-08118e08afc6d454e5623f20498fd64b5e3e9051.log} +2 -2
- package/lib/HttpBuildCacheProvider.d.ts +2 -0
- package/lib/HttpBuildCacheProvider.d.ts.map +1 -1
- package/lib/HttpBuildCacheProvider.js +26 -7
- package/lib/HttpBuildCacheProvider.js.map +1 -1
- package/lib/RushHttpBuildCachePlugin.d.ts.map +1 -1
- package/lib/RushHttpBuildCachePlugin.js +28 -4
- package/lib/RushHttpBuildCachePlugin.js.map +1 -1
- package/lib/test/HttpBuildCacheProvider.test.d.ts.map +1 -0
- package/lib/{HttpBuildCacheProvider.test.js → test/HttpBuildCacheProvider.test.js} +46 -3
- package/lib/test/HttpBuildCacheProvider.test.js.map +1 -0
- package/package.json +6 -6
- package/rush-logs/rush-http-build-cache-plugin._phase_test.log +14 -14
- package/src/HttpBuildCacheProvider.ts +36 -7
- package/src/RushHttpBuildCachePlugin.ts +23 -28
- package/src/test/HttpBuildCacheProvider.test.ts +115 -0
- package/temp/coverage/clover.xml +117 -109
- package/temp/coverage/coverage-final.json +2 -2
- package/temp/coverage/lcov-report/HttpBuildCacheProvider.ts.html +166 -79
- package/temp/coverage/lcov-report/RushHttpBuildCachePlugin.ts.html +29 -44
- package/temp/coverage/lcov-report/index.html +24 -24
- package/temp/coverage/lcov-report/index.ts.html +1 -1
- package/temp/coverage/lcov.info +236 -218
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941 +0 -4367
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941.map +0 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247 +0 -362
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247.map +0 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa +0 -73
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa.map +0 -1
- package/lib/HttpBuildCacheProvider.test.d.ts.map +0 -1
- package/lib/HttpBuildCacheProvider.test.js.map +0 -1
- package/src/HttpBuildCacheProvider.test.ts +0 -58
- /package/lib/{HttpBuildCacheProvider.test.d.ts → test/HttpBuildCacheProvider.test.d.ts} +0 -0
|
@@ -0,0 +1,4668 @@
|
|
|
1
|
+
1f6fe130d2f5ce096048c0a4ef878ac2
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/* istanbul ignore next */
|
|
5
|
+
function cov_ms2xfswbr() {
|
|
6
|
+
var path = "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts";
|
|
7
|
+
var hash = "f39662f2cf6af1c0d874c48f29702c0c9cefda13";
|
|
8
|
+
var global = new Function("return this")();
|
|
9
|
+
var gcv = "__coverage__";
|
|
10
|
+
var coverageData = {
|
|
11
|
+
path: "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts",
|
|
12
|
+
statementMap: {
|
|
13
|
+
"0": {
|
|
14
|
+
start: {
|
|
15
|
+
line: 2,
|
|
16
|
+
column: 22
|
|
17
|
+
},
|
|
18
|
+
end: {
|
|
19
|
+
line: 4,
|
|
20
|
+
column: 1
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"1": {
|
|
24
|
+
start: {
|
|
25
|
+
line: 3,
|
|
26
|
+
column: 4
|
|
27
|
+
},
|
|
28
|
+
end: {
|
|
29
|
+
line: 3,
|
|
30
|
+
column: 62
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"2": {
|
|
34
|
+
start: {
|
|
35
|
+
line: 5,
|
|
36
|
+
column: 0
|
|
37
|
+
},
|
|
38
|
+
end: {
|
|
39
|
+
line: 5,
|
|
40
|
+
column: 62
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"3": {
|
|
44
|
+
start: {
|
|
45
|
+
line: 6,
|
|
46
|
+
column: 0
|
|
47
|
+
},
|
|
48
|
+
end: {
|
|
49
|
+
line: 6,
|
|
50
|
+
column: 40
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"4": {
|
|
54
|
+
start: {
|
|
55
|
+
line: 7,
|
|
56
|
+
column: 28
|
|
57
|
+
},
|
|
58
|
+
end: {
|
|
59
|
+
line: 7,
|
|
60
|
+
column: 67
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"5": {
|
|
64
|
+
start: {
|
|
65
|
+
line: 8,
|
|
66
|
+
column: 19
|
|
67
|
+
},
|
|
68
|
+
end: {
|
|
69
|
+
line: 8,
|
|
70
|
+
column: 49
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"6": {
|
|
74
|
+
start: {
|
|
75
|
+
line: 9,
|
|
76
|
+
column: 21
|
|
77
|
+
},
|
|
78
|
+
end: {
|
|
79
|
+
line: 9,
|
|
80
|
+
column: 59
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"7": {
|
|
84
|
+
start: {
|
|
85
|
+
line: 11,
|
|
86
|
+
column: 0
|
|
87
|
+
},
|
|
88
|
+
end: {
|
|
89
|
+
line: 15,
|
|
90
|
+
column: 52
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"8": {
|
|
94
|
+
start: {
|
|
95
|
+
line: 12,
|
|
96
|
+
column: 4
|
|
97
|
+
},
|
|
98
|
+
end: {
|
|
99
|
+
line: 12,
|
|
100
|
+
column: 72
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"9": {
|
|
104
|
+
start: {
|
|
105
|
+
line: 13,
|
|
106
|
+
column: 4
|
|
107
|
+
},
|
|
108
|
+
end: {
|
|
109
|
+
line: 13,
|
|
110
|
+
column: 72
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"10": {
|
|
114
|
+
start: {
|
|
115
|
+
line: 14,
|
|
116
|
+
column: 4
|
|
117
|
+
},
|
|
118
|
+
end: {
|
|
119
|
+
line: 14,
|
|
120
|
+
column: 64
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"11": {
|
|
124
|
+
start: {
|
|
125
|
+
line: 17,
|
|
126
|
+
column: 0
|
|
127
|
+
},
|
|
128
|
+
end: {
|
|
129
|
+
line: 23,
|
|
130
|
+
column: 38
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"12": {
|
|
134
|
+
start: {
|
|
135
|
+
line: 18,
|
|
136
|
+
column: 4
|
|
137
|
+
},
|
|
138
|
+
end: {
|
|
139
|
+
line: 18,
|
|
140
|
+
column: 50
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"13": {
|
|
144
|
+
start: {
|
|
145
|
+
line: 19,
|
|
146
|
+
column: 4
|
|
147
|
+
},
|
|
148
|
+
end: {
|
|
149
|
+
line: 19,
|
|
150
|
+
column: 68
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"14": {
|
|
154
|
+
start: {
|
|
155
|
+
line: 20,
|
|
156
|
+
column: 4
|
|
157
|
+
},
|
|
158
|
+
end: {
|
|
159
|
+
line: 20,
|
|
160
|
+
column: 56
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"15": {
|
|
164
|
+
start: {
|
|
165
|
+
line: 21,
|
|
166
|
+
column: 4
|
|
167
|
+
},
|
|
168
|
+
end: {
|
|
169
|
+
line: 21,
|
|
170
|
+
column: 52
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"16": {
|
|
174
|
+
start: {
|
|
175
|
+
line: 22,
|
|
176
|
+
column: 4
|
|
177
|
+
},
|
|
178
|
+
end: {
|
|
179
|
+
line: 22,
|
|
180
|
+
column: 70
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"17": {
|
|
184
|
+
start: {
|
|
185
|
+
line: 24,
|
|
186
|
+
column: 32
|
|
187
|
+
},
|
|
188
|
+
end: {
|
|
189
|
+
line: 24,
|
|
190
|
+
column: 33
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"18": {
|
|
194
|
+
start: {
|
|
195
|
+
line: 25,
|
|
196
|
+
column: 40
|
|
197
|
+
},
|
|
198
|
+
end: {
|
|
199
|
+
line: 25,
|
|
200
|
+
column: 44
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"19": {
|
|
204
|
+
start: {
|
|
205
|
+
line: 29,
|
|
206
|
+
column: 8
|
|
207
|
+
},
|
|
208
|
+
end: {
|
|
209
|
+
line: 29,
|
|
210
|
+
column: 46
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"20": {
|
|
214
|
+
start: {
|
|
215
|
+
line: 30,
|
|
216
|
+
column: 8
|
|
217
|
+
},
|
|
218
|
+
end: {
|
|
219
|
+
line: 30,
|
|
220
|
+
column: 40
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"21": {
|
|
224
|
+
start: {
|
|
225
|
+
line: 31,
|
|
226
|
+
column: 8
|
|
227
|
+
},
|
|
228
|
+
end: {
|
|
229
|
+
line: 31,
|
|
230
|
+
column: 56
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"22": {
|
|
234
|
+
start: {
|
|
235
|
+
line: 32,
|
|
236
|
+
column: 8
|
|
237
|
+
},
|
|
238
|
+
end: {
|
|
239
|
+
line: 32,
|
|
240
|
+
column: 95
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"23": {
|
|
244
|
+
start: {
|
|
245
|
+
line: 33,
|
|
246
|
+
column: 8
|
|
247
|
+
},
|
|
248
|
+
end: {
|
|
249
|
+
line: 33,
|
|
250
|
+
column: 79
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"24": {
|
|
254
|
+
start: {
|
|
255
|
+
line: 34,
|
|
256
|
+
column: 8
|
|
257
|
+
},
|
|
258
|
+
end: {
|
|
259
|
+
line: 34,
|
|
260
|
+
column: 89
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"25": {
|
|
264
|
+
start: {
|
|
265
|
+
line: 35,
|
|
266
|
+
column: 8
|
|
267
|
+
},
|
|
268
|
+
end: {
|
|
269
|
+
line: 35,
|
|
270
|
+
column: 96
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"26": {
|
|
274
|
+
start: {
|
|
275
|
+
line: 36,
|
|
276
|
+
column: 8
|
|
277
|
+
},
|
|
278
|
+
end: {
|
|
279
|
+
line: 36,
|
|
280
|
+
column: 83
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"27": {
|
|
284
|
+
start: {
|
|
285
|
+
line: 37,
|
|
286
|
+
column: 8
|
|
287
|
+
},
|
|
288
|
+
end: {
|
|
289
|
+
line: 37,
|
|
290
|
+
column: 50
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"28": {
|
|
294
|
+
start: {
|
|
295
|
+
line: 38,
|
|
296
|
+
column: 8
|
|
297
|
+
},
|
|
298
|
+
end: {
|
|
299
|
+
line: 38,
|
|
300
|
+
column: 97
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"29": {
|
|
304
|
+
start: {
|
|
305
|
+
line: 39,
|
|
306
|
+
column: 8
|
|
307
|
+
},
|
|
308
|
+
end: {
|
|
309
|
+
line: 39,
|
|
310
|
+
column: 136
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"30": {
|
|
314
|
+
start: {
|
|
315
|
+
line: 43,
|
|
316
|
+
column: 8
|
|
317
|
+
},
|
|
318
|
+
end: {
|
|
319
|
+
line: 43,
|
|
320
|
+
column: 155
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"31": {
|
|
324
|
+
start: {
|
|
325
|
+
line: 46,
|
|
326
|
+
column: 8
|
|
327
|
+
},
|
|
328
|
+
end: {
|
|
329
|
+
line: 61,
|
|
330
|
+
column: 9
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"32": {
|
|
334
|
+
start: {
|
|
335
|
+
line: 47,
|
|
336
|
+
column: 27
|
|
337
|
+
},
|
|
338
|
+
end: {
|
|
339
|
+
line: 55,
|
|
340
|
+
column: 14
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"33": {
|
|
344
|
+
start: {
|
|
345
|
+
line: 56,
|
|
346
|
+
column: 12
|
|
347
|
+
},
|
|
348
|
+
end: {
|
|
349
|
+
line: 56,
|
|
350
|
+
column: 64
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"34": {
|
|
354
|
+
start: {
|
|
355
|
+
line: 59,
|
|
356
|
+
column: 12
|
|
357
|
+
},
|
|
358
|
+
end: {
|
|
359
|
+
line: 59,
|
|
360
|
+
column: 73
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"35": {
|
|
364
|
+
start: {
|
|
365
|
+
line: 60,
|
|
366
|
+
column: 12
|
|
367
|
+
},
|
|
368
|
+
end: {
|
|
369
|
+
line: 60,
|
|
370
|
+
column: 29
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
"36": {
|
|
374
|
+
start: {
|
|
375
|
+
line: 64,
|
|
376
|
+
column: 8
|
|
377
|
+
},
|
|
378
|
+
end: {
|
|
379
|
+
line: 67,
|
|
380
|
+
column: 9
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"37": {
|
|
384
|
+
start: {
|
|
385
|
+
line: 65,
|
|
386
|
+
column: 12
|
|
387
|
+
},
|
|
388
|
+
end: {
|
|
389
|
+
line: 65,
|
|
390
|
+
column: 101
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
"38": {
|
|
394
|
+
start: {
|
|
395
|
+
line: 66,
|
|
396
|
+
column: 12
|
|
397
|
+
},
|
|
398
|
+
end: {
|
|
399
|
+
line: 66,
|
|
400
|
+
column: 25
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"39": {
|
|
404
|
+
start: {
|
|
405
|
+
line: 68,
|
|
406
|
+
column: 8
|
|
407
|
+
},
|
|
408
|
+
end: {
|
|
409
|
+
line: 68,
|
|
410
|
+
column: 76
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
"40": {
|
|
414
|
+
start: {
|
|
415
|
+
line: 69,
|
|
416
|
+
column: 8
|
|
417
|
+
},
|
|
418
|
+
end: {
|
|
419
|
+
line: 84,
|
|
420
|
+
column: 9
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
"41": {
|
|
424
|
+
start: {
|
|
425
|
+
line: 70,
|
|
426
|
+
column: 27
|
|
427
|
+
},
|
|
428
|
+
end: {
|
|
429
|
+
line: 78,
|
|
430
|
+
column: 14
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"42": {
|
|
434
|
+
start: {
|
|
435
|
+
line: 79,
|
|
436
|
+
column: 12
|
|
437
|
+
},
|
|
438
|
+
end: {
|
|
439
|
+
line: 79,
|
|
440
|
+
column: 36
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"43": {
|
|
444
|
+
start: {
|
|
445
|
+
line: 82,
|
|
446
|
+
column: 12
|
|
447
|
+
},
|
|
448
|
+
end: {
|
|
449
|
+
line: 82,
|
|
450
|
+
column: 75
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
"44": {
|
|
454
|
+
start: {
|
|
455
|
+
line: 83,
|
|
456
|
+
column: 12
|
|
457
|
+
},
|
|
458
|
+
end: {
|
|
459
|
+
line: 83,
|
|
460
|
+
column: 25
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"45": {
|
|
464
|
+
start: {
|
|
465
|
+
line: 87,
|
|
466
|
+
column: 8
|
|
467
|
+
},
|
|
468
|
+
end: {
|
|
469
|
+
line: 94,
|
|
470
|
+
column: 11
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"46": {
|
|
474
|
+
start: {
|
|
475
|
+
line: 90,
|
|
476
|
+
column: 12
|
|
477
|
+
},
|
|
478
|
+
end: {
|
|
479
|
+
line: 92,
|
|
480
|
+
column: 15
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
"47": {
|
|
484
|
+
start: {
|
|
485
|
+
line: 93,
|
|
486
|
+
column: 12
|
|
487
|
+
},
|
|
488
|
+
end: {
|
|
489
|
+
line: 93,
|
|
490
|
+
column: 57
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"48": {
|
|
494
|
+
start: {
|
|
495
|
+
line: 97,
|
|
496
|
+
column: 8
|
|
497
|
+
},
|
|
498
|
+
end: {
|
|
499
|
+
line: 102,
|
|
500
|
+
column: 9
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"49": {
|
|
504
|
+
start: {
|
|
505
|
+
line: 98,
|
|
506
|
+
column: 12
|
|
507
|
+
},
|
|
508
|
+
end: {
|
|
509
|
+
line: 101,
|
|
510
|
+
column: 72
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"50": {
|
|
514
|
+
start: {
|
|
515
|
+
line: 103,
|
|
516
|
+
column: 20
|
|
517
|
+
},
|
|
518
|
+
end: {
|
|
519
|
+
line: 103,
|
|
520
|
+
column: 93
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"51": {
|
|
524
|
+
start: {
|
|
525
|
+
line: 104,
|
|
526
|
+
column: 8
|
|
527
|
+
},
|
|
528
|
+
end: {
|
|
529
|
+
line: 104,
|
|
530
|
+
column: 73
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
"52": {
|
|
534
|
+
start: {
|
|
535
|
+
line: 105,
|
|
536
|
+
column: 23
|
|
537
|
+
},
|
|
538
|
+
end: {
|
|
539
|
+
line: 105,
|
|
540
|
+
column: 119
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"53": {
|
|
544
|
+
start: {
|
|
545
|
+
line: 106,
|
|
546
|
+
column: 8
|
|
547
|
+
},
|
|
548
|
+
end: {
|
|
549
|
+
line: 106,
|
|
550
|
+
column: 47
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
"54": {
|
|
554
|
+
start: {
|
|
555
|
+
line: 107,
|
|
556
|
+
column: 8
|
|
557
|
+
},
|
|
558
|
+
end: {
|
|
559
|
+
line: 109,
|
|
560
|
+
column: 9
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
"55": {
|
|
564
|
+
start: {
|
|
565
|
+
line: 108,
|
|
566
|
+
column: 12
|
|
567
|
+
},
|
|
568
|
+
end: {
|
|
569
|
+
line: 108,
|
|
570
|
+
column: 90
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
"56": {
|
|
574
|
+
start: {
|
|
575
|
+
line: 110,
|
|
576
|
+
column: 27
|
|
577
|
+
},
|
|
578
|
+
end: {
|
|
579
|
+
line: 110,
|
|
580
|
+
column: 47
|
|
581
|
+
}
|
|
582
|
+
},
|
|
583
|
+
"57": {
|
|
584
|
+
start: {
|
|
585
|
+
line: 111,
|
|
586
|
+
column: 8
|
|
587
|
+
},
|
|
588
|
+
end: {
|
|
589
|
+
line: 111,
|
|
590
|
+
column: 53
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
"58": {
|
|
594
|
+
start: {
|
|
595
|
+
line: 112,
|
|
596
|
+
column: 8
|
|
597
|
+
},
|
|
598
|
+
end: {
|
|
599
|
+
line: 112,
|
|
600
|
+
column: 69
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"59": {
|
|
604
|
+
start: {
|
|
605
|
+
line: 113,
|
|
606
|
+
column: 8
|
|
607
|
+
},
|
|
608
|
+
end: {
|
|
609
|
+
line: 113,
|
|
610
|
+
column: 56
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
"60": {
|
|
614
|
+
start: {
|
|
615
|
+
line: 116,
|
|
616
|
+
column: 8
|
|
617
|
+
},
|
|
618
|
+
end: {
|
|
619
|
+
line: 121,
|
|
620
|
+
column: 11
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
"61": {
|
|
624
|
+
start: {
|
|
625
|
+
line: 119,
|
|
626
|
+
column: 12
|
|
627
|
+
},
|
|
628
|
+
end: {
|
|
629
|
+
line: 119,
|
|
630
|
+
column: 71
|
|
631
|
+
}
|
|
632
|
+
},
|
|
633
|
+
"62": {
|
|
634
|
+
start: {
|
|
635
|
+
line: 120,
|
|
636
|
+
column: 12
|
|
637
|
+
},
|
|
638
|
+
end: {
|
|
639
|
+
line: 120,
|
|
640
|
+
column: 57
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
"63": {
|
|
644
|
+
start: {
|
|
645
|
+
line: 124,
|
|
646
|
+
column: 8
|
|
647
|
+
},
|
|
648
|
+
end: {
|
|
649
|
+
line: 130,
|
|
650
|
+
column: 9
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"64": {
|
|
654
|
+
start: {
|
|
655
|
+
line: 125,
|
|
656
|
+
column: 33
|
|
657
|
+
},
|
|
658
|
+
end: {
|
|
659
|
+
line: 125,
|
|
660
|
+
column: 49
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
"65": {
|
|
664
|
+
start: {
|
|
665
|
+
line: 126,
|
|
666
|
+
column: 12
|
|
667
|
+
},
|
|
668
|
+
end: {
|
|
669
|
+
line: 128,
|
|
670
|
+
column: 13
|
|
671
|
+
}
|
|
672
|
+
},
|
|
673
|
+
"66": {
|
|
674
|
+
start: {
|
|
675
|
+
line: 127,
|
|
676
|
+
column: 16
|
|
677
|
+
},
|
|
678
|
+
end: {
|
|
679
|
+
line: 127,
|
|
680
|
+
column: 55
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
"67": {
|
|
684
|
+
start: {
|
|
685
|
+
line: 129,
|
|
686
|
+
column: 12
|
|
687
|
+
},
|
|
688
|
+
end: {
|
|
689
|
+
line: 129,
|
|
690
|
+
column: 62
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"68": {
|
|
694
|
+
start: {
|
|
695
|
+
line: 131,
|
|
696
|
+
column: 8
|
|
697
|
+
},
|
|
698
|
+
end: {
|
|
699
|
+
line: 131,
|
|
700
|
+
column: 40
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
"69": {
|
|
704
|
+
start: {
|
|
705
|
+
line: 134,
|
|
706
|
+
column: 93
|
|
707
|
+
},
|
|
708
|
+
end: {
|
|
709
|
+
line: 134,
|
|
710
|
+
column: 100
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
"70": {
|
|
714
|
+
start: {
|
|
715
|
+
line: 135,
|
|
716
|
+
column: 38
|
|
717
|
+
},
|
|
718
|
+
end: {
|
|
719
|
+
line: 135,
|
|
720
|
+
column: 146
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"71": {
|
|
724
|
+
start: {
|
|
725
|
+
line: 136,
|
|
726
|
+
column: 28
|
|
727
|
+
},
|
|
728
|
+
end: {
|
|
729
|
+
line: 136,
|
|
730
|
+
column: 80
|
|
731
|
+
}
|
|
732
|
+
},
|
|
733
|
+
"72": {
|
|
734
|
+
start: {
|
|
735
|
+
line: 137,
|
|
736
|
+
column: 20
|
|
737
|
+
},
|
|
738
|
+
end: {
|
|
739
|
+
line: 137,
|
|
740
|
+
column: 51
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
"73": {
|
|
744
|
+
start: {
|
|
745
|
+
line: 138,
|
|
746
|
+
column: 24
|
|
747
|
+
},
|
|
748
|
+
end: {
|
|
749
|
+
line: 138,
|
|
750
|
+
column: 26
|
|
751
|
+
}
|
|
752
|
+
},
|
|
753
|
+
"74": {
|
|
754
|
+
start: {
|
|
755
|
+
line: 139,
|
|
756
|
+
column: 8
|
|
757
|
+
},
|
|
758
|
+
end: {
|
|
759
|
+
line: 141,
|
|
760
|
+
column: 9
|
|
761
|
+
}
|
|
762
|
+
},
|
|
763
|
+
"75": {
|
|
764
|
+
start: {
|
|
765
|
+
line: 140,
|
|
766
|
+
column: 12
|
|
767
|
+
},
|
|
768
|
+
end: {
|
|
769
|
+
line: 140,
|
|
770
|
+
column: 48
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
"76": {
|
|
774
|
+
start: {
|
|
775
|
+
line: 142,
|
|
776
|
+
column: 8
|
|
777
|
+
},
|
|
778
|
+
end: {
|
|
779
|
+
line: 146,
|
|
780
|
+
column: 9
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
"77": {
|
|
784
|
+
start: {
|
|
785
|
+
line: 143,
|
|
786
|
+
column: 12
|
|
787
|
+
},
|
|
788
|
+
end: {
|
|
789
|
+
line: 145,
|
|
790
|
+
column: 13
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
"78": {
|
|
794
|
+
start: {
|
|
795
|
+
line: 144,
|
|
796
|
+
column: 16
|
|
797
|
+
},
|
|
798
|
+
end: {
|
|
799
|
+
line: 144,
|
|
800
|
+
column: 37
|
|
801
|
+
}
|
|
802
|
+
},
|
|
803
|
+
"79": {
|
|
804
|
+
start: {
|
|
805
|
+
line: 147,
|
|
806
|
+
column: 27
|
|
807
|
+
},
|
|
808
|
+
end: {
|
|
809
|
+
line: 147,
|
|
810
|
+
column: 97
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
"80": {
|
|
814
|
+
start: {
|
|
815
|
+
line: 148,
|
|
816
|
+
column: 8
|
|
817
|
+
},
|
|
818
|
+
end: {
|
|
819
|
+
line: 148,
|
|
820
|
+
column: 100
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
"81": {
|
|
824
|
+
start: {
|
|
825
|
+
line: 149,
|
|
826
|
+
column: 25
|
|
827
|
+
},
|
|
828
|
+
end: {
|
|
829
|
+
line: 154,
|
|
830
|
+
column: 10
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
"82": {
|
|
834
|
+
start: {
|
|
835
|
+
line: 155,
|
|
836
|
+
column: 8
|
|
837
|
+
},
|
|
838
|
+
end: {
|
|
839
|
+
line: 178,
|
|
840
|
+
column: 9
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"83": {
|
|
844
|
+
start: {
|
|
845
|
+
line: 156,
|
|
846
|
+
column: 44
|
|
847
|
+
},
|
|
848
|
+
end: {
|
|
849
|
+
line: 156,
|
|
850
|
+
column: 91
|
|
851
|
+
}
|
|
852
|
+
},
|
|
853
|
+
"84": {
|
|
854
|
+
start: {
|
|
855
|
+
line: 157,
|
|
856
|
+
column: 12
|
|
857
|
+
},
|
|
858
|
+
end: {
|
|
859
|
+
line: 166,
|
|
860
|
+
column: 13
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
"85": {
|
|
864
|
+
start: {
|
|
865
|
+
line: 165,
|
|
866
|
+
column: 16
|
|
867
|
+
},
|
|
868
|
+
end: {
|
|
869
|
+
line: 165,
|
|
870
|
+
column: 135
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
"86": {
|
|
874
|
+
start: {
|
|
875
|
+
line: 167,
|
|
876
|
+
column: 12
|
|
877
|
+
},
|
|
878
|
+
end: {
|
|
879
|
+
line: 175,
|
|
880
|
+
column: 13
|
|
881
|
+
}
|
|
882
|
+
},
|
|
883
|
+
"87": {
|
|
884
|
+
start: {
|
|
885
|
+
line: 171,
|
|
886
|
+
column: 31
|
|
887
|
+
},
|
|
888
|
+
end: {
|
|
889
|
+
line: 171,
|
|
890
|
+
column: 50
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
"88": {
|
|
894
|
+
start: {
|
|
895
|
+
line: 172,
|
|
896
|
+
column: 35
|
|
897
|
+
},
|
|
898
|
+
end: {
|
|
899
|
+
line: 172,
|
|
900
|
+
column: 81
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"89": {
|
|
904
|
+
start: {
|
|
905
|
+
line: 173,
|
|
906
|
+
column: 16
|
|
907
|
+
},
|
|
908
|
+
end: {
|
|
909
|
+
line: 173,
|
|
910
|
+
column: 66
|
|
911
|
+
}
|
|
912
|
+
},
|
|
913
|
+
"90": {
|
|
914
|
+
start: {
|
|
915
|
+
line: 174,
|
|
916
|
+
column: 16
|
|
917
|
+
},
|
|
918
|
+
end: {
|
|
919
|
+
line: 174,
|
|
920
|
+
column: 125
|
|
921
|
+
}
|
|
922
|
+
},
|
|
923
|
+
"91": {
|
|
924
|
+
start: {
|
|
925
|
+
line: 176,
|
|
926
|
+
column: 12
|
|
927
|
+
},
|
|
928
|
+
end: {
|
|
929
|
+
line: 176,
|
|
930
|
+
column: 80
|
|
931
|
+
}
|
|
932
|
+
},
|
|
933
|
+
"92": {
|
|
934
|
+
start: {
|
|
935
|
+
line: 177,
|
|
936
|
+
column: 12
|
|
937
|
+
},
|
|
938
|
+
end: {
|
|
939
|
+
line: 177,
|
|
940
|
+
column: 25
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
"93": {
|
|
944
|
+
start: {
|
|
945
|
+
line: 179,
|
|
946
|
+
column: 23
|
|
947
|
+
},
|
|
948
|
+
end: {
|
|
949
|
+
line: 179,
|
|
950
|
+
column: 82
|
|
951
|
+
}
|
|
952
|
+
},
|
|
953
|
+
"94": {
|
|
954
|
+
start: {
|
|
955
|
+
line: 180,
|
|
956
|
+
column: 8
|
|
957
|
+
},
|
|
958
|
+
end: {
|
|
959
|
+
line: 180,
|
|
960
|
+
column: 147
|
|
961
|
+
}
|
|
962
|
+
},
|
|
963
|
+
"95": {
|
|
964
|
+
start: {
|
|
965
|
+
line: 181,
|
|
966
|
+
column: 8
|
|
967
|
+
},
|
|
968
|
+
end: {
|
|
969
|
+
line: 181,
|
|
970
|
+
column: 22
|
|
971
|
+
}
|
|
972
|
+
},
|
|
973
|
+
"96": {
|
|
974
|
+
start: {
|
|
975
|
+
line: 184,
|
|
976
|
+
column: 8
|
|
977
|
+
},
|
|
978
|
+
end: {
|
|
979
|
+
line: 186,
|
|
980
|
+
column: 9
|
|
981
|
+
}
|
|
982
|
+
},
|
|
983
|
+
"97": {
|
|
984
|
+
start: {
|
|
985
|
+
line: 185,
|
|
986
|
+
column: 12
|
|
987
|
+
},
|
|
988
|
+
end: {
|
|
989
|
+
line: 185,
|
|
990
|
+
column: 19
|
|
991
|
+
}
|
|
992
|
+
},
|
|
993
|
+
"98": {
|
|
994
|
+
start: {
|
|
995
|
+
line: 187,
|
|
996
|
+
column: 26
|
|
997
|
+
},
|
|
998
|
+
end: {
|
|
999
|
+
line: 187,
|
|
1000
|
+
column: 53
|
|
1001
|
+
}
|
|
1002
|
+
},
|
|
1003
|
+
"99": {
|
|
1004
|
+
start: {
|
|
1005
|
+
line: 188,
|
|
1006
|
+
column: 8
|
|
1007
|
+
},
|
|
1008
|
+
end: {
|
|
1009
|
+
line: 190,
|
|
1010
|
+
column: 9
|
|
1011
|
+
}
|
|
1012
|
+
},
|
|
1013
|
+
"100": {
|
|
1014
|
+
start: {
|
|
1015
|
+
line: 189,
|
|
1016
|
+
column: 12
|
|
1017
|
+
},
|
|
1018
|
+
end: {
|
|
1019
|
+
line: 189,
|
|
1020
|
+
column: 67
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"101": {
|
|
1024
|
+
start: {
|
|
1025
|
+
line: 191,
|
|
1026
|
+
column: 8
|
|
1027
|
+
},
|
|
1028
|
+
end: {
|
|
1029
|
+
line: 201,
|
|
1030
|
+
column: 9
|
|
1031
|
+
}
|
|
1032
|
+
},
|
|
1033
|
+
"102": {
|
|
1034
|
+
start: {
|
|
1035
|
+
line: 192,
|
|
1036
|
+
column: 12
|
|
1037
|
+
},
|
|
1038
|
+
end: {
|
|
1039
|
+
line: 200,
|
|
1040
|
+
column: 26
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
"103": {
|
|
1044
|
+
start: {
|
|
1045
|
+
line: 202,
|
|
1046
|
+
column: 8
|
|
1047
|
+
},
|
|
1048
|
+
end: {
|
|
1049
|
+
line: 202,
|
|
1050
|
+
column: 27
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
"104": {
|
|
1054
|
+
start: {
|
|
1055
|
+
line: 207,
|
|
1056
|
+
column: 8
|
|
1057
|
+
},
|
|
1058
|
+
end: {
|
|
1059
|
+
line: 211,
|
|
1060
|
+
column: 11
|
|
1061
|
+
}
|
|
1062
|
+
},
|
|
1063
|
+
"105": {
|
|
1064
|
+
start: {
|
|
1065
|
+
line: 210,
|
|
1066
|
+
column: 12
|
|
1067
|
+
},
|
|
1068
|
+
end: {
|
|
1069
|
+
line: 210,
|
|
1070
|
+
column: 84
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
"106": {
|
|
1074
|
+
start: {
|
|
1075
|
+
line: 212,
|
|
1076
|
+
column: 8
|
|
1077
|
+
},
|
|
1078
|
+
end: {
|
|
1079
|
+
line: 217,
|
|
1080
|
+
column: 9
|
|
1081
|
+
}
|
|
1082
|
+
},
|
|
1083
|
+
"107": {
|
|
1084
|
+
start: {
|
|
1085
|
+
line: 213,
|
|
1086
|
+
column: 35
|
|
1087
|
+
},
|
|
1088
|
+
end: {
|
|
1089
|
+
line: 213,
|
|
1090
|
+
column: 110
|
|
1091
|
+
}
|
|
1092
|
+
},
|
|
1093
|
+
"108": {
|
|
1094
|
+
start: {
|
|
1095
|
+
line: 214,
|
|
1096
|
+
column: 12
|
|
1097
|
+
},
|
|
1098
|
+
end: {
|
|
1099
|
+
line: 216,
|
|
1100
|
+
column: 13
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
"109": {
|
|
1104
|
+
start: {
|
|
1105
|
+
line: 215,
|
|
1106
|
+
column: 16
|
|
1107
|
+
},
|
|
1108
|
+
end: {
|
|
1109
|
+
line: 215,
|
|
1110
|
+
column: 45
|
|
1111
|
+
}
|
|
1112
|
+
},
|
|
1113
|
+
"110": {
|
|
1114
|
+
start: {
|
|
1115
|
+
line: 220,
|
|
1116
|
+
column: 8
|
|
1117
|
+
},
|
|
1118
|
+
end: {
|
|
1119
|
+
line: 222,
|
|
1120
|
+
column: 9
|
|
1121
|
+
}
|
|
1122
|
+
},
|
|
1123
|
+
"111": {
|
|
1124
|
+
start: {
|
|
1125
|
+
line: 221,
|
|
1126
|
+
column: 12
|
|
1127
|
+
},
|
|
1128
|
+
end: {
|
|
1129
|
+
line: 221,
|
|
1130
|
+
column: 36
|
|
1131
|
+
}
|
|
1132
|
+
},
|
|
1133
|
+
"112": {
|
|
1134
|
+
start: {
|
|
1135
|
+
line: 223,
|
|
1136
|
+
column: 8
|
|
1137
|
+
},
|
|
1138
|
+
end: {
|
|
1139
|
+
line: 255,
|
|
1140
|
+
column: 9
|
|
1141
|
+
}
|
|
1142
|
+
},
|
|
1143
|
+
"113": {
|
|
1144
|
+
start: {
|
|
1145
|
+
line: 232,
|
|
1146
|
+
column: 16
|
|
1147
|
+
},
|
|
1148
|
+
end: {
|
|
1149
|
+
line: 232,
|
|
1150
|
+
column: 49
|
|
1151
|
+
}
|
|
1152
|
+
},
|
|
1153
|
+
"114": {
|
|
1154
|
+
start: {
|
|
1155
|
+
line: 237,
|
|
1156
|
+
column: 16
|
|
1157
|
+
},
|
|
1158
|
+
end: {
|
|
1159
|
+
line: 246,
|
|
1160
|
+
column: 17
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
"115": {
|
|
1164
|
+
start: {
|
|
1165
|
+
line: 245,
|
|
1166
|
+
column: 20
|
|
1167
|
+
},
|
|
1168
|
+
end: {
|
|
1169
|
+
line: 245,
|
|
1170
|
+
column: 44
|
|
1171
|
+
}
|
|
1172
|
+
},
|
|
1173
|
+
"116": {
|
|
1174
|
+
start: {
|
|
1175
|
+
line: 247,
|
|
1176
|
+
column: 16
|
|
1177
|
+
},
|
|
1178
|
+
end: {
|
|
1179
|
+
line: 247,
|
|
1180
|
+
column: 50
|
|
1181
|
+
}
|
|
1182
|
+
},
|
|
1183
|
+
"117": {
|
|
1184
|
+
start: {
|
|
1185
|
+
line: 250,
|
|
1186
|
+
column: 16
|
|
1187
|
+
},
|
|
1188
|
+
end: {
|
|
1189
|
+
line: 253,
|
|
1190
|
+
column: 17
|
|
1191
|
+
}
|
|
1192
|
+
},
|
|
1193
|
+
"118": {
|
|
1194
|
+
start: {
|
|
1195
|
+
line: 252,
|
|
1196
|
+
column: 20
|
|
1197
|
+
},
|
|
1198
|
+
end: {
|
|
1199
|
+
line: 252,
|
|
1200
|
+
column: 44
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
"119": {
|
|
1204
|
+
start: {
|
|
1205
|
+
line: 257,
|
|
1206
|
+
column: 8
|
|
1207
|
+
},
|
|
1208
|
+
end: {
|
|
1209
|
+
line: 257,
|
|
1210
|
+
column: 35
|
|
1211
|
+
}
|
|
1212
|
+
},
|
|
1213
|
+
"120": {
|
|
1214
|
+
start: {
|
|
1215
|
+
line: 260,
|
|
1216
|
+
column: 8
|
|
1217
|
+
},
|
|
1218
|
+
end: {
|
|
1219
|
+
line: 289,
|
|
1220
|
+
column: 9
|
|
1221
|
+
}
|
|
1222
|
+
},
|
|
1223
|
+
"121": {
|
|
1224
|
+
start: {
|
|
1225
|
+
line: 262,
|
|
1226
|
+
column: 16
|
|
1227
|
+
},
|
|
1228
|
+
end: {
|
|
1229
|
+
line: 262,
|
|
1230
|
+
column: 103
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
"122": {
|
|
1234
|
+
start: {
|
|
1235
|
+
line: 263,
|
|
1236
|
+
column: 16
|
|
1237
|
+
},
|
|
1238
|
+
end: {
|
|
1239
|
+
line: 263,
|
|
1240
|
+
column: 22
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"123": {
|
|
1244
|
+
start: {
|
|
1245
|
+
line: 266,
|
|
1246
|
+
column: 16
|
|
1247
|
+
},
|
|
1248
|
+
end: {
|
|
1249
|
+
line: 266,
|
|
1250
|
+
column: 105
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
"124": {
|
|
1254
|
+
start: {
|
|
1255
|
+
line: 267,
|
|
1256
|
+
column: 16
|
|
1257
|
+
},
|
|
1258
|
+
end: {
|
|
1259
|
+
line: 267,
|
|
1260
|
+
column: 22
|
|
1261
|
+
}
|
|
1262
|
+
},
|
|
1263
|
+
"125": {
|
|
1264
|
+
start: {
|
|
1265
|
+
line: 270,
|
|
1266
|
+
column: 16
|
|
1267
|
+
},
|
|
1268
|
+
end: {
|
|
1269
|
+
line: 270,
|
|
1270
|
+
column: 98
|
|
1271
|
+
}
|
|
1272
|
+
},
|
|
1273
|
+
"126": {
|
|
1274
|
+
start: {
|
|
1275
|
+
line: 271,
|
|
1276
|
+
column: 16
|
|
1277
|
+
},
|
|
1278
|
+
end: {
|
|
1279
|
+
line: 271,
|
|
1280
|
+
column: 22
|
|
1281
|
+
}
|
|
1282
|
+
},
|
|
1283
|
+
"127": {
|
|
1284
|
+
start: {
|
|
1285
|
+
line: 274,
|
|
1286
|
+
column: 16
|
|
1287
|
+
},
|
|
1288
|
+
end: {
|
|
1289
|
+
line: 274,
|
|
1290
|
+
column: 103
|
|
1291
|
+
}
|
|
1292
|
+
},
|
|
1293
|
+
"128": {
|
|
1294
|
+
start: {
|
|
1295
|
+
line: 275,
|
|
1296
|
+
column: 16
|
|
1297
|
+
},
|
|
1298
|
+
end: {
|
|
1299
|
+
line: 275,
|
|
1300
|
+
column: 22
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1303
|
+
"129": {
|
|
1304
|
+
start: {
|
|
1305
|
+
line: 278,
|
|
1306
|
+
column: 16
|
|
1307
|
+
},
|
|
1308
|
+
end: {
|
|
1309
|
+
line: 287,
|
|
1310
|
+
column: 30
|
|
1311
|
+
}
|
|
1312
|
+
},
|
|
1313
|
+
"130": {
|
|
1314
|
+
start: {
|
|
1315
|
+
line: 292,
|
|
1316
|
+
column: 0
|
|
1317
|
+
},
|
|
1318
|
+
end: {
|
|
1319
|
+
line: 292,
|
|
1320
|
+
column: 56
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
},
|
|
1324
|
+
fnMap: {
|
|
1325
|
+
"0": {
|
|
1326
|
+
name: "(anonymous_0)",
|
|
1327
|
+
decl: {
|
|
1328
|
+
start: {
|
|
1329
|
+
line: 2,
|
|
1330
|
+
column: 56
|
|
1331
|
+
},
|
|
1332
|
+
end: {
|
|
1333
|
+
line: 2,
|
|
1334
|
+
column: 57
|
|
1335
|
+
}
|
|
1336
|
+
},
|
|
1337
|
+
loc: {
|
|
1338
|
+
start: {
|
|
1339
|
+
line: 2,
|
|
1340
|
+
column: 71
|
|
1341
|
+
},
|
|
1342
|
+
end: {
|
|
1343
|
+
line: 4,
|
|
1344
|
+
column: 1
|
|
1345
|
+
}
|
|
1346
|
+
},
|
|
1347
|
+
line: 2
|
|
1348
|
+
},
|
|
1349
|
+
"1": {
|
|
1350
|
+
name: "(anonymous_1)",
|
|
1351
|
+
decl: {
|
|
1352
|
+
start: {
|
|
1353
|
+
line: 11,
|
|
1354
|
+
column: 1
|
|
1355
|
+
},
|
|
1356
|
+
end: {
|
|
1357
|
+
line: 11,
|
|
1358
|
+
column: 2
|
|
1359
|
+
}
|
|
1360
|
+
},
|
|
1361
|
+
loc: {
|
|
1362
|
+
start: {
|
|
1363
|
+
line: 11,
|
|
1364
|
+
column: 31
|
|
1365
|
+
},
|
|
1366
|
+
end: {
|
|
1367
|
+
line: 15,
|
|
1368
|
+
column: 1
|
|
1369
|
+
}
|
|
1370
|
+
},
|
|
1371
|
+
line: 11
|
|
1372
|
+
},
|
|
1373
|
+
"2": {
|
|
1374
|
+
name: "(anonymous_2)",
|
|
1375
|
+
decl: {
|
|
1376
|
+
start: {
|
|
1377
|
+
line: 17,
|
|
1378
|
+
column: 1
|
|
1379
|
+
},
|
|
1380
|
+
end: {
|
|
1381
|
+
line: 17,
|
|
1382
|
+
column: 2
|
|
1383
|
+
}
|
|
1384
|
+
},
|
|
1385
|
+
loc: {
|
|
1386
|
+
start: {
|
|
1387
|
+
line: 17,
|
|
1388
|
+
column: 24
|
|
1389
|
+
},
|
|
1390
|
+
end: {
|
|
1391
|
+
line: 23,
|
|
1392
|
+
column: 1
|
|
1393
|
+
}
|
|
1394
|
+
},
|
|
1395
|
+
line: 17
|
|
1396
|
+
},
|
|
1397
|
+
"3": {
|
|
1398
|
+
name: "(anonymous_3)",
|
|
1399
|
+
decl: {
|
|
1400
|
+
start: {
|
|
1401
|
+
line: 27,
|
|
1402
|
+
column: 4
|
|
1403
|
+
},
|
|
1404
|
+
end: {
|
|
1405
|
+
line: 27,
|
|
1406
|
+
column: 5
|
|
1407
|
+
}
|
|
1408
|
+
},
|
|
1409
|
+
loc: {
|
|
1410
|
+
start: {
|
|
1411
|
+
line: 27,
|
|
1412
|
+
column: 38
|
|
1413
|
+
},
|
|
1414
|
+
end: {
|
|
1415
|
+
line: 40,
|
|
1416
|
+
column: 5
|
|
1417
|
+
}
|
|
1418
|
+
},
|
|
1419
|
+
line: 27
|
|
1420
|
+
},
|
|
1421
|
+
"4": {
|
|
1422
|
+
name: "(anonymous_4)",
|
|
1423
|
+
decl: {
|
|
1424
|
+
start: {
|
|
1425
|
+
line: 41,
|
|
1426
|
+
column: 4
|
|
1427
|
+
},
|
|
1428
|
+
end: {
|
|
1429
|
+
line: 41,
|
|
1430
|
+
column: 5
|
|
1431
|
+
}
|
|
1432
|
+
},
|
|
1433
|
+
loc: {
|
|
1434
|
+
start: {
|
|
1435
|
+
line: 41,
|
|
1436
|
+
column: 30
|
|
1437
|
+
},
|
|
1438
|
+
end: {
|
|
1439
|
+
line: 44,
|
|
1440
|
+
column: 5
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
line: 41
|
|
1444
|
+
},
|
|
1445
|
+
"5": {
|
|
1446
|
+
name: "(anonymous_5)",
|
|
1447
|
+
decl: {
|
|
1448
|
+
start: {
|
|
1449
|
+
line: 45,
|
|
1450
|
+
column: 4
|
|
1451
|
+
},
|
|
1452
|
+
end: {
|
|
1453
|
+
line: 45,
|
|
1454
|
+
column: 5
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
loc: {
|
|
1458
|
+
start: {
|
|
1459
|
+
line: 45,
|
|
1460
|
+
column: 61
|
|
1461
|
+
},
|
|
1462
|
+
end: {
|
|
1463
|
+
line: 62,
|
|
1464
|
+
column: 5
|
|
1465
|
+
}
|
|
1466
|
+
},
|
|
1467
|
+
line: 45
|
|
1468
|
+
},
|
|
1469
|
+
"6": {
|
|
1470
|
+
name: "(anonymous_6)",
|
|
1471
|
+
decl: {
|
|
1472
|
+
start: {
|
|
1473
|
+
line: 63,
|
|
1474
|
+
column: 4
|
|
1475
|
+
},
|
|
1476
|
+
end: {
|
|
1477
|
+
line: 63,
|
|
1478
|
+
column: 5
|
|
1479
|
+
}
|
|
1480
|
+
},
|
|
1481
|
+
loc: {
|
|
1482
|
+
start: {
|
|
1483
|
+
line: 63,
|
|
1484
|
+
column: 71
|
|
1485
|
+
},
|
|
1486
|
+
end: {
|
|
1487
|
+
line: 85,
|
|
1488
|
+
column: 5
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
line: 63
|
|
1492
|
+
},
|
|
1493
|
+
"7": {
|
|
1494
|
+
name: "(anonymous_7)",
|
|
1495
|
+
decl: {
|
|
1496
|
+
start: {
|
|
1497
|
+
line: 86,
|
|
1498
|
+
column: 4
|
|
1499
|
+
},
|
|
1500
|
+
end: {
|
|
1501
|
+
line: 86,
|
|
1502
|
+
column: 5
|
|
1503
|
+
}
|
|
1504
|
+
},
|
|
1505
|
+
loc: {
|
|
1506
|
+
start: {
|
|
1507
|
+
line: 86,
|
|
1508
|
+
column: 60
|
|
1509
|
+
},
|
|
1510
|
+
end: {
|
|
1511
|
+
line: 95,
|
|
1512
|
+
column: 5
|
|
1513
|
+
}
|
|
1514
|
+
},
|
|
1515
|
+
line: 86
|
|
1516
|
+
},
|
|
1517
|
+
"8": {
|
|
1518
|
+
name: "(anonymous_8)",
|
|
1519
|
+
decl: {
|
|
1520
|
+
start: {
|
|
1521
|
+
line: 89,
|
|
1522
|
+
column: 11
|
|
1523
|
+
},
|
|
1524
|
+
end: {
|
|
1525
|
+
line: 89,
|
|
1526
|
+
column: 12
|
|
1527
|
+
}
|
|
1528
|
+
},
|
|
1529
|
+
loc: {
|
|
1530
|
+
start: {
|
|
1531
|
+
line: 89,
|
|
1532
|
+
column: 39
|
|
1533
|
+
},
|
|
1534
|
+
end: {
|
|
1535
|
+
line: 94,
|
|
1536
|
+
column: 9
|
|
1537
|
+
}
|
|
1538
|
+
},
|
|
1539
|
+
line: 89
|
|
1540
|
+
},
|
|
1541
|
+
"9": {
|
|
1542
|
+
name: "(anonymous_9)",
|
|
1543
|
+
decl: {
|
|
1544
|
+
start: {
|
|
1545
|
+
line: 96,
|
|
1546
|
+
column: 4
|
|
1547
|
+
},
|
|
1548
|
+
end: {
|
|
1549
|
+
line: 96,
|
|
1550
|
+
column: 5
|
|
1551
|
+
}
|
|
1552
|
+
},
|
|
1553
|
+
loc: {
|
|
1554
|
+
start: {
|
|
1555
|
+
line: 96,
|
|
1556
|
+
column: 59
|
|
1557
|
+
},
|
|
1558
|
+
end: {
|
|
1559
|
+
line: 114,
|
|
1560
|
+
column: 5
|
|
1561
|
+
}
|
|
1562
|
+
},
|
|
1563
|
+
line: 96
|
|
1564
|
+
},
|
|
1565
|
+
"10": {
|
|
1566
|
+
name: "(anonymous_10)",
|
|
1567
|
+
decl: {
|
|
1568
|
+
start: {
|
|
1569
|
+
line: 115,
|
|
1570
|
+
column: 4
|
|
1571
|
+
},
|
|
1572
|
+
end: {
|
|
1573
|
+
line: 115,
|
|
1574
|
+
column: 5
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
loc: {
|
|
1578
|
+
start: {
|
|
1579
|
+
line: 115,
|
|
1580
|
+
column: 49
|
|
1581
|
+
},
|
|
1582
|
+
end: {
|
|
1583
|
+
line: 122,
|
|
1584
|
+
column: 5
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
line: 115
|
|
1588
|
+
},
|
|
1589
|
+
"11": {
|
|
1590
|
+
name: "(anonymous_11)",
|
|
1591
|
+
decl: {
|
|
1592
|
+
start: {
|
|
1593
|
+
line: 118,
|
|
1594
|
+
column: 11
|
|
1595
|
+
},
|
|
1596
|
+
end: {
|
|
1597
|
+
line: 118,
|
|
1598
|
+
column: 12
|
|
1599
|
+
}
|
|
1600
|
+
},
|
|
1601
|
+
loc: {
|
|
1602
|
+
start: {
|
|
1603
|
+
line: 118,
|
|
1604
|
+
column: 39
|
|
1605
|
+
},
|
|
1606
|
+
end: {
|
|
1607
|
+
line: 121,
|
|
1608
|
+
column: 9
|
|
1609
|
+
}
|
|
1610
|
+
},
|
|
1611
|
+
line: 118
|
|
1612
|
+
},
|
|
1613
|
+
"12": {
|
|
1614
|
+
name: "(anonymous_12)",
|
|
1615
|
+
decl: {
|
|
1616
|
+
start: {
|
|
1617
|
+
line: 123,
|
|
1618
|
+
column: 4
|
|
1619
|
+
},
|
|
1620
|
+
end: {
|
|
1621
|
+
line: 123,
|
|
1622
|
+
column: 5
|
|
1623
|
+
}
|
|
1624
|
+
},
|
|
1625
|
+
loc: {
|
|
1626
|
+
start: {
|
|
1627
|
+
line: 123,
|
|
1628
|
+
column: 29
|
|
1629
|
+
},
|
|
1630
|
+
end: {
|
|
1631
|
+
line: 132,
|
|
1632
|
+
column: 5
|
|
1633
|
+
}
|
|
1634
|
+
},
|
|
1635
|
+
line: 123
|
|
1636
|
+
},
|
|
1637
|
+
"13": {
|
|
1638
|
+
name: "(anonymous_13)",
|
|
1639
|
+
decl: {
|
|
1640
|
+
start: {
|
|
1641
|
+
line: 133,
|
|
1642
|
+
column: 4
|
|
1643
|
+
},
|
|
1644
|
+
end: {
|
|
1645
|
+
line: 133,
|
|
1646
|
+
column: 5
|
|
1647
|
+
}
|
|
1648
|
+
},
|
|
1649
|
+
loc: {
|
|
1650
|
+
start: {
|
|
1651
|
+
line: 133,
|
|
1652
|
+
column: 25
|
|
1653
|
+
},
|
|
1654
|
+
end: {
|
|
1655
|
+
line: 182,
|
|
1656
|
+
column: 5
|
|
1657
|
+
}
|
|
1658
|
+
},
|
|
1659
|
+
line: 133
|
|
1660
|
+
},
|
|
1661
|
+
"14": {
|
|
1662
|
+
name: "(anonymous_14)",
|
|
1663
|
+
decl: {
|
|
1664
|
+
start: {
|
|
1665
|
+
line: 183,
|
|
1666
|
+
column: 4
|
|
1667
|
+
},
|
|
1668
|
+
end: {
|
|
1669
|
+
line: 183,
|
|
1670
|
+
column: 5
|
|
1671
|
+
}
|
|
1672
|
+
},
|
|
1673
|
+
loc: {
|
|
1674
|
+
start: {
|
|
1675
|
+
line: 183,
|
|
1676
|
+
column: 38
|
|
1677
|
+
},
|
|
1678
|
+
end: {
|
|
1679
|
+
line: 203,
|
|
1680
|
+
column: 5
|
|
1681
|
+
}
|
|
1682
|
+
},
|
|
1683
|
+
line: 183
|
|
1684
|
+
},
|
|
1685
|
+
"15": {
|
|
1686
|
+
name: "(anonymous_15)",
|
|
1687
|
+
decl: {
|
|
1688
|
+
start: {
|
|
1689
|
+
line: 204,
|
|
1690
|
+
column: 4
|
|
1691
|
+
},
|
|
1692
|
+
end: {
|
|
1693
|
+
line: 204,
|
|
1694
|
+
column: 5
|
|
1695
|
+
}
|
|
1696
|
+
},
|
|
1697
|
+
loc: {
|
|
1698
|
+
start: {
|
|
1699
|
+
line: 204,
|
|
1700
|
+
column: 40
|
|
1701
|
+
},
|
|
1702
|
+
end: {
|
|
1703
|
+
line: 218,
|
|
1704
|
+
column: 5
|
|
1705
|
+
}
|
|
1706
|
+
},
|
|
1707
|
+
line: 204
|
|
1708
|
+
},
|
|
1709
|
+
"16": {
|
|
1710
|
+
name: "(anonymous_16)",
|
|
1711
|
+
decl: {
|
|
1712
|
+
start: {
|
|
1713
|
+
line: 209,
|
|
1714
|
+
column: 11
|
|
1715
|
+
},
|
|
1716
|
+
end: {
|
|
1717
|
+
line: 209,
|
|
1718
|
+
column: 12
|
|
1719
|
+
}
|
|
1720
|
+
},
|
|
1721
|
+
loc: {
|
|
1722
|
+
start: {
|
|
1723
|
+
line: 209,
|
|
1724
|
+
column: 33
|
|
1725
|
+
},
|
|
1726
|
+
end: {
|
|
1727
|
+
line: 211,
|
|
1728
|
+
column: 9
|
|
1729
|
+
}
|
|
1730
|
+
},
|
|
1731
|
+
line: 209
|
|
1732
|
+
},
|
|
1733
|
+
"17": {
|
|
1734
|
+
name: "(anonymous_17)",
|
|
1735
|
+
decl: {
|
|
1736
|
+
start: {
|
|
1737
|
+
line: 219,
|
|
1738
|
+
column: 4
|
|
1739
|
+
},
|
|
1740
|
+
end: {
|
|
1741
|
+
line: 219,
|
|
1742
|
+
column: 5
|
|
1743
|
+
}
|
|
1744
|
+
},
|
|
1745
|
+
loc: {
|
|
1746
|
+
start: {
|
|
1747
|
+
line: 219,
|
|
1748
|
+
column: 57
|
|
1749
|
+
},
|
|
1750
|
+
end: {
|
|
1751
|
+
line: 258,
|
|
1752
|
+
column: 5
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
line: 219
|
|
1756
|
+
},
|
|
1757
|
+
"18": {
|
|
1758
|
+
name: "(anonymous_18)",
|
|
1759
|
+
decl: {
|
|
1760
|
+
start: {
|
|
1761
|
+
line: 259,
|
|
1762
|
+
column: 4
|
|
1763
|
+
},
|
|
1764
|
+
end: {
|
|
1765
|
+
line: 259,
|
|
1766
|
+
column: 5
|
|
1767
|
+
}
|
|
1768
|
+
},
|
|
1769
|
+
loc: {
|
|
1770
|
+
start: {
|
|
1771
|
+
line: 259,
|
|
1772
|
+
column: 75
|
|
1773
|
+
},
|
|
1774
|
+
end: {
|
|
1775
|
+
line: 290,
|
|
1776
|
+
column: 5
|
|
1777
|
+
}
|
|
1778
|
+
},
|
|
1779
|
+
line: 259
|
|
1780
|
+
}
|
|
1781
|
+
},
|
|
1782
|
+
branchMap: {
|
|
1783
|
+
"0": {
|
|
1784
|
+
loc: {
|
|
1785
|
+
start: {
|
|
1786
|
+
line: 2,
|
|
1787
|
+
column: 22
|
|
1788
|
+
},
|
|
1789
|
+
end: {
|
|
1790
|
+
line: 4,
|
|
1791
|
+
column: 1
|
|
1792
|
+
}
|
|
1793
|
+
},
|
|
1794
|
+
type: "binary-expr",
|
|
1795
|
+
locations: [{
|
|
1796
|
+
start: {
|
|
1797
|
+
line: 2,
|
|
1798
|
+
column: 23
|
|
1799
|
+
},
|
|
1800
|
+
end: {
|
|
1801
|
+
line: 2,
|
|
1802
|
+
column: 27
|
|
1803
|
+
}
|
|
1804
|
+
}, {
|
|
1805
|
+
start: {
|
|
1806
|
+
line: 2,
|
|
1807
|
+
column: 31
|
|
1808
|
+
},
|
|
1809
|
+
end: {
|
|
1810
|
+
line: 2,
|
|
1811
|
+
column: 51
|
|
1812
|
+
}
|
|
1813
|
+
}, {
|
|
1814
|
+
start: {
|
|
1815
|
+
line: 2,
|
|
1816
|
+
column: 56
|
|
1817
|
+
},
|
|
1818
|
+
end: {
|
|
1819
|
+
line: 4,
|
|
1820
|
+
column: 1
|
|
1821
|
+
}
|
|
1822
|
+
}],
|
|
1823
|
+
line: 2
|
|
1824
|
+
},
|
|
1825
|
+
"1": {
|
|
1826
|
+
loc: {
|
|
1827
|
+
start: {
|
|
1828
|
+
line: 3,
|
|
1829
|
+
column: 11
|
|
1830
|
+
},
|
|
1831
|
+
end: {
|
|
1832
|
+
line: 3,
|
|
1833
|
+
column: 61
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1836
|
+
type: "cond-expr",
|
|
1837
|
+
locations: [{
|
|
1838
|
+
start: {
|
|
1839
|
+
line: 3,
|
|
1840
|
+
column: 37
|
|
1841
|
+
},
|
|
1842
|
+
end: {
|
|
1843
|
+
line: 3,
|
|
1844
|
+
column: 40
|
|
1845
|
+
}
|
|
1846
|
+
}, {
|
|
1847
|
+
start: {
|
|
1848
|
+
line: 3,
|
|
1849
|
+
column: 43
|
|
1850
|
+
},
|
|
1851
|
+
end: {
|
|
1852
|
+
line: 3,
|
|
1853
|
+
column: 61
|
|
1854
|
+
}
|
|
1855
|
+
}],
|
|
1856
|
+
line: 3
|
|
1857
|
+
},
|
|
1858
|
+
"2": {
|
|
1859
|
+
loc: {
|
|
1860
|
+
start: {
|
|
1861
|
+
line: 3,
|
|
1862
|
+
column: 12
|
|
1863
|
+
},
|
|
1864
|
+
end: {
|
|
1865
|
+
line: 3,
|
|
1866
|
+
column: 33
|
|
1867
|
+
}
|
|
1868
|
+
},
|
|
1869
|
+
type: "binary-expr",
|
|
1870
|
+
locations: [{
|
|
1871
|
+
start: {
|
|
1872
|
+
line: 3,
|
|
1873
|
+
column: 12
|
|
1874
|
+
},
|
|
1875
|
+
end: {
|
|
1876
|
+
line: 3,
|
|
1877
|
+
column: 15
|
|
1878
|
+
}
|
|
1879
|
+
}, {
|
|
1880
|
+
start: {
|
|
1881
|
+
line: 3,
|
|
1882
|
+
column: 19
|
|
1883
|
+
},
|
|
1884
|
+
end: {
|
|
1885
|
+
line: 3,
|
|
1886
|
+
column: 33
|
|
1887
|
+
}
|
|
1888
|
+
}],
|
|
1889
|
+
line: 3
|
|
1890
|
+
},
|
|
1891
|
+
"3": {
|
|
1892
|
+
loc: {
|
|
1893
|
+
start: {
|
|
1894
|
+
line: 15,
|
|
1895
|
+
column: 3
|
|
1896
|
+
},
|
|
1897
|
+
end: {
|
|
1898
|
+
line: 15,
|
|
1899
|
+
column: 50
|
|
1900
|
+
}
|
|
1901
|
+
},
|
|
1902
|
+
type: "binary-expr",
|
|
1903
|
+
locations: [{
|
|
1904
|
+
start: {
|
|
1905
|
+
line: 15,
|
|
1906
|
+
column: 3
|
|
1907
|
+
},
|
|
1908
|
+
end: {
|
|
1909
|
+
line: 15,
|
|
1910
|
+
column: 21
|
|
1911
|
+
}
|
|
1912
|
+
}, {
|
|
1913
|
+
start: {
|
|
1914
|
+
line: 15,
|
|
1915
|
+
column: 26
|
|
1916
|
+
},
|
|
1917
|
+
end: {
|
|
1918
|
+
line: 15,
|
|
1919
|
+
column: 49
|
|
1920
|
+
}
|
|
1921
|
+
}],
|
|
1922
|
+
line: 15
|
|
1923
|
+
},
|
|
1924
|
+
"4": {
|
|
1925
|
+
loc: {
|
|
1926
|
+
start: {
|
|
1927
|
+
line: 23,
|
|
1928
|
+
column: 3
|
|
1929
|
+
},
|
|
1930
|
+
end: {
|
|
1931
|
+
line: 23,
|
|
1932
|
+
column: 36
|
|
1933
|
+
}
|
|
1934
|
+
},
|
|
1935
|
+
type: "binary-expr",
|
|
1936
|
+
locations: [{
|
|
1937
|
+
start: {
|
|
1938
|
+
line: 23,
|
|
1939
|
+
column: 3
|
|
1940
|
+
},
|
|
1941
|
+
end: {
|
|
1942
|
+
line: 23,
|
|
1943
|
+
column: 14
|
|
1944
|
+
}
|
|
1945
|
+
}, {
|
|
1946
|
+
start: {
|
|
1947
|
+
line: 23,
|
|
1948
|
+
column: 19
|
|
1949
|
+
},
|
|
1950
|
+
end: {
|
|
1951
|
+
line: 23,
|
|
1952
|
+
column: 35
|
|
1953
|
+
}
|
|
1954
|
+
}],
|
|
1955
|
+
line: 23
|
|
1956
|
+
},
|
|
1957
|
+
"5": {
|
|
1958
|
+
loc: {
|
|
1959
|
+
start: {
|
|
1960
|
+
line: 34,
|
|
1961
|
+
column: 28
|
|
1962
|
+
},
|
|
1963
|
+
end: {
|
|
1964
|
+
line: 34,
|
|
1965
|
+
column: 87
|
|
1966
|
+
}
|
|
1967
|
+
},
|
|
1968
|
+
type: "cond-expr",
|
|
1969
|
+
locations: [{
|
|
1970
|
+
start: {
|
|
1971
|
+
line: 34,
|
|
1972
|
+
column: 56
|
|
1973
|
+
},
|
|
1974
|
+
end: {
|
|
1975
|
+
line: 34,
|
|
1976
|
+
column: 67
|
|
1977
|
+
}
|
|
1978
|
+
}, {
|
|
1979
|
+
start: {
|
|
1980
|
+
line: 34,
|
|
1981
|
+
column: 70
|
|
1982
|
+
},
|
|
1983
|
+
end: {
|
|
1984
|
+
line: 34,
|
|
1985
|
+
column: 87
|
|
1986
|
+
}
|
|
1987
|
+
}],
|
|
1988
|
+
line: 34
|
|
1989
|
+
},
|
|
1990
|
+
"6": {
|
|
1991
|
+
loc: {
|
|
1992
|
+
start: {
|
|
1993
|
+
line: 35,
|
|
1994
|
+
column: 29
|
|
1995
|
+
},
|
|
1996
|
+
end: {
|
|
1997
|
+
line: 35,
|
|
1998
|
+
column: 95
|
|
1999
|
+
}
|
|
2000
|
+
},
|
|
2001
|
+
type: "cond-expr",
|
|
2002
|
+
locations: [{
|
|
2003
|
+
start: {
|
|
2004
|
+
line: 35,
|
|
2005
|
+
column: 85
|
|
2006
|
+
},
|
|
2007
|
+
end: {
|
|
2008
|
+
line: 35,
|
|
2009
|
+
column: 87
|
|
2010
|
+
}
|
|
2011
|
+
}, {
|
|
2012
|
+
start: {
|
|
2013
|
+
line: 35,
|
|
2014
|
+
column: 90
|
|
2015
|
+
},
|
|
2016
|
+
end: {
|
|
2017
|
+
line: 35,
|
|
2018
|
+
column: 95
|
|
2019
|
+
}
|
|
2020
|
+
}],
|
|
2021
|
+
line: 35
|
|
2022
|
+
},
|
|
2023
|
+
"7": {
|
|
2024
|
+
loc: {
|
|
2025
|
+
start: {
|
|
2026
|
+
line: 35,
|
|
2027
|
+
column: 29
|
|
2028
|
+
},
|
|
2029
|
+
end: {
|
|
2030
|
+
line: 35,
|
|
2031
|
+
column: 82
|
|
2032
|
+
}
|
|
2033
|
+
},
|
|
2034
|
+
type: "binary-expr",
|
|
2035
|
+
locations: [{
|
|
2036
|
+
start: {
|
|
2037
|
+
line: 35,
|
|
2038
|
+
column: 29
|
|
2039
|
+
},
|
|
2040
|
+
end: {
|
|
2041
|
+
line: 35,
|
|
2042
|
+
column: 65
|
|
2043
|
+
}
|
|
2044
|
+
}, {
|
|
2045
|
+
start: {
|
|
2046
|
+
line: 35,
|
|
2047
|
+
column: 69
|
|
2048
|
+
},
|
|
2049
|
+
end: {
|
|
2050
|
+
line: 35,
|
|
2051
|
+
column: 82
|
|
2052
|
+
}
|
|
2053
|
+
}],
|
|
2054
|
+
line: 35
|
|
2055
|
+
},
|
|
2056
|
+
"8": {
|
|
2057
|
+
loc: {
|
|
2058
|
+
start: {
|
|
2059
|
+
line: 36,
|
|
2060
|
+
column: 24
|
|
2061
|
+
},
|
|
2062
|
+
end: {
|
|
2063
|
+
line: 36,
|
|
2064
|
+
column: 82
|
|
2065
|
+
}
|
|
2066
|
+
},
|
|
2067
|
+
type: "cond-expr",
|
|
2068
|
+
locations: [{
|
|
2069
|
+
start: {
|
|
2070
|
+
line: 36,
|
|
2071
|
+
column: 75
|
|
2072
|
+
},
|
|
2073
|
+
end: {
|
|
2074
|
+
line: 36,
|
|
2075
|
+
column: 77
|
|
2076
|
+
}
|
|
2077
|
+
}, {
|
|
2078
|
+
start: {
|
|
2079
|
+
line: 36,
|
|
2080
|
+
column: 80
|
|
2081
|
+
},
|
|
2082
|
+
end: {
|
|
2083
|
+
line: 36,
|
|
2084
|
+
column: 82
|
|
2085
|
+
}
|
|
2086
|
+
}],
|
|
2087
|
+
line: 36
|
|
2088
|
+
},
|
|
2089
|
+
"9": {
|
|
2090
|
+
loc: {
|
|
2091
|
+
start: {
|
|
2092
|
+
line: 36,
|
|
2093
|
+
column: 24
|
|
2094
|
+
},
|
|
2095
|
+
end: {
|
|
2096
|
+
line: 36,
|
|
2097
|
+
column: 72
|
|
2098
|
+
}
|
|
2099
|
+
},
|
|
2100
|
+
type: "binary-expr",
|
|
2101
|
+
locations: [{
|
|
2102
|
+
start: {
|
|
2103
|
+
line: 36,
|
|
2104
|
+
column: 24
|
|
2105
|
+
},
|
|
2106
|
+
end: {
|
|
2107
|
+
line: 36,
|
|
2108
|
+
column: 55
|
|
2109
|
+
}
|
|
2110
|
+
}, {
|
|
2111
|
+
start: {
|
|
2112
|
+
line: 36,
|
|
2113
|
+
column: 59
|
|
2114
|
+
},
|
|
2115
|
+
end: {
|
|
2116
|
+
line: 36,
|
|
2117
|
+
column: 72
|
|
2118
|
+
}
|
|
2119
|
+
}],
|
|
2120
|
+
line: 36
|
|
2121
|
+
},
|
|
2122
|
+
"10": {
|
|
2123
|
+
loc: {
|
|
2124
|
+
start: {
|
|
2125
|
+
line: 38,
|
|
2126
|
+
column: 31
|
|
2127
|
+
},
|
|
2128
|
+
end: {
|
|
2129
|
+
line: 38,
|
|
2130
|
+
column: 96
|
|
2131
|
+
}
|
|
2132
|
+
},
|
|
2133
|
+
type: "cond-expr",
|
|
2134
|
+
locations: [{
|
|
2135
|
+
start: {
|
|
2136
|
+
line: 38,
|
|
2137
|
+
column: 89
|
|
2138
|
+
},
|
|
2139
|
+
end: {
|
|
2140
|
+
line: 38,
|
|
2141
|
+
column: 91
|
|
2142
|
+
}
|
|
2143
|
+
}, {
|
|
2144
|
+
start: {
|
|
2145
|
+
line: 38,
|
|
2146
|
+
column: 94
|
|
2147
|
+
},
|
|
2148
|
+
end: {
|
|
2149
|
+
line: 38,
|
|
2150
|
+
column: 96
|
|
2151
|
+
}
|
|
2152
|
+
}],
|
|
2153
|
+
line: 38
|
|
2154
|
+
},
|
|
2155
|
+
"11": {
|
|
2156
|
+
loc: {
|
|
2157
|
+
start: {
|
|
2158
|
+
line: 38,
|
|
2159
|
+
column: 31
|
|
2160
|
+
},
|
|
2161
|
+
end: {
|
|
2162
|
+
line: 38,
|
|
2163
|
+
column: 86
|
|
2164
|
+
}
|
|
2165
|
+
},
|
|
2166
|
+
type: "binary-expr",
|
|
2167
|
+
locations: [{
|
|
2168
|
+
start: {
|
|
2169
|
+
line: 38,
|
|
2170
|
+
column: 31
|
|
2171
|
+
},
|
|
2172
|
+
end: {
|
|
2173
|
+
line: 38,
|
|
2174
|
+
column: 69
|
|
2175
|
+
}
|
|
2176
|
+
}, {
|
|
2177
|
+
start: {
|
|
2178
|
+
line: 38,
|
|
2179
|
+
column: 73
|
|
2180
|
+
},
|
|
2181
|
+
end: {
|
|
2182
|
+
line: 38,
|
|
2183
|
+
column: 86
|
|
2184
|
+
}
|
|
2185
|
+
}],
|
|
2186
|
+
line: 38
|
|
2187
|
+
},
|
|
2188
|
+
"12": {
|
|
2189
|
+
loc: {
|
|
2190
|
+
start: {
|
|
2191
|
+
line: 39,
|
|
2192
|
+
column: 36
|
|
2193
|
+
},
|
|
2194
|
+
end: {
|
|
2195
|
+
line: 39,
|
|
2196
|
+
column: 135
|
|
2197
|
+
}
|
|
2198
|
+
},
|
|
2199
|
+
type: "cond-expr",
|
|
2200
|
+
locations: [{
|
|
2201
|
+
start: {
|
|
2202
|
+
line: 39,
|
|
2203
|
+
column: 99
|
|
2204
|
+
},
|
|
2205
|
+
end: {
|
|
2206
|
+
line: 39,
|
|
2207
|
+
column: 101
|
|
2208
|
+
}
|
|
2209
|
+
}, {
|
|
2210
|
+
start: {
|
|
2211
|
+
line: 39,
|
|
2212
|
+
column: 104
|
|
2213
|
+
},
|
|
2214
|
+
end: {
|
|
2215
|
+
line: 39,
|
|
2216
|
+
column: 135
|
|
2217
|
+
}
|
|
2218
|
+
}],
|
|
2219
|
+
line: 39
|
|
2220
|
+
},
|
|
2221
|
+
"13": {
|
|
2222
|
+
loc: {
|
|
2223
|
+
start: {
|
|
2224
|
+
line: 39,
|
|
2225
|
+
column: 36
|
|
2226
|
+
},
|
|
2227
|
+
end: {
|
|
2228
|
+
line: 39,
|
|
2229
|
+
column: 96
|
|
2230
|
+
}
|
|
2231
|
+
},
|
|
2232
|
+
type: "binary-expr",
|
|
2233
|
+
locations: [{
|
|
2234
|
+
start: {
|
|
2235
|
+
line: 39,
|
|
2236
|
+
column: 36
|
|
2237
|
+
},
|
|
2238
|
+
end: {
|
|
2239
|
+
line: 39,
|
|
2240
|
+
column: 79
|
|
2241
|
+
}
|
|
2242
|
+
}, {
|
|
2243
|
+
start: {
|
|
2244
|
+
line: 39,
|
|
2245
|
+
column: 83
|
|
2246
|
+
},
|
|
2247
|
+
end: {
|
|
2248
|
+
line: 39,
|
|
2249
|
+
column: 96
|
|
2250
|
+
}
|
|
2251
|
+
}],
|
|
2252
|
+
line: 39
|
|
2253
|
+
},
|
|
2254
|
+
"14": {
|
|
2255
|
+
loc: {
|
|
2256
|
+
start: {
|
|
2257
|
+
line: 43,
|
|
2258
|
+
column: 15
|
|
2259
|
+
},
|
|
2260
|
+
end: {
|
|
2261
|
+
line: 43,
|
|
2262
|
+
column: 154
|
|
2263
|
+
}
|
|
2264
|
+
},
|
|
2265
|
+
type: "cond-expr",
|
|
2266
|
+
locations: [{
|
|
2267
|
+
start: {
|
|
2268
|
+
line: 43,
|
|
2269
|
+
column: 109
|
|
2270
|
+
},
|
|
2271
|
+
end: {
|
|
2272
|
+
line: 43,
|
|
2273
|
+
column: 111
|
|
2274
|
+
}
|
|
2275
|
+
}, {
|
|
2276
|
+
start: {
|
|
2277
|
+
line: 43,
|
|
2278
|
+
column: 114
|
|
2279
|
+
},
|
|
2280
|
+
end: {
|
|
2281
|
+
line: 43,
|
|
2282
|
+
column: 154
|
|
2283
|
+
}
|
|
2284
|
+
}],
|
|
2285
|
+
line: 43
|
|
2286
|
+
},
|
|
2287
|
+
"15": {
|
|
2288
|
+
loc: {
|
|
2289
|
+
start: {
|
|
2290
|
+
line: 43,
|
|
2291
|
+
column: 15
|
|
2292
|
+
},
|
|
2293
|
+
end: {
|
|
2294
|
+
line: 43,
|
|
2295
|
+
column: 106
|
|
2296
|
+
}
|
|
2297
|
+
},
|
|
2298
|
+
type: "binary-expr",
|
|
2299
|
+
locations: [{
|
|
2300
|
+
start: {
|
|
2301
|
+
line: 43,
|
|
2302
|
+
column: 15
|
|
2303
|
+
},
|
|
2304
|
+
end: {
|
|
2305
|
+
line: 43,
|
|
2306
|
+
column: 89
|
|
2307
|
+
}
|
|
2308
|
+
}, {
|
|
2309
|
+
start: {
|
|
2310
|
+
line: 43,
|
|
2311
|
+
column: 93
|
|
2312
|
+
},
|
|
2313
|
+
end: {
|
|
2314
|
+
line: 43,
|
|
2315
|
+
column: 106
|
|
2316
|
+
}
|
|
2317
|
+
}],
|
|
2318
|
+
line: 43
|
|
2319
|
+
},
|
|
2320
|
+
"16": {
|
|
2321
|
+
loc: {
|
|
2322
|
+
start: {
|
|
2323
|
+
line: 56,
|
|
2324
|
+
column: 19
|
|
2325
|
+
},
|
|
2326
|
+
end: {
|
|
2327
|
+
line: 56,
|
|
2328
|
+
column: 63
|
|
2329
|
+
}
|
|
2330
|
+
},
|
|
2331
|
+
type: "cond-expr",
|
|
2332
|
+
locations: [{
|
|
2333
|
+
start: {
|
|
2334
|
+
line: 56,
|
|
2335
|
+
column: 45
|
|
2336
|
+
},
|
|
2337
|
+
end: {
|
|
2338
|
+
line: 56,
|
|
2339
|
+
column: 51
|
|
2340
|
+
}
|
|
2341
|
+
}, {
|
|
2342
|
+
start: {
|
|
2343
|
+
line: 56,
|
|
2344
|
+
column: 54
|
|
2345
|
+
},
|
|
2346
|
+
end: {
|
|
2347
|
+
line: 56,
|
|
2348
|
+
column: 63
|
|
2349
|
+
}
|
|
2350
|
+
}],
|
|
2351
|
+
line: 56
|
|
2352
|
+
},
|
|
2353
|
+
"17": {
|
|
2354
|
+
loc: {
|
|
2355
|
+
start: {
|
|
2356
|
+
line: 64,
|
|
2357
|
+
column: 8
|
|
2358
|
+
},
|
|
2359
|
+
end: {
|
|
2360
|
+
line: 67,
|
|
2361
|
+
column: 9
|
|
2362
|
+
}
|
|
2363
|
+
},
|
|
2364
|
+
type: "if",
|
|
2365
|
+
locations: [{
|
|
2366
|
+
start: {
|
|
2367
|
+
line: 64,
|
|
2368
|
+
column: 8
|
|
2369
|
+
},
|
|
2370
|
+
end: {
|
|
2371
|
+
line: 67,
|
|
2372
|
+
column: 9
|
|
2373
|
+
}
|
|
2374
|
+
}, {
|
|
2375
|
+
start: {
|
|
2376
|
+
line: undefined,
|
|
2377
|
+
column: undefined
|
|
2378
|
+
},
|
|
2379
|
+
end: {
|
|
2380
|
+
line: undefined,
|
|
2381
|
+
column: undefined
|
|
2382
|
+
}
|
|
2383
|
+
}],
|
|
2384
|
+
line: 64
|
|
2385
|
+
},
|
|
2386
|
+
"18": {
|
|
2387
|
+
loc: {
|
|
2388
|
+
start: {
|
|
2389
|
+
line: 97,
|
|
2390
|
+
column: 8
|
|
2391
|
+
},
|
|
2392
|
+
end: {
|
|
2393
|
+
line: 102,
|
|
2394
|
+
column: 9
|
|
2395
|
+
}
|
|
2396
|
+
},
|
|
2397
|
+
type: "if",
|
|
2398
|
+
locations: [{
|
|
2399
|
+
start: {
|
|
2400
|
+
line: 97,
|
|
2401
|
+
column: 8
|
|
2402
|
+
},
|
|
2403
|
+
end: {
|
|
2404
|
+
line: 102,
|
|
2405
|
+
column: 9
|
|
2406
|
+
}
|
|
2407
|
+
}, {
|
|
2408
|
+
start: {
|
|
2409
|
+
line: undefined,
|
|
2410
|
+
column: undefined
|
|
2411
|
+
},
|
|
2412
|
+
end: {
|
|
2413
|
+
line: undefined,
|
|
2414
|
+
column: undefined
|
|
2415
|
+
}
|
|
2416
|
+
}],
|
|
2417
|
+
line: 97
|
|
2418
|
+
},
|
|
2419
|
+
"19": {
|
|
2420
|
+
loc: {
|
|
2421
|
+
start: {
|
|
2422
|
+
line: 103,
|
|
2423
|
+
column: 51
|
|
2424
|
+
},
|
|
2425
|
+
end: {
|
|
2426
|
+
line: 103,
|
|
2427
|
+
column: 80
|
|
2428
|
+
}
|
|
2429
|
+
},
|
|
2430
|
+
type: "binary-expr",
|
|
2431
|
+
locations: [{
|
|
2432
|
+
start: {
|
|
2433
|
+
line: 103,
|
|
2434
|
+
column: 51
|
|
2435
|
+
},
|
|
2436
|
+
end: {
|
|
2437
|
+
line: 103,
|
|
2438
|
+
column: 74
|
|
2439
|
+
}
|
|
2440
|
+
}, {
|
|
2441
|
+
start: {
|
|
2442
|
+
line: 103,
|
|
2443
|
+
column: 78
|
|
2444
|
+
},
|
|
2445
|
+
end: {
|
|
2446
|
+
line: 103,
|
|
2447
|
+
column: 80
|
|
2448
|
+
}
|
|
2449
|
+
}],
|
|
2450
|
+
line: 103
|
|
2451
|
+
},
|
|
2452
|
+
"20": {
|
|
2453
|
+
loc: {
|
|
2454
|
+
start: {
|
|
2455
|
+
line: 105,
|
|
2456
|
+
column: 89
|
|
2457
|
+
},
|
|
2458
|
+
end: {
|
|
2459
|
+
line: 105,
|
|
2460
|
+
column: 118
|
|
2461
|
+
}
|
|
2462
|
+
},
|
|
2463
|
+
type: "binary-expr",
|
|
2464
|
+
locations: [{
|
|
2465
|
+
start: {
|
|
2466
|
+
line: 105,
|
|
2467
|
+
column: 89
|
|
2468
|
+
},
|
|
2469
|
+
end: {
|
|
2470
|
+
line: 105,
|
|
2471
|
+
column: 112
|
|
2472
|
+
}
|
|
2473
|
+
}, {
|
|
2474
|
+
start: {
|
|
2475
|
+
line: 105,
|
|
2476
|
+
column: 116
|
|
2477
|
+
},
|
|
2478
|
+
end: {
|
|
2479
|
+
line: 105,
|
|
2480
|
+
column: 118
|
|
2481
|
+
}
|
|
2482
|
+
}],
|
|
2483
|
+
line: 105
|
|
2484
|
+
},
|
|
2485
|
+
"21": {
|
|
2486
|
+
loc: {
|
|
2487
|
+
start: {
|
|
2488
|
+
line: 107,
|
|
2489
|
+
column: 8
|
|
2490
|
+
},
|
|
2491
|
+
end: {
|
|
2492
|
+
line: 109,
|
|
2493
|
+
column: 9
|
|
2494
|
+
}
|
|
2495
|
+
},
|
|
2496
|
+
type: "if",
|
|
2497
|
+
locations: [{
|
|
2498
|
+
start: {
|
|
2499
|
+
line: 107,
|
|
2500
|
+
column: 8
|
|
2501
|
+
},
|
|
2502
|
+
end: {
|
|
2503
|
+
line: 109,
|
|
2504
|
+
column: 9
|
|
2505
|
+
}
|
|
2506
|
+
}, {
|
|
2507
|
+
start: {
|
|
2508
|
+
line: undefined,
|
|
2509
|
+
column: undefined
|
|
2510
|
+
},
|
|
2511
|
+
end: {
|
|
2512
|
+
line: undefined,
|
|
2513
|
+
column: undefined
|
|
2514
|
+
}
|
|
2515
|
+
}],
|
|
2516
|
+
line: 107
|
|
2517
|
+
},
|
|
2518
|
+
"22": {
|
|
2519
|
+
loc: {
|
|
2520
|
+
start: {
|
|
2521
|
+
line: 124,
|
|
2522
|
+
column: 8
|
|
2523
|
+
},
|
|
2524
|
+
end: {
|
|
2525
|
+
line: 130,
|
|
2526
|
+
column: 9
|
|
2527
|
+
}
|
|
2528
|
+
},
|
|
2529
|
+
type: "if",
|
|
2530
|
+
locations: [{
|
|
2531
|
+
start: {
|
|
2532
|
+
line: 124,
|
|
2533
|
+
column: 8
|
|
2534
|
+
},
|
|
2535
|
+
end: {
|
|
2536
|
+
line: 130,
|
|
2537
|
+
column: 9
|
|
2538
|
+
}
|
|
2539
|
+
}, {
|
|
2540
|
+
start: {
|
|
2541
|
+
line: undefined,
|
|
2542
|
+
column: undefined
|
|
2543
|
+
},
|
|
2544
|
+
end: {
|
|
2545
|
+
line: undefined,
|
|
2546
|
+
column: undefined
|
|
2547
|
+
}
|
|
2548
|
+
}],
|
|
2549
|
+
line: 124
|
|
2550
|
+
},
|
|
2551
|
+
"23": {
|
|
2552
|
+
loc: {
|
|
2553
|
+
start: {
|
|
2554
|
+
line: 126,
|
|
2555
|
+
column: 12
|
|
2556
|
+
},
|
|
2557
|
+
end: {
|
|
2558
|
+
line: 128,
|
|
2559
|
+
column: 13
|
|
2560
|
+
}
|
|
2561
|
+
},
|
|
2562
|
+
type: "if",
|
|
2563
|
+
locations: [{
|
|
2564
|
+
start: {
|
|
2565
|
+
line: 126,
|
|
2566
|
+
column: 12
|
|
2567
|
+
},
|
|
2568
|
+
end: {
|
|
2569
|
+
line: 128,
|
|
2570
|
+
column: 13
|
|
2571
|
+
}
|
|
2572
|
+
}, {
|
|
2573
|
+
start: {
|
|
2574
|
+
line: undefined,
|
|
2575
|
+
column: undefined
|
|
2576
|
+
},
|
|
2577
|
+
end: {
|
|
2578
|
+
line: undefined,
|
|
2579
|
+
column: undefined
|
|
2580
|
+
}
|
|
2581
|
+
}],
|
|
2582
|
+
line: 126
|
|
2583
|
+
},
|
|
2584
|
+
"24": {
|
|
2585
|
+
loc: {
|
|
2586
|
+
start: {
|
|
2587
|
+
line: 135,
|
|
2588
|
+
column: 38
|
|
2589
|
+
},
|
|
2590
|
+
end: {
|
|
2591
|
+
line: 135,
|
|
2592
|
+
column: 146
|
|
2593
|
+
}
|
|
2594
|
+
},
|
|
2595
|
+
type: "cond-expr",
|
|
2596
|
+
locations: [{
|
|
2597
|
+
start: {
|
|
2598
|
+
line: 135,
|
|
2599
|
+
column: 99
|
|
2600
|
+
},
|
|
2601
|
+
end: {
|
|
2602
|
+
line: 135,
|
|
2603
|
+
column: 116
|
|
2604
|
+
}
|
|
2605
|
+
}, {
|
|
2606
|
+
start: {
|
|
2607
|
+
line: 135,
|
|
2608
|
+
column: 119
|
|
2609
|
+
},
|
|
2610
|
+
end: {
|
|
2611
|
+
line: 135,
|
|
2612
|
+
column: 146
|
|
2613
|
+
}
|
|
2614
|
+
}],
|
|
2615
|
+
line: 135
|
|
2616
|
+
},
|
|
2617
|
+
"25": {
|
|
2618
|
+
loc: {
|
|
2619
|
+
start: {
|
|
2620
|
+
line: 135,
|
|
2621
|
+
column: 38
|
|
2622
|
+
},
|
|
2623
|
+
end: {
|
|
2624
|
+
line: 135,
|
|
2625
|
+
column: 96
|
|
2626
|
+
}
|
|
2627
|
+
},
|
|
2628
|
+
type: "binary-expr",
|
|
2629
|
+
locations: [{
|
|
2630
|
+
start: {
|
|
2631
|
+
line: 135,
|
|
2632
|
+
column: 38
|
|
2633
|
+
},
|
|
2634
|
+
end: {
|
|
2635
|
+
line: 135,
|
|
2636
|
+
column: 64
|
|
2637
|
+
}
|
|
2638
|
+
}, {
|
|
2639
|
+
start: {
|
|
2640
|
+
line: 135,
|
|
2641
|
+
column: 68
|
|
2642
|
+
},
|
|
2643
|
+
end: {
|
|
2644
|
+
line: 135,
|
|
2645
|
+
column: 96
|
|
2646
|
+
}
|
|
2647
|
+
}],
|
|
2648
|
+
line: 135
|
|
2649
|
+
},
|
|
2650
|
+
"26": {
|
|
2651
|
+
loc: {
|
|
2652
|
+
start: {
|
|
2653
|
+
line: 139,
|
|
2654
|
+
column: 8
|
|
2655
|
+
},
|
|
2656
|
+
end: {
|
|
2657
|
+
line: 141,
|
|
2658
|
+
column: 9
|
|
2659
|
+
}
|
|
2660
|
+
},
|
|
2661
|
+
type: "if",
|
|
2662
|
+
locations: [{
|
|
2663
|
+
start: {
|
|
2664
|
+
line: 139,
|
|
2665
|
+
column: 8
|
|
2666
|
+
},
|
|
2667
|
+
end: {
|
|
2668
|
+
line: 141,
|
|
2669
|
+
column: 9
|
|
2670
|
+
}
|
|
2671
|
+
}, {
|
|
2672
|
+
start: {
|
|
2673
|
+
line: undefined,
|
|
2674
|
+
column: undefined
|
|
2675
|
+
},
|
|
2676
|
+
end: {
|
|
2677
|
+
line: undefined,
|
|
2678
|
+
column: undefined
|
|
2679
|
+
}
|
|
2680
|
+
}],
|
|
2681
|
+
line: 139
|
|
2682
|
+
},
|
|
2683
|
+
"27": {
|
|
2684
|
+
loc: {
|
|
2685
|
+
start: {
|
|
2686
|
+
line: 143,
|
|
2687
|
+
column: 12
|
|
2688
|
+
},
|
|
2689
|
+
end: {
|
|
2690
|
+
line: 145,
|
|
2691
|
+
column: 13
|
|
2692
|
+
}
|
|
2693
|
+
},
|
|
2694
|
+
type: "if",
|
|
2695
|
+
locations: [{
|
|
2696
|
+
start: {
|
|
2697
|
+
line: 143,
|
|
2698
|
+
column: 12
|
|
2699
|
+
},
|
|
2700
|
+
end: {
|
|
2701
|
+
line: 145,
|
|
2702
|
+
column: 13
|
|
2703
|
+
}
|
|
2704
|
+
}, {
|
|
2705
|
+
start: {
|
|
2706
|
+
line: undefined,
|
|
2707
|
+
column: undefined
|
|
2708
|
+
},
|
|
2709
|
+
end: {
|
|
2710
|
+
line: undefined,
|
|
2711
|
+
column: undefined
|
|
2712
|
+
}
|
|
2713
|
+
}],
|
|
2714
|
+
line: 143
|
|
2715
|
+
},
|
|
2716
|
+
"28": {
|
|
2717
|
+
loc: {
|
|
2718
|
+
start: {
|
|
2719
|
+
line: 147,
|
|
2720
|
+
column: 27
|
|
2721
|
+
},
|
|
2722
|
+
end: {
|
|
2723
|
+
line: 147,
|
|
2724
|
+
column: 97
|
|
2725
|
+
}
|
|
2726
|
+
},
|
|
2727
|
+
type: "binary-expr",
|
|
2728
|
+
locations: [{
|
|
2729
|
+
start: {
|
|
2730
|
+
line: 147,
|
|
2731
|
+
column: 28
|
|
2732
|
+
},
|
|
2733
|
+
end: {
|
|
2734
|
+
line: 147,
|
|
2735
|
+
column: 83
|
|
2736
|
+
}
|
|
2737
|
+
}, {
|
|
2738
|
+
start: {
|
|
2739
|
+
line: 147,
|
|
2740
|
+
column: 88
|
|
2741
|
+
},
|
|
2742
|
+
end: {
|
|
2743
|
+
line: 147,
|
|
2744
|
+
column: 97
|
|
2745
|
+
}
|
|
2746
|
+
}],
|
|
2747
|
+
line: 147
|
|
2748
|
+
},
|
|
2749
|
+
"29": {
|
|
2750
|
+
loc: {
|
|
2751
|
+
start: {
|
|
2752
|
+
line: 147,
|
|
2753
|
+
column: 28
|
|
2754
|
+
},
|
|
2755
|
+
end: {
|
|
2756
|
+
line: 147,
|
|
2757
|
+
column: 83
|
|
2758
|
+
}
|
|
2759
|
+
},
|
|
2760
|
+
type: "cond-expr",
|
|
2761
|
+
locations: [{
|
|
2762
|
+
start: {
|
|
2763
|
+
line: 147,
|
|
2764
|
+
column: 63
|
|
2765
|
+
},
|
|
2766
|
+
end: {
|
|
2767
|
+
line: 147,
|
|
2768
|
+
column: 69
|
|
2769
|
+
}
|
|
2770
|
+
}, {
|
|
2771
|
+
start: {
|
|
2772
|
+
line: 147,
|
|
2773
|
+
column: 72
|
|
2774
|
+
},
|
|
2775
|
+
end: {
|
|
2776
|
+
line: 147,
|
|
2777
|
+
column: 83
|
|
2778
|
+
}
|
|
2779
|
+
}],
|
|
2780
|
+
line: 147
|
|
2781
|
+
},
|
|
2782
|
+
"30": {
|
|
2783
|
+
loc: {
|
|
2784
|
+
start: {
|
|
2785
|
+
line: 147,
|
|
2786
|
+
column: 28
|
|
2787
|
+
},
|
|
2788
|
+
end: {
|
|
2789
|
+
line: 147,
|
|
2790
|
+
column: 60
|
|
2791
|
+
}
|
|
2792
|
+
},
|
|
2793
|
+
type: "binary-expr",
|
|
2794
|
+
locations: [{
|
|
2795
|
+
start: {
|
|
2796
|
+
line: 147,
|
|
2797
|
+
column: 28
|
|
2798
|
+
},
|
|
2799
|
+
end: {
|
|
2800
|
+
line: 147,
|
|
2801
|
+
column: 41
|
|
2802
|
+
}
|
|
2803
|
+
}, {
|
|
2804
|
+
start: {
|
|
2805
|
+
line: 147,
|
|
2806
|
+
column: 45
|
|
2807
|
+
},
|
|
2808
|
+
end: {
|
|
2809
|
+
line: 147,
|
|
2810
|
+
column: 60
|
|
2811
|
+
}
|
|
2812
|
+
}],
|
|
2813
|
+
line: 147
|
|
2814
|
+
},
|
|
2815
|
+
"31": {
|
|
2816
|
+
loc: {
|
|
2817
|
+
start: {
|
|
2818
|
+
line: 155,
|
|
2819
|
+
column: 8
|
|
2820
|
+
},
|
|
2821
|
+
end: {
|
|
2822
|
+
line: 178,
|
|
2823
|
+
column: 9
|
|
2824
|
+
}
|
|
2825
|
+
},
|
|
2826
|
+
type: "if",
|
|
2827
|
+
locations: [{
|
|
2828
|
+
start: {
|
|
2829
|
+
line: 155,
|
|
2830
|
+
column: 8
|
|
2831
|
+
},
|
|
2832
|
+
end: {
|
|
2833
|
+
line: 178,
|
|
2834
|
+
column: 9
|
|
2835
|
+
}
|
|
2836
|
+
}, {
|
|
2837
|
+
start: {
|
|
2838
|
+
line: undefined,
|
|
2839
|
+
column: undefined
|
|
2840
|
+
},
|
|
2841
|
+
end: {
|
|
2842
|
+
line: undefined,
|
|
2843
|
+
column: undefined
|
|
2844
|
+
}
|
|
2845
|
+
}],
|
|
2846
|
+
line: 155
|
|
2847
|
+
},
|
|
2848
|
+
"32": {
|
|
2849
|
+
loc: {
|
|
2850
|
+
start: {
|
|
2851
|
+
line: 156,
|
|
2852
|
+
column: 44
|
|
2853
|
+
},
|
|
2854
|
+
end: {
|
|
2855
|
+
line: 156,
|
|
2856
|
+
column: 91
|
|
2857
|
+
}
|
|
2858
|
+
},
|
|
2859
|
+
type: "binary-expr",
|
|
2860
|
+
locations: [{
|
|
2861
|
+
start: {
|
|
2862
|
+
line: 156,
|
|
2863
|
+
column: 44
|
|
2864
|
+
},
|
|
2865
|
+
end: {
|
|
2866
|
+
line: 156,
|
|
2867
|
+
column: 66
|
|
2868
|
+
}
|
|
2869
|
+
}, {
|
|
2870
|
+
start: {
|
|
2871
|
+
line: 156,
|
|
2872
|
+
column: 70
|
|
2873
|
+
},
|
|
2874
|
+
end: {
|
|
2875
|
+
line: 156,
|
|
2876
|
+
column: 91
|
|
2877
|
+
}
|
|
2878
|
+
}],
|
|
2879
|
+
line: 156
|
|
2880
|
+
},
|
|
2881
|
+
"33": {
|
|
2882
|
+
loc: {
|
|
2883
|
+
start: {
|
|
2884
|
+
line: 157,
|
|
2885
|
+
column: 12
|
|
2886
|
+
},
|
|
2887
|
+
end: {
|
|
2888
|
+
line: 166,
|
|
2889
|
+
column: 13
|
|
2890
|
+
}
|
|
2891
|
+
},
|
|
2892
|
+
type: "if",
|
|
2893
|
+
locations: [{
|
|
2894
|
+
start: {
|
|
2895
|
+
line: 157,
|
|
2896
|
+
column: 12
|
|
2897
|
+
},
|
|
2898
|
+
end: {
|
|
2899
|
+
line: 166,
|
|
2900
|
+
column: 13
|
|
2901
|
+
}
|
|
2902
|
+
}, {
|
|
2903
|
+
start: {
|
|
2904
|
+
line: undefined,
|
|
2905
|
+
column: undefined
|
|
2906
|
+
},
|
|
2907
|
+
end: {
|
|
2908
|
+
line: undefined,
|
|
2909
|
+
column: undefined
|
|
2910
|
+
}
|
|
2911
|
+
}],
|
|
2912
|
+
line: 157
|
|
2913
|
+
},
|
|
2914
|
+
"34": {
|
|
2915
|
+
loc: {
|
|
2916
|
+
start: {
|
|
2917
|
+
line: 157,
|
|
2918
|
+
column: 16
|
|
2919
|
+
},
|
|
2920
|
+
end: {
|
|
2921
|
+
line: 159,
|
|
2922
|
+
column: 69
|
|
2923
|
+
}
|
|
2924
|
+
},
|
|
2925
|
+
type: "binary-expr",
|
|
2926
|
+
locations: [{
|
|
2927
|
+
start: {
|
|
2928
|
+
line: 157,
|
|
2929
|
+
column: 16
|
|
2930
|
+
},
|
|
2931
|
+
end: {
|
|
2932
|
+
line: 157,
|
|
2933
|
+
column: 40
|
|
2934
|
+
}
|
|
2935
|
+
}, {
|
|
2936
|
+
start: {
|
|
2937
|
+
line: 158,
|
|
2938
|
+
column: 16
|
|
2939
|
+
},
|
|
2940
|
+
end: {
|
|
2941
|
+
line: 158,
|
|
2942
|
+
column: 47
|
|
2943
|
+
}
|
|
2944
|
+
}, {
|
|
2945
|
+
start: {
|
|
2946
|
+
line: 159,
|
|
2947
|
+
column: 16
|
|
2948
|
+
},
|
|
2949
|
+
end: {
|
|
2950
|
+
line: 159,
|
|
2951
|
+
column: 69
|
|
2952
|
+
}
|
|
2953
|
+
}],
|
|
2954
|
+
line: 157
|
|
2955
|
+
},
|
|
2956
|
+
"35": {
|
|
2957
|
+
loc: {
|
|
2958
|
+
start: {
|
|
2959
|
+
line: 167,
|
|
2960
|
+
column: 12
|
|
2961
|
+
},
|
|
2962
|
+
end: {
|
|
2963
|
+
line: 175,
|
|
2964
|
+
column: 13
|
|
2965
|
+
}
|
|
2966
|
+
},
|
|
2967
|
+
type: "if",
|
|
2968
|
+
locations: [{
|
|
2969
|
+
start: {
|
|
2970
|
+
line: 167,
|
|
2971
|
+
column: 12
|
|
2972
|
+
},
|
|
2973
|
+
end: {
|
|
2974
|
+
line: 175,
|
|
2975
|
+
column: 13
|
|
2976
|
+
}
|
|
2977
|
+
}, {
|
|
2978
|
+
start: {
|
|
2979
|
+
line: undefined,
|
|
2980
|
+
column: undefined
|
|
2981
|
+
},
|
|
2982
|
+
end: {
|
|
2983
|
+
line: undefined,
|
|
2984
|
+
column: undefined
|
|
2985
|
+
}
|
|
2986
|
+
}],
|
|
2987
|
+
line: 167
|
|
2988
|
+
},
|
|
2989
|
+
"36": {
|
|
2990
|
+
loc: {
|
|
2991
|
+
start: {
|
|
2992
|
+
line: 179,
|
|
2993
|
+
column: 23
|
|
2994
|
+
},
|
|
2995
|
+
end: {
|
|
2996
|
+
line: 179,
|
|
2997
|
+
column: 82
|
|
2998
|
+
}
|
|
2999
|
+
},
|
|
3000
|
+
type: "cond-expr",
|
|
3001
|
+
locations: [{
|
|
3002
|
+
start: {
|
|
3003
|
+
line: 179,
|
|
3004
|
+
column: 34
|
|
3005
|
+
},
|
|
3006
|
+
end: {
|
|
3007
|
+
line: 179,
|
|
3008
|
+
column: 75
|
|
3009
|
+
}
|
|
3010
|
+
}, {
|
|
3011
|
+
start: {
|
|
3012
|
+
line: 179,
|
|
3013
|
+
column: 78
|
|
3014
|
+
},
|
|
3015
|
+
end: {
|
|
3016
|
+
line: 179,
|
|
3017
|
+
column: 82
|
|
3018
|
+
}
|
|
3019
|
+
}],
|
|
3020
|
+
line: 179
|
|
3021
|
+
},
|
|
3022
|
+
"37": {
|
|
3023
|
+
loc: {
|
|
3024
|
+
start: {
|
|
3025
|
+
line: 180,
|
|
3026
|
+
column: 97
|
|
3027
|
+
},
|
|
3028
|
+
end: {
|
|
3029
|
+
line: 180,
|
|
3030
|
+
column: 137
|
|
3031
|
+
}
|
|
3032
|
+
},
|
|
3033
|
+
type: "cond-expr",
|
|
3034
|
+
locations: [{
|
|
3035
|
+
start: {
|
|
3036
|
+
line: 180,
|
|
3037
|
+
column: 115
|
|
3038
|
+
},
|
|
3039
|
+
end: {
|
|
3040
|
+
line: 180,
|
|
3041
|
+
column: 121
|
|
3042
|
+
}
|
|
3043
|
+
}, {
|
|
3044
|
+
start: {
|
|
3045
|
+
line: 180,
|
|
3046
|
+
column: 124
|
|
3047
|
+
},
|
|
3048
|
+
end: {
|
|
3049
|
+
line: 180,
|
|
3050
|
+
column: 137
|
|
3051
|
+
}
|
|
3052
|
+
}],
|
|
3053
|
+
line: 180
|
|
3054
|
+
},
|
|
3055
|
+
"38": {
|
|
3056
|
+
loc: {
|
|
3057
|
+
start: {
|
|
3058
|
+
line: 184,
|
|
3059
|
+
column: 8
|
|
3060
|
+
},
|
|
3061
|
+
end: {
|
|
3062
|
+
line: 186,
|
|
3063
|
+
column: 9
|
|
3064
|
+
}
|
|
3065
|
+
},
|
|
3066
|
+
type: "if",
|
|
3067
|
+
locations: [{
|
|
3068
|
+
start: {
|
|
3069
|
+
line: 184,
|
|
3070
|
+
column: 8
|
|
3071
|
+
},
|
|
3072
|
+
end: {
|
|
3073
|
+
line: 186,
|
|
3074
|
+
column: 9
|
|
3075
|
+
}
|
|
3076
|
+
}, {
|
|
3077
|
+
start: {
|
|
3078
|
+
line: undefined,
|
|
3079
|
+
column: undefined
|
|
3080
|
+
},
|
|
3081
|
+
end: {
|
|
3082
|
+
line: undefined,
|
|
3083
|
+
column: undefined
|
|
3084
|
+
}
|
|
3085
|
+
}],
|
|
3086
|
+
line: 184
|
|
3087
|
+
},
|
|
3088
|
+
"39": {
|
|
3089
|
+
loc: {
|
|
3090
|
+
start: {
|
|
3091
|
+
line: 188,
|
|
3092
|
+
column: 8
|
|
3093
|
+
},
|
|
3094
|
+
end: {
|
|
3095
|
+
line: 190,
|
|
3096
|
+
column: 9
|
|
3097
|
+
}
|
|
3098
|
+
},
|
|
3099
|
+
type: "if",
|
|
3100
|
+
locations: [{
|
|
3101
|
+
start: {
|
|
3102
|
+
line: 188,
|
|
3103
|
+
column: 8
|
|
3104
|
+
},
|
|
3105
|
+
end: {
|
|
3106
|
+
line: 190,
|
|
3107
|
+
column: 9
|
|
3108
|
+
}
|
|
3109
|
+
}, {
|
|
3110
|
+
start: {
|
|
3111
|
+
line: undefined,
|
|
3112
|
+
column: undefined
|
|
3113
|
+
},
|
|
3114
|
+
end: {
|
|
3115
|
+
line: undefined,
|
|
3116
|
+
column: undefined
|
|
3117
|
+
}
|
|
3118
|
+
}],
|
|
3119
|
+
line: 188
|
|
3120
|
+
},
|
|
3121
|
+
"40": {
|
|
3122
|
+
loc: {
|
|
3123
|
+
start: {
|
|
3124
|
+
line: 191,
|
|
3125
|
+
column: 8
|
|
3126
|
+
},
|
|
3127
|
+
end: {
|
|
3128
|
+
line: 201,
|
|
3129
|
+
column: 9
|
|
3130
|
+
}
|
|
3131
|
+
},
|
|
3132
|
+
type: "if",
|
|
3133
|
+
locations: [{
|
|
3134
|
+
start: {
|
|
3135
|
+
line: 191,
|
|
3136
|
+
column: 8
|
|
3137
|
+
},
|
|
3138
|
+
end: {
|
|
3139
|
+
line: 201,
|
|
3140
|
+
column: 9
|
|
3141
|
+
}
|
|
3142
|
+
}, {
|
|
3143
|
+
start: {
|
|
3144
|
+
line: undefined,
|
|
3145
|
+
column: undefined
|
|
3146
|
+
},
|
|
3147
|
+
end: {
|
|
3148
|
+
line: undefined,
|
|
3149
|
+
column: undefined
|
|
3150
|
+
}
|
|
3151
|
+
}],
|
|
3152
|
+
line: 191
|
|
3153
|
+
},
|
|
3154
|
+
"41": {
|
|
3155
|
+
loc: {
|
|
3156
|
+
start: {
|
|
3157
|
+
line: 191,
|
|
3158
|
+
column: 12
|
|
3159
|
+
},
|
|
3160
|
+
end: {
|
|
3161
|
+
line: 191,
|
|
3162
|
+
column: 86
|
|
3163
|
+
}
|
|
3164
|
+
},
|
|
3165
|
+
type: "binary-expr",
|
|
3166
|
+
locations: [{
|
|
3167
|
+
start: {
|
|
3168
|
+
line: 191,
|
|
3169
|
+
column: 12
|
|
3170
|
+
},
|
|
3171
|
+
end: {
|
|
3172
|
+
line: 191,
|
|
3173
|
+
column: 43
|
|
3174
|
+
}
|
|
3175
|
+
}, {
|
|
3176
|
+
start: {
|
|
3177
|
+
line: 191,
|
|
3178
|
+
column: 47
|
|
3179
|
+
},
|
|
3180
|
+
end: {
|
|
3181
|
+
line: 191,
|
|
3182
|
+
column: 86
|
|
3183
|
+
}
|
|
3184
|
+
}],
|
|
3185
|
+
line: 191
|
|
3186
|
+
},
|
|
3187
|
+
"42": {
|
|
3188
|
+
loc: {
|
|
3189
|
+
start: {
|
|
3190
|
+
line: 212,
|
|
3191
|
+
column: 8
|
|
3192
|
+
},
|
|
3193
|
+
end: {
|
|
3194
|
+
line: 217,
|
|
3195
|
+
column: 9
|
|
3196
|
+
}
|
|
3197
|
+
},
|
|
3198
|
+
type: "if",
|
|
3199
|
+
locations: [{
|
|
3200
|
+
start: {
|
|
3201
|
+
line: 212,
|
|
3202
|
+
column: 8
|
|
3203
|
+
},
|
|
3204
|
+
end: {
|
|
3205
|
+
line: 217,
|
|
3206
|
+
column: 9
|
|
3207
|
+
}
|
|
3208
|
+
}, {
|
|
3209
|
+
start: {
|
|
3210
|
+
line: undefined,
|
|
3211
|
+
column: undefined
|
|
3212
|
+
},
|
|
3213
|
+
end: {
|
|
3214
|
+
line: undefined,
|
|
3215
|
+
column: undefined
|
|
3216
|
+
}
|
|
3217
|
+
}],
|
|
3218
|
+
line: 212
|
|
3219
|
+
},
|
|
3220
|
+
"43": {
|
|
3221
|
+
loc: {
|
|
3222
|
+
start: {
|
|
3223
|
+
line: 213,
|
|
3224
|
+
column: 35
|
|
3225
|
+
},
|
|
3226
|
+
end: {
|
|
3227
|
+
line: 213,
|
|
3228
|
+
column: 110
|
|
3229
|
+
}
|
|
3230
|
+
},
|
|
3231
|
+
type: "cond-expr",
|
|
3232
|
+
locations: [{
|
|
3233
|
+
start: {
|
|
3234
|
+
line: 213,
|
|
3235
|
+
column: 89
|
|
3236
|
+
},
|
|
3237
|
+
end: {
|
|
3238
|
+
line: 213,
|
|
3239
|
+
column: 95
|
|
3240
|
+
}
|
|
3241
|
+
}, {
|
|
3242
|
+
start: {
|
|
3243
|
+
line: 213,
|
|
3244
|
+
column: 98
|
|
3245
|
+
},
|
|
3246
|
+
end: {
|
|
3247
|
+
line: 213,
|
|
3248
|
+
column: 110
|
|
3249
|
+
}
|
|
3250
|
+
}],
|
|
3251
|
+
line: 213
|
|
3252
|
+
},
|
|
3253
|
+
"44": {
|
|
3254
|
+
loc: {
|
|
3255
|
+
start: {
|
|
3256
|
+
line: 213,
|
|
3257
|
+
column: 35
|
|
3258
|
+
},
|
|
3259
|
+
end: {
|
|
3260
|
+
line: 213,
|
|
3261
|
+
column: 86
|
|
3262
|
+
}
|
|
3263
|
+
},
|
|
3264
|
+
type: "binary-expr",
|
|
3265
|
+
locations: [{
|
|
3266
|
+
start: {
|
|
3267
|
+
line: 213,
|
|
3268
|
+
column: 35
|
|
3269
|
+
},
|
|
3270
|
+
end: {
|
|
3271
|
+
line: 213,
|
|
3272
|
+
column: 69
|
|
3273
|
+
}
|
|
3274
|
+
}, {
|
|
3275
|
+
start: {
|
|
3276
|
+
line: 213,
|
|
3277
|
+
column: 73
|
|
3278
|
+
},
|
|
3279
|
+
end: {
|
|
3280
|
+
line: 213,
|
|
3281
|
+
column: 86
|
|
3282
|
+
}
|
|
3283
|
+
}],
|
|
3284
|
+
line: 213
|
|
3285
|
+
},
|
|
3286
|
+
"45": {
|
|
3287
|
+
loc: {
|
|
3288
|
+
start: {
|
|
3289
|
+
line: 214,
|
|
3290
|
+
column: 12
|
|
3291
|
+
},
|
|
3292
|
+
end: {
|
|
3293
|
+
line: 216,
|
|
3294
|
+
column: 13
|
|
3295
|
+
}
|
|
3296
|
+
},
|
|
3297
|
+
type: "if",
|
|
3298
|
+
locations: [{
|
|
3299
|
+
start: {
|
|
3300
|
+
line: 214,
|
|
3301
|
+
column: 12
|
|
3302
|
+
},
|
|
3303
|
+
end: {
|
|
3304
|
+
line: 216,
|
|
3305
|
+
column: 13
|
|
3306
|
+
}
|
|
3307
|
+
}, {
|
|
3308
|
+
start: {
|
|
3309
|
+
line: undefined,
|
|
3310
|
+
column: undefined
|
|
3311
|
+
},
|
|
3312
|
+
end: {
|
|
3313
|
+
line: undefined,
|
|
3314
|
+
column: undefined
|
|
3315
|
+
}
|
|
3316
|
+
}],
|
|
3317
|
+
line: 214
|
|
3318
|
+
},
|
|
3319
|
+
"46": {
|
|
3320
|
+
loc: {
|
|
3321
|
+
start: {
|
|
3322
|
+
line: 214,
|
|
3323
|
+
column: 16
|
|
3324
|
+
},
|
|
3325
|
+
end: {
|
|
3326
|
+
line: 214,
|
|
3327
|
+
column: 63
|
|
3328
|
+
}
|
|
3329
|
+
},
|
|
3330
|
+
type: "binary-expr",
|
|
3331
|
+
locations: [{
|
|
3332
|
+
start: {
|
|
3333
|
+
line: 214,
|
|
3334
|
+
column: 16
|
|
3335
|
+
},
|
|
3336
|
+
end: {
|
|
3337
|
+
line: 214,
|
|
3338
|
+
column: 31
|
|
3339
|
+
}
|
|
3340
|
+
}, {
|
|
3341
|
+
start: {
|
|
3342
|
+
line: 214,
|
|
3343
|
+
column: 35
|
|
3344
|
+
},
|
|
3345
|
+
end: {
|
|
3346
|
+
line: 214,
|
|
3347
|
+
column: 63
|
|
3348
|
+
}
|
|
3349
|
+
}],
|
|
3350
|
+
line: 214
|
|
3351
|
+
},
|
|
3352
|
+
"47": {
|
|
3353
|
+
loc: {
|
|
3354
|
+
start: {
|
|
3355
|
+
line: 220,
|
|
3356
|
+
column: 8
|
|
3357
|
+
},
|
|
3358
|
+
end: {
|
|
3359
|
+
line: 222,
|
|
3360
|
+
column: 9
|
|
3361
|
+
}
|
|
3362
|
+
},
|
|
3363
|
+
type: "if",
|
|
3364
|
+
locations: [{
|
|
3365
|
+
start: {
|
|
3366
|
+
line: 220,
|
|
3367
|
+
column: 8
|
|
3368
|
+
},
|
|
3369
|
+
end: {
|
|
3370
|
+
line: 222,
|
|
3371
|
+
column: 9
|
|
3372
|
+
}
|
|
3373
|
+
}, {
|
|
3374
|
+
start: {
|
|
3375
|
+
line: undefined,
|
|
3376
|
+
column: undefined
|
|
3377
|
+
},
|
|
3378
|
+
end: {
|
|
3379
|
+
line: undefined,
|
|
3380
|
+
column: undefined
|
|
3381
|
+
}
|
|
3382
|
+
}],
|
|
3383
|
+
line: 220
|
|
3384
|
+
},
|
|
3385
|
+
"48": {
|
|
3386
|
+
loc: {
|
|
3387
|
+
start: {
|
|
3388
|
+
line: 223,
|
|
3389
|
+
column: 8
|
|
3390
|
+
},
|
|
3391
|
+
end: {
|
|
3392
|
+
line: 255,
|
|
3393
|
+
column: 9
|
|
3394
|
+
}
|
|
3395
|
+
},
|
|
3396
|
+
type: "switch",
|
|
3397
|
+
locations: [{
|
|
3398
|
+
start: {
|
|
3399
|
+
line: 224,
|
|
3400
|
+
column: 12
|
|
3401
|
+
},
|
|
3402
|
+
end: {
|
|
3403
|
+
line: 233,
|
|
3404
|
+
column: 13
|
|
3405
|
+
}
|
|
3406
|
+
}, {
|
|
3407
|
+
start: {
|
|
3408
|
+
line: 234,
|
|
3409
|
+
column: 12
|
|
3410
|
+
},
|
|
3411
|
+
end: {
|
|
3412
|
+
line: 234,
|
|
3413
|
+
column: 21
|
|
3414
|
+
}
|
|
3415
|
+
}, {
|
|
3416
|
+
start: {
|
|
3417
|
+
line: 235,
|
|
3418
|
+
column: 12
|
|
3419
|
+
},
|
|
3420
|
+
end: {
|
|
3421
|
+
line: 235,
|
|
3422
|
+
column: 21
|
|
3423
|
+
}
|
|
3424
|
+
}, {
|
|
3425
|
+
start: {
|
|
3426
|
+
line: 236,
|
|
3427
|
+
column: 12
|
|
3428
|
+
},
|
|
3429
|
+
end: {
|
|
3430
|
+
line: 248,
|
|
3431
|
+
column: 13
|
|
3432
|
+
}
|
|
3433
|
+
}, {
|
|
3434
|
+
start: {
|
|
3435
|
+
line: 249,
|
|
3436
|
+
column: 12
|
|
3437
|
+
},
|
|
3438
|
+
end: {
|
|
3439
|
+
line: 254,
|
|
3440
|
+
column: 13
|
|
3441
|
+
}
|
|
3442
|
+
}],
|
|
3443
|
+
line: 223
|
|
3444
|
+
},
|
|
3445
|
+
"49": {
|
|
3446
|
+
loc: {
|
|
3447
|
+
start: {
|
|
3448
|
+
line: 237,
|
|
3449
|
+
column: 16
|
|
3450
|
+
},
|
|
3451
|
+
end: {
|
|
3452
|
+
line: 246,
|
|
3453
|
+
column: 17
|
|
3454
|
+
}
|
|
3455
|
+
},
|
|
3456
|
+
type: "if",
|
|
3457
|
+
locations: [{
|
|
3458
|
+
start: {
|
|
3459
|
+
line: 237,
|
|
3460
|
+
column: 16
|
|
3461
|
+
},
|
|
3462
|
+
end: {
|
|
3463
|
+
line: 246,
|
|
3464
|
+
column: 17
|
|
3465
|
+
}
|
|
3466
|
+
}, {
|
|
3467
|
+
start: {
|
|
3468
|
+
line: undefined,
|
|
3469
|
+
column: undefined
|
|
3470
|
+
},
|
|
3471
|
+
end: {
|
|
3472
|
+
line: undefined,
|
|
3473
|
+
column: undefined
|
|
3474
|
+
}
|
|
3475
|
+
}],
|
|
3476
|
+
line: 237
|
|
3477
|
+
},
|
|
3478
|
+
"50": {
|
|
3479
|
+
loc: {
|
|
3480
|
+
start: {
|
|
3481
|
+
line: 237,
|
|
3482
|
+
column: 20
|
|
3483
|
+
},
|
|
3484
|
+
end: {
|
|
3485
|
+
line: 237,
|
|
3486
|
+
column: 82
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3489
|
+
type: "binary-expr",
|
|
3490
|
+
locations: [{
|
|
3491
|
+
start: {
|
|
3492
|
+
line: 237,
|
|
3493
|
+
column: 20
|
|
3494
|
+
},
|
|
3495
|
+
end: {
|
|
3496
|
+
line: 237,
|
|
3497
|
+
column: 43
|
|
3498
|
+
}
|
|
3499
|
+
}, {
|
|
3500
|
+
start: {
|
|
3501
|
+
line: 237,
|
|
3502
|
+
column: 48
|
|
3503
|
+
},
|
|
3504
|
+
end: {
|
|
3505
|
+
line: 237,
|
|
3506
|
+
column: 58
|
|
3507
|
+
}
|
|
3508
|
+
}, {
|
|
3509
|
+
start: {
|
|
3510
|
+
line: 237,
|
|
3511
|
+
column: 62
|
|
3512
|
+
},
|
|
3513
|
+
end: {
|
|
3514
|
+
line: 237,
|
|
3515
|
+
column: 81
|
|
3516
|
+
}
|
|
3517
|
+
}],
|
|
3518
|
+
line: 237
|
|
3519
|
+
},
|
|
3520
|
+
"51": {
|
|
3521
|
+
loc: {
|
|
3522
|
+
start: {
|
|
3523
|
+
line: 250,
|
|
3524
|
+
column: 16
|
|
3525
|
+
},
|
|
3526
|
+
end: {
|
|
3527
|
+
line: 253,
|
|
3528
|
+
column: 17
|
|
3529
|
+
}
|
|
3530
|
+
},
|
|
3531
|
+
type: "if",
|
|
3532
|
+
locations: [{
|
|
3533
|
+
start: {
|
|
3534
|
+
line: 250,
|
|
3535
|
+
column: 16
|
|
3536
|
+
},
|
|
3537
|
+
end: {
|
|
3538
|
+
line: 253,
|
|
3539
|
+
column: 17
|
|
3540
|
+
}
|
|
3541
|
+
}, {
|
|
3542
|
+
start: {
|
|
3543
|
+
line: undefined,
|
|
3544
|
+
column: undefined
|
|
3545
|
+
},
|
|
3546
|
+
end: {
|
|
3547
|
+
line: undefined,
|
|
3548
|
+
column: undefined
|
|
3549
|
+
}
|
|
3550
|
+
}],
|
|
3551
|
+
line: 250
|
|
3552
|
+
},
|
|
3553
|
+
"52": {
|
|
3554
|
+
loc: {
|
|
3555
|
+
start: {
|
|
3556
|
+
line: 260,
|
|
3557
|
+
column: 8
|
|
3558
|
+
},
|
|
3559
|
+
end: {
|
|
3560
|
+
line: 289,
|
|
3561
|
+
column: 9
|
|
3562
|
+
}
|
|
3563
|
+
},
|
|
3564
|
+
type: "switch",
|
|
3565
|
+
locations: [{
|
|
3566
|
+
start: {
|
|
3567
|
+
line: 261,
|
|
3568
|
+
column: 12
|
|
3569
|
+
},
|
|
3570
|
+
end: {
|
|
3571
|
+
line: 264,
|
|
3572
|
+
column: 13
|
|
3573
|
+
}
|
|
3574
|
+
}, {
|
|
3575
|
+
start: {
|
|
3576
|
+
line: 265,
|
|
3577
|
+
column: 12
|
|
3578
|
+
},
|
|
3579
|
+
end: {
|
|
3580
|
+
line: 268,
|
|
3581
|
+
column: 13
|
|
3582
|
+
}
|
|
3583
|
+
}, {
|
|
3584
|
+
start: {
|
|
3585
|
+
line: 269,
|
|
3586
|
+
column: 12
|
|
3587
|
+
},
|
|
3588
|
+
end: {
|
|
3589
|
+
line: 272,
|
|
3590
|
+
column: 13
|
|
3591
|
+
}
|
|
3592
|
+
}, {
|
|
3593
|
+
start: {
|
|
3594
|
+
line: 273,
|
|
3595
|
+
column: 12
|
|
3596
|
+
},
|
|
3597
|
+
end: {
|
|
3598
|
+
line: 276,
|
|
3599
|
+
column: 13
|
|
3600
|
+
}
|
|
3601
|
+
}, {
|
|
3602
|
+
start: {
|
|
3603
|
+
line: 277,
|
|
3604
|
+
column: 12
|
|
3605
|
+
},
|
|
3606
|
+
end: {
|
|
3607
|
+
line: 288,
|
|
3608
|
+
column: 13
|
|
3609
|
+
}
|
|
3610
|
+
}],
|
|
3611
|
+
line: 260
|
|
3612
|
+
}
|
|
3613
|
+
},
|
|
3614
|
+
s: {
|
|
3615
|
+
"0": 0,
|
|
3616
|
+
"1": 0,
|
|
3617
|
+
"2": 0,
|
|
3618
|
+
"3": 0,
|
|
3619
|
+
"4": 0,
|
|
3620
|
+
"5": 0,
|
|
3621
|
+
"6": 0,
|
|
3622
|
+
"7": 0,
|
|
3623
|
+
"8": 0,
|
|
3624
|
+
"9": 0,
|
|
3625
|
+
"10": 0,
|
|
3626
|
+
"11": 0,
|
|
3627
|
+
"12": 0,
|
|
3628
|
+
"13": 0,
|
|
3629
|
+
"14": 0,
|
|
3630
|
+
"15": 0,
|
|
3631
|
+
"16": 0,
|
|
3632
|
+
"17": 0,
|
|
3633
|
+
"18": 0,
|
|
3634
|
+
"19": 0,
|
|
3635
|
+
"20": 0,
|
|
3636
|
+
"21": 0,
|
|
3637
|
+
"22": 0,
|
|
3638
|
+
"23": 0,
|
|
3639
|
+
"24": 0,
|
|
3640
|
+
"25": 0,
|
|
3641
|
+
"26": 0,
|
|
3642
|
+
"27": 0,
|
|
3643
|
+
"28": 0,
|
|
3644
|
+
"29": 0,
|
|
3645
|
+
"30": 0,
|
|
3646
|
+
"31": 0,
|
|
3647
|
+
"32": 0,
|
|
3648
|
+
"33": 0,
|
|
3649
|
+
"34": 0,
|
|
3650
|
+
"35": 0,
|
|
3651
|
+
"36": 0,
|
|
3652
|
+
"37": 0,
|
|
3653
|
+
"38": 0,
|
|
3654
|
+
"39": 0,
|
|
3655
|
+
"40": 0,
|
|
3656
|
+
"41": 0,
|
|
3657
|
+
"42": 0,
|
|
3658
|
+
"43": 0,
|
|
3659
|
+
"44": 0,
|
|
3660
|
+
"45": 0,
|
|
3661
|
+
"46": 0,
|
|
3662
|
+
"47": 0,
|
|
3663
|
+
"48": 0,
|
|
3664
|
+
"49": 0,
|
|
3665
|
+
"50": 0,
|
|
3666
|
+
"51": 0,
|
|
3667
|
+
"52": 0,
|
|
3668
|
+
"53": 0,
|
|
3669
|
+
"54": 0,
|
|
3670
|
+
"55": 0,
|
|
3671
|
+
"56": 0,
|
|
3672
|
+
"57": 0,
|
|
3673
|
+
"58": 0,
|
|
3674
|
+
"59": 0,
|
|
3675
|
+
"60": 0,
|
|
3676
|
+
"61": 0,
|
|
3677
|
+
"62": 0,
|
|
3678
|
+
"63": 0,
|
|
3679
|
+
"64": 0,
|
|
3680
|
+
"65": 0,
|
|
3681
|
+
"66": 0,
|
|
3682
|
+
"67": 0,
|
|
3683
|
+
"68": 0,
|
|
3684
|
+
"69": 0,
|
|
3685
|
+
"70": 0,
|
|
3686
|
+
"71": 0,
|
|
3687
|
+
"72": 0,
|
|
3688
|
+
"73": 0,
|
|
3689
|
+
"74": 0,
|
|
3690
|
+
"75": 0,
|
|
3691
|
+
"76": 0,
|
|
3692
|
+
"77": 0,
|
|
3693
|
+
"78": 0,
|
|
3694
|
+
"79": 0,
|
|
3695
|
+
"80": 0,
|
|
3696
|
+
"81": 0,
|
|
3697
|
+
"82": 0,
|
|
3698
|
+
"83": 0,
|
|
3699
|
+
"84": 0,
|
|
3700
|
+
"85": 0,
|
|
3701
|
+
"86": 0,
|
|
3702
|
+
"87": 0,
|
|
3703
|
+
"88": 0,
|
|
3704
|
+
"89": 0,
|
|
3705
|
+
"90": 0,
|
|
3706
|
+
"91": 0,
|
|
3707
|
+
"92": 0,
|
|
3708
|
+
"93": 0,
|
|
3709
|
+
"94": 0,
|
|
3710
|
+
"95": 0,
|
|
3711
|
+
"96": 0,
|
|
3712
|
+
"97": 0,
|
|
3713
|
+
"98": 0,
|
|
3714
|
+
"99": 0,
|
|
3715
|
+
"100": 0,
|
|
3716
|
+
"101": 0,
|
|
3717
|
+
"102": 0,
|
|
3718
|
+
"103": 0,
|
|
3719
|
+
"104": 0,
|
|
3720
|
+
"105": 0,
|
|
3721
|
+
"106": 0,
|
|
3722
|
+
"107": 0,
|
|
3723
|
+
"108": 0,
|
|
3724
|
+
"109": 0,
|
|
3725
|
+
"110": 0,
|
|
3726
|
+
"111": 0,
|
|
3727
|
+
"112": 0,
|
|
3728
|
+
"113": 0,
|
|
3729
|
+
"114": 0,
|
|
3730
|
+
"115": 0,
|
|
3731
|
+
"116": 0,
|
|
3732
|
+
"117": 0,
|
|
3733
|
+
"118": 0,
|
|
3734
|
+
"119": 0,
|
|
3735
|
+
"120": 0,
|
|
3736
|
+
"121": 0,
|
|
3737
|
+
"122": 0,
|
|
3738
|
+
"123": 0,
|
|
3739
|
+
"124": 0,
|
|
3740
|
+
"125": 0,
|
|
3741
|
+
"126": 0,
|
|
3742
|
+
"127": 0,
|
|
3743
|
+
"128": 0,
|
|
3744
|
+
"129": 0,
|
|
3745
|
+
"130": 0
|
|
3746
|
+
},
|
|
3747
|
+
f: {
|
|
3748
|
+
"0": 0,
|
|
3749
|
+
"1": 0,
|
|
3750
|
+
"2": 0,
|
|
3751
|
+
"3": 0,
|
|
3752
|
+
"4": 0,
|
|
3753
|
+
"5": 0,
|
|
3754
|
+
"6": 0,
|
|
3755
|
+
"7": 0,
|
|
3756
|
+
"8": 0,
|
|
3757
|
+
"9": 0,
|
|
3758
|
+
"10": 0,
|
|
3759
|
+
"11": 0,
|
|
3760
|
+
"12": 0,
|
|
3761
|
+
"13": 0,
|
|
3762
|
+
"14": 0,
|
|
3763
|
+
"15": 0,
|
|
3764
|
+
"16": 0,
|
|
3765
|
+
"17": 0,
|
|
3766
|
+
"18": 0
|
|
3767
|
+
},
|
|
3768
|
+
b: {
|
|
3769
|
+
"0": [0, 0, 0],
|
|
3770
|
+
"1": [0, 0],
|
|
3771
|
+
"2": [0, 0],
|
|
3772
|
+
"3": [0, 0],
|
|
3773
|
+
"4": [0, 0],
|
|
3774
|
+
"5": [0, 0],
|
|
3775
|
+
"6": [0, 0],
|
|
3776
|
+
"7": [0, 0],
|
|
3777
|
+
"8": [0, 0],
|
|
3778
|
+
"9": [0, 0],
|
|
3779
|
+
"10": [0, 0],
|
|
3780
|
+
"11": [0, 0],
|
|
3781
|
+
"12": [0, 0],
|
|
3782
|
+
"13": [0, 0],
|
|
3783
|
+
"14": [0, 0],
|
|
3784
|
+
"15": [0, 0],
|
|
3785
|
+
"16": [0, 0],
|
|
3786
|
+
"17": [0, 0],
|
|
3787
|
+
"18": [0, 0],
|
|
3788
|
+
"19": [0, 0],
|
|
3789
|
+
"20": [0, 0],
|
|
3790
|
+
"21": [0, 0],
|
|
3791
|
+
"22": [0, 0],
|
|
3792
|
+
"23": [0, 0],
|
|
3793
|
+
"24": [0, 0],
|
|
3794
|
+
"25": [0, 0],
|
|
3795
|
+
"26": [0, 0],
|
|
3796
|
+
"27": [0, 0],
|
|
3797
|
+
"28": [0, 0],
|
|
3798
|
+
"29": [0, 0],
|
|
3799
|
+
"30": [0, 0],
|
|
3800
|
+
"31": [0, 0],
|
|
3801
|
+
"32": [0, 0],
|
|
3802
|
+
"33": [0, 0],
|
|
3803
|
+
"34": [0, 0, 0],
|
|
3804
|
+
"35": [0, 0],
|
|
3805
|
+
"36": [0, 0],
|
|
3806
|
+
"37": [0, 0],
|
|
3807
|
+
"38": [0, 0],
|
|
3808
|
+
"39": [0, 0],
|
|
3809
|
+
"40": [0, 0],
|
|
3810
|
+
"41": [0, 0],
|
|
3811
|
+
"42": [0, 0],
|
|
3812
|
+
"43": [0, 0],
|
|
3813
|
+
"44": [0, 0],
|
|
3814
|
+
"45": [0, 0],
|
|
3815
|
+
"46": [0, 0],
|
|
3816
|
+
"47": [0, 0],
|
|
3817
|
+
"48": [0, 0, 0, 0, 0],
|
|
3818
|
+
"49": [0, 0],
|
|
3819
|
+
"50": [0, 0, 0],
|
|
3820
|
+
"51": [0, 0],
|
|
3821
|
+
"52": [0, 0, 0, 0, 0]
|
|
3822
|
+
},
|
|
3823
|
+
inputSourceMap: {
|
|
3824
|
+
version: 3,
|
|
3825
|
+
file: "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts",
|
|
3826
|
+
sources: ["/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts"],
|
|
3827
|
+
names: [],
|
|
3828
|
+
mappings: ";;;;;;AAAA,oEAA4E;AAC5E,kDAM6B;AAC7B,4DAAuD;AAEvD,IAAK,kBAIJ;AAJD,WAAK,kBAAkB;IACrB,mEAAQ,CAAA;IACR,mEAAQ,CAAA;IACR,2DAAI,CAAA;AACN,CAAC,EAJI,kBAAkB,KAAlB,kBAAkB,QAItB;AAED,IAAK,WAMJ;AAND,WAAK,WAAW;IACd,6CAAI,CAAA;IACJ,+DAAa,CAAA;IACb,mDAAO,CAAA;IACP,+CAAK,CAAA;IACL,iEAAc,CAAA;AAChB,CAAC,EANI,WAAW,KAAX,WAAW,QAMf;AAsBD,MAAM,uBAAuB,GAAW,CAAC,CAAC;AAC1C,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAE7C,MAAa,sBAAsB;IAkBjC,YAAmB,OAAuC,EAAE,WAAwB;;QAClF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;QAEhD,IAAI,CAAC,sBAAsB,GAAG,mCAAwB,CAAC,oBAAoB,CAAC;QAC5E,IAAI,CAAC,mCAAmC,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAA,OAAO,CAAC,mBAAmB,mCAAI,+BAA+B,CAAC;IAC7F,CAAC;IAjBD,IAAW,mBAAmB;;QAC5B,OAAO,MAAA,mCAAwB,CAAC,sBAAsB,mCAAI,IAAI,CAAC,mCAAmC,CAAC;IACrG,CAAC;IAiBM,KAAK,CAAC,+BAA+B,CAC1C,QAAmB,EACnB,OAAe;QAEf,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SACrD;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAEM,KAAK,CAAC,2BAA2B,CACtC,QAAmB,EACnB,OAAe,EACf,YAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,QAAQ,CAAC,cAAc,CAAC,+DAA+D,CAAC,CAAC;YACzF,OAAO,KAAK,CAAC;SACd;QAED,QAAQ,CAAC,cAAc,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;QAEpE,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE;gBAC3C,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,OAAO,MAAM,KAAK,KAAK,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,QAAmB,EAAE,UAAkB;QAC9E,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,IAAI;SACrB,EACD,KAAK,EAAE,gBAAiC,EAAE,EAAE;YAC1C,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBACtD,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAAC,QAAmB;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,iEAAiE,IAAI,CAAC,WAAW,4FAA4F;gBAC7K,mGAAmG;gBACnG,sCAAsC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CACzD,CAAC;SACH;QAED,MAAM,GAAG,GAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9F,QAAQ,CAAC,gBAAgB,CAAC,YAAY,GAAG,sBAAsB,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,8BAAU,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE5F,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,WAAW,CAAC,CAAC;SAC/E;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAE7C,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE7D,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,QAAmB;QAC3D,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,IAAI;SACrB,EACD,KAAK,EAAE,gBAAiC,EAAE,EAAE;YAC1C,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,MAAM,YAAY,GAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,mCAAmC,EAAE;gBAC5C,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACxC;YAED,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,OASnB;QACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAC7F,MAAM,qBAAqB,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,kBAAkB,CAAC,QAAQ,CAAC;QAC/E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAE5C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC;SACrC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACtB;SACF;QAED,MAAM,UAAU,GAAG,CAAC,IAA2B,aAA3B,IAAI,uBAAJ,IAAI,CAAyB,MAAM,KAAI,SAAS,CAAC;QAErE,QAAQ,CAAC,cAAc,CAAC,+BAA+B,MAAM,IAAI,GAAG,IAAI,UAAU,QAAQ,CAAC,CAAC;QAE5F,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;YAEhF,IACE,CAAC,uBAAuB;gBACxB,OAAO,WAAW,KAAK,QAAQ;gBAC/B,qBAAqB,KAAK,kBAAkB,CAAC,QAAQ,EACrD;gBACA,kFAAkF;gBAClF,iFAAiF;gBACjF,qEAAqE;gBACrE,EAAE;gBACF,wFAAwF;gBACxF,OAAO,MAAM,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,iBAAiB,EAAE,kBAAkB,CAAC,QAAQ,IAAG,CAAC;aACzF;YAED,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE;gBAC3B,yDAAyD;gBACzD,sFAAsF;gBACtF,gGAAgG;gBAChG,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,sCAAsC;gBAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAElE,MAAM,yBAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAE9B,OAAO,MAAM,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,IAAG,CAAC;aAC/E;YAED,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAqB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7F,QAAQ,CAAC,cAAc,CACrB,uCAAuC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAC3D,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MACpC,QAAQ,CACT,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,KAAK,CAAC,kBAAkB,CAAC,OAA2B;QAC1D,IAAI,OAAO,KAAK,kBAAkB,CAAC,IAAI,EAAE;YACvC,OAAO;SACR;QAED,IAAI,WAAW,GAAuB,IAAI,CAAC,sBAAsB,CAAC;QAElE,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,WAAW,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;SACxD;QAED,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,KAAK,kBAAkB,CAAC,QAAQ,EAAE;YAC9E,MAAM,IAAI,KAAK,CACb;gBACE,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B;gBAC3D,6FAA6F;gBAC7F,EAAE;gBACF,4BAA4B;gBAC5B,EAAE;gBACF,iDAAiD;gBACjD,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;SACH;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,2BAA2B;;QACvC,IAAI,UAA6C,CAAC;QAElD,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,KAAK;SACtB,EACD,CAAC,gBAAiC,EAAE,EAAE;YACpC,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1E,CAAC,CACF,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,MAAM,cAAc,GAAuB,MAAA,UAAU,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;YACzE,IAAI,CAAC,cAAc,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;gBACnD,OAAO,UAAU,CAAC,UAAU,CAAC;aAC9B;SACF;IACH,CAAC;IAEO,eAAe,CAAC,aAAqB,EAAE,QAAkB,EAAE,UAAmB;QACpF,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO,WAAW,CAAC,IAAI,CAAC;SACzB;QAED,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACvB,KAAK,GAAG,CAAC,CAAC;gBACR,+EAA+E;gBAC/E,4DAA4D;gBAC5D,EAAE;gBACF,4EAA4E;gBAC5E,0EAA0E;gBAC1E,gCAAgC;gBAEhC,kEAAkE;gBAClE,OAAO,WAAW,CAAC,aAAa,CAAC;aAClC;YAED,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC,CAAC;gBACR,IAAI,aAAa,KAAK,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAClE,+CAA+C;oBAC/C,qHAAqH;oBACrH,6HAA6H;oBAC7H,qGAAqG;oBACrG,mEAAmE;oBACnE,2GAA2G;oBAC3G,qFAAqF;oBACrF,OAAO,WAAW,CAAC,IAAI,CAAC;iBACzB;gBAED,OAAO,WAAW,CAAC,cAAc,CAAC;aACnC;YAED,KAAK,GAAG,CAAC,CAAC;gBACR,IAAI,aAAa,KAAK,KAAK,EAAE;oBAC3B,+CAA+C;oBAC/C,OAAO,WAAW,CAAC,IAAI,CAAC;iBACzB;aACF;SACF;QAED,+CAA+C;QAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEO,cAAc,CACpB,QAAmB,EACnB,aAAqB,EACrB,QAAkB,EAClB,UAAmB,EACnB,OAAe;QAEf,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;YACjE,OAAO,CAAC,CAAC;gBACP,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvF,MAAM;aACP;YAED,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;gBACxB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACzF,MAAM;aACP;YAED,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC9B,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClF,MAAM;aACP;YAED,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;gBACrB,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvF,MAAM;aACP;YAED,KAAK,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb;oBACE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,GAAG;oBAC9E,mDAAmD;oBACnD,6FAA6F;oBAC7F,EAAE;oBACF,4BAA4B;oBAC5B,EAAE;oBACF,iDAAiD;oBACjD,EAAE;iBACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;aACH;SACF;IACH,CAAC;CACF;AAxXD,wDAwXC",
|
|
3829
|
+
sourcesContent: ["import { ITerminal, Executable, Async } from '@rushstack/node-core-library';\nimport {\n ICloudBuildCacheProvider,\n ICredentialCacheEntry,\n CredentialCache,\n RushSession,\n EnvironmentConfiguration\n} from '@rushstack/rush-sdk';\nimport fetch, { BodyInit, Response } from 'node-fetch';\n\nenum CredentialsOptions {\n Optional,\n Required,\n Omit\n}\n\nenum FailureType {\n None,\n Informational,\n Warning,\n Error,\n Authentication\n}\n\nexport interface IHttpBuildCacheTokenHandler {\n exec: string;\n args?: string[];\n}\n\n/**\n * @public\n */\nexport interface IHttpBuildCacheProviderOptions {\n url: string;\n tokenHandler?: IHttpBuildCacheTokenHandler;\n uploadMethod?: string;\n minHttpRetryDelayMs?: number;\n headers?: Record<string, string>;\n cacheKeyPrefix?: string;\n isCacheWriteAllowed: boolean;\n pluginName: string;\n rushProjectRoot: string;\n}\n\nconst MAX_HTTP_CACHE_ATTEMPTS: number = 3;\nconst DEFAULT_MIN_HTTP_RETRY_DELAY_MS = 2500;\n\nexport class HttpBuildCacheProvider implements ICloudBuildCacheProvider {\n private readonly _pluginName: string;\n private readonly _rushSession: RushSession;\n private readonly _rushProjectRoot: string;\n private readonly _environmentCredential: string | undefined;\n private readonly _isCacheWriteAllowedByConfiguration: boolean;\n private readonly _url: URL;\n private readonly _uploadMethod: string;\n private readonly _headers: Record<string, string>;\n private readonly _cacheKeyPrefix: string;\n private readonly _tokenHandler: IHttpBuildCacheTokenHandler | undefined;\n private readonly _minHttpRetryDelayMs: number;\n private __credentialCacheId: string | undefined;\n\n public get isCacheWriteAllowed(): boolean {\n return EnvironmentConfiguration.buildCacheWriteAllowed ?? this._isCacheWriteAllowedByConfiguration;\n }\n\n public constructor(options: IHttpBuildCacheProviderOptions, rushSession: RushSession) {\n this._pluginName = options.pluginName;\n this._rushSession = rushSession;\n this._rushProjectRoot = options.rushProjectRoot;\n\n this._environmentCredential = EnvironmentConfiguration.buildCacheCredential;\n this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;\n this._url = new URL(options.url.endsWith('/') ? options.url : options.url + '/');\n this._uploadMethod = options.uploadMethod ?? 'PUT';\n this._headers = options.headers ?? {};\n this._tokenHandler = options.tokenHandler;\n this._cacheKeyPrefix = options.cacheKeyPrefix ?? '';\n this._minHttpRetryDelayMs = options.minHttpRetryDelayMs ?? DEFAULT_MIN_HTTP_RETRY_DELAY_MS;\n }\n\n public async tryGetCacheEntryBufferByIdAsync(\n terminal: ITerminal,\n cacheId: string\n ): Promise<Buffer | undefined> {\n try {\n const result = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: 'GET',\n body: undefined,\n warningText: 'Could not get cache entry',\n readBody: true,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return Buffer.isBuffer(result) ? result : undefined;\n } catch (e) {\n terminal.writeWarningLine(`Error getting cache entry: ${e}`);\n return undefined;\n }\n }\n\n public async trySetCacheEntryBufferAsync(\n terminal: ITerminal,\n cacheId: string,\n objectBuffer: Buffer\n ): Promise<boolean> {\n if (!this.isCacheWriteAllowed) {\n terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');\n return false;\n }\n\n terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);\n\n try {\n const result = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: this._uploadMethod,\n body: objectBuffer,\n warningText: 'Could not write cache entry',\n readBody: false,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return result !== false;\n } catch (e) {\n terminal.writeWarningLine(`Error uploading cache entry: ${e}`);\n return false;\n }\n }\n\n public async updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.setCacheEntry(this._credentialCacheId, {\n credential: credential\n });\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n public async updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise<void> {\n if (!this._tokenHandler) {\n throw new Error(\n `The interactive cloud credentials flow is not configured.\\n` +\n `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` +\n `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` +\n `'Authorization' header expected by ${this._url.href}`\n );\n }\n\n const cmd: string = `${this._tokenHandler.exec} ${(this._tokenHandler.args || []).join(' ')}`;\n terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);\n const result = Executable.spawnSync(this._tokenHandler.exec, this._tokenHandler.args || []);\n\n terminal.writeErrorLine(result.stderr);\n\n if (result.error) {\n throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);\n }\n\n const credential = result.stdout.trim();\n terminal.writeVerboseLine('Got credentials');\n\n await this.updateCachedCredentialAsync(terminal, credential);\n\n terminal.writeLine('Updated credentials cache');\n }\n\n public async deleteCachedCredentialsAsync(terminal: ITerminal): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.deleteCacheEntry(this._credentialCacheId);\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n private get _credentialCacheId(): string {\n if (!this.__credentialCacheId) {\n const cacheIdParts: string[] = [this._url.href];\n\n if (this._isCacheWriteAllowedByConfiguration) {\n cacheIdParts.push('cacheWriteAllowed');\n }\n\n this.__credentialCacheId = cacheIdParts.join('|');\n }\n\n return this.__credentialCacheId;\n }\n\n private async _http(options: {\n terminal: ITerminal;\n relUrl: string;\n method: string;\n body: BodyInit | undefined;\n warningText: string;\n readBody: boolean;\n maxAttempts: number;\n credentialOptions?: CredentialsOptions;\n }): Promise<Buffer | boolean> {\n const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;\n const safeCredentialOptions = credentialOptions ?? CredentialsOptions.Optional;\n const credentials = await this._tryGetCredentials(safeCredentialOptions);\n const url = new URL(relUrl, this._url).href;\n\n const headers: Record<string, string> = {};\n if (typeof credentials === 'string') {\n headers.Authorization = credentials;\n }\n\n for (const [key, value] of Object.entries(this._headers)) {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n }\n\n const bodyLength = (body as { length: number })?.length || 'unknown';\n\n terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);\n\n const response = await fetch(url, {\n method: method,\n headers: headers,\n body: body,\n redirect: 'follow'\n });\n\n if (!response.ok) {\n const isNonCredentialResponse = response.status >= 500 && response.status < 600;\n\n if (\n !isNonCredentialResponse &&\n typeof credentials !== 'string' &&\n safeCredentialOptions === CredentialsOptions.Optional\n ) {\n // If we don't already have credentials yet, and we got a response from the server\n // that is a \"normal\" failure (4xx), then we assume that credentials are probably\n // required. Re-attempt the request, requiring credentials this time.\n //\n // This counts as part of the \"first attempt\", so it is not included in the max attempts\n return await this._http({ ...options, credentialOptions: CredentialsOptions.Required });\n }\n\n if (options.maxAttempts > 1) {\n // Pause a bit before retrying in case the server is busy\n // Add some random jitter to the retry so we can spread out load on the remote service\n // A proper solution might add exponential back off in case the retry count is high (10 or more)\n const factor = 1.0 + Math.random(); // A random number between 1.0 and 2.0\n const retryDelay = Math.floor(factor * this._minHttpRetryDelayMs);\n\n await Async.sleep(retryDelay);\n\n return await this._http({ ...options, maxAttempts: options.maxAttempts - 1 });\n }\n\n this._reportFailure(terminal, method, response, false, warningText);\n return false;\n }\n\n const result: Buffer | boolean = readBody ? Buffer.from(await response.arrayBuffer()) : true;\n\n terminal.writeDebugLine(\n `[http-build-cache] actual response: ${response.status} ${url} ${\n result === true ? 'true' : result.length\n } bytes`\n );\n\n return result;\n }\n\n private async _tryGetCredentials(options: CredentialsOptions.Required): Promise<string>;\n private async _tryGetCredentials(options: CredentialsOptions.Optional): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions.Omit): Promise<undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined> {\n if (options === CredentialsOptions.Omit) {\n return;\n }\n\n let credentials: string | undefined = this._environmentCredential;\n\n if (credentials === undefined) {\n credentials = await this._tryGetCredentialsFromCache();\n }\n\n if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {\n throw new Error(\n [\n `Credentials for ${this._url.href} have not been provided.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n\n return credentials;\n }\n\n private async _tryGetCredentialsFromCache(): Promise<string | undefined> {\n let cacheEntry: ICredentialCacheEntry | undefined;\n\n await CredentialCache.usingAsync(\n {\n supportEditing: false\n },\n (credentialsCache: CredentialCache) => {\n cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);\n }\n );\n\n if (cacheEntry) {\n const expirationTime: number | undefined = cacheEntry.expires?.getTime();\n if (!expirationTime || expirationTime >= Date.now()) {\n return cacheEntry.credential;\n }\n }\n }\n\n private _getFailureType(requestMethod: string, response: Response, isRedirect: boolean): FailureType {\n if (response.ok) {\n return FailureType.None;\n }\n\n switch (response.status) {\n case 503: {\n // We select 503 specifically because this represents \"service unavailable\" and\n // \"rate limit throttle\" errors, which are transient issues.\n //\n // There are other 5xx errors, such as 501, that can occur if the request is\n // malformed, so as a general rule we want to let through other 5xx errors\n // so the user can troubleshoot.\n\n // Don't fail production builds with warnings for transient issues\n return FailureType.Informational;\n }\n\n case 401:\n case 403:\n case 407: {\n if (requestMethod === 'GET' && (isRedirect || response.redirected)) {\n // Cache misses for GET requests are not errors\n // This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.\n // We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.\n // i.e The authentication header was accepted for the first request and therefore subsequent failures\n // where it was not present should not be attributed to the header.\n // This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.\n // Those services then usually treat the 404 as a 403 to prevent leaking information.\n return FailureType.None;\n }\n\n return FailureType.Authentication;\n }\n\n case 404: {\n if (requestMethod === 'GET') {\n // Cache misses for GET requests are not errors\n return FailureType.None;\n }\n }\n }\n\n // Let dev builds succeed, let Prod builds fail\n return FailureType.Warning;\n }\n\n private _reportFailure(\n terminal: ITerminal,\n requestMethod: string,\n response: Response,\n isRedirect: boolean,\n message: string\n ): void {\n switch (this._getFailureType(requestMethod, response, isRedirect)) {\n default: {\n terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Warning: {\n terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Informational: {\n terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.None: {\n terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Authentication: {\n throw new Error(\n [\n `${this._url.href} responded with ${response.status}: ${response.statusText}.`,\n `Credentials may be misconfigured or have expired.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n }\n }\n}\n"]
|
|
3830
|
+
},
|
|
3831
|
+
_coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
|
|
3832
|
+
hash: "f39662f2cf6af1c0d874c48f29702c0c9cefda13"
|
|
3833
|
+
};
|
|
3834
|
+
var coverage = global[gcv] || (global[gcv] = {});
|
|
3835
|
+
if (!coverage[path] || coverage[path].hash !== hash) {
|
|
3836
|
+
coverage[path] = coverageData;
|
|
3837
|
+
}
|
|
3838
|
+
var actualCoverage = coverage[path];
|
|
3839
|
+
{
|
|
3840
|
+
// @ts-ignore
|
|
3841
|
+
cov_ms2xfswbr = function () {
|
|
3842
|
+
return actualCoverage;
|
|
3843
|
+
};
|
|
3844
|
+
}
|
|
3845
|
+
return actualCoverage;
|
|
3846
|
+
}
|
|
3847
|
+
cov_ms2xfswbr();
|
|
3848
|
+
var __importDefault =
|
|
3849
|
+
/* istanbul ignore next */
|
|
3850
|
+
(cov_ms2xfswbr().s[0]++,
|
|
3851
|
+
/* istanbul ignore next */
|
|
3852
|
+
(cov_ms2xfswbr().b[0][0]++, this) &&
|
|
3853
|
+
/* istanbul ignore next */
|
|
3854
|
+
(cov_ms2xfswbr().b[0][1]++, this.__importDefault) ||
|
|
3855
|
+
/* istanbul ignore next */
|
|
3856
|
+
(cov_ms2xfswbr().b[0][2]++, function (mod) {
|
|
3857
|
+
/* istanbul ignore next */
|
|
3858
|
+
cov_ms2xfswbr().f[0]++;
|
|
3859
|
+
cov_ms2xfswbr().s[1]++;
|
|
3860
|
+
return (
|
|
3861
|
+
/* istanbul ignore next */
|
|
3862
|
+
(cov_ms2xfswbr().b[2][0]++, mod) &&
|
|
3863
|
+
/* istanbul ignore next */
|
|
3864
|
+
(cov_ms2xfswbr().b[2][1]++, mod.__esModule) ?
|
|
3865
|
+
/* istanbul ignore next */
|
|
3866
|
+
(cov_ms2xfswbr().b[1][0]++, mod) :
|
|
3867
|
+
/* istanbul ignore next */
|
|
3868
|
+
(cov_ms2xfswbr().b[1][1]++, {
|
|
3869
|
+
"default": mod
|
|
3870
|
+
})
|
|
3871
|
+
);
|
|
3872
|
+
}));
|
|
3873
|
+
/* istanbul ignore next */
|
|
3874
|
+
cov_ms2xfswbr().s[2]++;
|
|
3875
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3876
|
+
value: true
|
|
3877
|
+
});
|
|
3878
|
+
/* istanbul ignore next */
|
|
3879
|
+
cov_ms2xfswbr().s[3]++;
|
|
3880
|
+
exports.HttpBuildCacheProvider = void 0;
|
|
3881
|
+
const node_core_library_1 =
|
|
3882
|
+
/* istanbul ignore next */
|
|
3883
|
+
(cov_ms2xfswbr().s[4]++, require("@rushstack/node-core-library"));
|
|
3884
|
+
const rush_sdk_1 =
|
|
3885
|
+
/* istanbul ignore next */
|
|
3886
|
+
(cov_ms2xfswbr().s[5]++, require("@rushstack/rush-sdk"));
|
|
3887
|
+
const node_fetch_1 =
|
|
3888
|
+
/* istanbul ignore next */
|
|
3889
|
+
(cov_ms2xfswbr().s[6]++, __importDefault(require("node-fetch")));
|
|
3890
|
+
var CredentialsOptions;
|
|
3891
|
+
/* istanbul ignore next */
|
|
3892
|
+
cov_ms2xfswbr().s[7]++;
|
|
3893
|
+
(function (CredentialsOptions) {
|
|
3894
|
+
/* istanbul ignore next */
|
|
3895
|
+
cov_ms2xfswbr().f[1]++;
|
|
3896
|
+
cov_ms2xfswbr().s[8]++;
|
|
3897
|
+
CredentialsOptions[CredentialsOptions["Optional"] = 0] = "Optional";
|
|
3898
|
+
/* istanbul ignore next */
|
|
3899
|
+
cov_ms2xfswbr().s[9]++;
|
|
3900
|
+
CredentialsOptions[CredentialsOptions["Required"] = 1] = "Required";
|
|
3901
|
+
/* istanbul ignore next */
|
|
3902
|
+
cov_ms2xfswbr().s[10]++;
|
|
3903
|
+
CredentialsOptions[CredentialsOptions["Omit"] = 2] = "Omit";
|
|
3904
|
+
})(
|
|
3905
|
+
/* istanbul ignore next */
|
|
3906
|
+
(cov_ms2xfswbr().b[3][0]++, CredentialsOptions) ||
|
|
3907
|
+
/* istanbul ignore next */
|
|
3908
|
+
(cov_ms2xfswbr().b[3][1]++, CredentialsOptions = {}));
|
|
3909
|
+
var FailureType;
|
|
3910
|
+
/* istanbul ignore next */
|
|
3911
|
+
cov_ms2xfswbr().s[11]++;
|
|
3912
|
+
(function (FailureType) {
|
|
3913
|
+
/* istanbul ignore next */
|
|
3914
|
+
cov_ms2xfswbr().f[2]++;
|
|
3915
|
+
cov_ms2xfswbr().s[12]++;
|
|
3916
|
+
FailureType[FailureType["None"] = 0] = "None";
|
|
3917
|
+
/* istanbul ignore next */
|
|
3918
|
+
cov_ms2xfswbr().s[13]++;
|
|
3919
|
+
FailureType[FailureType["Informational"] = 1] = "Informational";
|
|
3920
|
+
/* istanbul ignore next */
|
|
3921
|
+
cov_ms2xfswbr().s[14]++;
|
|
3922
|
+
FailureType[FailureType["Warning"] = 2] = "Warning";
|
|
3923
|
+
/* istanbul ignore next */
|
|
3924
|
+
cov_ms2xfswbr().s[15]++;
|
|
3925
|
+
FailureType[FailureType["Error"] = 3] = "Error";
|
|
3926
|
+
/* istanbul ignore next */
|
|
3927
|
+
cov_ms2xfswbr().s[16]++;
|
|
3928
|
+
FailureType[FailureType["Authentication"] = 4] = "Authentication";
|
|
3929
|
+
})(
|
|
3930
|
+
/* istanbul ignore next */
|
|
3931
|
+
(cov_ms2xfswbr().b[4][0]++, FailureType) ||
|
|
3932
|
+
/* istanbul ignore next */
|
|
3933
|
+
(cov_ms2xfswbr().b[4][1]++, FailureType = {}));
|
|
3934
|
+
const MAX_HTTP_CACHE_ATTEMPTS =
|
|
3935
|
+
/* istanbul ignore next */
|
|
3936
|
+
(cov_ms2xfswbr().s[17]++, 3);
|
|
3937
|
+
const DEFAULT_MIN_HTTP_RETRY_DELAY_MS =
|
|
3938
|
+
/* istanbul ignore next */
|
|
3939
|
+
(cov_ms2xfswbr().s[18]++, 2500);
|
|
3940
|
+
class HttpBuildCacheProvider {
|
|
3941
|
+
constructor(options, rushSession) {
|
|
3942
|
+
/* istanbul ignore next */
|
|
3943
|
+
cov_ms2xfswbr().f[3]++;
|
|
3944
|
+
var _a, _b, _c, _d;
|
|
3945
|
+
/* istanbul ignore next */
|
|
3946
|
+
cov_ms2xfswbr().s[19]++;
|
|
3947
|
+
this._pluginName = options.pluginName;
|
|
3948
|
+
/* istanbul ignore next */
|
|
3949
|
+
cov_ms2xfswbr().s[20]++;
|
|
3950
|
+
this._rushSession = rushSession;
|
|
3951
|
+
/* istanbul ignore next */
|
|
3952
|
+
cov_ms2xfswbr().s[21]++;
|
|
3953
|
+
this._rushProjectRoot = options.rushProjectRoot;
|
|
3954
|
+
/* istanbul ignore next */
|
|
3955
|
+
cov_ms2xfswbr().s[22]++;
|
|
3956
|
+
this._environmentCredential = rush_sdk_1.EnvironmentConfiguration.buildCacheCredential;
|
|
3957
|
+
/* istanbul ignore next */
|
|
3958
|
+
cov_ms2xfswbr().s[23]++;
|
|
3959
|
+
this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;
|
|
3960
|
+
/* istanbul ignore next */
|
|
3961
|
+
cov_ms2xfswbr().s[24]++;
|
|
3962
|
+
this._url = new URL(options.url.endsWith('/') ?
|
|
3963
|
+
/* istanbul ignore next */
|
|
3964
|
+
(cov_ms2xfswbr().b[5][0]++, options.url) :
|
|
3965
|
+
/* istanbul ignore next */
|
|
3966
|
+
(cov_ms2xfswbr().b[5][1]++, options.url + '/'));
|
|
3967
|
+
/* istanbul ignore next */
|
|
3968
|
+
cov_ms2xfswbr().s[25]++;
|
|
3969
|
+
this._uploadMethod =
|
|
3970
|
+
/* istanbul ignore next */
|
|
3971
|
+
(cov_ms2xfswbr().b[7][0]++, (_a = options.uploadMethod) !== null) &&
|
|
3972
|
+
/* istanbul ignore next */
|
|
3973
|
+
(cov_ms2xfswbr().b[7][1]++, _a !== void 0) ?
|
|
3974
|
+
/* istanbul ignore next */
|
|
3975
|
+
(cov_ms2xfswbr().b[6][0]++, _a) :
|
|
3976
|
+
/* istanbul ignore next */
|
|
3977
|
+
(cov_ms2xfswbr().b[6][1]++, 'PUT');
|
|
3978
|
+
/* istanbul ignore next */
|
|
3979
|
+
cov_ms2xfswbr().s[26]++;
|
|
3980
|
+
this._headers =
|
|
3981
|
+
/* istanbul ignore next */
|
|
3982
|
+
(cov_ms2xfswbr().b[9][0]++, (_b = options.headers) !== null) &&
|
|
3983
|
+
/* istanbul ignore next */
|
|
3984
|
+
(cov_ms2xfswbr().b[9][1]++, _b !== void 0) ?
|
|
3985
|
+
/* istanbul ignore next */
|
|
3986
|
+
(cov_ms2xfswbr().b[8][0]++, _b) :
|
|
3987
|
+
/* istanbul ignore next */
|
|
3988
|
+
(cov_ms2xfswbr().b[8][1]++, {});
|
|
3989
|
+
/* istanbul ignore next */
|
|
3990
|
+
cov_ms2xfswbr().s[27]++;
|
|
3991
|
+
this._tokenHandler = options.tokenHandler;
|
|
3992
|
+
/* istanbul ignore next */
|
|
3993
|
+
cov_ms2xfswbr().s[28]++;
|
|
3994
|
+
this._cacheKeyPrefix =
|
|
3995
|
+
/* istanbul ignore next */
|
|
3996
|
+
(cov_ms2xfswbr().b[11][0]++, (_c = options.cacheKeyPrefix) !== null) &&
|
|
3997
|
+
/* istanbul ignore next */
|
|
3998
|
+
(cov_ms2xfswbr().b[11][1]++, _c !== void 0) ?
|
|
3999
|
+
/* istanbul ignore next */
|
|
4000
|
+
(cov_ms2xfswbr().b[10][0]++, _c) :
|
|
4001
|
+
/* istanbul ignore next */
|
|
4002
|
+
(cov_ms2xfswbr().b[10][1]++, '');
|
|
4003
|
+
/* istanbul ignore next */
|
|
4004
|
+
cov_ms2xfswbr().s[29]++;
|
|
4005
|
+
this._minHttpRetryDelayMs =
|
|
4006
|
+
/* istanbul ignore next */
|
|
4007
|
+
(cov_ms2xfswbr().b[13][0]++, (_d = options.minHttpRetryDelayMs) !== null) &&
|
|
4008
|
+
/* istanbul ignore next */
|
|
4009
|
+
(cov_ms2xfswbr().b[13][1]++, _d !== void 0) ?
|
|
4010
|
+
/* istanbul ignore next */
|
|
4011
|
+
(cov_ms2xfswbr().b[12][0]++, _d) :
|
|
4012
|
+
/* istanbul ignore next */
|
|
4013
|
+
(cov_ms2xfswbr().b[12][1]++, DEFAULT_MIN_HTTP_RETRY_DELAY_MS);
|
|
4014
|
+
}
|
|
4015
|
+
get isCacheWriteAllowed() {
|
|
4016
|
+
/* istanbul ignore next */
|
|
4017
|
+
cov_ms2xfswbr().f[4]++;
|
|
4018
|
+
var _a;
|
|
4019
|
+
/* istanbul ignore next */
|
|
4020
|
+
cov_ms2xfswbr().s[30]++;
|
|
4021
|
+
return (
|
|
4022
|
+
/* istanbul ignore next */
|
|
4023
|
+
(cov_ms2xfswbr().b[15][0]++, (_a = rush_sdk_1.EnvironmentConfiguration.buildCacheWriteAllowed) !== null) &&
|
|
4024
|
+
/* istanbul ignore next */
|
|
4025
|
+
(cov_ms2xfswbr().b[15][1]++, _a !== void 0) ?
|
|
4026
|
+
/* istanbul ignore next */
|
|
4027
|
+
(cov_ms2xfswbr().b[14][0]++, _a) :
|
|
4028
|
+
/* istanbul ignore next */
|
|
4029
|
+
(cov_ms2xfswbr().b[14][1]++, this._isCacheWriteAllowedByConfiguration)
|
|
4030
|
+
);
|
|
4031
|
+
}
|
|
4032
|
+
async tryGetCacheEntryBufferByIdAsync(terminal, cacheId) {
|
|
4033
|
+
/* istanbul ignore next */
|
|
4034
|
+
cov_ms2xfswbr().f[5]++;
|
|
4035
|
+
cov_ms2xfswbr().s[31]++;
|
|
4036
|
+
try {
|
|
4037
|
+
const result =
|
|
4038
|
+
/* istanbul ignore next */
|
|
4039
|
+
(cov_ms2xfswbr().s[32]++, await this._http({
|
|
4040
|
+
terminal: terminal,
|
|
4041
|
+
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
4042
|
+
method: 'GET',
|
|
4043
|
+
body: undefined,
|
|
4044
|
+
warningText: 'Could not get cache entry',
|
|
4045
|
+
readBody: true,
|
|
4046
|
+
maxAttempts: MAX_HTTP_CACHE_ATTEMPTS
|
|
4047
|
+
}));
|
|
4048
|
+
/* istanbul ignore next */
|
|
4049
|
+
cov_ms2xfswbr().s[33]++;
|
|
4050
|
+
return Buffer.isBuffer(result) ?
|
|
4051
|
+
/* istanbul ignore next */
|
|
4052
|
+
(cov_ms2xfswbr().b[16][0]++, result) :
|
|
4053
|
+
/* istanbul ignore next */
|
|
4054
|
+
(cov_ms2xfswbr().b[16][1]++, undefined);
|
|
4055
|
+
} catch (e) {
|
|
4056
|
+
/* istanbul ignore next */
|
|
4057
|
+
cov_ms2xfswbr().s[34]++;
|
|
4058
|
+
terminal.writeWarningLine(`Error getting cache entry: ${e}`);
|
|
4059
|
+
/* istanbul ignore next */
|
|
4060
|
+
cov_ms2xfswbr().s[35]++;
|
|
4061
|
+
return undefined;
|
|
4062
|
+
}
|
|
4063
|
+
}
|
|
4064
|
+
async trySetCacheEntryBufferAsync(terminal, cacheId, objectBuffer) {
|
|
4065
|
+
/* istanbul ignore next */
|
|
4066
|
+
cov_ms2xfswbr().f[6]++;
|
|
4067
|
+
cov_ms2xfswbr().s[36]++;
|
|
4068
|
+
if (!this.isCacheWriteAllowed) {
|
|
4069
|
+
/* istanbul ignore next */
|
|
4070
|
+
cov_ms2xfswbr().b[17][0]++;
|
|
4071
|
+
cov_ms2xfswbr().s[37]++;
|
|
4072
|
+
terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');
|
|
4073
|
+
/* istanbul ignore next */
|
|
4074
|
+
cov_ms2xfswbr().s[38]++;
|
|
4075
|
+
return false;
|
|
4076
|
+
} else
|
|
4077
|
+
/* istanbul ignore next */
|
|
4078
|
+
{
|
|
4079
|
+
cov_ms2xfswbr().b[17][1]++;
|
|
4080
|
+
}
|
|
4081
|
+
cov_ms2xfswbr().s[39]++;
|
|
4082
|
+
terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);
|
|
4083
|
+
/* istanbul ignore next */
|
|
4084
|
+
cov_ms2xfswbr().s[40]++;
|
|
4085
|
+
try {
|
|
4086
|
+
const result =
|
|
4087
|
+
/* istanbul ignore next */
|
|
4088
|
+
(cov_ms2xfswbr().s[41]++, await this._http({
|
|
4089
|
+
terminal: terminal,
|
|
4090
|
+
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
4091
|
+
method: this._uploadMethod,
|
|
4092
|
+
body: objectBuffer,
|
|
4093
|
+
warningText: 'Could not write cache entry',
|
|
4094
|
+
readBody: false,
|
|
4095
|
+
maxAttempts: MAX_HTTP_CACHE_ATTEMPTS
|
|
4096
|
+
}));
|
|
4097
|
+
/* istanbul ignore next */
|
|
4098
|
+
cov_ms2xfswbr().s[42]++;
|
|
4099
|
+
return result !== false;
|
|
4100
|
+
} catch (e) {
|
|
4101
|
+
/* istanbul ignore next */
|
|
4102
|
+
cov_ms2xfswbr().s[43]++;
|
|
4103
|
+
terminal.writeWarningLine(`Error uploading cache entry: ${e}`);
|
|
4104
|
+
/* istanbul ignore next */
|
|
4105
|
+
cov_ms2xfswbr().s[44]++;
|
|
4106
|
+
return false;
|
|
4107
|
+
}
|
|
4108
|
+
}
|
|
4109
|
+
async updateCachedCredentialAsync(terminal, credential) {
|
|
4110
|
+
/* istanbul ignore next */
|
|
4111
|
+
cov_ms2xfswbr().f[7]++;
|
|
4112
|
+
cov_ms2xfswbr().s[45]++;
|
|
4113
|
+
await rush_sdk_1.CredentialCache.usingAsync({
|
|
4114
|
+
supportEditing: true
|
|
4115
|
+
}, async credentialsCache => {
|
|
4116
|
+
/* istanbul ignore next */
|
|
4117
|
+
cov_ms2xfswbr().f[8]++;
|
|
4118
|
+
cov_ms2xfswbr().s[46]++;
|
|
4119
|
+
credentialsCache.setCacheEntry(this._credentialCacheId, {
|
|
4120
|
+
credential: credential
|
|
4121
|
+
});
|
|
4122
|
+
/* istanbul ignore next */
|
|
4123
|
+
cov_ms2xfswbr().s[47]++;
|
|
4124
|
+
await credentialsCache.saveIfModifiedAsync();
|
|
4125
|
+
});
|
|
4126
|
+
}
|
|
4127
|
+
async updateCachedCredentialInteractiveAsync(terminal) {
|
|
4128
|
+
/* istanbul ignore next */
|
|
4129
|
+
cov_ms2xfswbr().f[9]++;
|
|
4130
|
+
cov_ms2xfswbr().s[48]++;
|
|
4131
|
+
if (!this._tokenHandler) {
|
|
4132
|
+
/* istanbul ignore next */
|
|
4133
|
+
cov_ms2xfswbr().b[18][0]++;
|
|
4134
|
+
cov_ms2xfswbr().s[49]++;
|
|
4135
|
+
throw new Error(`The interactive cloud credentials flow is not configured.\n` + `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` + `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` + `'Authorization' header expected by ${this._url.href}`);
|
|
4136
|
+
} else
|
|
4137
|
+
/* istanbul ignore next */
|
|
4138
|
+
{
|
|
4139
|
+
cov_ms2xfswbr().b[18][1]++;
|
|
4140
|
+
}
|
|
4141
|
+
const cmd =
|
|
4142
|
+
/* istanbul ignore next */
|
|
4143
|
+
(cov_ms2xfswbr().s[50]++, `${this._tokenHandler.exec} ${(
|
|
4144
|
+
/* istanbul ignore next */
|
|
4145
|
+
(cov_ms2xfswbr().b[19][0]++, this._tokenHandler.args) ||
|
|
4146
|
+
/* istanbul ignore next */
|
|
4147
|
+
(cov_ms2xfswbr().b[19][1]++, [])).join(' ')}`);
|
|
4148
|
+
/* istanbul ignore next */
|
|
4149
|
+
cov_ms2xfswbr().s[51]++;
|
|
4150
|
+
terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);
|
|
4151
|
+
const result =
|
|
4152
|
+
/* istanbul ignore next */
|
|
4153
|
+
(cov_ms2xfswbr().s[52]++, node_core_library_1.Executable.spawnSync(this._tokenHandler.exec,
|
|
4154
|
+
/* istanbul ignore next */
|
|
4155
|
+
(cov_ms2xfswbr().b[20][0]++, this._tokenHandler.args) ||
|
|
4156
|
+
/* istanbul ignore next */
|
|
4157
|
+
(cov_ms2xfswbr().b[20][1]++, [])));
|
|
4158
|
+
/* istanbul ignore next */
|
|
4159
|
+
cov_ms2xfswbr().s[53]++;
|
|
4160
|
+
terminal.writeErrorLine(result.stderr);
|
|
4161
|
+
/* istanbul ignore next */
|
|
4162
|
+
cov_ms2xfswbr().s[54]++;
|
|
4163
|
+
if (result.error) {
|
|
4164
|
+
/* istanbul ignore next */
|
|
4165
|
+
cov_ms2xfswbr().b[21][0]++;
|
|
4166
|
+
cov_ms2xfswbr().s[55]++;
|
|
4167
|
+
throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);
|
|
4168
|
+
} else
|
|
4169
|
+
/* istanbul ignore next */
|
|
4170
|
+
{
|
|
4171
|
+
cov_ms2xfswbr().b[21][1]++;
|
|
4172
|
+
}
|
|
4173
|
+
const credential =
|
|
4174
|
+
/* istanbul ignore next */
|
|
4175
|
+
(cov_ms2xfswbr().s[56]++, result.stdout.trim());
|
|
4176
|
+
/* istanbul ignore next */
|
|
4177
|
+
cov_ms2xfswbr().s[57]++;
|
|
4178
|
+
terminal.writeVerboseLine('Got credentials');
|
|
4179
|
+
/* istanbul ignore next */
|
|
4180
|
+
cov_ms2xfswbr().s[58]++;
|
|
4181
|
+
await this.updateCachedCredentialAsync(terminal, credential);
|
|
4182
|
+
/* istanbul ignore next */
|
|
4183
|
+
cov_ms2xfswbr().s[59]++;
|
|
4184
|
+
terminal.writeLine('Updated credentials cache');
|
|
4185
|
+
}
|
|
4186
|
+
async deleteCachedCredentialsAsync(terminal) {
|
|
4187
|
+
/* istanbul ignore next */
|
|
4188
|
+
cov_ms2xfswbr().f[10]++;
|
|
4189
|
+
cov_ms2xfswbr().s[60]++;
|
|
4190
|
+
await rush_sdk_1.CredentialCache.usingAsync({
|
|
4191
|
+
supportEditing: true
|
|
4192
|
+
}, async credentialsCache => {
|
|
4193
|
+
/* istanbul ignore next */
|
|
4194
|
+
cov_ms2xfswbr().f[11]++;
|
|
4195
|
+
cov_ms2xfswbr().s[61]++;
|
|
4196
|
+
credentialsCache.deleteCacheEntry(this._credentialCacheId);
|
|
4197
|
+
/* istanbul ignore next */
|
|
4198
|
+
cov_ms2xfswbr().s[62]++;
|
|
4199
|
+
await credentialsCache.saveIfModifiedAsync();
|
|
4200
|
+
});
|
|
4201
|
+
}
|
|
4202
|
+
get _credentialCacheId() {
|
|
4203
|
+
/* istanbul ignore next */
|
|
4204
|
+
cov_ms2xfswbr().f[12]++;
|
|
4205
|
+
cov_ms2xfswbr().s[63]++;
|
|
4206
|
+
if (!this.__credentialCacheId) {
|
|
4207
|
+
/* istanbul ignore next */
|
|
4208
|
+
cov_ms2xfswbr().b[22][0]++;
|
|
4209
|
+
const cacheIdParts =
|
|
4210
|
+
/* istanbul ignore next */
|
|
4211
|
+
(cov_ms2xfswbr().s[64]++, [this._url.href]);
|
|
4212
|
+
/* istanbul ignore next */
|
|
4213
|
+
cov_ms2xfswbr().s[65]++;
|
|
4214
|
+
if (this._isCacheWriteAllowedByConfiguration) {
|
|
4215
|
+
/* istanbul ignore next */
|
|
4216
|
+
cov_ms2xfswbr().b[23][0]++;
|
|
4217
|
+
cov_ms2xfswbr().s[66]++;
|
|
4218
|
+
cacheIdParts.push('cacheWriteAllowed');
|
|
4219
|
+
} else
|
|
4220
|
+
/* istanbul ignore next */
|
|
4221
|
+
{
|
|
4222
|
+
cov_ms2xfswbr().b[23][1]++;
|
|
4223
|
+
}
|
|
4224
|
+
cov_ms2xfswbr().s[67]++;
|
|
4225
|
+
this.__credentialCacheId = cacheIdParts.join('|');
|
|
4226
|
+
} else
|
|
4227
|
+
/* istanbul ignore next */
|
|
4228
|
+
{
|
|
4229
|
+
cov_ms2xfswbr().b[22][1]++;
|
|
4230
|
+
}
|
|
4231
|
+
cov_ms2xfswbr().s[68]++;
|
|
4232
|
+
return this.__credentialCacheId;
|
|
4233
|
+
}
|
|
4234
|
+
async _http(options) {
|
|
4235
|
+
/* istanbul ignore next */
|
|
4236
|
+
cov_ms2xfswbr().f[13]++;
|
|
4237
|
+
const {
|
|
4238
|
+
terminal,
|
|
4239
|
+
relUrl,
|
|
4240
|
+
method,
|
|
4241
|
+
body,
|
|
4242
|
+
warningText,
|
|
4243
|
+
readBody,
|
|
4244
|
+
credentialOptions
|
|
4245
|
+
} =
|
|
4246
|
+
/* istanbul ignore next */
|
|
4247
|
+
(cov_ms2xfswbr().s[69]++, options);
|
|
4248
|
+
const safeCredentialOptions =
|
|
4249
|
+
/* istanbul ignore next */
|
|
4250
|
+
(cov_ms2xfswbr().s[70]++,
|
|
4251
|
+
/* istanbul ignore next */
|
|
4252
|
+
(cov_ms2xfswbr().b[25][0]++, credentialOptions !== null) &&
|
|
4253
|
+
/* istanbul ignore next */
|
|
4254
|
+
(cov_ms2xfswbr().b[25][1]++, credentialOptions !== void 0) ?
|
|
4255
|
+
/* istanbul ignore next */
|
|
4256
|
+
(cov_ms2xfswbr().b[24][0]++, credentialOptions) :
|
|
4257
|
+
/* istanbul ignore next */
|
|
4258
|
+
(cov_ms2xfswbr().b[24][1]++, CredentialsOptions.Optional));
|
|
4259
|
+
const credentials =
|
|
4260
|
+
/* istanbul ignore next */
|
|
4261
|
+
(cov_ms2xfswbr().s[71]++, await this._tryGetCredentials(safeCredentialOptions));
|
|
4262
|
+
const url =
|
|
4263
|
+
/* istanbul ignore next */
|
|
4264
|
+
(cov_ms2xfswbr().s[72]++, new URL(relUrl, this._url).href);
|
|
4265
|
+
const headers =
|
|
4266
|
+
/* istanbul ignore next */
|
|
4267
|
+
(cov_ms2xfswbr().s[73]++, {});
|
|
4268
|
+
/* istanbul ignore next */
|
|
4269
|
+
cov_ms2xfswbr().s[74]++;
|
|
4270
|
+
if (typeof credentials === 'string') {
|
|
4271
|
+
/* istanbul ignore next */
|
|
4272
|
+
cov_ms2xfswbr().b[26][0]++;
|
|
4273
|
+
cov_ms2xfswbr().s[75]++;
|
|
4274
|
+
headers.Authorization = credentials;
|
|
4275
|
+
} else
|
|
4276
|
+
/* istanbul ignore next */
|
|
4277
|
+
{
|
|
4278
|
+
cov_ms2xfswbr().b[26][1]++;
|
|
4279
|
+
}
|
|
4280
|
+
cov_ms2xfswbr().s[76]++;
|
|
4281
|
+
for (const [key, value] of Object.entries(this._headers)) {
|
|
4282
|
+
/* istanbul ignore next */
|
|
4283
|
+
cov_ms2xfswbr().s[77]++;
|
|
4284
|
+
if (typeof value === 'string') {
|
|
4285
|
+
/* istanbul ignore next */
|
|
4286
|
+
cov_ms2xfswbr().b[27][0]++;
|
|
4287
|
+
cov_ms2xfswbr().s[78]++;
|
|
4288
|
+
headers[key] = value;
|
|
4289
|
+
} else
|
|
4290
|
+
/* istanbul ignore next */
|
|
4291
|
+
{
|
|
4292
|
+
cov_ms2xfswbr().b[27][1]++;
|
|
4293
|
+
}
|
|
4294
|
+
}
|
|
4295
|
+
const bodyLength =
|
|
4296
|
+
/* istanbul ignore next */
|
|
4297
|
+
(cov_ms2xfswbr().s[79]++,
|
|
4298
|
+
/* istanbul ignore next */
|
|
4299
|
+
(cov_ms2xfswbr().b[28][0]++,
|
|
4300
|
+
/* istanbul ignore next */
|
|
4301
|
+
(cov_ms2xfswbr().b[30][0]++, body === null) ||
|
|
4302
|
+
/* istanbul ignore next */
|
|
4303
|
+
(cov_ms2xfswbr().b[30][1]++, body === void 0) ?
|
|
4304
|
+
/* istanbul ignore next */
|
|
4305
|
+
(cov_ms2xfswbr().b[29][0]++, void 0) :
|
|
4306
|
+
/* istanbul ignore next */
|
|
4307
|
+
(cov_ms2xfswbr().b[29][1]++, body.length)) ||
|
|
4308
|
+
/* istanbul ignore next */
|
|
4309
|
+
(cov_ms2xfswbr().b[28][1]++, 'unknown'));
|
|
4310
|
+
/* istanbul ignore next */
|
|
4311
|
+
cov_ms2xfswbr().s[80]++;
|
|
4312
|
+
terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);
|
|
4313
|
+
const response =
|
|
4314
|
+
/* istanbul ignore next */
|
|
4315
|
+
(cov_ms2xfswbr().s[81]++, await (0, node_fetch_1.default)(url, {
|
|
4316
|
+
method: method,
|
|
4317
|
+
headers: headers,
|
|
4318
|
+
body: body,
|
|
4319
|
+
redirect: 'follow'
|
|
4320
|
+
}));
|
|
4321
|
+
/* istanbul ignore next */
|
|
4322
|
+
cov_ms2xfswbr().s[82]++;
|
|
4323
|
+
if (!response.ok) {
|
|
4324
|
+
/* istanbul ignore next */
|
|
4325
|
+
cov_ms2xfswbr().b[31][0]++;
|
|
4326
|
+
const isNonCredentialResponse =
|
|
4327
|
+
/* istanbul ignore next */
|
|
4328
|
+
(cov_ms2xfswbr().s[83]++,
|
|
4329
|
+
/* istanbul ignore next */
|
|
4330
|
+
(cov_ms2xfswbr().b[32][0]++, response.status >= 500) &&
|
|
4331
|
+
/* istanbul ignore next */
|
|
4332
|
+
(cov_ms2xfswbr().b[32][1]++, response.status < 600));
|
|
4333
|
+
/* istanbul ignore next */
|
|
4334
|
+
cov_ms2xfswbr().s[84]++;
|
|
4335
|
+
if (
|
|
4336
|
+
/* istanbul ignore next */
|
|
4337
|
+
(cov_ms2xfswbr().b[34][0]++, !isNonCredentialResponse) &&
|
|
4338
|
+
/* istanbul ignore next */
|
|
4339
|
+
(cov_ms2xfswbr().b[34][1]++, typeof credentials !== 'string') &&
|
|
4340
|
+
/* istanbul ignore next */
|
|
4341
|
+
(cov_ms2xfswbr().b[34][2]++, safeCredentialOptions === CredentialsOptions.Optional)) {
|
|
4342
|
+
/* istanbul ignore next */
|
|
4343
|
+
cov_ms2xfswbr().b[33][0]++;
|
|
4344
|
+
cov_ms2xfswbr().s[85]++;
|
|
4345
|
+
// If we don't already have credentials yet, and we got a response from the server
|
|
4346
|
+
// that is a "normal" failure (4xx), then we assume that credentials are probably
|
|
4347
|
+
// required. Re-attempt the request, requiring credentials this time.
|
|
4348
|
+
//
|
|
4349
|
+
// This counts as part of the "first attempt", so it is not included in the max attempts
|
|
4350
|
+
return await this._http(Object.assign(Object.assign({}, options), {
|
|
4351
|
+
credentialOptions: CredentialsOptions.Required
|
|
4352
|
+
}));
|
|
4353
|
+
} else
|
|
4354
|
+
/* istanbul ignore next */
|
|
4355
|
+
{
|
|
4356
|
+
cov_ms2xfswbr().b[33][1]++;
|
|
4357
|
+
}
|
|
4358
|
+
cov_ms2xfswbr().s[86]++;
|
|
4359
|
+
if (options.maxAttempts > 1) {
|
|
4360
|
+
/* istanbul ignore next */
|
|
4361
|
+
cov_ms2xfswbr().b[35][0]++;
|
|
4362
|
+
// Pause a bit before retrying in case the server is busy
|
|
4363
|
+
// Add some random jitter to the retry so we can spread out load on the remote service
|
|
4364
|
+
// A proper solution might add exponential back off in case the retry count is high (10 or more)
|
|
4365
|
+
const factor =
|
|
4366
|
+
/* istanbul ignore next */
|
|
4367
|
+
(cov_ms2xfswbr().s[87]++, 1.0 + Math.random()); // A random number between 1.0 and 2.0
|
|
4368
|
+
const retryDelay =
|
|
4369
|
+
/* istanbul ignore next */
|
|
4370
|
+
(cov_ms2xfswbr().s[88]++, Math.floor(factor * this._minHttpRetryDelayMs));
|
|
4371
|
+
/* istanbul ignore next */
|
|
4372
|
+
cov_ms2xfswbr().s[89]++;
|
|
4373
|
+
await node_core_library_1.Async.sleep(retryDelay);
|
|
4374
|
+
/* istanbul ignore next */
|
|
4375
|
+
cov_ms2xfswbr().s[90]++;
|
|
4376
|
+
return await this._http(Object.assign(Object.assign({}, options), {
|
|
4377
|
+
maxAttempts: options.maxAttempts - 1
|
|
4378
|
+
}));
|
|
4379
|
+
} else
|
|
4380
|
+
/* istanbul ignore next */
|
|
4381
|
+
{
|
|
4382
|
+
cov_ms2xfswbr().b[35][1]++;
|
|
4383
|
+
}
|
|
4384
|
+
cov_ms2xfswbr().s[91]++;
|
|
4385
|
+
this._reportFailure(terminal, method, response, false, warningText);
|
|
4386
|
+
/* istanbul ignore next */
|
|
4387
|
+
cov_ms2xfswbr().s[92]++;
|
|
4388
|
+
return false;
|
|
4389
|
+
} else
|
|
4390
|
+
/* istanbul ignore next */
|
|
4391
|
+
{
|
|
4392
|
+
cov_ms2xfswbr().b[31][1]++;
|
|
4393
|
+
}
|
|
4394
|
+
const result =
|
|
4395
|
+
/* istanbul ignore next */
|
|
4396
|
+
(cov_ms2xfswbr().s[93]++, readBody ?
|
|
4397
|
+
/* istanbul ignore next */
|
|
4398
|
+
(cov_ms2xfswbr().b[36][0]++, Buffer.from(await response.arrayBuffer())) :
|
|
4399
|
+
/* istanbul ignore next */
|
|
4400
|
+
(cov_ms2xfswbr().b[36][1]++, true));
|
|
4401
|
+
/* istanbul ignore next */
|
|
4402
|
+
cov_ms2xfswbr().s[94]++;
|
|
4403
|
+
terminal.writeDebugLine(`[http-build-cache] actual response: ${response.status} ${url} ${result === true ?
|
|
4404
|
+
/* istanbul ignore next */
|
|
4405
|
+
(cov_ms2xfswbr().b[37][0]++, 'true') :
|
|
4406
|
+
/* istanbul ignore next */
|
|
4407
|
+
(cov_ms2xfswbr().b[37][1]++, result.length)} bytes`);
|
|
4408
|
+
/* istanbul ignore next */
|
|
4409
|
+
cov_ms2xfswbr().s[95]++;
|
|
4410
|
+
return result;
|
|
4411
|
+
}
|
|
4412
|
+
async _tryGetCredentials(options) {
|
|
4413
|
+
/* istanbul ignore next */
|
|
4414
|
+
cov_ms2xfswbr().f[14]++;
|
|
4415
|
+
cov_ms2xfswbr().s[96]++;
|
|
4416
|
+
if (options === CredentialsOptions.Omit) {
|
|
4417
|
+
/* istanbul ignore next */
|
|
4418
|
+
cov_ms2xfswbr().b[38][0]++;
|
|
4419
|
+
cov_ms2xfswbr().s[97]++;
|
|
4420
|
+
return;
|
|
4421
|
+
} else
|
|
4422
|
+
/* istanbul ignore next */
|
|
4423
|
+
{
|
|
4424
|
+
cov_ms2xfswbr().b[38][1]++;
|
|
4425
|
+
}
|
|
4426
|
+
let credentials =
|
|
4427
|
+
/* istanbul ignore next */
|
|
4428
|
+
(cov_ms2xfswbr().s[98]++, this._environmentCredential);
|
|
4429
|
+
/* istanbul ignore next */
|
|
4430
|
+
cov_ms2xfswbr().s[99]++;
|
|
4431
|
+
if (credentials === undefined) {
|
|
4432
|
+
/* istanbul ignore next */
|
|
4433
|
+
cov_ms2xfswbr().b[39][0]++;
|
|
4434
|
+
cov_ms2xfswbr().s[100]++;
|
|
4435
|
+
credentials = await this._tryGetCredentialsFromCache();
|
|
4436
|
+
} else
|
|
4437
|
+
/* istanbul ignore next */
|
|
4438
|
+
{
|
|
4439
|
+
cov_ms2xfswbr().b[39][1]++;
|
|
4440
|
+
}
|
|
4441
|
+
cov_ms2xfswbr().s[101]++;
|
|
4442
|
+
if (
|
|
4443
|
+
/* istanbul ignore next */
|
|
4444
|
+
(cov_ms2xfswbr().b[41][0]++, typeof credentials !== 'string') &&
|
|
4445
|
+
/* istanbul ignore next */
|
|
4446
|
+
(cov_ms2xfswbr().b[41][1]++, options === CredentialsOptions.Required)) {
|
|
4447
|
+
/* istanbul ignore next */
|
|
4448
|
+
cov_ms2xfswbr().b[40][0]++;
|
|
4449
|
+
cov_ms2xfswbr().s[102]++;
|
|
4450
|
+
throw new Error([`Credentials for ${this._url.href} have not been provided.`, `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`, ``, `For local developers, run:`, ``, ` rush update-cloud-credentials --interactive`, ``].join('\n'));
|
|
4451
|
+
} else
|
|
4452
|
+
/* istanbul ignore next */
|
|
4453
|
+
{
|
|
4454
|
+
cov_ms2xfswbr().b[40][1]++;
|
|
4455
|
+
}
|
|
4456
|
+
cov_ms2xfswbr().s[103]++;
|
|
4457
|
+
return credentials;
|
|
4458
|
+
}
|
|
4459
|
+
async _tryGetCredentialsFromCache() {
|
|
4460
|
+
/* istanbul ignore next */
|
|
4461
|
+
cov_ms2xfswbr().f[15]++;
|
|
4462
|
+
var _a;
|
|
4463
|
+
let cacheEntry;
|
|
4464
|
+
/* istanbul ignore next */
|
|
4465
|
+
cov_ms2xfswbr().s[104]++;
|
|
4466
|
+
await rush_sdk_1.CredentialCache.usingAsync({
|
|
4467
|
+
supportEditing: false
|
|
4468
|
+
}, credentialsCache => {
|
|
4469
|
+
/* istanbul ignore next */
|
|
4470
|
+
cov_ms2xfswbr().f[16]++;
|
|
4471
|
+
cov_ms2xfswbr().s[105]++;
|
|
4472
|
+
cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);
|
|
4473
|
+
});
|
|
4474
|
+
/* istanbul ignore next */
|
|
4475
|
+
cov_ms2xfswbr().s[106]++;
|
|
4476
|
+
if (cacheEntry) {
|
|
4477
|
+
/* istanbul ignore next */
|
|
4478
|
+
cov_ms2xfswbr().b[42][0]++;
|
|
4479
|
+
const expirationTime =
|
|
4480
|
+
/* istanbul ignore next */
|
|
4481
|
+
(cov_ms2xfswbr().s[107]++,
|
|
4482
|
+
/* istanbul ignore next */
|
|
4483
|
+
(cov_ms2xfswbr().b[44][0]++, (_a = cacheEntry.expires) === null) ||
|
|
4484
|
+
/* istanbul ignore next */
|
|
4485
|
+
(cov_ms2xfswbr().b[44][1]++, _a === void 0) ?
|
|
4486
|
+
/* istanbul ignore next */
|
|
4487
|
+
(cov_ms2xfswbr().b[43][0]++, void 0) :
|
|
4488
|
+
/* istanbul ignore next */
|
|
4489
|
+
(cov_ms2xfswbr().b[43][1]++, _a.getTime()));
|
|
4490
|
+
/* istanbul ignore next */
|
|
4491
|
+
cov_ms2xfswbr().s[108]++;
|
|
4492
|
+
if (
|
|
4493
|
+
/* istanbul ignore next */
|
|
4494
|
+
(cov_ms2xfswbr().b[46][0]++, !expirationTime) ||
|
|
4495
|
+
/* istanbul ignore next */
|
|
4496
|
+
(cov_ms2xfswbr().b[46][1]++, expirationTime >= Date.now())) {
|
|
4497
|
+
/* istanbul ignore next */
|
|
4498
|
+
cov_ms2xfswbr().b[45][0]++;
|
|
4499
|
+
cov_ms2xfswbr().s[109]++;
|
|
4500
|
+
return cacheEntry.credential;
|
|
4501
|
+
} else
|
|
4502
|
+
/* istanbul ignore next */
|
|
4503
|
+
{
|
|
4504
|
+
cov_ms2xfswbr().b[45][1]++;
|
|
4505
|
+
}
|
|
4506
|
+
} else
|
|
4507
|
+
/* istanbul ignore next */
|
|
4508
|
+
{
|
|
4509
|
+
cov_ms2xfswbr().b[42][1]++;
|
|
4510
|
+
}
|
|
4511
|
+
}
|
|
4512
|
+
_getFailureType(requestMethod, response, isRedirect) {
|
|
4513
|
+
/* istanbul ignore next */
|
|
4514
|
+
cov_ms2xfswbr().f[17]++;
|
|
4515
|
+
cov_ms2xfswbr().s[110]++;
|
|
4516
|
+
if (response.ok) {
|
|
4517
|
+
/* istanbul ignore next */
|
|
4518
|
+
cov_ms2xfswbr().b[47][0]++;
|
|
4519
|
+
cov_ms2xfswbr().s[111]++;
|
|
4520
|
+
return FailureType.None;
|
|
4521
|
+
} else
|
|
4522
|
+
/* istanbul ignore next */
|
|
4523
|
+
{
|
|
4524
|
+
cov_ms2xfswbr().b[47][1]++;
|
|
4525
|
+
}
|
|
4526
|
+
cov_ms2xfswbr().s[112]++;
|
|
4527
|
+
switch (response.status) {
|
|
4528
|
+
case 503:
|
|
4529
|
+
/* istanbul ignore next */
|
|
4530
|
+
cov_ms2xfswbr().b[48][0]++;
|
|
4531
|
+
{
|
|
4532
|
+
/* istanbul ignore next */
|
|
4533
|
+
cov_ms2xfswbr().s[113]++;
|
|
4534
|
+
// We select 503 specifically because this represents "service unavailable" and
|
|
4535
|
+
// "rate limit throttle" errors, which are transient issues.
|
|
4536
|
+
//
|
|
4537
|
+
// There are other 5xx errors, such as 501, that can occur if the request is
|
|
4538
|
+
// malformed, so as a general rule we want to let through other 5xx errors
|
|
4539
|
+
// so the user can troubleshoot.
|
|
4540
|
+
// Don't fail production builds with warnings for transient issues
|
|
4541
|
+
return FailureType.Informational;
|
|
4542
|
+
}
|
|
4543
|
+
case 401:
|
|
4544
|
+
/* istanbul ignore next */
|
|
4545
|
+
cov_ms2xfswbr().b[48][1]++;
|
|
4546
|
+
case 403:
|
|
4547
|
+
/* istanbul ignore next */
|
|
4548
|
+
cov_ms2xfswbr().b[48][2]++;
|
|
4549
|
+
case 407:
|
|
4550
|
+
/* istanbul ignore next */
|
|
4551
|
+
cov_ms2xfswbr().b[48][3]++;
|
|
4552
|
+
{
|
|
4553
|
+
/* istanbul ignore next */
|
|
4554
|
+
cov_ms2xfswbr().s[114]++;
|
|
4555
|
+
if (
|
|
4556
|
+
/* istanbul ignore next */
|
|
4557
|
+
(cov_ms2xfswbr().b[50][0]++, requestMethod === 'GET') && (
|
|
4558
|
+
/* istanbul ignore next */
|
|
4559
|
+
(cov_ms2xfswbr().b[50][1]++, isRedirect) ||
|
|
4560
|
+
/* istanbul ignore next */
|
|
4561
|
+
(cov_ms2xfswbr().b[50][2]++, response.redirected))) {
|
|
4562
|
+
/* istanbul ignore next */
|
|
4563
|
+
cov_ms2xfswbr().b[49][0]++;
|
|
4564
|
+
cov_ms2xfswbr().s[115]++;
|
|
4565
|
+
// Cache misses for GET requests are not errors
|
|
4566
|
+
// This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.
|
|
4567
|
+
// We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.
|
|
4568
|
+
// i.e The authentication header was accepted for the first request and therefore subsequent failures
|
|
4569
|
+
// where it was not present should not be attributed to the header.
|
|
4570
|
+
// This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.
|
|
4571
|
+
// Those services then usually treat the 404 as a 403 to prevent leaking information.
|
|
4572
|
+
return FailureType.None;
|
|
4573
|
+
} else
|
|
4574
|
+
/* istanbul ignore next */
|
|
4575
|
+
{
|
|
4576
|
+
cov_ms2xfswbr().b[49][1]++;
|
|
4577
|
+
}
|
|
4578
|
+
cov_ms2xfswbr().s[116]++;
|
|
4579
|
+
return FailureType.Authentication;
|
|
4580
|
+
}
|
|
4581
|
+
case 404:
|
|
4582
|
+
/* istanbul ignore next */
|
|
4583
|
+
cov_ms2xfswbr().b[48][4]++;
|
|
4584
|
+
{
|
|
4585
|
+
/* istanbul ignore next */
|
|
4586
|
+
cov_ms2xfswbr().s[117]++;
|
|
4587
|
+
if (requestMethod === 'GET') {
|
|
4588
|
+
/* istanbul ignore next */
|
|
4589
|
+
cov_ms2xfswbr().b[51][0]++;
|
|
4590
|
+
cov_ms2xfswbr().s[118]++;
|
|
4591
|
+
// Cache misses for GET requests are not errors
|
|
4592
|
+
return FailureType.None;
|
|
4593
|
+
} else
|
|
4594
|
+
/* istanbul ignore next */
|
|
4595
|
+
{
|
|
4596
|
+
cov_ms2xfswbr().b[51][1]++;
|
|
4597
|
+
}
|
|
4598
|
+
}
|
|
4599
|
+
}
|
|
4600
|
+
// Let dev builds succeed, let Prod builds fail
|
|
4601
|
+
/* istanbul ignore next */
|
|
4602
|
+
cov_ms2xfswbr().s[119]++;
|
|
4603
|
+
return FailureType.Warning;
|
|
4604
|
+
}
|
|
4605
|
+
_reportFailure(terminal, requestMethod, response, isRedirect, message) {
|
|
4606
|
+
/* istanbul ignore next */
|
|
4607
|
+
cov_ms2xfswbr().f[18]++;
|
|
4608
|
+
cov_ms2xfswbr().s[120]++;
|
|
4609
|
+
switch (this._getFailureType(requestMethod, response, isRedirect)) {
|
|
4610
|
+
default:
|
|
4611
|
+
/* istanbul ignore next */
|
|
4612
|
+
cov_ms2xfswbr().b[52][0]++;
|
|
4613
|
+
{
|
|
4614
|
+
/* istanbul ignore next */
|
|
4615
|
+
cov_ms2xfswbr().s[121]++;
|
|
4616
|
+
terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
|
|
4617
|
+
/* istanbul ignore next */
|
|
4618
|
+
cov_ms2xfswbr().s[122]++;
|
|
4619
|
+
break;
|
|
4620
|
+
}
|
|
4621
|
+
case FailureType.Warning:
|
|
4622
|
+
/* istanbul ignore next */
|
|
4623
|
+
cov_ms2xfswbr().b[52][1]++;
|
|
4624
|
+
{
|
|
4625
|
+
/* istanbul ignore next */
|
|
4626
|
+
cov_ms2xfswbr().s[123]++;
|
|
4627
|
+
terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
|
|
4628
|
+
/* istanbul ignore next */
|
|
4629
|
+
cov_ms2xfswbr().s[124]++;
|
|
4630
|
+
break;
|
|
4631
|
+
}
|
|
4632
|
+
case FailureType.Informational:
|
|
4633
|
+
/* istanbul ignore next */
|
|
4634
|
+
cov_ms2xfswbr().b[52][2]++;
|
|
4635
|
+
{
|
|
4636
|
+
/* istanbul ignore next */
|
|
4637
|
+
cov_ms2xfswbr().s[125]++;
|
|
4638
|
+
terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
|
|
4639
|
+
/* istanbul ignore next */
|
|
4640
|
+
cov_ms2xfswbr().s[126]++;
|
|
4641
|
+
break;
|
|
4642
|
+
}
|
|
4643
|
+
case FailureType.None:
|
|
4644
|
+
/* istanbul ignore next */
|
|
4645
|
+
cov_ms2xfswbr().b[52][3]++;
|
|
4646
|
+
{
|
|
4647
|
+
/* istanbul ignore next */
|
|
4648
|
+
cov_ms2xfswbr().s[127]++;
|
|
4649
|
+
terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
|
|
4650
|
+
/* istanbul ignore next */
|
|
4651
|
+
cov_ms2xfswbr().s[128]++;
|
|
4652
|
+
break;
|
|
4653
|
+
}
|
|
4654
|
+
case FailureType.Authentication:
|
|
4655
|
+
/* istanbul ignore next */
|
|
4656
|
+
cov_ms2xfswbr().b[52][4]++;
|
|
4657
|
+
{
|
|
4658
|
+
/* istanbul ignore next */
|
|
4659
|
+
cov_ms2xfswbr().s[129]++;
|
|
4660
|
+
throw new Error([`${this._url.href} responded with ${response.status}: ${response.statusText}.`, `Credentials may be misconfigured or have expired.`, `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`, ``, `For local developers, run:`, ``, ` rush update-cloud-credentials --interactive`, ``].join('\n'));
|
|
4661
|
+
}
|
|
4662
|
+
}
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
/* istanbul ignore next */
|
|
4666
|
+
cov_ms2xfswbr().s[130]++;
|
|
4667
|
+
exports.HttpBuildCacheProvider = HttpBuildCacheProvider;
|
|
4668
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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VyxDQUFDMEgsY0FBYztRQUFBO1FBQUE7UUFBRTtVQUFBO1VBQUE7VUFDL0IsTUFBTSxJQUFJN0QsS0FBSyxDQUNiLENBQ0UsR0FBRyxJQUFJLENBQUM1QyxJQUFJLENBQUM2QyxJQUFJLG1CQUFtQjhCLFFBQVEsQ0FBQ0ksTUFBTSxLQUFLSixRQUFRLENBQUNpQyxVQUFVLEdBQUcsRUFDOUUsbURBQW1ELEVBQ25ELDZGQUE2RixFQUM3RixFQUFFLEVBQ0YsNEJBQTRCLEVBQzVCLEVBQUUsRUFDRixpREFBaUQsRUFDakQsRUFBRSxDQUNILENBQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2I7O0lBQ0Y7RUFFTDs7QUFDRDtBQUFBO0FBeFhENEQiLCJuYW1lcyI6WyJDcmVkZW50aWFsc09wdGlvbnMiLCJGYWlsdXJlVHlwZSIsIk1BWF9IVFRQX0NBQ0hFX0FUVEVNUFRTIiwiREVGQVVMVF9NSU5fSFRUUF9SRVRSWV9ERUxBWV9NUyIsIkh0dHBCdWlsZENhY2hlUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJydXNoU2Vzc2lvbiIsIl9wbHVnaW5OYW1lIiwicGx1Z2luTmFtZSIsIl9ydXNoU2Vzc2lvbiIsIl9ydXNoUHJvamVjdFJvb3QiLCJydXNoUHJvamVjdFJvb3QiLCJfZW52aXJvbm1lbnRDcmVkZW50aWFsIiwicnVzaF9zZGtfMSIsImJ1aWxkQ2FjaGVDcmVkZW50aWFsIiwiX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb24iLCJpc0NhY2hlV3JpdGVBbGxvd2VkIiwiX3VybCIsIlVSTCIsInVybCIsImVuZHNXaXRoIiwiX3VwbG9hZE1ldGhvZCIsInVwbG9hZE1ldGhvZCIsIl9oZWFkZXJzIiwiaGVhZGVycyIsIl90b2tlbkhhbmRsZXIiLCJ0b2tlbkhhbmRsZXIiLCJfY2FjaGVLZXlQcmVmaXgiLCJjYWNoZUtleVByZWZpeCIsIl9taW5IdHRwUmV0cnlEZWxheU1zIiwibWluSHR0cFJldHJ5RGVsYXlNcyIsImJ1aWxkQ2FjaGVXcml0ZUFsbG93ZWQiLCJ0cnlHZXRDYWNoZUVudHJ5QnVmZmVyQnlJZEFzeW5jIiwidGVybWluYWwiLCJjYWNoZUlkIiwicmVzdWx0IiwiX2h0dHAiLCJyZWxVcmwiLCJtZXRob2QiLCJib2R5IiwidW5kZWZpbmVkIiwid2FybmluZ1RleHQiLCJyZWFkQm9keSIsIm1heEF0dGVtcHRzIiwiQnVmZmVyIiwiaXNCdWZmZXIiLCJlIiwid3JpdGVXYXJuaW5nTGluZSIsInRyeVNldENhY2hlRW50cnlCdWZmZXJBc3luYyIsIm9iamVjdEJ1ZmZlciIsIndyaXRlRXJyb3JMaW5lIiwid3JpdGVEZWJ1Z0xpbmUiLCJ1cGRhdGVDYWNoZWRDcmVkZW50aWFsQXN5bmMiLCJjcmVkZW50aWFsIiwidXNpbmdBc3luYyIsInN1cHBvcnRFZGl0aW5nIiwiY3JlZGVudGlhbHNDYWNoZSIsInNldENhY2hlRW50cnkiLCJfY3JlZGVudGlhbENhY2hlSWQiLCJzYXZlSWZNb2RpZmllZEFzeW5jIiwidXBkYXRlQ2FjaGVkQ3JlZGVudGlhbEludGVyYWN0aXZlQXN5bmMiLCJFcnJvciIsImhyZWYiLCJjbWQiLCJleGVjIiwiYXJncyIsImpvaW4iLCJ3cml0ZVZlcmJvc2VMaW5lIiwibm9kZV9jb3JlX2xpYnJhcnlfMSIsInNwYXduU3luYyIsInN0ZGVyciIsImVycm9yIiwic3Rkb3V0IiwidHJpbSIsIndyaXRlTGluZSIsImRlbGV0ZUNhY2hlZENyZWRlbnRpYWxzQXN5bmMiLCJkZWxldGVDYWNoZUVudHJ5IiwiX19jcmVkZW50aWFsQ2FjaGVJZCIsImNhY2hlSWRQYXJ0cyIsInB1c2giLCJjcmVkZW50aWFsT3B0aW9ucyIsInNhZmVDcmVkZW50aWFsT3B0aW9ucyIsIk9wdGlvbmFsIiwiY3JlZGVudGlhbHMiLCJfdHJ5R2V0Q3JlZGVudGlhbHMiLCJBdXRob3JpemF0aW9uIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwiYm9keUxlbmd0aCIsImxlbmd0aCIsInJlc3BvbnNlIiwicmVkaXJlY3QiLCJvayIsImlzTm9uQ3JlZGVudGlhbFJlc3BvbnNlIiwic3RhdHVzIiwiUmVxdWlyZWQiLCJmYWN0b3IiLCJNYXRoIiwicmFuZG9tIiwicmV0cnlEZWxheSIsImZsb29yIiwic2xlZXAiLCJfcmVwb3J0RmFpbHVyZSIsImZyb20iLCJhcnJheUJ1ZmZlciIsIk9taXQiLCJfdHJ5R2V0Q3JlZGVudGlhbHNGcm9tQ2FjaGUiLCJjYWNoZUVudHJ5IiwidHJ5R2V0Q2FjaGVFbnRyeSIsImV4cGlyYXRpb25UaW1lIiwiZXhwaXJlcyIsImdldFRpbWUiLCJEYXRlIiwibm93IiwiX2dldEZhaWx1cmVUeXBlIiwicmVxdWVzdE1ldGhvZCIsImlzUmVkaXJlY3QiLCJOb25lIiwiSW5mb3JtYXRpb25hbCIsInJlZGlyZWN0ZWQiLCJBdXRoZW50aWNhdGlvbiIsIldhcm5pbmciLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIvaG9tZS92c3RzL3dvcmsvMS9zL3J1c2gtcGx1Z2lucy9ydXNoLWh0dHAtYnVpbGQtY2FjaGUtcGx1Z2luL3NyYy9IdHRwQnVpbGRDYWNoZVByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUZXJtaW5hbCwgRXhlY3V0YWJsZSwgQXN5bmMgfSBmcm9tICdAcnVzaHN0YWNrL25vZGUtY29yZS1saWJyYXJ5JztcbmltcG9ydCB7XG4gIElDbG91ZEJ1aWxkQ2FjaGVQcm92aWRlcixcbiAgSUNyZWRlbnRpYWxDYWNoZUVudHJ5LFxuICBDcmVkZW50aWFsQ2FjaGUsXG4gIFJ1c2hTZXNzaW9uLFxuICBFbnZpcm9ubWVudENvbmZpZ3VyYXRpb25cbn0gZnJvbSAnQHJ1c2hzdGFjay9ydXNoLXNkayc7XG5pbXBvcnQgZmV0Y2gsIHsgQm9keUluaXQsIFJlc3BvbnNlIH0gZnJvbSAnbm9kZS1mZXRjaCc7XG5cbmVudW0gQ3JlZGVudGlhbHNPcHRpb25zIHtcbiAgT3B0aW9uYWwsXG4gIFJlcXVpcmVkLFxuICBPbWl0XG59XG5cbmVudW0gRmFpbHVyZVR5cGUge1xuICBOb25lLFxuICBJbmZvcm1hdGlvbmFsLFxuICBXYXJuaW5nLFxuICBFcnJvcixcbiAgQXV0aGVudGljYXRpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSHR0cEJ1aWxkQ2FjaGVUb2tlbkhhbmRsZXIge1xuICBleGVjOiBzdHJpbmc7XG4gIGFyZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUh0dHBCdWlsZENhY2hlUHJvdmlkZXJPcHRpb25zIHtcbiAgdXJsOiBzdHJpbmc7XG4gIHRva2VuSGFuZGxlcj86IElIdHRwQnVpbGRDYWNoZVRva2VuSGFuZGxlcjtcbiAgdXBsb2FkTWV0aG9kPzogc3RyaW5nO1xuICBtaW5IdHRwUmV0cnlEZWxheU1zPzogbnVtYmVyO1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgY2FjaGVLZXlQcmVmaXg/OiBzdHJpbmc7XG4gIGlzQ2FjaGVXcml0ZUFsbG93ZWQ6IGJvb2xlYW47XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcnVzaFByb2plY3RSb290OiBzdHJpbmc7XG59XG5cbmNvbnN0IE1BWF9IVFRQX0NBQ0hFX0FUVEVNUFRTOiBudW1iZXIgPSAzO1xuY29uc3QgREVGQVVMVF9NSU5fSFRUUF9SRVRSWV9ERUxBWV9NUyA9IDI1MDA7XG5cbmV4cG9ydCBjbGFzcyBIdHRwQnVpbGRDYWNoZVByb3ZpZGVyIGltcGxlbWVudHMgSUNsb3VkQnVpbGRDYWNoZVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGx1Z2luTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ydXNoU2Vzc2lvbjogUnVzaFNlc3Npb247XG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1c2hQcm9qZWN0Um9vdDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnZpcm9ubWVudENyZWRlbnRpYWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDYWNoZVdyaXRlQWxsb3dlZEJ5Q29uZmlndXJhdGlvbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfdXJsOiBVUkw7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VwbG9hZE1ldGhvZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZUtleVByZWZpeDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b2tlbkhhbmRsZXI6IElIdHRwQnVpbGRDYWNoZVRva2VuSGFuZGxlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWluSHR0cFJldHJ5RGVsYXlNczogbnVtYmVyO1xuICBwcml2YXRlIF9fY3JlZGVudGlhbENhY2hlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZ2V0IGlzQ2FjaGVXcml0ZUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVudmlyb25tZW50Q29uZmlndXJhdGlvbi5idWlsZENhY2hlV3JpdGVBbGxvd2VkID8/IHRoaXMuX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogSUh0dHBCdWlsZENhY2hlUHJvdmlkZXJPcHRpb25zLCBydXNoU2Vzc2lvbjogUnVzaFNlc3Npb24pIHtcbiAgICB0aGlzLl9wbHVnaW5OYW1lID0gb3B0aW9ucy5wbHVnaW5OYW1lO1xuICAgIHRoaXMuX3J1c2hTZXNzaW9uID0gcnVzaFNlc3Npb247XG4gICAgdGhpcy5fcnVzaFByb2plY3RSb290ID0gb3B0aW9ucy5ydXNoUHJvamVjdFJvb3Q7XG5cbiAgICB0aGlzLl9lbnZpcm9ubWVudENyZWRlbnRpYWwgPSBFbnZpcm9ubWVudENvbmZpZ3VyYXRpb24uYnVpbGRDYWNoZUNyZWRlbnRpYWw7XG4gICAgdGhpcy5faXNDYWNoZVdyaXRlQWxsb3dlZEJ5Q29uZmlndXJhdGlvbiA9IG9wdGlvbnMuaXNDYWNoZVdyaXRlQWxsb3dlZDtcbiAgICB0aGlzLl91cmwgPSBuZXcgVVJMKG9wdGlvbnMudXJsLmVuZHNXaXRoKCcvJykgPyBvcHRpb25zLnVybCA6IG9wdGlvbnMudXJsICsgJy8nKTtcbiAgICB0aGlzLl91cGxvYWRNZXRob2QgPSBvcHRpb25zLnVwbG9hZE1ldGhvZCA/PyAnUFVUJztcbiAgICB0aGlzLl9oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzID8/IHt9O1xuICAgIHRoaXMuX3Rva2VuSGFuZGxlciA9IG9wdGlvbnMudG9rZW5IYW5kbGVyO1xuICAgIHRoaXMuX2NhY2hlS2V5UHJlZml4ID0gb3B0aW9ucy5jYWNoZUtleVByZWZpeCA/PyAnJztcbiAgICB0aGlzLl9taW5IdHRwUmV0cnlEZWxheU1zID0gb3B0aW9ucy5taW5IdHRwUmV0cnlEZWxheU1zID8/IERFRkFVTFRfTUlOX0hUVFBfUkVUUllfREVMQVlfTVM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdHJ5R2V0Q2FjaGVFbnRyeUJ1ZmZlckJ5SWRBc3luYyhcbiAgICB0ZXJtaW5hbDogSVRlcm1pbmFsLFxuICAgIGNhY2hlSWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEJ1ZmZlciB8IHVuZGVmaW5lZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9odHRwKHtcbiAgICAgICAgdGVybWluYWw6IHRlcm1pbmFsLFxuICAgICAgICByZWxVcmw6IGAke3RoaXMuX2NhY2hlS2V5UHJlZml4fSR7Y2FjaGVJZH1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBib2R5OiB1bmRlZmluZWQsXG4gICAgICAgIHdhcm5pbmdUZXh0OiAnQ291bGQgbm90IGdldCBjYWNoZSBlbnRyeScsXG4gICAgICAgIHJlYWRCb2R5OiB0cnVlLFxuICAgICAgICBtYXhBdHRlbXB0czogTUFYX0hUVFBfQ0FDSEVfQVRURU1QVFNcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHJlc3VsdCkgPyByZXN1bHQgOiB1bmRlZmluZWQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGVybWluYWwud3JpdGVXYXJuaW5nTGluZShgRXJyb3IgZ2V0dGluZyBjYWNoZSBlbnRyeTogJHtlfWApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdHJ5U2V0Q2FjaGVFbnRyeUJ1ZmZlckFzeW5jKFxuICAgIHRlcm1pbmFsOiBJVGVybWluYWwsXG4gICAgY2FjaGVJZDogc3RyaW5nLFxuICAgIG9iamVjdEJ1ZmZlcjogQnVmZmVyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5pc0NhY2hlV3JpdGVBbGxvd2VkKSB7XG4gICAgICB0ZXJtaW5hbC53cml0ZUVycm9yTGluZSgnV3JpdGluZyB0byBjYWNoZSBpcyBub3QgYWxsb3dlZCBpbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLicpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRlcm1pbmFsLndyaXRlRGVidWdMaW5lKCdVcGxvYWRpbmcgb2JqZWN0IHdpdGggY2FjaGVJZDogJywgY2FjaGVJZCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5faHR0cCh7XG4gICAgICAgIHRlcm1pbmFsOiB0ZXJtaW5hbCxcbiAgICAgICAgcmVsVXJsOiBgJHt0aGlzLl9jYWNoZUtleVByZWZpeH0ke2NhY2hlSWR9YCxcbiAgICAgICAgbWV0aG9kOiB0aGlzLl91cGxvYWRNZXRob2QsXG4gICAgICAgIGJvZHk6IG9iamVjdEJ1ZmZlcixcbiAgICAgICAgd2FybmluZ1RleHQ6ICdDb3VsZCBub3Qgd3JpdGUgY2FjaGUgZW50cnknLFxuICAgICAgICByZWFkQm9keTogZmFsc2UsXG4gICAgICAgIG1heEF0dGVtcHRzOiBNQVhfSFRUUF9DQUNIRV9BVFRFTVBUU1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQgIT09IGZhbHNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRlcm1pbmFsLndyaXRlV2FybmluZ0xpbmUoYEVycm9yIHVwbG9hZGluZyBjYWNoZSBlbnRyeTogJHtlfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDYWNoZWRDcmVkZW50aWFsQXN5bmModGVybWluYWw6IElUZXJtaW5hbCwgY3JlZGVudGlhbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgQ3JlZGVudGlhbENhY2hlLnVzaW5nQXN5bmMoXG4gICAgICB7XG4gICAgICAgIHN1cHBvcnRFZGl0aW5nOiB0cnVlXG4gICAgICB9LFxuICAgICAgYXN5bmMgKGNyZWRlbnRpYWxzQ2FjaGU6IENyZWRlbnRpYWxDYWNoZSkgPT4ge1xuICAgICAgICBjcmVkZW50aWFsc0NhY2hlLnNldENhY2hlRW50cnkodGhpcy5fY3JlZGVudGlhbENhY2hlSWQsIHtcbiAgICAgICAgICBjcmVkZW50aWFsOiBjcmVkZW50aWFsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBjcmVkZW50aWFsc0NhY2hlLnNhdmVJZk1vZGlmaWVkQXN5bmMoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNhY2hlZENyZWRlbnRpYWxJbnRlcmFjdGl2ZUFzeW5jKHRlcm1pbmFsOiBJVGVybWluYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX3Rva2VuSGFuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGludGVyYWN0aXZlIGNsb3VkIGNyZWRlbnRpYWxzIGZsb3cgaXMgbm90IGNvbmZpZ3VyZWQuXFxuYCArXG4gICAgICAgICAgYFNldCB0aGUgJ3Rva2VuSGFuZGxlcicgc2V0dGluZyBpbiAnY29tbW9uL2NvbmZpZy9ydXNoLXBsdWdpbnMvJHt0aGlzLl9wbHVnaW5OYW1lfS5qc29uJyB0byBhIGNvbW1hbmQgdGhhdCB3cml0ZXMgeW91ciBjcmVkZW50aWFscyB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXRzIHdpdGggY29kZSAwIGAgK1xuICAgICAgICAgIGBvciBwcm92aWRlIHlvdXIgY3JlZGVudGlhbHMgdG8gcnVzaCB1c2luZyB0aGUgLS1jcmVkZW50aWFsIGZsYWcgaW5zdGVhZC4gQ3JlZGVudGlhbHMgbXVzdCBiZSB0aGUgYCArXG4gICAgICAgICAgYCdBdXRob3JpemF0aW9uJyBoZWFkZXIgZXhwZWN0ZWQgYnkgJHt0aGlzLl91cmwuaHJlZn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNtZDogc3RyaW5nID0gYCR7dGhpcy5fdG9rZW5IYW5kbGVyLmV4ZWN9ICR7KHRoaXMuX3Rva2VuSGFuZGxlci5hcmdzIHx8IFtdKS5qb2luKCcgJyl9YDtcbiAgICB0ZXJtaW5hbC53cml0ZVZlcmJvc2VMaW5lKGBSdW5uaW5nICcke2NtZH0nIHRvIGdldCBjcmVkZW50aWFsc2ApO1xuICAgIGNvbnN0IHJlc3VsdCA9IEV4ZWN1dGFibGUuc3Bhd25TeW5jKHRoaXMuX3Rva2VuSGFuZGxlci5leGVjLCB0aGlzLl90b2tlbkhhbmRsZXIuYXJncyB8fCBbXSk7XG5cbiAgICB0ZXJtaW5hbC53cml0ZUVycm9yTGluZShyZXN1bHQuc3RkZXJyKTtcblxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG9idGFpbiBjcmVkZW50aWFscy4gVGhlIGNvbW1hbmQgJyR7Y21kfScgZmFpbGVkLmApO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWRlbnRpYWwgPSByZXN1bHQuc3Rkb3V0LnRyaW0oKTtcbiAgICB0ZXJtaW5hbC53cml0ZVZlcmJvc2VMaW5lKCdHb3QgY3JlZGVudGlhbHMnKTtcblxuICAgIGF3YWl0IHRoaXMudXBkYXRlQ2FjaGVkQ3JlZGVudGlhbEFzeW5jKHRlcm1pbmFsLCBjcmVkZW50aWFsKTtcblxuICAgIHRlcm1pbmFsLndyaXRlTGluZSgnVXBkYXRlZCBjcmVkZW50aWFscyBjYWNoZScpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhY2hlZENyZWRlbnRpYWxzQXN5bmModGVybWluYWw6IElUZXJtaW5hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IENyZWRlbnRpYWxDYWNoZS51c2luZ0FzeW5jKFxuICAgICAge1xuICAgICAgICBzdXBwb3J0RWRpdGluZzogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGFzeW5jIChjcmVkZW50aWFsc0NhY2hlOiBDcmVkZW50aWFsQ2FjaGUpID0+IHtcbiAgICAgICAgY3JlZGVudGlhbHNDYWNoZS5kZWxldGVDYWNoZUVudHJ5KHRoaXMuX2NyZWRlbnRpYWxDYWNoZUlkKTtcbiAgICAgICAgYXdhaXQgY3JlZGVudGlhbHNDYWNoZS5zYXZlSWZNb2RpZmllZEFzeW5jKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9jcmVkZW50aWFsQ2FjaGVJZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fX2NyZWRlbnRpYWxDYWNoZUlkKSB7XG4gICAgICBjb25zdCBjYWNoZUlkUGFydHM6IHN0cmluZ1tdID0gW3RoaXMuX3VybC5ocmVmXTtcblxuICAgICAgaWYgKHRoaXMuX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgY2FjaGVJZFBhcnRzLnB1c2goJ2NhY2hlV3JpdGVBbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX19jcmVkZW50aWFsQ2FjaGVJZCA9IGNhY2hlSWRQYXJ0cy5qb2luKCd8Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX19jcmVkZW50aWFsQ2FjaGVJZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2h0dHAob3B0aW9uczoge1xuICAgIHRlcm1pbmFsOiBJVGVybWluYWw7XG4gICAgcmVsVXJsOiBzdHJpbmc7XG4gICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgYm9keTogQm9keUluaXQgfCB1bmRlZmluZWQ7XG4gICAgd2FybmluZ1RleHQ6IHN0cmluZztcbiAgICByZWFkQm9keTogYm9vbGVhbjtcbiAgICBtYXhBdHRlbXB0czogbnVtYmVyO1xuICAgIGNyZWRlbnRpYWxPcHRpb25zPzogQ3JlZGVudGlhbHNPcHRpb25zO1xuICB9KTogUHJvbWlzZTxCdWZmZXIgfCBib29sZWFuPiB7XG4gICAgY29uc3QgeyB0ZXJtaW5hbCwgcmVsVXJsLCBtZXRob2QsIGJvZHksIHdhcm5pbmdUZXh0LCByZWFkQm9keSwgY3JlZGVudGlhbE9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgc2FmZUNyZWRlbnRpYWxPcHRpb25zID0gY3JlZGVudGlhbE9wdGlvbnMgPz8gQ3JlZGVudGlhbHNPcHRpb25zLk9wdGlvbmFsO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5fdHJ5R2V0Q3JlZGVudGlhbHMoc2FmZUNyZWRlbnRpYWxPcHRpb25zKTtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlbFVybCwgdGhpcy5fdXJsKS5ocmVmO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGlmICh0eXBlb2YgY3JlZGVudGlhbHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBoZWFkZXJzLkF1dGhvcml6YXRpb24gPSBjcmVkZW50aWFscztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oZWFkZXJzKSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYm9keUxlbmd0aCA9IChib2R5IGFzIHsgbGVuZ3RoOiBudW1iZXIgfSk/Lmxlbmd0aCB8fCAndW5rbm93bic7XG5cbiAgICB0ZXJtaW5hbC53cml0ZURlYnVnTGluZShgW2h0dHAtYnVpbGQtY2FjaGVdIHJlcXVlc3Q6ICR7bWV0aG9kfSAke3VybH0gJHtib2R5TGVuZ3RofSBieXRlc2ApO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICByZWRpcmVjdDogJ2ZvbGxvdydcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGlzTm9uQ3JlZGVudGlhbFJlc3BvbnNlID0gcmVzcG9uc2Uuc3RhdHVzID49IDUwMCAmJiByZXNwb25zZS5zdGF0dXMgPCA2MDA7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIWlzTm9uQ3JlZGVudGlhbFJlc3BvbnNlICYmXG4gICAgICAgIHR5cGVvZiBjcmVkZW50aWFscyAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgc2FmZUNyZWRlbnRpYWxPcHRpb25zID09PSBDcmVkZW50aWFsc09wdGlvbnMuT3B0aW9uYWxcbiAgICAgICkge1xuICAgICAgICAvLyBJZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgY3JlZGVudGlhbHMgeWV0LCBhbmQgd2UgZ290IGEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyXG4gICAgICAgIC8vIHRoYXQgaXMgYSBcIm5vcm1hbFwiIGZhaWx1cmUgKDR4eCksIHRoZW4gd2UgYXNzdW1lIHRoYXQgY3JlZGVudGlhbHMgYXJlIHByb2JhYmx5XG4gICAgICAgIC8vIHJlcXVpcmVkLiBSZS1hdHRlbXB0IHRoZSByZXF1ZXN0LCByZXF1aXJpbmcgY3JlZGVudGlhbHMgdGhpcyB0aW1lLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUaGlzIGNvdW50cyBhcyBwYXJ0IG9mIHRoZSBcImZpcnN0IGF0dGVtcHRcIiwgc28gaXQgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBtYXggYXR0ZW1wdHNcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2h0dHAoeyAuLi5vcHRpb25zLCBjcmVkZW50aWFsT3B0aW9uczogQ3JlZGVudGlhbHNPcHRpb25zLlJlcXVpcmVkIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5tYXhBdHRlbXB0cyA+IDEpIHtcbiAgICAgICAgLy8gUGF1c2UgYSBiaXQgYmVmb3JlIHJldHJ5aW5nIGluIGNhc2UgdGhlIHNlcnZlciBpcyBidXN5XG4gICAgICAgIC8vIEFkZCBzb21lIHJhbmRvbSBqaXR0ZXIgdG8gdGhlIHJldHJ5IHNvIHdlIGNhbiBzcHJlYWQgb3V0IGxvYWQgb24gdGhlIHJlbW90ZSBzZXJ2aWNlXG4gICAgICAgIC8vIEEgcHJvcGVyIHNvbHV0aW9uIG1pZ2h0IGFkZCBleHBvbmVudGlhbCBiYWNrIG9mZiBpbiBjYXNlIHRoZSByZXRyeSBjb3VudCBpcyBoaWdoICgxMCBvciBtb3JlKVxuICAgICAgICBjb25zdCBmYWN0b3IgPSAxLjAgKyBNYXRoLnJhbmRvbSgpOyAvLyBBIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAxLjAgYW5kIDIuMFxuICAgICAgICBjb25zdCByZXRyeURlbGF5ID0gTWF0aC5mbG9vcihmYWN0b3IgKiB0aGlzLl9taW5IdHRwUmV0cnlEZWxheU1zKTtcblxuICAgICAgICBhd2FpdCBBc3luYy5zbGVlcChyZXRyeURlbGF5KTtcblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faHR0cCh7IC4uLm9wdGlvbnMsIG1heEF0dGVtcHRzOiBvcHRpb25zLm1heEF0dGVtcHRzIC0gMSB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcmVwb3J0RmFpbHVyZSh0ZXJtaW5hbCwgbWV0aG9kLCByZXNwb25zZSwgZmFsc2UsIHdhcm5pbmdUZXh0KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IEJ1ZmZlciB8IGJvb2xlYW4gPSByZWFkQm9keSA/IEJ1ZmZlci5mcm9tKGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpIDogdHJ1ZTtcblxuICAgIHRlcm1pbmFsLndyaXRlRGVidWdMaW5lKFxuICAgICAgYFtodHRwLWJ1aWxkLWNhY2hlXSBhY3R1YWwgcmVzcG9uc2U6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3VybH0gJHtcbiAgICAgICAgcmVzdWx0ID09PSB0cnVlID8gJ3RydWUnIDogcmVzdWx0Lmxlbmd0aFxuICAgICAgfSBieXRlc2BcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3RyeUdldENyZWRlbnRpYWxzKG9wdGlvbnM6IENyZWRlbnRpYWxzT3B0aW9ucy5SZXF1aXJlZCk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHJpdmF0ZSBhc3luYyBfdHJ5R2V0Q3JlZGVudGlhbHMob3B0aW9uczogQ3JlZGVudGlhbHNPcHRpb25zLk9wdGlvbmFsKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwcml2YXRlIGFzeW5jIF90cnlHZXRDcmVkZW50aWFscyhvcHRpb25zOiBDcmVkZW50aWFsc09wdGlvbnMuT21pdCk6IFByb21pc2U8dW5kZWZpbmVkPjtcbiAgcHJpdmF0ZSBhc3luYyBfdHJ5R2V0Q3JlZGVudGlhbHMob3B0aW9uczogQ3JlZGVudGlhbHNPcHRpb25zKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwcml2YXRlIGFzeW5jIF90cnlHZXRDcmVkZW50aWFscyhvcHRpb25zOiBDcmVkZW50aWFsc09wdGlvbnMpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmIChvcHRpb25zID09PSBDcmVkZW50aWFsc09wdGlvbnMuT21pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjcmVkZW50aWFsczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5fZW52aXJvbm1lbnRDcmVkZW50aWFsO1xuXG4gICAgaWYgKGNyZWRlbnRpYWxzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5fdHJ5R2V0Q3JlZGVudGlhbHNGcm9tQ2FjaGUoKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzICE9PSAnc3RyaW5nJyAmJiBvcHRpb25zID09PSBDcmVkZW50aWFsc09wdGlvbnMuUmVxdWlyZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgW1xuICAgICAgICAgIGBDcmVkZW50aWFscyBmb3IgJHt0aGlzLl91cmwuaHJlZn0gaGF2ZSBub3QgYmVlbiBwcm92aWRlZC5gLFxuICAgICAgICAgIGBJbiBDSSwgdmVyaWZ5IHRoYXQgUlVTSF9CVUlMRF9DQUNIRV9DUkVERU5USUFMIGNvbnRhaW5zIGEgdmFsaWQgQXV0aG9yaXphdGlvbiBoZWFkZXIgdmFsdWUuYCxcbiAgICAgICAgICBgYCxcbiAgICAgICAgICBgRm9yIGxvY2FsIGRldmVsb3BlcnMsIHJ1bjpgLFxuICAgICAgICAgIGBgLFxuICAgICAgICAgIGAgICAgcnVzaCB1cGRhdGUtY2xvdWQtY3JlZGVudGlhbHMgLS1pbnRlcmFjdGl2ZWAsXG4gICAgICAgICAgYGBcbiAgICAgICAgXS5qb2luKCdcXG4nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF90cnlHZXRDcmVkZW50aWFsc0Zyb21DYWNoZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCBjYWNoZUVudHJ5OiBJQ3JlZGVudGlhbENhY2hlRW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgICBhd2FpdCBDcmVkZW50aWFsQ2FjaGUudXNpbmdBc3luYyhcbiAgICAgIHtcbiAgICAgICAgc3VwcG9ydEVkaXRpbmc6IGZhbHNlXG4gICAgICB9LFxuICAgICAgKGNyZWRlbnRpYWxzQ2FjaGU6IENyZWRlbnRpYWxDYWNoZSkgPT4ge1xuICAgICAgICBjYWNoZUVudHJ5ID0gY3JlZGVudGlhbHNDYWNoZS50cnlHZXRDYWNoZUVudHJ5KHRoaXMuX2NyZWRlbnRpYWxDYWNoZUlkKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGNhY2hlRW50cnkpIHtcbiAgICAgIGNvbnN0IGV4cGlyYXRpb25UaW1lOiBudW1iZXIgfCB1bmRlZmluZWQgPSBjYWNoZUVudHJ5LmV4cGlyZXM/LmdldFRpbWUoKTtcbiAgICAgIGlmICghZXhwaXJhdGlvblRpbWUgfHwgZXhwaXJhdGlvblRpbWUgPj0gRGF0ZS5ub3coKSkge1xuICAgICAgICByZXR1cm4gY2FjaGVFbnRyeS5jcmVkZW50aWFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEZhaWx1cmVUeXBlKHJlcXVlc3RNZXRob2Q6IHN0cmluZywgcmVzcG9uc2U6IFJlc3BvbnNlLCBpc1JlZGlyZWN0OiBib29sZWFuKTogRmFpbHVyZVR5cGUge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgcmV0dXJuIEZhaWx1cmVUeXBlLk5vbmU7XG4gICAgfVxuXG4gICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcbiAgICAgIGNhc2UgNTAzOiB7XG4gICAgICAgIC8vIFdlIHNlbGVjdCA1MDMgc3BlY2lmaWNhbGx5IGJlY2F1c2UgdGhpcyByZXByZXNlbnRzIFwic2VydmljZSB1bmF2YWlsYWJsZVwiIGFuZFxuICAgICAgICAvLyBcInJhdGUgbGltaXQgdGhyb3R0bGVcIiBlcnJvcnMsIHdoaWNoIGFyZSB0cmFuc2llbnQgaXNzdWVzLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUaGVyZSBhcmUgb3RoZXIgNXh4IGVycm9ycywgc3VjaCBhcyA1MDEsIHRoYXQgY2FuIG9jY3VyIGlmIHRoZSByZXF1ZXN0IGlzXG4gICAgICAgIC8vIG1hbGZvcm1lZCwgc28gYXMgYSBnZW5lcmFsIHJ1bGUgd2Ugd2FudCB0byBsZXQgdGhyb3VnaCBvdGhlciA1eHggZXJyb3JzXG4gICAgICAgIC8vIHNvIHRoZSB1c2VyIGNhbiB0cm91Ymxlc2hvb3QuXG5cbiAgICAgICAgLy8gRG9uJ3QgZmFpbCBwcm9kdWN0aW9uIGJ1aWxkcyB3aXRoIHdhcm5pbmdzIGZvciB0cmFuc2llbnQgaXNzdWVzXG4gICAgICAgIHJldHVybiBGYWlsdXJlVHlwZS5JbmZvcm1hdGlvbmFsO1xuICAgICAgfVxuXG4gICAgICBjYXNlIDQwMTpcbiAgICAgIGNhc2UgNDAzOlxuICAgICAgY2FzZSA0MDc6IHtcbiAgICAgICAgaWYgKHJlcXVlc3RNZXRob2QgPT09ICdHRVQnICYmIChpc1JlZGlyZWN0IHx8IHJlc3BvbnNlLnJlZGlyZWN0ZWQpKSB7XG4gICAgICAgICAgLy8gQ2FjaGUgbWlzc2VzIGZvciBHRVQgcmVxdWVzdHMgYXJlIG5vdCBlcnJvcnNcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBiZWhhdmlvciB3aGVyZSBhIHNlcnZlciBjYW4gaXNzdWUgYSByZWRpcmVjdCBhbmQgd2UgZmFpbCB0byBhdXRoZW50aWNhdGUgYXQgdGhlIG5ldyBsb2NhdGlvbi5cbiAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBzaWduYWwgdGhpcyBhcyBhbiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIGJlY2F1c2UgdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyIGlzIG5vdCBwYXNzZWQgb24gdG8gcmVkaXJlY3RzLlxuICAgICAgICAgIC8vIGkuZSBUaGUgYXV0aGVudGljYXRpb24gaGVhZGVyIHdhcyBhY2NlcHRlZCBmb3IgdGhlIGZpcnN0IHJlcXVlc3QgYW5kIHRoZXJlZm9yZSBzdWJzZXF1ZW50IGZhaWx1cmVzXG4gICAgICAgICAgLy8gd2hlcmUgaXQgd2FzIG5vdCBwcmVzZW50IHNob3VsZCBub3QgYmUgYXR0cmlidXRlZCB0byB0aGUgaGVhZGVyLlxuICAgICAgICAgIC8vIFRoaXMgc2NlbmFyaW8gdXN1YWxseSBjb21lcyB1cCB3aXRoIHNlcnZpY2VzIHRoYXQgcmVkaXJlY3QgdG8gcHJlLXNpZ25lZCBVUkxTIHRoYXQgZG9uJ3QgYWN0dWFsbHkgZXhpc3QuXG4gICAgICAgICAgLy8gVGhvc2Ugc2VydmljZXMgdGhlbiB1c3VhbGx5IHRyZWF0IHRoZSA0MDQgYXMgYSA0MDMgdG8gcHJldmVudCBsZWFraW5nIGluZm9ybWF0aW9uLlxuICAgICAgICAgIHJldHVybiBGYWlsdXJlVHlwZS5Ob25lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEZhaWx1cmVUeXBlLkF1dGhlbnRpY2F0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIDQwNDoge1xuICAgICAgICBpZiAocmVxdWVzdE1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAvLyBDYWNoZSBtaXNzZXMgZm9yIEdFVCByZXF1ZXN0cyBhcmUgbm90IGVycm9yc1xuICAgICAgICAgIHJldHVybiBGYWlsdXJlVHlwZS5Ob25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTGV0IGRldiBidWlsZHMgc3VjY2VlZCwgbGV0IFByb2QgYnVpbGRzIGZhaWxcbiAgICByZXR1cm4gRmFpbHVyZVR5cGUuV2FybmluZztcbiAgfVxuXG4gIHByaXZhdGUgX3JlcG9ydEZhaWx1cmUoXG4gICAgdGVybWluYWw6IElUZXJtaW5hbCxcbiAgICByZXF1ZXN0TWV0aG9kOiBzdHJpbmcsXG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICAgIGlzUmVkaXJlY3Q6IGJvb2xlYW4sXG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5fZ2V0RmFpbHVyZVR5cGUocmVxdWVzdE1ldGhvZCwgcmVzcG9uc2UsIGlzUmVkaXJlY3QpKSB7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRlcm1pbmFsLndyaXRlRXJyb3JMaW5lKGAke21lc3NhZ2V9OiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBGYWlsdXJlVHlwZS5XYXJuaW5nOiB7XG4gICAgICAgIHRlcm1pbmFsLndyaXRlV2FybmluZ0xpbmUoYCR7bWVzc2FnZX06IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEZhaWx1cmVUeXBlLkluZm9ybWF0aW9uYWw6IHtcbiAgICAgICAgdGVybWluYWwud3JpdGVMaW5lKGAke21lc3NhZ2V9OiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBGYWlsdXJlVHlwZS5Ob25lOiB7XG4gICAgICAgIHRlcm1pbmFsLndyaXRlRGVidWdMaW5lKGAke21lc3NhZ2V9OiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBGYWlsdXJlVHlwZS5BdXRoZW50aWNhdGlvbjoge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgW1xuICAgICAgICAgICAgYCR7dGhpcy5fdXJsLmhyZWZ9IHJlc3BvbmRlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fS5gLFxuICAgICAgICAgICAgYENyZWRlbnRpYWxzIG1heSBiZSBtaXNjb25maWd1cmVkIG9yIGhhdmUgZXhwaXJlZC5gLFxuICAgICAgICAgICAgYEluIENJLCB2ZXJpZnkgdGhhdCBSVVNIX0JVSUxEX0NBQ0hFX0NSRURFTlRJQUwgY29udGFpbnMgYSB2YWxpZCBBdXRob3JpemF0aW9uIGhlYWRlciB2YWx1ZS5gLFxuICAgICAgICAgICAgYGAsXG4gICAgICAgICAgICBgRm9yIGxvY2FsIGRldmVsb3BlcnMsIHJ1bjpgLFxuICAgICAgICAgICAgYGAsXG4gICAgICAgICAgICBgICAgIHJ1c2ggdXBkYXRlLWNsb3VkLWNyZWRlbnRpYWxzIC0taW50ZXJhY3RpdmVgLFxuICAgICAgICAgICAgYGBcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|