diff --git a/assets/Scene/GameScene.fire b/assets/Scene/GameScene.fire
index 7fd0a68..ecd41fa 100644
--- a/assets/Scene/GameScene.fire
+++ b/assets/Scene/GameScene.fire
@@ -78,17 +78,14 @@
"__id__": 68
},
{
- "__id__": 354
+ "__id__": 355
},
{
- "__id__": 404
+ "__id__": 405
}
],
"_active": true,
"_components": [
- {
- "__id__": 407
- },
{
"__id__": 408
},
@@ -97,6 +94,9 @@
},
{
"__id__": 410
+ },
+ {
+ "__id__": 411
}
],
"_prefab": null,
@@ -260,13 +260,13 @@
"__id__": 9
},
{
- "__id__": 167
+ "__id__": 168
},
{
- "__id__": 188
+ "__id__": 189
},
{
- "__id__": 208
+ "__id__": 209
},
{
"__id__": 70
@@ -275,7 +275,7 @@
"_active": true,
"_components": [
{
- "__id__": 353
+ "__id__": 354
}
],
"_prefab": null,
@@ -471,13 +471,13 @@
"__id__": 20
},
{
- "__id__": 163
+ "__id__": 164
}
],
"_active": true,
"_components": [
{
- "__id__": 166
+ "__id__": 167
}
],
"_prefab": null,
@@ -6256,19 +6256,22 @@
"__id__": 149
},
{
- "__id__": 153
+ "__id__": 150
},
{
- "__id__": 155
+ "__id__": 154
},
{
- "__id__": 157
+ "__id__": 156
+ },
+ {
+ "__id__": 158
}
],
"_active": true,
"_components": [
{
- "__id__": 162
+ "__id__": 163
}
],
"_prefab": null,
@@ -6728,8 +6731,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 17,
- "height": 46
+ "width": 18,
+ "height": 48
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -7107,6 +7110,64 @@
},
"_id": "d5Ga1SVtFCHpW+F/d+M2Dx"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "coin",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 132
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 200,
+ "height": 200
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 342.162,
+ -52.875,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "_eulerAngles": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_skewX": 0,
+ "_skewY": 0,
+ "_is3DNode": false,
+ "_groupIndex": 0,
+ "groupIndex": 0,
+ "_id": "20iRJz5vNKjbgjTJR3p0SW"
+ },
{
"__type__": "cc.Node",
"_name": "add",
@@ -7118,10 +7179,10 @@
"_active": true,
"_components": [
{
- "__id__": 150
+ "__id__": 151
},
{
- "__id__": 151
+ "__id__": 152
}
],
"_prefab": null,
@@ -7177,7 +7238,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -7211,7 +7272,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_normalMaterial": null,
@@ -7220,7 +7281,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 152
+ "__id__": 153
}
],
"_N$interactable": true,
@@ -7299,7 +7360,7 @@
"_active": false,
"_components": [
{
- "__id__": 154
+ "__id__": 155
}
],
"_prefab": null,
@@ -7355,7 +7416,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7393,7 +7454,7 @@
"_active": false,
"_components": [
{
- "__id__": 156
+ "__id__": 157
}
],
"_prefab": null,
@@ -7449,7 +7510,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 155
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7486,13 +7547,13 @@
},
"_children": [
{
- "__id__": 158
+ "__id__": 159
}
],
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 161
}
],
"_prefab": null,
@@ -7548,13 +7609,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 157
+ "__id__": 158
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 159
+ "__id__": 160
}
],
"_prefab": null,
@@ -7610,7 +7671,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 158
+ "__id__": 159
},
"_enabled": true,
"_materials": [
@@ -7644,7 +7705,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 157
+ "__id__": 158
},
"_enabled": true,
"_normalMaterial": null,
@@ -7653,7 +7714,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 161
+ "__id__": 162
}
],
"_N$interactable": true,
@@ -7709,7 +7770,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 157
+ "__id__": 158
},
"_id": "34Z6b/IgpOtKrGQXG1ECg6"
},
@@ -7761,10 +7822,10 @@
"_active": false,
"_components": [
{
- "__id__": 164
+ "__id__": 165
},
{
- "__id__": 165
+ "__id__": 166
}
],
"_prefab": null,
@@ -7820,7 +7881,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7852,7 +7913,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"alignMode": 1,
@@ -7910,31 +7971,31 @@
},
"_children": [
{
- "__id__": 168
+ "__id__": 169
},
{
- "__id__": 172
+ "__id__": 173
},
{
- "__id__": 174
+ "__id__": 175
},
{
- "__id__": 176
+ "__id__": 177
},
{
- "__id__": 178
+ "__id__": 179
},
{
- "__id__": 184
+ "__id__": 185
}
],
"_active": false,
"_components": [
{
- "__id__": 186
+ "__id__": 187
},
{
- "__id__": 187
+ "__id__": 188
}
],
"_prefab": null,
@@ -7990,19 +8051,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 169
- },
{
"__id__": 170
},
{
"__id__": 171
+ },
+ {
+ "__id__": 172
}
],
"_prefab": null,
@@ -8058,7 +8119,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_materials": [
@@ -8090,7 +8151,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"alignMode": 1,
@@ -8117,7 +8178,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_id": "1e62ukhsJObKLFucCNzfwm"
@@ -8127,13 +8188,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 173
+ "__id__": 174
}
],
"_prefab": null,
@@ -8189,7 +8250,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -8221,13 +8282,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 176
}
],
"_prefab": null,
@@ -8283,7 +8344,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 175
},
"_enabled": true,
"_materials": [
@@ -8315,13 +8376,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 177
+ "__id__": 178
}
],
"_prefab": null,
@@ -8377,7 +8438,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 176
+ "__id__": 177
},
"_enabled": true,
"_materials": [
@@ -8407,20 +8468,20 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [
{
- "__id__": 179
+ "__id__": 180
}
],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 182
},
{
- "__id__": 182
+ "__id__": 183
}
],
"_prefab": null,
@@ -8476,13 +8537,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 178
+ "__id__": 179
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 180
+ "__id__": 181
}
],
"_prefab": null,
@@ -8538,7 +8599,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 180
},
"_enabled": true,
"_materials": [
@@ -8570,7 +8631,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8602,7 +8663,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8611,7 +8672,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 183
+ "__id__": 184
}
],
"_N$interactable": true,
@@ -8667,14 +8728,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 178
+ "__id__": 179
},
"_id": "2bhrCpcRxImqyWzBaIVVCd"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 167
+ "__id__": 168
},
"component": "",
"_componentId": "7fe14dRFQZKSKKAoEn4S7OU",
@@ -8686,13 +8747,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 185
+ "__id__": 186
}
],
"_prefab": null,
@@ -8748,7 +8809,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 185
},
"_enabled": true,
"_materials": [
@@ -8780,7 +8841,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"alignMode": 1,
@@ -8807,7 +8868,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"label": null,
@@ -8823,22 +8884,22 @@
},
"_children": [
{
- "__id__": 189
+ "__id__": 190
},
{
- "__id__": 193
+ "__id__": 194
},
{
- "__id__": 195
+ "__id__": 196
},
{
- "__id__": 201
+ "__id__": 202
}
],
"_active": false,
"_components": [
{
- "__id__": 207
+ "__id__": 208
}
],
"_prefab": null,
@@ -8894,19 +8955,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 190
- },
{
"__id__": 191
},
{
"__id__": 192
+ },
+ {
+ "__id__": 193
}
],
"_prefab": null,
@@ -8962,7 +9023,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_materials": [
@@ -8994,7 +9055,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9021,7 +9082,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_id": "7aMdyhm41AyqFZMnIAtTUY"
@@ -9031,13 +9092,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 195
}
],
"_prefab": null,
@@ -9093,7 +9154,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 193
+ "__id__": 194
},
"_enabled": true,
"_materials": [
@@ -9125,20 +9186,20 @@
"_name": "nextBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 196
+ "__id__": 197
}
],
"_active": true,
"_components": [
{
- "__id__": 198
+ "__id__": 199
},
{
- "__id__": 199
+ "__id__": 200
}
],
"_prefab": null,
@@ -9194,13 +9255,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 195
+ "__id__": 196
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 197
+ "__id__": 198
}
],
"_prefab": null,
@@ -9256,7 +9317,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 196
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -9290,7 +9351,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_materials": [
@@ -9322,7 +9383,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_normalMaterial": null,
@@ -9331,7 +9392,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 200
+ "__id__": 201
}
],
"_N$interactable": true,
@@ -9387,7 +9448,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 195
+ "__id__": 196
},
"_id": "02dmnqIIhNA7gNoxAqWnCT"
},
@@ -9406,20 +9467,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 202
+ "__id__": 203
}
],
"_active": true,
"_components": [
{
- "__id__": 204
+ "__id__": 205
},
{
- "__id__": 205
+ "__id__": 206
}
],
"_prefab": null,
@@ -9475,13 +9536,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 201
+ "__id__": 202
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 203
+ "__id__": 204
}
],
"_prefab": null,
@@ -9537,7 +9598,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 202
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9571,7 +9632,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_materials": [
@@ -9603,7 +9664,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_normalMaterial": null,
@@ -9612,7 +9673,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 206
+ "__id__": 207
}
],
"_N$interactable": true,
@@ -9668,7 +9729,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 201
+ "__id__": 202
},
"_id": "340osYA4tCpJlhedNAxg8f"
},
@@ -9687,7 +9748,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 189
},
"_enabled": true,
"alignMode": 1,
@@ -9718,28 +9779,28 @@
},
"_children": [
{
- "__id__": 209
+ "__id__": 210
},
{
- "__id__": 213
+ "__id__": 214
},
{
- "__id__": 215
+ "__id__": 216
},
{
- "__id__": 287
+ "__id__": 288
},
{
- "__id__": 308
+ "__id__": 309
},
{
- "__id__": 331
+ "__id__": 332
}
],
"_active": false,
"_components": [
{
- "__id__": 352
+ "__id__": 353
}
],
"_prefab": null,
@@ -9795,19 +9856,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 210
- },
{
"__id__": 211
},
{
"__id__": 212
+ },
+ {
+ "__id__": 213
}
],
"_prefab": null,
@@ -9863,7 +9924,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_materials": [
@@ -9895,7 +9956,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"alignMode": 1,
@@ -9922,7 +9983,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_id": "c22Pk+4yZHHaEcGiym9WxK"
@@ -9932,13 +9993,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 215
}
],
"_prefab": null,
@@ -9994,7 +10055,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -10026,32 +10087,32 @@
"_name": "Time",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 216
+ "__id__": 217
},
{
- "__id__": 218
+ "__id__": 219
},
{
- "__id__": 220
+ "__id__": 221
},
{
- "__id__": 222
+ "__id__": 223
},
{
- "__id__": 224
+ "__id__": 225
},
{
- "__id__": 226
+ "__id__": 227
},
{
- "__id__": 242
+ "__id__": 243
},
{
- "__id__": 281
+ "__id__": 282
}
],
"_active": true,
@@ -10109,13 +10170,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 217
+ "__id__": 218
}
],
"_prefab": null,
@@ -10171,7 +10232,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 216
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -10205,13 +10266,13 @@
"_name": "result_Label1",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 219
+ "__id__": 220
}
],
"_prefab": null,
@@ -10267,7 +10328,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 218
+ "__id__": 219
},
"_enabled": true,
"_materials": [
@@ -10301,13 +10362,13 @@
"_name": "time_show",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 221
+ "__id__": 222
}
],
"_prefab": null,
@@ -10363,7 +10424,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 220
+ "__id__": 221
},
"_enabled": true,
"_materials": [
@@ -10397,13 +10458,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 223
+ "__id__": 224
}
],
"_prefab": null,
@@ -10459,7 +10520,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 223
},
"_enabled": true,
"_materials": [
@@ -10492,13 +10553,13 @@
"_name": "time_hide",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 225
+ "__id__": 226
}
],
"_prefab": null,
@@ -10554,7 +10615,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 224
+ "__id__": 225
},
"_enabled": true,
"_materials": [
@@ -10588,35 +10649,35 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 227
+ "__id__": 228
},
{
- "__id__": 229
+ "__id__": 230
},
{
- "__id__": 231
+ "__id__": 232
},
{
- "__id__": 233
+ "__id__": 234
},
{
- "__id__": 235
+ "__id__": 236
},
{
- "__id__": 237
+ "__id__": 238
}
],
"_active": false,
"_components": [
{
- "__id__": 239
+ "__id__": 240
},
{
- "__id__": 240
+ "__id__": 241
}
],
"_prefab": null,
@@ -10672,13 +10733,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 229
}
],
"_prefab": null,
@@ -10734,7 +10795,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10768,13 +10829,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 231
}
],
"_prefab": null,
@@ -10830,7 +10891,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10864,13 +10925,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 233
}
],
"_prefab": null,
@@ -10926,7 +10987,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10960,13 +11021,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 234
+ "__id__": 235
}
],
"_prefab": null,
@@ -11022,7 +11083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -11056,13 +11117,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 236
+ "__id__": 237
}
],
"_prefab": null,
@@ -11118,7 +11179,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 235
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -11152,13 +11213,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 238
+ "__id__": 239
}
],
"_prefab": null,
@@ -11214,7 +11275,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -11248,7 +11309,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_materials": [
@@ -11282,7 +11343,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_normalMaterial": null,
@@ -11291,7 +11352,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 241
+ "__id__": 242
}
],
"_N$interactable": true,
@@ -11347,7 +11408,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 226
+ "__id__": 227
},
"_id": "f26wyaXk1ODqKTicGneesK"
},
@@ -11364,41 +11425,41 @@
"_name": "buyBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 243
+ "__id__": 244
},
{
- "__id__": 245
+ "__id__": 246
},
{
- "__id__": 247
+ "__id__": 248
},
{
- "__id__": 249
+ "__id__": 250
},
{
- "__id__": 251
+ "__id__": 252
},
{
- "__id__": 258
+ "__id__": 259
},
{
- "__id__": 267
+ "__id__": 268
},
{
- "__id__": 276
+ "__id__": 277
}
],
"_active": true,
"_components": [
{
- "__id__": 278
+ "__id__": 279
},
{
- "__id__": 279
+ "__id__": 280
}
],
"_prefab": null,
@@ -11454,13 +11515,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 245
}
],
"_prefab": null,
@@ -11516,7 +11577,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11550,13 +11611,13 @@
"_name": "coins_+",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 247
}
],
"_prefab": null,
@@ -11612,7 +11673,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 246
},
"_enabled": true,
"_materials": [
@@ -11646,13 +11707,13 @@
"_name": "coins2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 249
}
],
"_prefab": null,
@@ -11708,7 +11769,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11742,13 +11803,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 251
}
],
"_prefab": null,
@@ -11804,7 +11865,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 250
},
"_enabled": true,
"_materials": [
@@ -11838,17 +11899,17 @@
"_name": "coin1",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 252
+ "__id__": 253
},
{
- "__id__": 254
+ "__id__": 255
},
{
- "__id__": 256
+ "__id__": 257
}
],
"_active": false,
@@ -11906,13 +11967,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 253
+ "__id__": 254
}
],
"_prefab": null,
@@ -11968,7 +12029,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 253
},
"_enabled": true,
"_materials": [
@@ -12002,13 +12063,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 255
+ "__id__": 256
}
],
"_prefab": null,
@@ -12064,7 +12125,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 254
+ "__id__": 255
},
"_enabled": true,
"_materials": [
@@ -12098,13 +12159,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 257
+ "__id__": 258
}
],
"_prefab": null,
@@ -12160,7 +12221,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 256
+ "__id__": 257
},
"_enabled": true,
"_materials": [
@@ -12194,20 +12255,20 @@
"_name": "coin2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 259
+ "__id__": 260
},
{
- "__id__": 261
+ "__id__": 262
},
{
- "__id__": 263
+ "__id__": 264
},
{
- "__id__": 265
+ "__id__": 266
}
],
"_active": false,
@@ -12265,13 +12326,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 261
}
],
"_prefab": null,
@@ -12327,7 +12388,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 259
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -12361,13 +12422,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 262
+ "__id__": 263
}
],
"_prefab": null,
@@ -12423,7 +12484,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 261
+ "__id__": 262
},
"_enabled": true,
"_materials": [
@@ -12457,13 +12518,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 264
+ "__id__": 265
}
],
"_prefab": null,
@@ -12519,7 +12580,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 263
+ "__id__": 264
},
"_enabled": true,
"_materials": [
@@ -12553,13 +12614,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 266
+ "__id__": 267
}
],
"_prefab": null,
@@ -12615,7 +12676,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 265
+ "__id__": 266
},
"_enabled": true,
"_materials": [
@@ -12649,20 +12710,20 @@
"_name": "coin3",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 268
+ "__id__": 269
},
{
- "__id__": 270
+ "__id__": 271
},
{
- "__id__": 272
+ "__id__": 273
},
{
- "__id__": 274
+ "__id__": 275
}
],
"_active": false,
@@ -12720,13 +12781,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 269
+ "__id__": 270
}
],
"_prefab": null,
@@ -12782,7 +12843,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 268
+ "__id__": 269
},
"_enabled": true,
"_materials": [
@@ -12816,13 +12877,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 271
+ "__id__": 272
}
],
"_prefab": null,
@@ -12878,7 +12939,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 270
+ "__id__": 271
},
"_enabled": true,
"_materials": [
@@ -12912,13 +12973,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 273
+ "__id__": 274
}
],
"_prefab": null,
@@ -12974,7 +13035,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 272
+ "__id__": 273
},
"_enabled": true,
"_materials": [
@@ -13008,13 +13069,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 275
+ "__id__": 276
}
],
"_prefab": null,
@@ -13070,7 +13131,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 274
+ "__id__": 275
},
"_enabled": true,
"_materials": [
@@ -13104,13 +13165,13 @@
"_name": "coins",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 277
+ "__id__": 278
}
],
"_prefab": null,
@@ -13166,7 +13227,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 276
+ "__id__": 277
},
"_enabled": true,
"_materials": [
@@ -13200,7 +13261,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_materials": [
@@ -13232,7 +13293,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_normalMaterial": null,
@@ -13241,7 +13302,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 280
+ "__id__": 281
}
],
"_N$interactable": true,
@@ -13297,7 +13358,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 242
+ "__id__": 243
},
"_id": "d9X6reFQ5ElIF/oEEoTwvB"
},
@@ -13316,20 +13377,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 282
+ "__id__": 283
}
],
"_active": true,
"_components": [
{
- "__id__": 284
+ "__id__": 285
},
{
- "__id__": 285
+ "__id__": 286
}
],
"_prefab": null,
@@ -13385,13 +13446,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 281
+ "__id__": 282
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 283
+ "__id__": 284
}
],
"_prefab": null,
@@ -13447,7 +13508,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 282
+ "__id__": 283
},
"_enabled": true,
"_materials": [
@@ -13481,7 +13542,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_materials": [
@@ -13513,7 +13574,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_normalMaterial": null,
@@ -13522,7 +13583,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 286
+ "__id__": 287
}
],
"_N$interactable": true,
@@ -13578,7 +13639,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 281
+ "__id__": 282
},
"_id": "48mz2WOYxOmpmmNFGfPFpu"
},
@@ -13597,23 +13658,23 @@
"_name": "Boom",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 288
+ "__id__": 289
},
{
- "__id__": 290
+ "__id__": 291
},
{
- "__id__": 292
+ "__id__": 293
},
{
- "__id__": 300
+ "__id__": 301
},
{
- "__id__": 306
+ "__id__": 307
}
],
"_active": false,
@@ -13671,13 +13732,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 289
+ "__id__": 290
}
],
"_prefab": null,
@@ -13733,7 +13794,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 289
},
"_enabled": true,
"_materials": [
@@ -13767,13 +13828,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 291
+ "__id__": 292
}
],
"_prefab": null,
@@ -13829,7 +13890,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 290
+ "__id__": 291
},
"_enabled": true,
"_materials": [
@@ -13863,23 +13924,23 @@
"_name": "boomBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 293
+ "__id__": 294
},
{
- "__id__": 295
+ "__id__": 296
}
],
"_active": false,
"_components": [
{
- "__id__": 297
+ "__id__": 298
},
{
- "__id__": 298
+ "__id__": 299
}
],
"_prefab": null,
@@ -13935,13 +13996,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 294
+ "__id__": 295
}
],
"_prefab": null,
@@ -13997,7 +14058,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 293
+ "__id__": 294
},
"_enabled": true,
"_materials": [
@@ -14031,13 +14092,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 296
+ "__id__": 297
}
],
"_prefab": null,
@@ -14093,7 +14154,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 295
+ "__id__": 296
},
"_enabled": true,
"_materials": [
@@ -14127,7 +14188,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_materials": [
@@ -14161,7 +14222,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_normalMaterial": null,
@@ -14170,7 +14231,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 299
+ "__id__": 300
}
],
"_N$interactable": true,
@@ -14226,7 +14287,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 292
+ "__id__": 293
},
"_id": "fdZzVHD4hNAIg80rQMiVrL"
},
@@ -14243,20 +14304,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 301
+ "__id__": 302
}
],
"_active": true,
"_components": [
{
- "__id__": 303
+ "__id__": 304
},
{
- "__id__": 304
+ "__id__": 305
}
],
"_prefab": null,
@@ -14312,13 +14373,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 300
+ "__id__": 301
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 302
+ "__id__": 303
}
],
"_prefab": null,
@@ -14374,7 +14435,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 301
+ "__id__": 302
},
"_enabled": true,
"_materials": [
@@ -14408,7 +14469,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_materials": [
@@ -14440,7 +14501,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_normalMaterial": null,
@@ -14449,7 +14510,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 305
+ "__id__": 306
}
],
"_N$interactable": true,
@@ -14505,7 +14566,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 300
+ "__id__": 301
},
"_id": "55yv+R8WZJC6lx8Nc3Ql1k"
},
@@ -14524,13 +14585,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 307
+ "__id__": 308
}
],
"_prefab": null,
@@ -14586,7 +14647,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 306
+ "__id__": 307
},
"_enabled": true,
"_materials": [
@@ -14620,20 +14681,20 @@
"_name": "Lock",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 309
+ "__id__": 310
},
{
- "__id__": 311
+ "__id__": 312
},
{
- "__id__": 313
+ "__id__": 314
},
{
- "__id__": 315
+ "__id__": 316
}
],
"_active": false,
@@ -14691,13 +14752,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 310
+ "__id__": 311
}
],
"_prefab": null,
@@ -14753,7 +14814,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 309
+ "__id__": 310
},
"_enabled": true,
"_materials": [
@@ -14787,13 +14848,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 312
+ "__id__": 313
}
],
"_prefab": null,
@@ -14849,7 +14910,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 312
},
"_enabled": true,
"_materials": [
@@ -14882,13 +14943,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 314
+ "__id__": 315
}
],
"_prefab": null,
@@ -14944,7 +15005,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 313
+ "__id__": 314
},
"_enabled": false,
"_materials": [
@@ -14978,35 +15039,35 @@
"_name": "lockBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [
{
- "__id__": 316
+ "__id__": 317
},
{
- "__id__": 318
+ "__id__": 319
},
{
- "__id__": 320
+ "__id__": 321
},
{
- "__id__": 322
+ "__id__": 323
},
{
- "__id__": 324
+ "__id__": 325
},
{
- "__id__": 326
+ "__id__": 327
}
],
"_active": true,
"_components": [
{
- "__id__": 328
+ "__id__": 329
},
{
- "__id__": 329
+ "__id__": 330
}
],
"_prefab": null,
@@ -15062,13 +15123,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 317
+ "__id__": 318
}
],
"_prefab": null,
@@ -15124,7 +15185,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 316
+ "__id__": 317
},
"_enabled": true,
"_materials": [
@@ -15158,13 +15219,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 319
+ "__id__": 320
}
],
"_prefab": null,
@@ -15220,7 +15281,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 318
+ "__id__": 319
},
"_enabled": true,
"_materials": [
@@ -15254,13 +15315,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 321
+ "__id__": 322
}
],
"_prefab": null,
@@ -15316,7 +15377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 320
+ "__id__": 321
},
"_enabled": true,
"_materials": [
@@ -15350,13 +15411,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 323
+ "__id__": 324
}
],
"_prefab": null,
@@ -15412,7 +15473,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 322
+ "__id__": 323
},
"_enabled": true,
"_materials": [
@@ -15446,13 +15507,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 325
+ "__id__": 326
}
],
"_prefab": null,
@@ -15508,7 +15569,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 324
+ "__id__": 325
},
"_enabled": true,
"_materials": [
@@ -15542,13 +15603,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 327
+ "__id__": 328
}
],
"_prefab": null,
@@ -15604,7 +15665,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 326
+ "__id__": 327
},
"_enabled": true,
"_materials": [
@@ -15638,7 +15699,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_materials": [
@@ -15672,7 +15733,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_normalMaterial": null,
@@ -15681,7 +15742,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 330
+ "__id__": 331
}
],
"_N$interactable": true,
@@ -15737,7 +15798,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 315
+ "__id__": 316
},
"_id": "655dVf4UVDOrfIwT5AEPmn"
},
@@ -15754,23 +15815,23 @@
"_name": "Health",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 332
+ "__id__": 333
},
{
- "__id__": 334
+ "__id__": 335
},
{
- "__id__": 340
+ "__id__": 341
},
{
- "__id__": 344
+ "__id__": 345
},
{
- "__id__": 350
+ "__id__": 351
}
],
"_active": false,
@@ -15828,13 +15889,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 333
+ "__id__": 334
}
],
"_prefab": null,
@@ -15890,7 +15951,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 332
+ "__id__": 333
},
"_enabled": true,
"_materials": [
@@ -15924,20 +15985,20 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 335
+ "__id__": 336
},
{
- "__id__": 337
+ "__id__": 338
}
],
"_active": true,
"_components": [
{
- "__id__": 339
+ "__id__": 340
}
],
"_prefab": null,
@@ -15993,13 +16054,13 @@
"_name": "hp_-",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 336
+ "__id__": 337
}
],
"_prefab": null,
@@ -16055,7 +16116,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 335
+ "__id__": 336
},
"_enabled": true,
"_materials": [
@@ -16089,13 +16150,13 @@
"_name": "hp_1",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 338
+ "__id__": 339
}
],
"_prefab": null,
@@ -16151,7 +16212,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 337
+ "__id__": 338
},
"_enabled": true,
"_materials": [
@@ -16185,7 +16246,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 334
+ "__id__": 335
},
"_enabled": true,
"_materials": [
@@ -16219,16 +16280,16 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 341
+ "__id__": 342
},
{
- "__id__": 342
+ "__id__": 343
}
],
"_prefab": null,
@@ -16284,7 +16345,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_materials": [
@@ -16318,7 +16379,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_normalMaterial": null,
@@ -16327,7 +16388,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 343
+ "__id__": 344
}
],
"_N$interactable": true,
@@ -16383,7 +16444,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 340
+ "__id__": 341
},
"_id": "e6+nQbfBJDk5i7aunx3eFh"
},
@@ -16402,20 +16463,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 345
+ "__id__": 346
}
],
"_active": true,
"_components": [
{
- "__id__": 347
+ "__id__": 348
},
{
- "__id__": 348
+ "__id__": 349
}
],
"_prefab": null,
@@ -16471,13 +16532,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 344
+ "__id__": 345
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 346
+ "__id__": 347
}
],
"_prefab": null,
@@ -16533,7 +16594,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 345
+ "__id__": 346
},
"_enabled": true,
"_materials": [
@@ -16567,7 +16628,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_materials": [
@@ -16599,7 +16660,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_normalMaterial": null,
@@ -16608,7 +16669,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 349
+ "__id__": 350
}
],
"_N$interactable": true,
@@ -16664,7 +16725,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 344
+ "__id__": 345
},
"_id": "bbSZLwLOdIJJ624BuB24QD"
},
@@ -16683,13 +16744,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 351
+ "__id__": 352
}
],
"_prefab": null,
@@ -16745,7 +16806,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 350
+ "__id__": 351
},
"_enabled": true,
"_materials": [
@@ -16779,7 +16840,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 208
+ "__id__": 209
},
"_enabled": true,
"alignMode": 1,
@@ -16837,61 +16898,61 @@
},
"_children": [
{
- "__id__": 355
+ "__id__": 356
},
{
- "__id__": 358
+ "__id__": 359
},
{
- "__id__": 360
+ "__id__": 361
},
{
- "__id__": 367
+ "__id__": 368
},
{
- "__id__": 369
+ "__id__": 370
},
{
- "__id__": 373
+ "__id__": 374
},
{
- "__id__": 375
+ "__id__": 376
},
{
- "__id__": 377
+ "__id__": 378
},
{
- "__id__": 379
+ "__id__": 380
},
{
- "__id__": 381
+ "__id__": 382
},
{
- "__id__": 383
+ "__id__": 384
},
{
- "__id__": 385
+ "__id__": 386
},
{
- "__id__": 389
+ "__id__": 390
},
{
- "__id__": 393
+ "__id__": 394
},
{
- "__id__": 397
+ "__id__": 398
},
{
- "__id__": 399
+ "__id__": 400
},
{
- "__id__": 401
+ "__id__": 402
}
],
"_active": false,
"_components": [
{
- "__id__": 403
+ "__id__": 404
}
],
"_prefab": null,
@@ -16947,16 +17008,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 356
+ "__id__": 357
},
{
- "__id__": 357
+ "__id__": 358
}
],
"_prefab": null,
@@ -17012,7 +17073,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_materials": [
@@ -17044,7 +17105,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_id": "081I6vq85Jwqkph7MYgiJK"
@@ -17054,13 +17115,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 359
+ "__id__": 360
}
],
"_prefab": null,
@@ -17116,7 +17177,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 358
+ "__id__": 359
},
"_enabled": true,
"_materials": [
@@ -17148,23 +17209,23 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [
{
- "__id__": 361
+ "__id__": 362
}
],
"_active": true,
"_components": [
- {
- "__id__": 363
- },
{
"__id__": 364
},
{
- "__id__": 366
+ "__id__": 365
+ },
+ {
+ "__id__": 367
}
],
"_prefab": null,
@@ -17220,13 +17281,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 360
+ "__id__": 361
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 362
+ "__id__": 363
}
],
"_prefab": null,
@@ -17282,7 +17343,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 361
+ "__id__": 362
},
"_enabled": true,
"_materials": [
@@ -17316,7 +17377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_materials": [
@@ -17350,7 +17411,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_normalMaterial": null,
@@ -17359,7 +17420,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 365
+ "__id__": 366
}
],
"_N$interactable": true,
@@ -17415,7 +17476,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 360
+ "__id__": 361
},
"_id": "10Gq5GdVNFoaGKYCbUkdh0"
},
@@ -17434,7 +17495,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_id": "48L+wrOmdFHpjlTvLGv0eT"
@@ -17444,13 +17505,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 368
+ "__id__": 369
}
],
"_prefab": null,
@@ -17506,7 +17567,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 367
+ "__id__": 368
},
"_enabled": true,
"_materials": [
@@ -17540,16 +17601,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 370
+ "__id__": 371
},
{
- "__id__": 371
+ "__id__": 372
}
],
"_prefab": null,
@@ -17605,7 +17666,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_materials": [
@@ -17639,7 +17700,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_normalMaterial": null,
@@ -17648,7 +17709,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 372
+ "__id__": 373
}
],
"_N$interactable": true,
@@ -17704,7 +17765,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 369
+ "__id__": 370
},
"_id": "9cyVET3cdKsYjhCs6UcCZp"
},
@@ -17723,13 +17784,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 374
+ "__id__": 375
}
],
"_prefab": null,
@@ -17785,7 +17846,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 373
+ "__id__": 374
},
"_enabled": true,
"_materials": [
@@ -17819,13 +17880,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 376
+ "__id__": 377
}
],
"_prefab": null,
@@ -17881,7 +17942,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 375
+ "__id__": 376
},
"_enabled": true,
"_materials": [
@@ -17915,13 +17976,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 378
+ "__id__": 379
}
],
"_prefab": null,
@@ -17977,7 +18038,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 377
+ "__id__": 378
},
"_enabled": true,
"_materials": [
@@ -18011,13 +18072,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 380
+ "__id__": 381
}
],
"_prefab": null,
@@ -18073,7 +18134,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 379
+ "__id__": 380
},
"_enabled": true,
"_materials": [
@@ -18107,13 +18168,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 382
+ "__id__": 383
}
],
"_prefab": null,
@@ -18169,7 +18230,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 382
},
"_enabled": true,
"_materials": [
@@ -18203,13 +18264,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 384
+ "__id__": 385
}
],
"_prefab": null,
@@ -18265,7 +18326,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 383
+ "__id__": 384
},
"_enabled": true,
"_materials": [
@@ -18299,16 +18360,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 386
+ "__id__": 387
},
{
- "__id__": 387
+ "__id__": 388
}
],
"_prefab": null,
@@ -18364,7 +18425,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_materials": [
@@ -18398,7 +18459,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_normalMaterial": null,
@@ -18407,7 +18468,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 388
+ "__id__": 389
}
],
"_N$interactable": true,
@@ -18463,14 +18524,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 385
+ "__id__": 386
},
"_id": "f5jlj3QZFNUoLmIDeOTDNk"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18482,16 +18543,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 390
+ "__id__": 391
},
{
- "__id__": 391
+ "__id__": 392
}
],
"_prefab": null,
@@ -18547,7 +18608,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_materials": [
@@ -18581,7 +18642,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_normalMaterial": null,
@@ -18590,7 +18651,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 392
+ "__id__": 393
}
],
"_N$interactable": true,
@@ -18646,14 +18707,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 389
+ "__id__": 390
},
"_id": "f7PV5tqLpANY2mQ5mNiG8G"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18665,16 +18726,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 394
+ "__id__": 395
},
{
- "__id__": 395
+ "__id__": 396
}
],
"_prefab": null,
@@ -18730,7 +18791,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_materials": [
@@ -18764,7 +18825,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_normalMaterial": null,
@@ -18773,7 +18834,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 396
+ "__id__": 397
}
],
"_N$interactable": true,
@@ -18829,14 +18890,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 393
+ "__id__": 394
},
"_id": "f9Y6q5sbpGXrDTpVBgbvWY"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18848,13 +18909,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 398
+ "__id__": 399
}
],
"_prefab": null,
@@ -18910,7 +18971,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 397
+ "__id__": 398
},
"_enabled": true,
"_materials": [
@@ -18944,13 +19005,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 400
+ "__id__": 401
}
],
"_prefab": null,
@@ -19006,7 +19067,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 399
+ "__id__": 400
},
"_enabled": true,
"_materials": [
@@ -19040,13 +19101,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 402
+ "__id__": 403
}
],
"_prefab": null,
@@ -19102,7 +19163,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 401
+ "__id__": 402
},
"_enabled": true,
"_materials": [
@@ -19136,17 +19197,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 354
+ "__id__": 355
},
"_enabled": true,
"music": {
- "__id__": 397
+ "__id__": 398
},
"effect": {
- "__id__": 399
+ "__id__": 400
},
"vibrate": {
- "__id__": 401
+ "__id__": 402
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -19167,10 +19228,10 @@
"_active": false,
"_components": [
{
- "__id__": 405
+ "__id__": 406
},
{
- "__id__": 406
+ "__id__": 407
}
],
"_prefab": null,
@@ -19226,7 +19287,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": true,
"_materials": [
@@ -19268,7 +19329,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": false,
"_id": "00qpMLeBFNhYRX9r3QZvyP"
diff --git a/assets/Script/Map.ts b/assets/Script/Map.ts
index baed779..c28211a 100644
--- a/assets/Script/Map.ts
+++ b/assets/Script/Map.ts
@@ -72,6 +72,7 @@ export default class MapConroler extends cc.Component {
timeLabel: cc.Node = null;
levelLabel: cc.Node = null;
+ coin: cc.Node = null;
new_mode: number = 0;
mapWidth: number = 0;
@@ -184,15 +185,18 @@ export default class MapConroler extends cc.Component {
}
initMap() {
+
// this.node.getChildByName("Wall").zIndex = 10;
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
+ this.coin = this.node.parent.getChildByName("Top").getChildByName("coin");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
NumberToImage.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel)
+ NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
// var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);
// this.timeLabel.string = timeTemp.toString();
NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, "level_", this.levelLabel, false)
diff --git a/assets/Script/NumberToImage.ts b/assets/Script/NumberToImage.ts
index f46976c..5925e60 100644
--- a/assets/Script/NumberToImage.ts
+++ b/assets/Script/NumberToImage.ts
@@ -5,7 +5,7 @@
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-const {ccclass, property} = cc._decorator;
+const { ccclass, property } = cc._decorator;
@ccclass
export default class NumberToImage extends cc.Component {
@@ -13,22 +13,22 @@ export default class NumberToImage extends cc.Component {
@property(cc.SpriteAtlas)
fontUI: cc.SpriteAtlas = null;
- static font:any = null;
+ static font: any = null;
// LIFE-CYCLE CALLBACKS:
- onLoad () {
- if(this.fontUI != null){
+ onLoad() {
+ if (this.fontUI != null) {
NumberToImage.font = this.fontUI;
- }
+ }
}
//第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点
- static numberToImageNodes(number, width, posX, name ,targetNode:cc.Node,middle:boolean = false) {
+ static numberToImageNodes(number, width, posX, name, targetNode: cc.Node, middle: boolean = false) {
const numStr = number.toString();
- let cha = 0;
- if(number > 99) cha = -posX
- else if(number < 10) cha = posX
- if(targetNode.children.length > 0)
+ let cha = 0;
+ if (number > 99) cha = -posX
+ else if (number < 10) cha = posX
+ if (targetNode.children.length > 0)
targetNode.removeAllChildren();
for (let i = 0; i < numStr.length; i++) {
const digit = parseInt(numStr[i], 10);
@@ -40,39 +40,40 @@ export default class NumberToImage extends cc.Component {
node.x = i * width + cha;
node.parent = targetNode;
}
- if(middle){
- targetNode.x = targetNode.x - targetNode.children.length * (width-15) / 2;
+ if (middle) {
+ targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2;
}
}
- static getTimeMargin(number, width, name ,targetNode:cc.Node) {
+
+ static getTimeMargin(number, width, name, targetNode: cc.Node) {
let timeArr = [];
let total = 0;
total = number;
let hour = 0;
hour = parseInt((total / 3600) + "");//计算整数小时数
let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数
- let min = parseInt((afterHour / 60)+"");//计算整数分
- let m = "" + min;
+ let min = parseInt((afterHour / 60) + "");//计算整数分
+ let m = "" + min;
- if(min < 10) m = "0"+min;
+ if (min < 10) m = "0" + min;
let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数
let miao = afterMin + "";
- if(afterMin < 10) miao = "0" + afterMin;
+ if (afterMin < 10) miao = "0" + afterMin;
let result = m + miao;
for (let i = 0; i < result.length; i++) {
const digit = parseInt(result[i], 10);
timeArr.push(digit);
}
-
- if(targetNode.children.length > 0){
+
+ if (targetNode.children.length > 0) {
for (let i = 0; i < targetNode.children.length; i++) {
targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + ""];
}
}
- else{
+ else {
for (let i = 0; i < 4; i++) {
const node = new cc.Node();
const sprite = node.addComponent(cc.Sprite);
@@ -81,7 +82,7 @@ export default class NumberToImage extends cc.Component {
sprite.spriteFrame = this.font._spriteFrames[name + digit + ""];
// 将节点添加到目标节点下
node.x = i * width;
- if(i > 1) node.x += 35;
+ if (i > 1) node.x += 35;
node.parent = targetNode;
}
}
diff --git a/assets/TextureBg/pop_Bg/loadBg.jpg b/assets/TextureBg/pop_Bg/loadBg.jpg
index 8a12cf6..6fbfebd 100644
Binary files a/assets/TextureBg/pop_Bg/loadBg.jpg and b/assets/TextureBg/pop_Bg/loadBg.jpg differ
diff --git a/assets/res/font/font.plist b/assets/res/font/font.plist
index 2508ed4..c339b4f 100644
--- a/assets/res/font/font.plist
+++ b/assets/res/font/font.plist
@@ -15,7 +15,7 @@
spriteSourceSize
{25,39}
textureRect
- {{309,132},{25,39}}
+ {{154,915},{25,39}}
textureRotated
@@ -30,9 +30,9 @@
spriteSourceSize
{20,38}
textureRect
- {{92,137},{20,38}}
+ {{137,92},{20,38}}
textureRotated
-
+
big_2.png
@@ -45,9 +45,9 @@
spriteSourceSize
{24,37}
textureRect
- {{1263,66},{24,37}}
+ {{227,797},{24,37}}
textureRotated
-
+
big_3.png
@@ -60,9 +60,9 @@
spriteSourceSize
{23,38}
textureRect
- {{754,230},{23,38}}
+ {{132,385},{23,38}}
textureRotated
-
+
big_4.png
@@ -75,9 +75,9 @@
spriteSourceSize
{26,38}
textureRect
- {{566,131},{26,38}}
+ {{225,836},{26,38}}
textureRotated
-
+
big_5.png
@@ -90,9 +90,9 @@
spriteSourceSize
{24,38}
textureRect
- {{794,229},{24,38}}
+ {{131,498},{24,38}}
textureRotated
-
+
big_6.png
@@ -105,9 +105,9 @@
spriteSourceSize
{25,38}
textureRect
- {{391,132},{25,38}}
+ {{59,1662},{25,38}}
textureRotated
-
+
big_7.png
@@ -120,9 +120,9 @@
spriteSourceSize
{25,39}
textureRect
- {{350,132},{25,39}}
+ {{60,1621},{25,39}}
textureRotated
-
+
big_8.png
@@ -135,9 +135,9 @@
spriteSourceSize
{24,38}
textureRect
- {{1183,68},{24,38}}
+ {{131,538},{24,38}}
textureRotated
-
+
big_9.png
@@ -150,9 +150,9 @@
spriteSourceSize
{25,38}
textureRect
- {{431,132},{25,38}}
+ {{59,1702},{25,38}}
textureRotated
-
+
coin_0.png
@@ -165,9 +165,9 @@
spriteSourceSize
{27,37}
textureRect
- {{1030,226},{27,37}}
+ {{62,1386},{27,37}}
textureRotated
-
+
coin_1.png
@@ -180,9 +180,9 @@
spriteSourceSize
{16,39}
textureRect
- {{1626,57},{16,39}}
+ {{135,291},{16,39}}
textureRotated
-
+
coin_2.png
@@ -195,9 +195,9 @@
spriteSourceSize
{26,38}
textureRect
- {{834,227},{26,38}}
+ {{61,1463},{26,38}}
textureRotated
-
+
coin_3.png
@@ -210,9 +210,9 @@
spriteSourceSize
{24,38}
textureRect
- {{1223,67},{24,38}}
+ {{131,578},{24,38}}
textureRotated
-
+
coin_4.png
@@ -225,9 +225,9 @@
spriteSourceSize
{30,36}
textureRect
- {{1683,113},{30,36}}
+ {{68,1084},{30,36}}
textureRotated
-
+
coin_5.png
@@ -240,7 +240,7 @@
spriteSourceSize
{25,37}
textureRect
- {{471,132},{25,37}}
+ {{153,1672},{25,37}}
textureRotated
@@ -255,9 +255,9 @@
spriteSourceSize
{28,36}
textureRect
- {{1029,68},{28,36}}
+ {{66,1258},{28,36}}
textureRotated
-
+
coin_7.png
@@ -270,9 +270,9 @@
spriteSourceSize
{25,36}
textureRect
- {{1211,226},{25,36}}
+ {{175,1738},{25,36}}
textureRotated
-
+
coin_8.png
@@ -285,9 +285,9 @@
spriteSourceSize
{27,36}
textureRect
- {{1069,226},{27,36}}
+ {{62,1425},{27,36}}
textureRotated
-
+
coin_9.png
@@ -300,9 +300,9 @@
spriteSourceSize
{26,36}
textureRect
- {{1107,68},{26,36}}
+ {{60,1583},{26,36}}
textureRotated
-
+
coins0.png
@@ -315,7 +315,7 @@
spriteSourceSize
{47,59}
textureRect
- {{735,110},{47,59}}
+ {{145,1403},{47,59}}
textureRotated
@@ -330,7 +330,7 @@
spriteSourceSize
{32,61}
textureRect
- {{1314,91},{32,61}}
+ {{219,1115},{32,61}}
textureRotated
@@ -345,7 +345,7 @@
spriteSourceSize
{45,60}
textureRect
- {{673,112},{45,60}}
+ {{145,1312},{45,60}}
textureRotated
@@ -360,7 +360,7 @@
spriteSourceSize
{42,60}
textureRect
- {{1339,154},{42,60}}
+ {{209,1294},{42,60}}
textureRotated
@@ -375,7 +375,7 @@
spriteSourceSize
{50,59}
textureRect
- {{951,98},{50,59}}
+ {{100,1045},{50,59}}
textureRotated
@@ -390,9 +390,9 @@
spriteSourceSize
{44,59}
textureRect
- {{1003,98},{44,59}}
+ {{1,1348},{44,59}}
textureRotated
-
+
coins6.png
@@ -405,7 +405,7 @@
spriteSourceSize
{47,58}
textureRect
- {{902,99},{47,58}}
+ {{91,1410},{47,58}}
textureRotated
@@ -420,9 +420,9 @@
spriteSourceSize
{43,58}
textureRect
- {{1392,87},{43,58}}
+ {{140,1452},{43,58}}
textureRotated
-
+
coins8.png
@@ -435,9 +435,9 @@
spriteSourceSize
{47,58}
textureRect
- {{1405,1},{47,58}}
+ {{1,1438},{47,58}}
textureRotated
-
+
coins9.png
@@ -450,9 +450,9 @@
spriteSourceSize
{44,58}
textureRect
- {{1383,153},{44,58}}
+ {{1,1487},{44,58}}
textureRotated
-
+
coins_+.png
@@ -465,9 +465,9 @@
spriteSourceSize
{44,42}
textureRect
- {{1713,186},{44,42}}
+ {{88,1605},{44,42}}
textureRotated
-
+
coins_,.png
@@ -480,7 +480,7 @@
spriteSourceSize
{23,26}
textureRect
- {{1147,226},{23,26}}
+ {{228,701},{23,26}}
textureRotated
@@ -495,9 +495,9 @@
spriteSourceSize
{24,20}
textureRect
- {{132,137},{24,20}}
+ {{137,132},{24,20}}
textureRotated
-
+
coins_x.png
@@ -510,9 +510,9 @@
spriteSourceSize
{43,49}
textureRect
- {{1635,1},{43,49}}
+ {{96,1201},{43,49}}
textureRotated
-
+
cost_0.png
@@ -525,9 +525,9 @@
spriteSourceSize
{30,38}
textureRect
- {{1683,50},{30,38}}
+ {{68,1044},{30,38}}
textureRotated
-
+
cost_1.png
@@ -540,9 +540,9 @@
spriteSourceSize
{16,36}
textureRect
- {{1599,180},{16,36}}
+ {{202,1730},{16,36}}
textureRotated
-
+
cost_10.png
@@ -555,7 +555,7 @@
spriteSourceSize
{9,10}
textureRect
- {{590,112},{9,10}}
+ {{112,590},{9,10}}
textureRotated
@@ -570,7 +570,7 @@
spriteSourceSize
{33,33}
textureRect
- {{1723,1},{33,33}}
+ {{86,1707},{33,33}}
textureRotated
@@ -585,9 +585,9 @@
spriteSourceSize
{25,37}
textureRect
- {{1172,226},{25,37}}
+ {{168,1699},{25,37}}
textureRotated
-
+
cost_3.png
@@ -600,9 +600,9 @@
spriteSourceSize
{23,37}
textureRect
- {{1302,66},{23,37}}
+ {{132,425},{23,37}}
textureRotated
-
+
cost_4.png
@@ -615,9 +615,9 @@
spriteSourceSize
{28,37}
textureRect
- {{990,68},{28,37}}
+ {{66,1219},{28,37}}
textureRotated
-
+
cost_5.png
@@ -630,9 +630,9 @@
spriteSourceSize
{25,36}
textureRect
- {{1145,68},{25,36}}
+ {{195,1692},{25,36}}
textureRotated
-
+
cost_6.png
@@ -645,9 +645,9 @@
spriteSourceSize
{26,38}
textureRect
- {{1107,226},{26,38}}
+ {{61,1503},{26,38}}
textureRotated
-
+
cost_7.png
@@ -660,9 +660,9 @@
spriteSourceSize
{29,37}
textureRect
- {{1683,82},{29,37}}
+ {{68,1122},{29,37}}
textureRotated
-
+
cost_8.png
@@ -675,9 +675,9 @@
spriteSourceSize
{26,38}
textureRect
- {{1067,68},{26,38}}
+ {{61,1543},{26,38}}
textureRotated
-
+
cost_9.png
@@ -690,9 +690,9 @@
spriteSourceSize
{27,39}
textureRect
- {{989,226},{27,39}}
+ {{66,1345},{27,39}}
textureRotated
-
+
cost_yuan.png
@@ -705,9 +705,9 @@
spriteSourceSize
{46,43}
textureRect
- {{1443,207},{46,43}}
+ {{198,1518},{46,43}}
textureRotated
-
+
hp_,.png
@@ -720,9 +720,9 @@
spriteSourceSize
{46,68}
textureRect
- {{770,159},{46,68}}
+ {{157,770},{46,68}}
textureRotated
-
+
hp_-.png
@@ -735,9 +735,9 @@
spriteSourceSize
{66,29}
textureRect
- {{818,159},{66,29}}
+ {{157,818},{66,29}}
textureRotated
-
+
hp_..png
@@ -750,9 +750,9 @@
spriteSourceSize
{45,42}
textureRect
- {{1669,186},{45,42}}
+ {{196,1563},{45,42}}
textureRotated
-
+
hp_1.png
@@ -765,9 +765,9 @@
spriteSourceSize
{52,107}
textureRect
- {{694,1},{52,107}}
+ {{1,694},{52,107}}
textureRotated
-
+
hp_2.png
@@ -780,9 +780,9 @@
spriteSourceSize
{98,106}
textureRect
- {{748,1},{98,106}}
+ {{1,748},{98,106}}
textureRotated
-
+
hp_3.png
@@ -795,9 +795,9 @@
spriteSourceSize
{98,129}
textureRect
- {{292,1},{98,129}}
+ {{1,292},{98,129}}
textureRotated
-
+
hp_4.png
@@ -810,9 +810,9 @@
spriteSourceSize
{99,132}
textureRect
- {{191,1},{99,132}}
+ {{1,191},{99,132}}
textureRotated
-
+
hp_5.png
@@ -825,9 +825,9 @@
spriteSourceSize
{94,128}
textureRect
- {{1,159},{94,128}}
+ {{157,229},{94,128}}
textureRotated
-
+
hp_6.png
@@ -840,9 +840,9 @@
spriteSourceSize
{98,128}
textureRect
- {{490,1},{98,128}}
+ {{1,490},{98,128}}
textureRotated
-
+
hp_7.png
@@ -855,9 +855,9 @@
spriteSourceSize
{94,125}
textureRect
- {{131,159},{94,125}}
+ {{157,359},{94,125}}
textureRotated
-
+
hp_8.png
@@ -870,9 +870,9 @@
spriteSourceSize
{97,134}
textureRect
- {{92,1},{97,134}}
+ {{1,92},{97,134}}
textureRotated
-
+
hp_9.png
@@ -885,9 +885,9 @@
spriteSourceSize
{96,129}
textureRect
- {{392,1},{96,129}}
+ {{1,392},{96,129}}
textureRotated
-
+
hp_x.png
@@ -900,9 +900,9 @@
spriteSourceSize
{102,109}
textureRect
- {{590,1},{102,109}}
+ {{1,590},{102,109}}
textureRotated
-
+
ice_0.png
@@ -915,9 +915,9 @@
spriteSourceSize
{51,65}
textureRect
- {{969,159},{51,65}}
+ {{1,939},{51,65}}
textureRotated
-
+
ice_1.png
@@ -930,9 +930,9 @@
spriteSourceSize
{27,64}
textureRect
- {{874,226},{27,64}}
+ {{224,876},{27,64}}
textureRotated
-
+
ice_2.png
@@ -945,9 +945,9 @@
spriteSourceSize
{51,65}
textureRect
- {{990,1},{51,65}}
+ {{1,992},{51,65}}
textureRotated
-
+
ice_3.png
@@ -960,9 +960,9 @@
spriteSourceSize
{45,65}
textureRect
- {{606,112},{45,65}}
+ {{110,747},{45,65}}
textureRotated
-
+
ice_4.png
@@ -975,9 +975,9 @@
spriteSourceSize
{52,65}
textureRect
- {{915,159},{52,65}}
+ {{1,885},{52,65}}
textureRotated
-
+
ice_5.png
@@ -990,9 +990,9 @@
spriteSourceSize
{49,65}
textureRect
- {{1043,1},{49,65}}
+ {{1,1045},{49,65}}
textureRotated
-
+
ice_6.png
@@ -1005,9 +1005,9 @@
spriteSourceSize
{49,65}
textureRect
- {{1075,159},{49,65}}
+ {{153,993},{49,65}}
textureRotated
-
+
ice_7.png
@@ -1020,7 +1020,7 @@
spriteSourceSize
{46,64}
textureRect
- {{1213,159},{46,64}}
+ {{109,814},{46,64}}
textureRotated
@@ -1035,7 +1035,7 @@
spriteSourceSize
{51,65}
textureRect
- {{1022,159},{51,65}}
+ {{100,978},{51,65}}
textureRotated
@@ -1050,9 +1050,9 @@
spriteSourceSize
{49,65}
textureRect
- {{1094,1},{49,65}}
+ {{153,1044},{49,65}}
textureRotated
-
+
level_0.png
@@ -1065,9 +1065,9 @@
spriteSourceSize
{42,65}
textureRect
- {{1126,159},{42,65}}
+ {{1,1096},{42,65}}
textureRotated
-
+
level_1.png
@@ -1080,9 +1080,9 @@
spriteSourceSize
{34,63}
textureRect
- {{1303,157},{34,63}}
+ {{1,1312},{34,63}}
textureRotated
-
+
level_2.png
@@ -1095,9 +1095,9 @@
spriteSourceSize
{40,63}
textureRect
- {{1279,1},{40,63}}
+ {{1,1232},{40,63}}
textureRotated
-
+
level_3.png
@@ -1110,9 +1110,9 @@
spriteSourceSize
{36,63}
textureRect
- {{1321,1},{36,63}}
+ {{1,1274},{36,63}}
textureRotated
-
+
level_4.png
@@ -1125,7 +1125,7 @@
spriteSourceSize
{43,64}
textureRect
- {{1188,1},{43,64}}
+ {{112,618},{43,64}}
textureRotated
@@ -1140,7 +1140,7 @@
spriteSourceSize
{39,63}
textureRect
- {{1273,92},{39,63}}
+ {{212,1229},{39,63}}
textureRotated
@@ -1155,9 +1155,9 @@
spriteSourceSize
{41,63}
textureRect
- {{1230,93},{41,63}}
+ {{150,1181},{41,63}}
textureRotated
-
+
level_7.png
@@ -1170,9 +1170,9 @@
spriteSourceSize
{41,65}
textureRect
- {{1170,159},{41,65}}
+ {{152,1095},{41,65}}
textureRotated
-
+
level_8.png
@@ -1185,9 +1185,9 @@
spriteSourceSize
{40,63}
textureRect
- {{1261,158},{40,63}}
+ {{147,1224},{40,63}}
textureRotated
-
+
level_9.png
@@ -1200,9 +1200,9 @@
spriteSourceSize
{41,65}
textureRect
- {{1145,1},{41,65}}
+ {{152,1138},{41,65}}
textureRotated
-
+
lock_0.png
@@ -1215,9 +1215,9 @@
spriteSourceSize
{22,32}
textureRect
- {{207,135},{22,32}}
+ {{228,729},{22,32}}
textureRotated
-
+
lock_1.png
@@ -1230,9 +1230,9 @@
spriteSourceSize
{17,32}
textureRect
- {{1592,59},{17,32}}
+ {{135,257},{17,32}}
textureRotated
-
+
lock_2.png
@@ -1245,7 +1245,7 @@
spriteSourceSize
{21,31}
textureRect
- {{1511,60},{21,31}}
+ {{220,1092},{21,31}}
textureRotated
@@ -1260,9 +1260,9 @@
spriteSourceSize
{21,32}
textureRect
- {{1409,61},{21,32}}
+ {{145,1706},{21,32}}
textureRotated
-
+
lock_4.png
@@ -1275,9 +1275,9 @@
spriteSourceSize
{23,32}
textureRect
- {{1341,66},{23,32}}
+ {{132,464},{23,32}}
textureRotated
-
+
lock_5.png
@@ -1290,9 +1290,9 @@
spriteSourceSize
{21,32}
textureRect
- {{1443,61},{21,32}}
+ {{222,1692},{21,32}}
textureRotated
-
+
lock_6.png
@@ -1305,9 +1305,9 @@
spriteSourceSize
{22,32}
textureRect
- {{241,135},{22,32}}
+ {{228,763},{22,32}}
textureRotated
-
+
lock_7.png
@@ -1320,9 +1320,9 @@
spriteSourceSize
{22,32}
textureRect
- {{275,135},{22,32}}
+ {{121,1707},{22,32}}
textureRotated
-
+
lock_8.png
@@ -1335,9 +1335,9 @@
spriteSourceSize
{21,32}
textureRect
- {{1477,60},{21,32}}
+ {{222,1726},{21,32}}
textureRotated
-
+
lock_9.png
@@ -1350,9 +1350,9 @@
spriteSourceSize
{22,32}
textureRect
- {{1375,63},{22,32}}
+ {{129,1672},{22,32}}
textureRotated
-
+
mul0.png
@@ -1365,9 +1365,9 @@
spriteSourceSize
{55,93}
textureRect
- {{319,159},{55,93}}
+ {{157,486},{55,93}}
textureRotated
-
+
mul1.png
@@ -1380,9 +1380,9 @@
spriteSourceSize
{35,97}
textureRect
- {{848,1},{35,97}}
+ {{1,848},{35,97}}
textureRotated
-
+
mul10.png
@@ -1395,9 +1395,9 @@
spriteSourceSize
{50,77}
textureRect
- {{649,159},{50,77}}
+ {{157,649},{50,77}}
textureRotated
-
+
mul2.png
@@ -1410,7 +1410,7 @@
spriteSourceSize
{52,96}
textureRect
- {{885,1},{52,96}}
+ {{100,880},{52,96}}
textureRotated
@@ -1425,9 +1425,9 @@
spriteSourceSize
{49,95}
textureRect
- {{939,1},{49,95}}
+ {{154,942},{49,95}}
textureRotated
-
+
mul4.png
@@ -1440,9 +1440,9 @@
spriteSourceSize
{59,93}
textureRect
- {{258,159},{59,93}}
+ {{158,168},{59,93}}
textureRotated
-
+
mul5.png
@@ -1455,9 +1455,9 @@
spriteSourceSize
{51,93}
textureRect
- {{376,159},{51,93}}
+ {{157,543},{51,93}}
textureRotated
-
+
mul6.png
@@ -1470,9 +1470,9 @@
spriteSourceSize
{56,92}
textureRect
- {{429,159},{56,92}}
+ {{159,1},{56,92}}
textureRotated
-
+
mul7.png
@@ -1485,9 +1485,9 @@
spriteSourceSize
{50,92}
textureRect
- {{487,159},{50,92}}
+ {{159,59},{50,92}}
textureRotated
-
+
mul8.png
@@ -1500,9 +1500,9 @@
spriteSourceSize
{55,91}
textureRect
- {{539,159},{55,91}}
+ {{159,111},{55,91}}
textureRotated
-
+
mul9.png
@@ -1515,9 +1515,9 @@
spriteSourceSize
{51,91}
textureRect
- {{596,159},{51,91}}
+ {{157,596},{51,91}}
textureRotated
-
+
rank_0.png
@@ -1530,9 +1530,9 @@
spriteSourceSize
{33,48}
textureRect
- {{1648,75},{33,48}}
+ {{95,1341},{33,48}}
textureRotated
-
+
rank_1.png
@@ -1545,9 +1545,9 @@
spriteSourceSize
{27,47}
textureRect
- {{940,226},{27,47}}
+ {{66,1296},{27,47}}
textureRotated
-
+
rank_2.png
@@ -1560,7 +1560,7 @@
spriteSourceSize
{31,47}
textureRect
- {{1722,85},{31,47}}
+ {{220,1043},{31,47}}
textureRotated
@@ -1575,7 +1575,7 @@
spriteSourceSize
{30,47}
textureRect
- {{1721,134},{30,47}}
+ {{68,946},{30,47}}
textureRotated
@@ -1590,9 +1590,9 @@
spriteSourceSize
{34,48}
textureRect
- {{1633,129},{34,48}}
+ {{95,1305},{34,48}}
textureRotated
-
+
rank_5.png
@@ -1605,7 +1605,7 @@
spriteSourceSize
{30,47}
textureRect
- {{1637,179},{30,47}}
+ {{68,995},{30,47}}
textureRotated
@@ -1620,9 +1620,9 @@
spriteSourceSize
{32,47}
textureRect
- {{1723,36},{32,47}}
+ {{89,1513},{32,47}}
textureRotated
-
+
rank_7.png
@@ -1635,7 +1635,7 @@
spriteSourceSize
{32,49}
textureRect
- {{1599,129},{32,49}}
+ {{219,1178},{32,49}}
textureRotated
@@ -1650,9 +1650,9 @@
spriteSourceSize
{31,48}
textureRect
- {{1333,222},{31,48}}
+ {{220,993},{31,48}}
textureRotated
-
+
rank_9.png
@@ -1665,9 +1665,9 @@
spriteSourceSize
{32,48}
textureRect
- {{1603,198},{32,48}}
+ {{95,1376},{32,48}}
textureRotated
-
+
result,.png
@@ -1680,7 +1680,7 @@
spriteSourceSize
{21,24}
textureRect
- {{1249,225},{21,24}}
+ {{195,915},{21,24}}
textureRotated
@@ -1695,9 +1695,9 @@
spriteSourceSize
{22,18}
textureRect
- {{183,137},{22,18}}
+ {{135,233},{22,18}}
textureRotated
-
+
result_0.png
@@ -1710,7 +1710,7 @@
spriteSourceSize
{45,57}
textureRect
- {{855,100},{45,57}}
+ {{206,1418},{45,57}}
textureRotated
@@ -1725,9 +1725,9 @@
spriteSourceSize
{30,59}
textureRect
- {{1272,223},{30,59}}
+ {{68,885},{30,59}}
textureRotated
-
+
result_2.png
@@ -1740,9 +1740,9 @@
spriteSourceSize
{43,58}
textureRect
- {{1429,147},{43,58}}
+ {{1,1533},{43,58}}
textureRotated
-
+
result_3.png
@@ -1755,7 +1755,7 @@
spriteSourceSize
{40,58}
textureRect
- {{1383,213},{40,58}}
+ {{138,1497},{40,58}}
textureRotated
@@ -1770,9 +1770,9 @@
spriteSourceSize
{48,57}
textureRect
- {{796,109},{48,57}}
+ {{96,1246},{48,57}}
textureRotated
-
+
result_5.png
@@ -1785,9 +1785,9 @@
spriteSourceSize
{42,57}
textureRect
- {{1437,84},{42,57}}
+ {{1,1578},{42,57}}
textureRotated
-
+
result_6.png
@@ -1800,9 +1800,9 @@
spriteSourceSize
{45,56}
textureRect
- {{1474,143},{45,56}}
+ {{138,1539},{45,56}}
textureRotated
-
+
result_7.png
@@ -1815,9 +1815,9 @@
spriteSourceSize
{41,56}
textureRect
- {{1521,141},{41,56}}
+ {{194,1607},{41,56}}
textureRotated
-
+
result_8.png
@@ -1830,7 +1830,7 @@
spriteSourceSize
{45,56}
textureRect
- {{1481,83},{45,56}}
+ {{89,1547},{45,56}}
textureRotated
@@ -1845,9 +1845,9 @@
spriteSourceSize
{42,56}
textureRect
- {{1525,1},{42,56}}
+ {{136,1586},{42,56}}
textureRotated
-
+
result_x.png
@@ -1860,9 +1860,9 @@
spriteSourceSize
{41,47}
textureRect
- {{1680,1},{41,47}}
+ {{89,1470},{41,47}}
textureRotated
-
+
scoin_0 (14).png
@@ -1875,9 +1875,9 @@
spriteSourceSize
{19,23}
textureRect
- {{158,137},{19,23}}
+ {{137,158},{19,23}}
textureRotated
-
+
scoin_0 (2).png
@@ -1890,9 +1890,9 @@
spriteSourceSize
{64,65}
textureRect
- {{849,159},{64,65}}
+ {{157,849},{64,65}}
textureRotated
-
+
scoin_0.png
@@ -1905,9 +1905,9 @@
spriteSourceSize
{47,49}
textureRect
- {{1599,78},{47,49}}
+ {{99,1152},{47,49}}
textureRotated
-
+
scoin_1.png
@@ -1920,9 +1920,9 @@
spriteSourceSize
{23,51}
textureRect
- {{701,230},{23,51}}
+ {{132,332},{23,51}}
textureRotated
-
+
scoin_10.png
@@ -1935,7 +1935,7 @@
spriteSourceSize
{39,47}
textureRect
- {{1669,145},{39,47}}
+ {{200,1477},{39,47}}
textureRotated
@@ -1950,9 +1950,9 @@
spriteSourceSize
{67,69}
textureRect
- {{701,159},{67,69}}
+ {{157,701},{67,69}}
textureRotated
-
+
scoin_2.png
@@ -1965,9 +1965,9 @@
spriteSourceSize
{44,50}
textureRect
- {{1488,201},{44,50}}
+ {{100,1106},{44,50}}
textureRotated
-
+
scoin_3.png
@@ -1980,9 +1980,9 @@
spriteSourceSize
{44,61}
textureRect
- {{1093,96},{44,61}}
+ {{146,1266},{44,61}}
textureRotated
-
+
scoin_4.png
@@ -1995,9 +1995,9 @@
spriteSourceSize
{44,63}
textureRect
- {{1184,94},{44,63}}
+ {{1,1140},{44,63}}
textureRotated
-
+
scoin_5.png
@@ -2010,9 +2010,9 @@
spriteSourceSize
{42,60}
textureRect
- {{1348,91},{42,60}}
+ {{145,1359},{42,60}}
textureRotated
-
+
scoin_6.png
@@ -2025,7 +2025,7 @@
spriteSourceSize
{44,60}
textureRect
- {{1359,1},{44,60}}
+ {{207,1356},{44,60}}
textureRotated
@@ -2040,9 +2040,9 @@
spriteSourceSize
{42,59}
textureRect
- {{1049,98},{42,59}}
+ {{1,1394},{42,59}}
textureRotated
-
+
scoin_8.png
@@ -2055,9 +2055,9 @@
spriteSourceSize
{44,63}
textureRect
- {{1233,1},{44,63}}
+ {{1,1186},{44,63}}
textureRotated
-
+
scoin_9.png
@@ -2070,7 +2070,7 @@
spriteSourceSize
{43,61}
textureRect
- {{1139,96},{43,61}}
+ {{112,684},{43,61}}
textureRotated
@@ -2081,13 +2081,13 @@
spriteOffset
{0,0}
spriteSize
- {33,57}
+ {40,56}
spriteSourceSize
- {33,57}
+ {40,56}
textureRect
- {{1490,1},{33,57}}
+ {{1,1622},{40,56}}
textureRotated
-
+
time_1.png
@@ -2096,13 +2096,13 @@
spriteOffset
{0,0}
spriteSize
- {26,54}
+ {28,56}
spriteSourceSize
- {26,54}
+ {40,56}
textureRect
- {{510,131},{26,54}}
+ {{66,1161},{28,56}}
textureRotated
-
+
time_10.png
@@ -2111,13 +2111,13 @@
spriteOffset
{0,0}
spriteSize
- {17,46}
+ {18,48}
spriteSourceSize
- {17,46}
+ {40,56}
textureRect
- {{1544,59},{17,46}}
+ {{137,183},{18,48}}
textureRotated
-
+
time_2.png
@@ -2126,13 +2126,13 @@
spriteOffset
{0,0}
spriteSize
- {32,55}
+ {38,56}
spriteSourceSize
- {32,55}
+ {40,56}
textureRect
- {{1565,78},{32,55}}
+ {{1,1706},{38,56}}
textureRotated
-
+
time_3.png
@@ -2141,13 +2141,13 @@
spriteOffset
{0,0}
spriteSize
- {30,54}
+ {36,56}
spriteSourceSize
- {30,54}
+ {40,56}
textureRect
- {{1603,1},{30,54}}
+ {{1,1746},{36,56}}
textureRotated
-
+
time_4.png
@@ -2156,13 +2156,13 @@
spriteOffset
{0,0}
spriteSize
- {35,56}
+ {40,56}
spriteSourceSize
- {35,56}
+ {40,56}
textureRect
- {{1528,83},{35,56}}
+ {{134,1630},{40,56}}
textureRotated
-
+
time_5.png
@@ -2171,13 +2171,13 @@
spriteOffset
{0,0}
spriteSize
- {32,54}
+ {38,56}
spriteSourceSize
- {32,54}
+ {40,56}
textureRect
- {{1569,199},{32,54}}
+ {{59,1742},{38,56}}
textureRotated
-
+
time_6.png
@@ -2186,13 +2186,13 @@
spriteOffset
{0,0}
spriteSize
- {33,54}
+ {38,56}
spriteSourceSize
- {33,54}
+ {40,56}
textureRect
- {{1534,199},{33,54}}
+ {{117,1742},{38,56}}
textureRotated
-
+
time_7.png
@@ -2201,13 +2201,13 @@
spriteOffset
{0,0}
spriteSize
- {34,57}
+ {40,56}
spriteSourceSize
- {34,57}
+ {40,56}
textureRect
- {{1454,1},{34,57}}
+ {{192,1650},{40,56}}
textureRotated
-
+
time_8.png
@@ -2216,11 +2216,11 @@
spriteOffset
{0,0}
spriteSize
- {32,56}
+ {40,56}
spriteSourceSize
- {32,56}
+ {40,56}
textureRect
- {{1569,1},{32,56}}
+ {{87,1649},{40,56}}
textureRotated
@@ -2231,13 +2231,13 @@
spriteOffset
{0,0}
spriteSize
- {33,56}
+ {40,56}
spriteSourceSize
- {33,56}
+ {40,56}
textureRect
- {{1564,141},{33,56}}
+ {{1,1664},{40,56}}
textureRotated
-
+
word_gx.png
@@ -2252,7 +2252,7 @@
textureRect
{{1,1},{156,89}}
textureRotated
-
+
metadata
@@ -2266,9 +2266,9 @@
realTextureFileName
font.png
size
- {1757,254}
+ {252,1783}
smartupdate
- $TexturePacker:SmartUpdate:5591e8d173bec0f2f3c30688a44cfbe7:1646a8dc8b769a4ba727cffe58ed9a49:90bd8558f1bc1540882ee9b431362e98$
+ $TexturePacker:SmartUpdate:fe6b3156441d2a66334db03c2bc58dad:ec883f0b5fe275a39d8d789aa9880c54:90bd8558f1bc1540882ee9b431362e98$
textureFileName
font.png
diff --git a/assets/res/font/font.plist.meta b/assets/res/font/font.plist.meta
index e17a84c..3ee9689 100644
--- a/assets/res/font/font.plist.meta
+++ b/assets/res/font/font.plist.meta
@@ -4,8 +4,8 @@
"importer": "asset",
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"size": {
- "width": 1757,
- "height": 254
+ "width": 252,
+ "height": 1783
},
"type": "Texture Packer",
"subMetas": {
@@ -19,8 +19,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 309,
- "trimY": 132,
+ "trimX": 154,
+ "trimY": 915,
"width": 25,
"height": 39,
"rawWidth": 25,
@@ -39,11 +39,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 92,
- "trimY": 137,
+ "trimX": 137,
+ "trimY": 92,
"width": 20,
"height": 38,
"rawWidth": 20,
@@ -62,11 +62,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1263,
- "trimY": 66,
+ "trimX": 227,
+ "trimY": 797,
"width": 24,
"height": 37,
"rawWidth": 24,
@@ -85,11 +85,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 754,
- "trimY": 230,
+ "trimX": 132,
+ "trimY": 385,
"width": 23,
"height": 38,
"rawWidth": 23,
@@ -108,11 +108,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 566,
- "trimY": 131,
+ "trimX": 225,
+ "trimY": 836,
"width": 26,
"height": 38,
"rawWidth": 26,
@@ -131,11 +131,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 794,
- "trimY": 229,
+ "trimX": 131,
+ "trimY": 498,
"width": 24,
"height": 38,
"rawWidth": 24,
@@ -154,11 +154,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 391,
- "trimY": 132,
+ "trimX": 59,
+ "trimY": 1662,
"width": 25,
"height": 38,
"rawWidth": 25,
@@ -177,11 +177,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 350,
- "trimY": 132,
+ "trimX": 60,
+ "trimY": 1621,
"width": 25,
"height": 39,
"rawWidth": 25,
@@ -200,11 +200,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1183,
- "trimY": 68,
+ "trimX": 131,
+ "trimY": 538,
"width": 24,
"height": 38,
"rawWidth": 24,
@@ -223,11 +223,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 431,
- "trimY": 132,
+ "trimX": 59,
+ "trimY": 1702,
"width": 25,
"height": 38,
"rawWidth": 25,
@@ -246,11 +246,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1030,
- "trimY": 226,
+ "trimX": 62,
+ "trimY": 1386,
"width": 27,
"height": 37,
"rawWidth": 27,
@@ -269,11 +269,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1626,
- "trimY": 57,
+ "trimX": 135,
+ "trimY": 291,
"width": 16,
"height": 39,
"rawWidth": 16,
@@ -292,11 +292,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 834,
- "trimY": 227,
+ "trimX": 61,
+ "trimY": 1463,
"width": 26,
"height": 38,
"rawWidth": 26,
@@ -315,11 +315,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1223,
- "trimY": 67,
+ "trimX": 131,
+ "trimY": 578,
"width": 24,
"height": 38,
"rawWidth": 24,
@@ -338,11 +338,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1683,
- "trimY": 113,
+ "trimX": 68,
+ "trimY": 1084,
"width": 30,
"height": 36,
"rawWidth": 30,
@@ -364,8 +364,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 471,
- "trimY": 132,
+ "trimX": 153,
+ "trimY": 1672,
"width": 25,
"height": 37,
"rawWidth": 25,
@@ -384,11 +384,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1029,
- "trimY": 68,
+ "trimX": 66,
+ "trimY": 1258,
"width": 28,
"height": 36,
"rawWidth": 28,
@@ -407,11 +407,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1211,
- "trimY": 226,
+ "trimX": 175,
+ "trimY": 1738,
"width": 25,
"height": 36,
"rawWidth": 25,
@@ -430,11 +430,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1069,
- "trimY": 226,
+ "trimX": 62,
+ "trimY": 1425,
"width": 27,
"height": 36,
"rawWidth": 27,
@@ -453,11 +453,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1107,
- "trimY": 68,
+ "trimX": 60,
+ "trimY": 1583,
"width": 26,
"height": 36,
"rawWidth": 26,
@@ -479,8 +479,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 735,
- "trimY": 110,
+ "trimX": 145,
+ "trimY": 1403,
"width": 47,
"height": 59,
"rawWidth": 47,
@@ -502,8 +502,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1314,
- "trimY": 91,
+ "trimX": 219,
+ "trimY": 1115,
"width": 32,
"height": 61,
"rawWidth": 32,
@@ -525,8 +525,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 673,
- "trimY": 112,
+ "trimX": 145,
+ "trimY": 1312,
"width": 45,
"height": 60,
"rawWidth": 45,
@@ -548,8 +548,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1339,
- "trimY": 154,
+ "trimX": 209,
+ "trimY": 1294,
"width": 42,
"height": 60,
"rawWidth": 42,
@@ -571,8 +571,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 951,
- "trimY": 98,
+ "trimX": 100,
+ "trimY": 1045,
"width": 50,
"height": 59,
"rawWidth": 50,
@@ -591,11 +591,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1003,
- "trimY": 98,
+ "trimX": 1,
+ "trimY": 1348,
"width": 44,
"height": 59,
"rawWidth": 44,
@@ -617,8 +617,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 902,
- "trimY": 99,
+ "trimX": 91,
+ "trimY": 1410,
"width": 47,
"height": 58,
"rawWidth": 47,
@@ -637,11 +637,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1392,
- "trimY": 87,
+ "trimX": 140,
+ "trimY": 1452,
"width": 43,
"height": 58,
"rawWidth": 43,
@@ -660,11 +660,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1405,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 1438,
"width": 47,
"height": 58,
"rawWidth": 47,
@@ -683,11 +683,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1383,
- "trimY": 153,
+ "trimX": 1,
+ "trimY": 1487,
"width": 44,
"height": 58,
"rawWidth": 44,
@@ -706,11 +706,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1713,
- "trimY": 186,
+ "trimX": 88,
+ "trimY": 1605,
"width": 44,
"height": 42,
"rawWidth": 44,
@@ -732,8 +732,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1147,
- "trimY": 226,
+ "trimX": 228,
+ "trimY": 701,
"width": 23,
"height": 26,
"rawWidth": 23,
@@ -752,11 +752,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 132,
- "trimY": 137,
+ "trimX": 137,
+ "trimY": 132,
"width": 24,
"height": 20,
"rawWidth": 24,
@@ -775,11 +775,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1635,
- "trimY": 1,
+ "trimX": 96,
+ "trimY": 1201,
"width": 43,
"height": 49,
"rawWidth": 43,
@@ -798,11 +798,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1683,
- "trimY": 50,
+ "trimX": 68,
+ "trimY": 1044,
"width": 30,
"height": 38,
"rawWidth": 30,
@@ -821,11 +821,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1599,
- "trimY": 180,
+ "trimX": 202,
+ "trimY": 1730,
"width": 16,
"height": 36,
"rawWidth": 16,
@@ -847,8 +847,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 590,
- "trimY": 112,
+ "trimX": 112,
+ "trimY": 590,
"width": 9,
"height": 10,
"rawWidth": 9,
@@ -870,8 +870,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1723,
- "trimY": 1,
+ "trimX": 86,
+ "trimY": 1707,
"width": 33,
"height": 33,
"rawWidth": 33,
@@ -890,11 +890,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1172,
- "trimY": 226,
+ "trimX": 168,
+ "trimY": 1699,
"width": 25,
"height": 37,
"rawWidth": 25,
@@ -913,11 +913,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1302,
- "trimY": 66,
+ "trimX": 132,
+ "trimY": 425,
"width": 23,
"height": 37,
"rawWidth": 23,
@@ -936,11 +936,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 990,
- "trimY": 68,
+ "trimX": 66,
+ "trimY": 1219,
"width": 28,
"height": 37,
"rawWidth": 28,
@@ -959,11 +959,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1145,
- "trimY": 68,
+ "trimX": 195,
+ "trimY": 1692,
"width": 25,
"height": 36,
"rawWidth": 25,
@@ -982,11 +982,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1107,
- "trimY": 226,
+ "trimX": 61,
+ "trimY": 1503,
"width": 26,
"height": 38,
"rawWidth": 26,
@@ -1005,11 +1005,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1683,
- "trimY": 82,
+ "trimX": 68,
+ "trimY": 1122,
"width": 29,
"height": 37,
"rawWidth": 29,
@@ -1028,11 +1028,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1067,
- "trimY": 68,
+ "trimX": 61,
+ "trimY": 1543,
"width": 26,
"height": 38,
"rawWidth": 26,
@@ -1051,11 +1051,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 989,
- "trimY": 226,
+ "trimX": 66,
+ "trimY": 1345,
"width": 27,
"height": 39,
"rawWidth": 27,
@@ -1074,11 +1074,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1443,
- "trimY": 207,
+ "trimX": 198,
+ "trimY": 1518,
"width": 46,
"height": 43,
"rawWidth": 46,
@@ -1097,11 +1097,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 770,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 770,
"width": 46,
"height": 68,
"rawWidth": 46,
@@ -1120,11 +1120,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 818,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 818,
"width": 66,
"height": 29,
"rawWidth": 66,
@@ -1143,11 +1143,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1669,
- "trimY": 186,
+ "trimX": 196,
+ "trimY": 1563,
"width": 45,
"height": 42,
"rawWidth": 45,
@@ -1166,11 +1166,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 694,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 694,
"width": 52,
"height": 107,
"rawWidth": 52,
@@ -1189,11 +1189,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 748,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 748,
"width": 98,
"height": 106,
"rawWidth": 98,
@@ -1212,11 +1212,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 292,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 292,
"width": 98,
"height": 129,
"rawWidth": 98,
@@ -1235,11 +1235,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 191,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 191,
"width": 99,
"height": 132,
"rawWidth": 99,
@@ -1258,11 +1258,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 229,
"width": 94,
"height": 128,
"rawWidth": 94,
@@ -1281,11 +1281,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 490,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 490,
"width": 98,
"height": 128,
"rawWidth": 98,
@@ -1304,11 +1304,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 131,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 359,
"width": 94,
"height": 125,
"rawWidth": 94,
@@ -1327,11 +1327,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 92,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 92,
"width": 97,
"height": 134,
"rawWidth": 97,
@@ -1350,11 +1350,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 392,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 392,
"width": 96,
"height": 129,
"rawWidth": 96,
@@ -1373,11 +1373,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 590,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 590,
"width": 102,
"height": 109,
"rawWidth": 102,
@@ -1396,11 +1396,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 969,
- "trimY": 159,
+ "trimX": 1,
+ "trimY": 939,
"width": 51,
"height": 65,
"rawWidth": 51,
@@ -1419,11 +1419,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 874,
- "trimY": 226,
+ "trimX": 224,
+ "trimY": 876,
"width": 27,
"height": 64,
"rawWidth": 27,
@@ -1442,11 +1442,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 990,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 992,
"width": 51,
"height": 65,
"rawWidth": 51,
@@ -1465,11 +1465,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 606,
- "trimY": 112,
+ "trimX": 110,
+ "trimY": 747,
"width": 45,
"height": 65,
"rawWidth": 45,
@@ -1488,11 +1488,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 915,
- "trimY": 159,
+ "trimX": 1,
+ "trimY": 885,
"width": 52,
"height": 65,
"rawWidth": 52,
@@ -1511,11 +1511,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1043,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 1045,
"width": 49,
"height": 65,
"rawWidth": 49,
@@ -1534,11 +1534,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1075,
- "trimY": 159,
+ "trimX": 153,
+ "trimY": 993,
"width": 49,
"height": 65,
"rawWidth": 49,
@@ -1560,8 +1560,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1213,
- "trimY": 159,
+ "trimX": 109,
+ "trimY": 814,
"width": 46,
"height": 64,
"rawWidth": 46,
@@ -1583,8 +1583,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1022,
- "trimY": 159,
+ "trimX": 100,
+ "trimY": 978,
"width": 51,
"height": 65,
"rawWidth": 51,
@@ -1603,11 +1603,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1094,
- "trimY": 1,
+ "trimX": 153,
+ "trimY": 1044,
"width": 49,
"height": 65,
"rawWidth": 49,
@@ -1626,11 +1626,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1126,
- "trimY": 159,
+ "trimX": 1,
+ "trimY": 1096,
"width": 42,
"height": 65,
"rawWidth": 42,
@@ -1649,11 +1649,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1303,
- "trimY": 157,
+ "trimX": 1,
+ "trimY": 1312,
"width": 34,
"height": 63,
"rawWidth": 34,
@@ -1672,11 +1672,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1279,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 1232,
"width": 40,
"height": 63,
"rawWidth": 40,
@@ -1695,11 +1695,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1321,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 1274,
"width": 36,
"height": 63,
"rawWidth": 36,
@@ -1721,8 +1721,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1188,
- "trimY": 1,
+ "trimX": 112,
+ "trimY": 618,
"width": 43,
"height": 64,
"rawWidth": 43,
@@ -1744,8 +1744,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1273,
- "trimY": 92,
+ "trimX": 212,
+ "trimY": 1229,
"width": 39,
"height": 63,
"rawWidth": 39,
@@ -1764,11 +1764,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1230,
- "trimY": 93,
+ "trimX": 150,
+ "trimY": 1181,
"width": 41,
"height": 63,
"rawWidth": 41,
@@ -1787,11 +1787,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1170,
- "trimY": 159,
+ "trimX": 152,
+ "trimY": 1095,
"width": 41,
"height": 65,
"rawWidth": 41,
@@ -1810,11 +1810,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1261,
- "trimY": 158,
+ "trimX": 147,
+ "trimY": 1224,
"width": 40,
"height": 63,
"rawWidth": 40,
@@ -1833,11 +1833,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1145,
- "trimY": 1,
+ "trimX": 152,
+ "trimY": 1138,
"width": 41,
"height": 65,
"rawWidth": 41,
@@ -1856,11 +1856,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 207,
- "trimY": 135,
+ "trimX": 228,
+ "trimY": 729,
"width": 22,
"height": 32,
"rawWidth": 22,
@@ -1879,11 +1879,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1592,
- "trimY": 59,
+ "trimX": 135,
+ "trimY": 257,
"width": 17,
"height": 32,
"rawWidth": 17,
@@ -1905,8 +1905,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1511,
- "trimY": 60,
+ "trimX": 220,
+ "trimY": 1092,
"width": 21,
"height": 31,
"rawWidth": 21,
@@ -1925,11 +1925,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1409,
- "trimY": 61,
+ "trimX": 145,
+ "trimY": 1706,
"width": 21,
"height": 32,
"rawWidth": 21,
@@ -1948,11 +1948,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1341,
- "trimY": 66,
+ "trimX": 132,
+ "trimY": 464,
"width": 23,
"height": 32,
"rawWidth": 23,
@@ -1971,11 +1971,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1443,
- "trimY": 61,
+ "trimX": 222,
+ "trimY": 1692,
"width": 21,
"height": 32,
"rawWidth": 21,
@@ -1994,11 +1994,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 241,
- "trimY": 135,
+ "trimX": 228,
+ "trimY": 763,
"width": 22,
"height": 32,
"rawWidth": 22,
@@ -2017,11 +2017,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 275,
- "trimY": 135,
+ "trimX": 121,
+ "trimY": 1707,
"width": 22,
"height": 32,
"rawWidth": 22,
@@ -2040,11 +2040,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1477,
- "trimY": 60,
+ "trimX": 222,
+ "trimY": 1726,
"width": 21,
"height": 32,
"rawWidth": 21,
@@ -2063,11 +2063,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1375,
- "trimY": 63,
+ "trimX": 129,
+ "trimY": 1672,
"width": 22,
"height": 32,
"rawWidth": 22,
@@ -2086,11 +2086,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 319,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 486,
"width": 55,
"height": 93,
"rawWidth": 55,
@@ -2109,11 +2109,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 848,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 848,
"width": 35,
"height": 97,
"rawWidth": 35,
@@ -2132,11 +2132,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 649,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 649,
"width": 50,
"height": 77,
"rawWidth": 50,
@@ -2158,8 +2158,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 885,
- "trimY": 1,
+ "trimX": 100,
+ "trimY": 880,
"width": 52,
"height": 96,
"rawWidth": 52,
@@ -2178,11 +2178,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 939,
- "trimY": 1,
+ "trimX": 154,
+ "trimY": 942,
"width": 49,
"height": 95,
"rawWidth": 49,
@@ -2201,11 +2201,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 258,
- "trimY": 159,
+ "trimX": 158,
+ "trimY": 168,
"width": 59,
"height": 93,
"rawWidth": 59,
@@ -2224,11 +2224,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 376,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 543,
"width": 51,
"height": 93,
"rawWidth": 51,
@@ -2247,11 +2247,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 429,
- "trimY": 159,
+ "trimX": 159,
+ "trimY": 1,
"width": 56,
"height": 92,
"rawWidth": 56,
@@ -2270,11 +2270,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 487,
- "trimY": 159,
+ "trimX": 159,
+ "trimY": 59,
"width": 50,
"height": 92,
"rawWidth": 50,
@@ -2293,11 +2293,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 539,
- "trimY": 159,
+ "trimX": 159,
+ "trimY": 111,
"width": 55,
"height": 91,
"rawWidth": 55,
@@ -2316,11 +2316,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 596,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 596,
"width": 51,
"height": 91,
"rawWidth": 51,
@@ -2339,11 +2339,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1648,
- "trimY": 75,
+ "trimX": 95,
+ "trimY": 1341,
"width": 33,
"height": 48,
"rawWidth": 33,
@@ -2362,11 +2362,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 940,
- "trimY": 226,
+ "trimX": 66,
+ "trimY": 1296,
"width": 27,
"height": 47,
"rawWidth": 27,
@@ -2388,8 +2388,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1722,
- "trimY": 85,
+ "trimX": 220,
+ "trimY": 1043,
"width": 31,
"height": 47,
"rawWidth": 31,
@@ -2411,8 +2411,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1721,
- "trimY": 134,
+ "trimX": 68,
+ "trimY": 946,
"width": 30,
"height": 47,
"rawWidth": 30,
@@ -2431,11 +2431,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1633,
- "trimY": 129,
+ "trimX": 95,
+ "trimY": 1305,
"width": 34,
"height": 48,
"rawWidth": 34,
@@ -2457,8 +2457,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1637,
- "trimY": 179,
+ "trimX": 68,
+ "trimY": 995,
"width": 30,
"height": 47,
"rawWidth": 30,
@@ -2477,11 +2477,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1723,
- "trimY": 36,
+ "trimX": 89,
+ "trimY": 1513,
"width": 32,
"height": 47,
"rawWidth": 32,
@@ -2503,8 +2503,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1599,
- "trimY": 129,
+ "trimX": 219,
+ "trimY": 1178,
"width": 32,
"height": 49,
"rawWidth": 32,
@@ -2523,11 +2523,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1333,
- "trimY": 222,
+ "trimX": 220,
+ "trimY": 993,
"width": 31,
"height": 48,
"rawWidth": 31,
@@ -2546,11 +2546,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1603,
- "trimY": 198,
+ "trimX": 95,
+ "trimY": 1376,
"width": 32,
"height": 48,
"rawWidth": 32,
@@ -2572,8 +2572,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1249,
- "trimY": 225,
+ "trimX": 195,
+ "trimY": 915,
"width": 21,
"height": 24,
"rawWidth": 21,
@@ -2592,11 +2592,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 183,
- "trimY": 137,
+ "trimX": 135,
+ "trimY": 233,
"width": 22,
"height": 18,
"rawWidth": 22,
@@ -2618,8 +2618,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 855,
- "trimY": 100,
+ "trimX": 206,
+ "trimY": 1418,
"width": 45,
"height": 57,
"rawWidth": 45,
@@ -2638,11 +2638,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1272,
- "trimY": 223,
+ "trimX": 68,
+ "trimY": 885,
"width": 30,
"height": 59,
"rawWidth": 30,
@@ -2661,11 +2661,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1429,
- "trimY": 147,
+ "trimX": 1,
+ "trimY": 1533,
"width": 43,
"height": 58,
"rawWidth": 43,
@@ -2687,8 +2687,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1383,
- "trimY": 213,
+ "trimX": 138,
+ "trimY": 1497,
"width": 40,
"height": 58,
"rawWidth": 40,
@@ -2707,11 +2707,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 796,
- "trimY": 109,
+ "trimX": 96,
+ "trimY": 1246,
"width": 48,
"height": 57,
"rawWidth": 48,
@@ -2730,11 +2730,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1437,
- "trimY": 84,
+ "trimX": 1,
+ "trimY": 1578,
"width": 42,
"height": 57,
"rawWidth": 42,
@@ -2753,11 +2753,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1474,
- "trimY": 143,
+ "trimX": 138,
+ "trimY": 1539,
"width": 45,
"height": 56,
"rawWidth": 45,
@@ -2776,11 +2776,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1521,
- "trimY": 141,
+ "trimX": 194,
+ "trimY": 1607,
"width": 41,
"height": 56,
"rawWidth": 41,
@@ -2802,8 +2802,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1481,
- "trimY": 83,
+ "trimX": 89,
+ "trimY": 1547,
"width": 45,
"height": 56,
"rawWidth": 45,
@@ -2822,11 +2822,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1525,
- "trimY": 1,
+ "trimX": 136,
+ "trimY": 1586,
"width": 42,
"height": 56,
"rawWidth": 42,
@@ -2845,11 +2845,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1680,
- "trimY": 1,
+ "trimX": 89,
+ "trimY": 1470,
"width": 41,
"height": 47,
"rawWidth": 41,
@@ -2868,11 +2868,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 158,
- "trimY": 137,
+ "trimX": 137,
+ "trimY": 158,
"width": 19,
"height": 23,
"rawWidth": 19,
@@ -2891,11 +2891,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 849,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 849,
"width": 64,
"height": 65,
"rawWidth": 64,
@@ -2914,11 +2914,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1599,
- "trimY": 78,
+ "trimX": 99,
+ "trimY": 1152,
"width": 47,
"height": 49,
"rawWidth": 47,
@@ -2937,11 +2937,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 701,
- "trimY": 230,
+ "trimX": 132,
+ "trimY": 332,
"width": 23,
"height": 51,
"rawWidth": 23,
@@ -2963,8 +2963,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1669,
- "trimY": 145,
+ "trimX": 200,
+ "trimY": 1477,
"width": 39,
"height": 47,
"rawWidth": 39,
@@ -2983,11 +2983,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 701,
- "trimY": 159,
+ "trimX": 157,
+ "trimY": 701,
"width": 67,
"height": 69,
"rawWidth": 67,
@@ -3006,11 +3006,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1488,
- "trimY": 201,
+ "trimX": 100,
+ "trimY": 1106,
"width": 44,
"height": 50,
"rawWidth": 44,
@@ -3029,11 +3029,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1093,
- "trimY": 96,
+ "trimX": 146,
+ "trimY": 1266,
"width": 44,
"height": 61,
"rawWidth": 44,
@@ -3052,11 +3052,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1184,
- "trimY": 94,
+ "trimX": 1,
+ "trimY": 1140,
"width": 44,
"height": 63,
"rawWidth": 44,
@@ -3075,11 +3075,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1348,
- "trimY": 91,
+ "trimX": 145,
+ "trimY": 1359,
"width": 42,
"height": 60,
"rawWidth": 42,
@@ -3101,8 +3101,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1359,
- "trimY": 1,
+ "trimX": 207,
+ "trimY": 1356,
"width": 44,
"height": 60,
"rawWidth": 44,
@@ -3121,11 +3121,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1049,
- "trimY": 98,
+ "trimX": 1,
+ "trimY": 1394,
"width": 42,
"height": 59,
"rawWidth": 42,
@@ -3144,11 +3144,11 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1233,
- "trimY": 1,
+ "trimX": 1,
+ "trimY": 1186,
"width": 44,
"height": 63,
"rawWidth": 44,
@@ -3170,8 +3170,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1139,
- "trimY": 96,
+ "trimX": 112,
+ "trimY": 684,
"width": 43,
"height": 61,
"rawWidth": 43,
@@ -3190,15 +3190,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1490,
- "trimY": 1,
- "width": 33,
- "height": 57,
- "rawWidth": 33,
- "rawHeight": 57,
+ "trimX": 1,
+ "trimY": 1622,
+ "width": 40,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3213,15 +3213,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 510,
- "trimY": 131,
- "width": 26,
- "height": 54,
- "rawWidth": 26,
- "rawHeight": 54,
+ "trimX": 66,
+ "trimY": 1161,
+ "width": 28,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3236,15 +3236,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1544,
- "trimY": 59,
- "width": 17,
- "height": 46,
- "rawWidth": 17,
- "rawHeight": 46,
+ "trimX": 137,
+ "trimY": 183,
+ "width": 18,
+ "height": 48,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3259,15 +3259,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1565,
- "trimY": 78,
- "width": 32,
- "height": 55,
- "rawWidth": 32,
- "rawHeight": 55,
+ "trimX": 1,
+ "trimY": 1706,
+ "width": 38,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3282,15 +3282,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1603,
- "trimY": 1,
- "width": 30,
- "height": 54,
- "rawWidth": 30,
- "rawHeight": 54,
+ "trimX": 1,
+ "trimY": 1746,
+ "width": 36,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3305,14 +3305,14 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1528,
- "trimY": 83,
- "width": 35,
+ "trimX": 134,
+ "trimY": 1630,
+ "width": 40,
"height": 56,
- "rawWidth": 35,
+ "rawWidth": 40,
"rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
@@ -3328,15 +3328,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1569,
- "trimY": 199,
- "width": 32,
- "height": 54,
- "rawWidth": 32,
- "rawHeight": 54,
+ "trimX": 59,
+ "trimY": 1742,
+ "width": 38,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3351,15 +3351,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1534,
- "trimY": 199,
- "width": 33,
- "height": 54,
- "rawWidth": 33,
- "rawHeight": 54,
+ "trimX": 117,
+ "trimY": 1742,
+ "width": 38,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3374,15 +3374,15 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1454,
- "trimY": 1,
- "width": 34,
- "height": 57,
- "rawWidth": 34,
- "rawHeight": 57,
+ "trimX": 192,
+ "trimY": 1650,
+ "width": 40,
+ "height": 56,
+ "rawWidth": 40,
+ "rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -3400,11 +3400,11 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1569,
- "trimY": 1,
- "width": 32,
+ "trimX": 87,
+ "trimY": 1649,
+ "width": 40,
"height": 56,
- "rawWidth": 32,
+ "rawWidth": 40,
"rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
@@ -3420,14 +3420,14 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 1564,
- "trimY": 141,
- "width": 33,
+ "trimX": 1,
+ "trimY": 1664,
+ "width": 40,
"height": 56,
- "rawWidth": 33,
+ "rawWidth": 40,
"rawHeight": 56,
"borderTop": 0,
"borderBottom": 0,
@@ -3443,7 +3443,7 @@
"rawTextureUuid": "f8d067a0-98d0-4a97-8159-506946262d4b",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
diff --git a/assets/res/font/font.png b/assets/res/font/font.png
index 9e93df5..e6445b7 100644
Binary files a/assets/res/font/font.png and b/assets/res/font/font.png differ
diff --git a/assets/res/font/font.png.meta b/assets/res/font/font.png.meta
index 75a10dc..1750ea7 100644
--- a/assets/res/font/font.png.meta
+++ b/assets/res/font/font.png.meta
@@ -8,7 +8,7 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
- "width": 1549,
+ "width": 1757,
"height": 254,
"platformSettings": {},
"subMetas": {}
diff --git a/assets/shop/prefab/shop.prefab b/assets/shop/prefab/shop.prefab
index cce4d34..ef119a8 100644
--- a/assets/shop/prefab/shop.prefab
+++ b/assets/shop/prefab/shop.prefab
@@ -8927,6 +8927,9 @@
"itemList": {
"__id__": 73
},
+ "coin": {
+ "__id__": 60
+ },
"_id": ""
},
{
diff --git a/assets/shop/script/shop.ts b/assets/shop/script/shop.ts
index cbdb3be..8cd56c4 100644
--- a/assets/shop/script/shop.ts
+++ b/assets/shop/script/shop.ts
@@ -13,6 +13,9 @@ export default class NewClass extends cc.Component {
itemList: cc.Node = null;
// onLoad () {}
+ //金币数量
+ @property(cc.Node)
+ coin: cc.Node = null;
start() {
this.openShop();
}
@@ -47,6 +50,7 @@ export default class NewClass extends cc.Component {
NumberToImage.numberToImageNodes(product.price / 100, 40, 25, "scoin_", title, false)
}
}
+ NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
}
diff --git a/library/imports/01/01b33f17-a428-4b45-bd9d-6879f3e80d4d.json b/library/imports/01/01b33f17-a428-4b45-bd9d-6879f3e80d4d.json
index 8aeefb9..23055a5 100644
--- a/library/imports/01/01b33f17-a428-4b45-bd9d-6879f3e80d4d.json
+++ b/library/imports/01/01b33f17-a428-4b45-bd9d-6879f3e80d4d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1314,
- 91,
+ 219,
+ 1115,
32,
61
],
diff --git a/library/imports/02/020554de-b0ec-4d2f-bc1d-3a8ff2214703.json b/library/imports/02/020554de-b0ec-4d2f-bc1d-3a8ff2214703.json
index 1756f96..6d47686 100644
--- a/library/imports/02/020554de-b0ec-4d2f-bc1d-3a8ff2214703.json
+++ b/library/imports/02/020554de-b0ec-4d2f-bc1d-3a8ff2214703.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 951,
- 98,
+ 100,
+ 1045,
50,
59
],
diff --git a/library/imports/02/02056d80-0cdb-45ea-b38e-e1395f6ef01f.json b/library/imports/02/02056d80-0cdb-45ea-b38e-e1395f6ef01f.json
index c9105e5..5ee6a8f 100644
--- a/library/imports/02/02056d80-0cdb-45ea-b38e-e1395f6ef01f.json
+++ b/library/imports/02/02056d80-0cdb-45ea-b38e-e1395f6ef01f.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1474,
- 143,
+ 138,
+ 1539,
45,
56
],
@@ -18,6 +18,7 @@
45,
56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/02/022986fa-6332-4366-9068-4de5704c07b3.json b/library/imports/02/022986fa-6332-4366-9068-4de5704c07b3.json
index de8b5f1..4d44a39 100644
--- a/library/imports/02/022986fa-6332-4366-9068-4de5704c07b3.json
+++ b/library/imports/02/022986fa-6332-4366-9068-4de5704c07b3.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1049,
- 98,
+ 1,
+ 1394,
42,
59
],
@@ -18,6 +18,7 @@
42,
59
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/02/028c9dd2-7f6f-4b7d-b2f0-dd30b4b82e1d.json b/library/imports/02/028c9dd2-7f6f-4b7d-b2f0-dd30b4b82e1d.json
index 87af2d5..588d7de 100644
--- a/library/imports/02/028c9dd2-7f6f-4b7d-b2f0-dd30b4b82e1d.json
+++ b/library/imports/02/028c9dd2-7f6f-4b7d-b2f0-dd30b4b82e1d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1261,
- 158,
+ 147,
+ 1224,
40,
63
],
@@ -18,6 +18,7 @@
40,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/02/02d553df-1ae3-43bb-bc69-83318300ffb9.json b/library/imports/02/02d553df-1ae3-43bb-bc69-83318300ffb9.json
index 94b4349..5699dd1 100644
--- a/library/imports/02/02d553df-1ae3-43bb-bc69-83318300ffb9.json
+++ b/library/imports/02/02d553df-1ae3-43bb-bc69-83318300ffb9.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1648,
- 75,
+ 95,
+ 1341,
33,
48
],
@@ -18,6 +18,7 @@
33,
48
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/03/034f8752-96af-4186-9d0a-a49eedb95bb9.json b/library/imports/03/034f8752-96af-4186-9d0a-a49eedb95bb9.json
index fda5d94..41d6a15 100644
--- a/library/imports/03/034f8752-96af-4186-9d0a-a49eedb95bb9.json
+++ b/library/imports/03/034f8752-96af-4186-9d0a-a49eedb95bb9.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 431,
- 132,
+ 59,
+ 1702,
25,
38
],
@@ -18,7 +18,6 @@
25,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/09/09eb7db8-ad72-40d9-a93c-372ad1ae79c5.json b/library/imports/09/09eb7db8-ad72-40d9-a93c-372ad1ae79c5.json
index 99eb0aa..5219957 100644
--- a/library/imports/09/09eb7db8-ad72-40d9-a93c-372ad1ae79c5.json
+++ b/library/imports/09/09eb7db8-ad72-40d9-a93c-372ad1ae79c5.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
849,
- 159,
64,
65
],
@@ -18,6 +18,7 @@
64,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/0f/0f9aab89-5e08-423d-8030-259fe54c4d74.jpg b/library/imports/0f/0f9aab89-5e08-423d-8030-259fe54c4d74.jpg
index 8a12cf6..6fbfebd 100644
Binary files a/library/imports/0f/0f9aab89-5e08-423d-8030-259fe54c4d74.jpg and b/library/imports/0f/0f9aab89-5e08-423d-8030-259fe54c4d74.jpg differ
diff --git a/library/imports/0f/0fdfe9f0-c116-49d2-bd6e-eab7ad33fa48.json b/library/imports/0f/0fdfe9f0-c116-49d2-bd6e-eab7ad33fa48.json
index c9e5056..44600d6 100644
--- a/library/imports/0f/0fdfe9f0-c116-49d2-bd6e-eab7ad33fa48.json
+++ b/library/imports/0f/0fdfe9f0-c116-49d2-bd6e-eab7ad33fa48.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1188,
- 1,
+ 112,
+ 618,
43,
64
],
diff --git a/library/imports/10/1059094e-6b24-437e-be12-0491319d6171.json b/library/imports/10/1059094e-6b24-437e-be12-0491319d6171.json
index c79327b..b012ca9 100644
--- a/library/imports/10/1059094e-6b24-437e-be12-0491319d6171.json
+++ b/library/imports/10/1059094e-6b24-437e-be12-0491319d6171.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1272,
- 223,
+ 68,
+ 885,
30,
59
],
@@ -18,7 +18,6 @@
30,
59
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/13/13873957-4e59-4488-9d92-8e2bbb9e3a3a.json b/library/imports/13/13873957-4e59-4488-9d92-8e2bbb9e3a3a.json
index c05d008..f58ae55 100644
--- a/library/imports/13/13873957-4e59-4488-9d92-8e2bbb9e3a3a.json
+++ b/library/imports/13/13873957-4e59-4488-9d92-8e2bbb9e3a3a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1172,
- 226,
+ 168,
+ 1699,
25,
37
],
@@ -18,7 +18,6 @@
25,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/13/13ddd564-96a4-4f41-ac93-176a65aafaa6.json b/library/imports/13/13ddd564-96a4-4f41-ac93-176a65aafaa6.json
index ca300c8..6f78be0 100644
--- a/library/imports/13/13ddd564-96a4-4f41-ac93-176a65aafaa6.json
+++ b/library/imports/13/13ddd564-96a4-4f41-ac93-176a65aafaa6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 848,
1,
+ 848,
35,
97
],
@@ -18,6 +18,7 @@
35,
97
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/15/1508d376-9925-42c4-8ae5-7a9cded3e40b.json b/library/imports/15/1508d376-9925-42c4-8ae5-7a9cded3e40b.json
index 8537a99..f752cb3 100644
--- a/library/imports/15/1508d376-9925-42c4-8ae5-7a9cded3e40b.json
+++ b/library/imports/15/1508d376-9925-42c4-8ae5-7a9cded3e40b.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1321,
1,
+ 1274,
36,
63
],
@@ -18,6 +18,7 @@
36,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/15/15ecc92e-aa18-412b-ab38-8e537c898d49.json b/library/imports/15/15ecc92e-aa18-412b-ab38-8e537c898d49.json
index 4c8ed15..58641a3 100644
--- a/library/imports/15/15ecc92e-aa18-412b-ab38-8e537c898d49.json
+++ b/library/imports/15/15ecc92e-aa18-412b-ab38-8e537c898d49.json
@@ -18,7 +18,6 @@
156,
89
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/1a/1a12d721-df35-43d4-99a9-c43b8afcad40.json b/library/imports/1a/1a12d721-df35-43d4-99a9-c43b8afcad40.json
index ced4425..e3c4c6b 100644
--- a/library/imports/1a/1a12d721-df35-43d4-99a9-c43b8afcad40.json
+++ b/library/imports/1a/1a12d721-df35-43d4-99a9-c43b8afcad40.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 207,
- 135,
+ 228,
+ 729,
22,
32
],
@@ -18,7 +18,6 @@
22,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/1d/1d09fecb-502f-4098-9fcc-98fff2d06541.json b/library/imports/1d/1d09fecb-502f-4098-9fcc-98fff2d06541.json
index c169025..10fa3a7 100644
--- a/library/imports/1d/1d09fecb-502f-4098-9fcc-98fff2d06541.json
+++ b/library/imports/1d/1d09fecb-502f-4098-9fcc-98fff2d06541.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1490,
1,
- 33,
- 57
+ 1622,
+ 40,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 33,
- 57
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/1e/1ea68b47-e0bf-43b0-8334-4611e21be374.json b/library/imports/1e/1ea68b47-e0bf-43b0-8334-4611e21be374.json
index f7feb69..8316879 100644
--- a/library/imports/1e/1ea68b47-e0bf-43b0-8334-4611e21be374.json
+++ b/library/imports/1e/1ea68b47-e0bf-43b0-8334-4611e21be374.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 606,
- 112,
+ 110,
+ 747,
45,
65
],
@@ -18,7 +18,6 @@
45,
65
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/1e/1ebad263-9a15-41b2-8036-ae85dd6829b6.json b/library/imports/1e/1ebad263-9a15-41b2-8036-ae85dd6829b6.json
index 073bcac..d350241 100644
--- a/library/imports/1e/1ebad263-9a15-41b2-8036-ae85dd6829b6.json
+++ b/library/imports/1e/1ebad263-9a15-41b2-8036-ae85dd6829b6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1511,
- 60,
+ 220,
+ 1092,
21,
31
],
diff --git a/library/imports/1f/1fba440d-aa3c-4fab-90d4-3457fbdc3db6.json b/library/imports/1f/1fba440d-aa3c-4fab-90d4-3457fbdc3db6.json
index 92ce6b8..d86876a 100644
--- a/library/imports/1f/1fba440d-aa3c-4fab-90d4-3457fbdc3db6.json
+++ b/library/imports/1f/1fba440d-aa3c-4fab-90d4-3457fbdc3db6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1093,
- 96,
+ 146,
+ 1266,
44,
61
],
@@ -18,6 +18,7 @@
44,
61
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/21/216f1c34-9ab1-4bf7-9136-1d7bfc736010.json b/library/imports/21/216f1c34-9ab1-4bf7-9136-1d7bfc736010.json
index fc52c1e..a9983d7 100644
--- a/library/imports/21/216f1c34-9ab1-4bf7-9136-1d7bfc736010.json
+++ b/library/imports/21/216f1c34-9ab1-4bf7-9136-1d7bfc736010.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1669,
- 186,
+ 196,
+ 1563,
45,
42
],
@@ -18,7 +18,6 @@
45,
42
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/21/2172963e-6052-4735-88cc-563688c7be12.json b/library/imports/21/2172963e-6052-4735-88cc-563688c7be12.json
index aa9ffbe..a38e9e9 100644
--- a/library/imports/21/2172963e-6052-4735-88cc-563688c7be12.json
+++ b/library/imports/21/2172963e-6052-4735-88cc-563688c7be12.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1213,
- 159,
+ 109,
+ 814,
46,
64
],
diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
index daccad8..4d1c67d 100644
--- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
+++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
@@ -56,6 +56,7 @@ var MapConroler = /** @class */ (function (_super) {
_this.coinPop = null;
_this.timeLabel = null;
_this.levelLabel = null;
+ _this.coin = null;
_this.new_mode = 0;
_this.mapWidth = 0;
_this.mapHeight = 0;
@@ -144,11 +145,13 @@ var MapConroler = /** @class */ (function (_super) {
// this.node.getChildByName("Wall").zIndex = 10;
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
+ this.coin = this.node.parent.getChildByName("Top").getChildByName("coin");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel);
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
// var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);
// this.timeLabel.string = timeTemp.toString();
NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, "level_", this.levelLabel, false);
diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map
index f478b8a..0d7c0c5 100644
--- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map
+++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\Map.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameManager from \"./GameManager\";\r\nimport { LQCollide } from \"./lq_collide_system/lq_collide\";\r\nimport NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n\r\n\r\n@ccclass\r\nexport default class MapConroler extends cc.Component {\r\n static _instance: any;\r\n\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"方块数组\" })\r\n Block_Array: Array = [];\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"方块道具数组\" })\r\n Block_Prop: Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"墙壁数组\" })\r\n Wall_Prefab: Array = [];\r\n\r\n\r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n\r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray: any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok: any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch: boolean = true;//按钮可用状态\r\n againCanTouch: boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n timeNumber: number = 0; //游戏时间 用于倒计时\r\n count_Time: number = 0; //用于统计总游戏时长\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause: boolean = false;//暂停状态\r\n hammer: boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad() {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false;\r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n\r\n\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n\r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n }\r\n\r\n start() {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n\r\n this.initMap();\r\n\r\n }\r\n\r\n startUpdate() {\r\n if (this.gameStart == false) {\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").type == 6) {\r\n this.blocks[i].getChildByName(\"boom\").getComponent(\"Boom\").startBoom();\r\n }\r\n }\r\n }\r\n }\r\n\r\n initMap() {\r\n // this.node.getChildByName(\"Wall\").zIndex = 10;\r\n this.timeLabel = this.node.parent.getChildByName(\"Top\").getChildByName(\"time\");\r\n this.levelLabel = this.node.parent.getChildByName(\"Top\").getChildByName(\"level\");\r\n this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;\r\n console.log(\"当前关卡时间\", this.timeNumber);\r\n\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n // this.timeLabel.string = timeTemp.toString();\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, \"level_\", this.levelLabel, false)\r\n console.log(\"当前关卡\", cc.fx.GameConfig.GM_INFO.level + 1);\r\n //this.startTimeCutDown();\r\n\r\n this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];\r\n this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];\r\n let gap = cc.fx.GameConfig.LEVEL_INFO[0].gap;\r\n let risefall = cc.fx.GameConfig.LEVEL_INFO[0].risefall;\r\n\r\n this.pause = false;\r\n this.hammer = false;\r\n this.wallNum = 0;\r\n this.setMapInfo();\r\n this.blocks = [];\r\n this.mapBlocksWall = [];\r\n this.mapInfo = [];\r\n this.wallInfo = [];\r\n this.openWall = [];\r\n this.wallArray = [];\r\n this.freezeWall = [];\r\n this.riseFallBlcok = [];\r\n this.mapBlockArray = [];\r\n this.freezeArray = [];\r\n this.loackArray = [];\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n\r\n\r\n let startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60;\r\n let startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60;\r\n // startX =(this.mapWidth-1)*60 + 60;\r\n // startY =-(this.mapHeight-1)*60 - 60;\r\n\r\n for (let i = 0; i < this.mapWidth; i++) {\r\n this.mapBlocksWall[i] = [];\r\n\r\n for (let j = 0; j < this.mapHeight; j++) {\r\n let block = cc.instantiate(this.MapBlockPrefab);\r\n block.parent = this.node.getChildByName(\"mapBlock\");\r\n block.getComponent(\"MapBlock\").init(i, j);\r\n // block.getChildByName(\"num\").getComponent(cc.Label).string = i + \":\" + j;\r\n block.setPosition(cc.v2(startX + i * 120, startY + j * 120))\r\n if (risefall != null) {\r\n if (this.mapRiseFall(cc.v2(i, j), risefall, block)) {\r\n this.riseFallBlcok.push(block);\r\n }\r\n }\r\n if (gap != null) {\r\n if (!this.mapGap(cc.v2(i, j), gap) || i == 0 || i == this.mapWidth - 1\r\n || j == 0 || j == this.mapHeight - 1) {\r\n block.opacity = 254;\r\n block.removeComponent(cc.Sprite);\r\n block.removeAllChildren();\r\n this.wallInfo.push(block);\r\n }\r\n else this.mapInfo.push(block);\r\n }\r\n else {\r\n if (i == 0 || i == this.mapWidth - 1\r\n || j == 0 || j == this.mapHeight - 1) {\r\n block.opacity = 254;\r\n block.removeComponent(cc.Sprite);\r\n block.removeAllChildren();\r\n this.wallInfo.push(block);\r\n }\r\n else this.mapInfo.push(block);\r\n }\r\n\r\n this.mapBlocksWall[i].push(block);\r\n }\r\n }\r\n\r\n this.wallInit();\r\n this.blockInit();\r\n\r\n }\r\n\r\n //创建方块\r\n // ... 已有代码 ...\r\n\r\n //创建方块\r\n // ... 已有代码 ...\r\n\r\n\r\n\r\n\r\n blockInit() {\r\n let blockArray = cc.fx.GameConfig.BLOCK_INFO[0];\r\n blockArray = this.sortBlock(blockArray);\r\n console.log(\"创建方块\", blockArray);\r\n let index = 0; // 当前要创建的方块索引\r\n let BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createBlocks = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block];\r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block];\r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n\r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if (blockInfo.adhesiveTime < 2) {\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block];\r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp, false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block, true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n }\r\n }\r\n else {\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) {\r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n }\r\n //给创建方块排序,用来降低drawcall 合批\r\n sortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n }\r\n\r\n\r\n //创建墙壁\r\n\r\n wallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) {\r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n }\r\n\r\n // ... 已有代码 ...\r\n\r\n getWllDiraction(type, pointA) {\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1, pointA.y);\r\n let pointC = cc.v2(pointA.x - 1, pointA.y);\r\n let pointD = cc.v2(pointA.x, pointA.y + 1);\r\n let pointE = cc.v2(pointA.x, pointA.y - 1);\r\n let opacity = 0;\r\n if (type == \"wall\") opacity = 255;\r\n if (type == \"turn\") opacity = 250;\r\n\r\n if (pointB.x < this.mapWidth) {\r\n if (this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\") {\r\n\r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if (pointC.x >= 0) {\r\n if (this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\") {\r\n\r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if (pointD.y < this.mapHeight) {\r\n if (this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\") {\r\n\r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if (pointE.y >= 0) {\r\n if (this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\") {\r\n\r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if (dir.length > 2) {\r\n\r\n return null;\r\n }\r\n if (dir.length == 1) {\r\n if (type == \"wall\")\r\n return dir[0];\r\n else\r\n return null;\r\n }\r\n else if (dir.length == 2) {\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for (let i = 0; i < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[i];\r\n if (block.opacity != 250) {\r\n let dir = this.getWllDiraction(\"turn\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createTurn(dir, block, block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY);\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n createWall(direction, node) {\r\n let wall = null;\r\n node.getComponent(\"MapBlock\").setDiraction(direction);\r\n switch (direction) {\r\n case \"right\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[4]);\r\n this.leftDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n node.opacity = 250;\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n\r\n break;\r\n case \"left\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[3]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n this.rightDoors.push(wall);\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"up\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[5]);\r\n\r\n this.topDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"down\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[0]);\r\n this.bottomDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n // this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"upright\": case \"rightup\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[7]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"upleft\": case \"leftup\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[6]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"downright\": case \"rightdown\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[2]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"downleft\": case \"leftdown\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[1]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n\r\n }\r\n\r\n\r\n // if(wallTurn){\r\n // wallTurn.getComponent(\"wallTunr\").init(wall);\r\n // }\r\n }\r\n\r\n setDoorInfo(wall) {\r\n let doorInfo = cc.fx.GameConfig.WALL_INFO[0];\r\n\r\n if (doorInfo) {\r\n for (let j = 0; j < doorInfo.length; j++) {\r\n if (doorInfo[j].num == this.wallNum) {\r\n wall.getComponent(\"Wall\").init(doorInfo[j], null, null, null);\r\n this.wallArray.push(wall.parent);\r\n }\r\n }\r\n }\r\n }\r\n\r\n createTurn(direction, node, posX, posY) {\r\n let wall = null;\r\n wall = cc.instantiate(this.wallTurnPrefab);\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n switch (direction) {\r\n case \"upright\": case \"rightup\":\r\n wall.angle = 0;\r\n wall.getChildByName(\"icon\").angle = 0;\r\n\r\n break;\r\n case \"upleft\": case \"leftup\":\r\n wall.angle = 90;\r\n wall.getChildByName(\"icon\").angle = -90;\r\n wall.getChildByName(\"icon\").y += 5;\r\n wall.getChildByName(\"icon\").x -= 1.3;\r\n break;\r\n case \"downright\": case \"rightdown\":\r\n wall.angle = 270;\r\n wall.getChildByName(\"icon\").angle = -270;\r\n wall.getChildByName(\"icon\").x += 2.5;\r\n wall.getChildByName(\"icon\").y += 1;\r\n break;\r\n case \"downleft\": case \"leftdown\":\r\n wall.angle = 180;\r\n wall.getChildByName(\"icon\").angle = -180;\r\n wall.getChildByName(\"icon\").x += 4.5;\r\n wall.getChildByName(\"icon\").y += 3.2;\r\n break;\r\n }\r\n\r\n // if(direction == \"rightdown\" || direction == \"downright\") {\r\n // wall.zIndex = 50 + posX - posY*3;\r\n // }\r\n // else \r\n // wall.zIndex = 50 + posX - posY*3;\r\n\r\n if (direction == \"up\" || direction == \"leftup\" || direction == \"upleft\"\r\n ) {\r\n wall.zIndex = 100 + posX - posY * 3;\r\n }\r\n else if (direction == \"rightup\" || direction == \"upright\" || direction == \"rightdown\" || direction == \"downright\" || direction == \"downleft\") {\r\n wall.zIndex = 30 + posX - posY * 3;\r\n }\r\n else if (direction == \"left\" || direction == \"leftdown\") {\r\n wall.zIndex = 70 + posX - posY * 3;\r\n }\r\n else wall.zIndex = 70 + posX - posY * 3;\r\n\r\n // wall.getChildByName(\"num\").angle = -wall.angle;\r\n //wall.getChildByName(\"num\").getComponent(cc.Label).string = direction;\r\n //wall.getChildByName(\"num\").getComponent(cc.Label).string = wall.zIndex+ \"\";\r\n // console.log(posX,posY,wall.zIndex);\r\n // this.wallNum += 1;\r\n // wall.getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum + \"\";\r\n }\r\n\r\n //地图底块缺口判断\r\n mapGap(point, gap) {\r\n for (let i = 0; i < gap.length; i++) {\r\n if (point.x == gap[i].x && point.y == gap[i].y) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n //升降地块判断\r\n mapRiseFall(point, risefall, block) {\r\n for (let i = 0; i < risefall.length; i++) {\r\n if (point.x == risefall[i].pos.x && point.y == risefall[i].pos.y) {\r\n block.getChildByName(\"risefall\").active = true;\r\n block.getChildByName('risefall').getChildByName(\"color\").getComponent(cc.Label).string = risefall[i].color + \"\";\r\n block.getChildByName('risefall').addComponent(cc.BoxCollider);\r\n block.getChildByName('risefall').getComponent(cc.BoxCollider).size = cc.size(110, 110);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n //升降地块\r\n changeRiseFall(color, down) {\r\n color = color.toString();\r\n for (let i = 0; i < this.riseFallBlcok.length; i++) {\r\n if (color == this.riseFallBlcok[i].getChildByName(\"risefall\").getChildByName(\"color\").getComponent(cc.Label).string) {\r\n if (down) {\r\n this.riseFallBlcok[i].getChildByName(\"risefall\").active = false;\r\n this.riseFallBlcok[i].getChildByName('risefall').removeComponent(cc.BoxCollider);\r\n }\r\n else {\r\n this.riseFallBlcok[i].getChildByName(\"risefall\").active = true;\r\n this.riseFallBlcok[i].getChildByName('risefall').addComponent(cc.BoxCollider);\r\n this.riseFallBlcok[i].getChildByName('risefall').getComponent(cc.BoxCollider).size = cc.size(110, 110);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n //查询叠加快id\r\n foundDownBlock(id) {\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").blockId == id) {\r\n return this.blocks[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n //删除块\r\n removeBlock(id) {\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").blockId == id) {\r\n return this.blocks[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getMinAndMax(block) {\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n\r\n let minX = width;\r\n let maxX = this.mapWidth - 2;\r\n let minY = 1;\r\n let maxY = this.mapHeight - 2 - height + 1;\r\n\r\n if (block.name == \"block10\") {\r\n minX = width - 1;\r\n if (this.mapWidth > 3) maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block11\") {\r\n minX = width - 2;\r\n if (this.mapWidth > 3) maxX = maxX - 2;\r\n }\r\n\r\n else if (block.name == \"block14\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block16\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block18\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block21\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n\r\n return { minX: minX, maxX: maxX, minY: minY, maxY: maxY };\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node, blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for (let i = 0; i < blocks.length; i++) {\r\n allBlocks.push(cc.v2(nodePos.x + blocks[i].x, nodePos.y + blocks[i].y));\r\n }\r\n\r\n // const date1 = new Date().getTime();\r\n // console.log(\"将小块放入数组的时间\",date1);\r\n\r\n let jg = -1;\r\n let pz = 0;\r\n // 获取所有墙壁节点\r\n // let wall = this.node;\r\n let direction = this.checkDiraction(allBlocks, maxX, maxY);\r\n\r\n // 判断方块是否在地图边缘\r\n if (nodePos.x <= minX || direction[0] == true) {\r\n // const date2 = new Date().getTime();\r\n // console.log(\"碰到左边缘\",date2);\r\n pz += 1;\r\n let leftWalls = [];\r\n for (let i = 0; i < this.leftDoors.length; i++) {\r\n let wallLeft = this.leftDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallLeft.getComponent(\"Wall\").posX, wallLeft.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].y == wallPos.y && allBlocks[i].x > wallPos.x) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if (leftWalls.length != 0) {\r\n let result = this.detectingBlock(\"left\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, leftWalls, node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for (let i = 0; i < this.rightDoors.length; i++) {\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX, wallRight.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if (rightWalls.length != 0) {\r\n let result = this.detectingBlock(\"right\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n\r\n if (result == true) result = this.passWall(result, rightWalls, node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n\r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for (let i = 0; i < this.topDoors.length; i++) {\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX, wallBottom.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if (allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if (downWalls.length != 0) {\r\n let result = this.detectingBlock(\"down\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, downWalls, node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for (let i = 0; i < this.bottomDoors.length; i++) {\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX, wallTop.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if (allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu) {\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if (upWalls.length != 0) {\r\n let result = this.detectingBlock(\"up\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, upWalls, node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if (pz == 0) jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState() {\r\n if (this.openWall.length != 0) {\r\n for (let i = 0; i < this.openWall.length; i++) {\r\n this.openWall[i].getChildByName(\"wall\").getComponent(\"Wall\").changeLock();\r\n }\r\n }\r\n\r\n if (this.freezeWall.length != 0) {\r\n for (let i = 0; i < this.freezeWall.length; i++) {\r\n this.freezeWall[i].getChildByName(\"wall\").getComponent(\"Wall\").changeFreeze();\r\n }\r\n }\r\n }\r\n\r\n //检测是否可以通过门\r\n passWall(jg, wallArray, node) {\r\n for (let i = 0; i < wallArray.length; i++) {\r\n if (wallArray[i].getComponent(\"Wall\").special == 2) {\r\n console.log(\"尝试通过开关门:\", wallArray[i].getComponent(\"Wall\").open);\r\n }\r\n if (wallArray[i].getComponent(\"Wall\").special == 2 && wallArray[i].getComponent(\"Wall\").open == false) {\r\n jg = false;\r\n break;\r\n }\r\n //console.log(wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").color,node.getComponent(\"Block\").color)\r\n if (wallArray[i].getComponent(\"Wall\").color != node.getComponent(\"Block\").color) {\r\n\r\n jg = false;\r\n break;\r\n }\r\n if (node.getComponent(\"Block\").type == 5) {\r\n if (wallArray[i].getComponent(\"Wall\").special != 1) {\r\n jg = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (jg == true && node.getComponent(\"Block\").type == 5) {\r\n for (let j = 0; j < wallArray.length; j++) {\r\n if (wallArray[j].getComponent(\"Wall\").special == 1 && wallArray[j].getComponent(\"Wall\").wall_Info.length != 0) {\r\n wallArray[j].getComponent(\"Wall\").playStarDoor();\r\n }\r\n }\r\n }\r\n // const date8 = new Date().getTime();\r\n // console.log(\"检测颜色是否能够通过门\",date8);\r\n return jg;\r\n }\r\n\r\n //检测方块和门中间有没有夹杂其他块\r\n detectingBlock(direction, posX, posY, blocks) {\r\n let jg = true;\r\n let id = \"\";\r\n if (blocks.length > 0) {\r\n for (let i = 0; i < blocks.length; i++) {\r\n let pos = blocks[i];\r\n let x = pos.x;\r\n let y = pos.y;\r\n id = this.mapBlocksWall[x][y].getComponent(\"MapBlock\").block_Id;\r\n jg = this.checkAllDirections(id, direction, x, y);\r\n if (!jg) {\r\n // console.log(\"方向检测没过\");\r\n i = 1000000;\r\n return jg;\r\n }\r\n }\r\n }\r\n // const date7 = new Date().getTime();\r\n // console.log(\"方向检测通过\",date7,jg);\r\n return jg;\r\n }\r\n\r\n //检测物体各方向是否有别的物块,防止碰到墙壁了但是是凹凸形状,墙与块之间有阻挡物块\r\n checkAllDirections(id, direction, x, y) {\r\n let jg = true;\r\n\r\n if (direction == \"left\") {\r\n if (this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x - 1][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((x - 2) >= 0) {\r\n if (this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x - 2][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if (direction == \"right\") {\r\n if (this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x + 1][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((x + 2) <= this.mapBlocksWall.length - 1) {\r\n if (this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x + 2][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if (direction == \"up\") {\r\n if (this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y + 1].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((y + 2) <= this.mapBlocksWall[x].length - 1) {\r\n if (this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y + 2].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if (direction == \"down\") {\r\n if (this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y - 1].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((y - 2) >= 0) {\r\n if (this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y - 2].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks, maxX, maxY) {\r\n let jg = [false, false, false, false];\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].x > 0 && jg[0] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x - 1][allBlocks[i].y].opacity == 250) {\r\n jg[0] = true;\r\n }\r\n }\r\n if (jg[1] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x + 1][allBlocks[i].y].opacity == 250) {\r\n jg[1] = true;\r\n }\r\n }\r\n if (allBlocks[i].y > 0 && jg[2] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y - 1].opacity == 250) {\r\n jg[2] = true;\r\n }\r\n }\r\n if (jg[3] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y + 1].opacity == 250) {\r\n jg[3] = true;\r\n }\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks) {\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks, max) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n checkDown(allBlocks) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n checkUp(allBlocks, max) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n //特殊处理,方块带道具或者需要消除冰块\r\n special_Treatment(node) {\r\n let freezeBlock = this.node.children.filter(child => {\r\n if (child.getComponent(\"Block\")) {\r\n if (child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if (freezeBlock.length > 0) {\r\n for (let i = 0; i < freezeBlock.length; i++) {\r\n freezeBlock[i].getChildByName(\"freeze\").getComponent(\"Freeze\").reduce(1);\r\n }\r\n }\r\n\r\n if (node.getComponent(\"Block\").type == 2 || node.getComponent(\"Block\").type == 4) {\r\n let lockBlock = this.node.children.filter(child => {\r\n if (child.getComponent(\"Block\")) {\r\n if (child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if (lockBlock.length > 0)\r\n for (let i = 0; i < lockBlock.length; i++) {\r\n lockBlock[i].getChildByName(\"lock\").getComponent(\"Lock\").reduce();\r\n }\r\n\r\n }\r\n\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i] == node) {\r\n this.blocks.splice(i, 1);\r\n }\r\n }\r\n\r\n }\r\n\r\n //判断游戏成功下一关\r\n nextLevel() {\r\n this.pause = false;\r\n this.openIce();\r\n\r\n this.blockNum = this.blocks.length;\r\n\r\n if (this.blockNum == 0 && !this.gameWin && !this.gameOver) {\r\n // alert(\"游戏成功\");\r\n this.gameWin = true;\r\n\r\n this.stopTimeCutDown();\r\n // console.log(\"成功消除一个\");\r\n cc.fx.GameTool.changeCoin(40);\r\n cc.fx.GameTool.addLevel(this.count_Time, this.add_Time);\r\n\r\n this.check_NewMode();\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else {\r\n if (this.gameOver == true) {\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode() {\r\n for (let i = 0; i < cc.fx.GameConfig.NEW_LEVEL.length; i++) {\r\n if ((cc.fx.GameConfig.GM_INFO.level + 1) == cc.fx.GameConfig.NEW_LEVEL[i].level) {\r\n this.new_mode = 3;\r\n }\r\n }\r\n }\r\n\r\n winLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (cc.fx.GameConfig.GM_INFO.level > 156) {\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n // MapConroler._instance = null;\r\n\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n else {\r\n\r\n // console.log(\"下一关\");\r\n // MapConroler._instance = null;\r\n\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 0);\r\n }, 1200);\r\n\r\n // this.node.parent.parent.parent.destroy();\r\n\r\n }\r\n }\r\n\r\n againLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (cc.fx.GameConfig.GM_INFO.hp < 1) {\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n }\r\n if (!this.againCanTouch) return;\r\n\r\n this.againCanTouch = false;\r\n\r\n // MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n let coin = 900;\r\n if (cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if (cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else {\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data) {\r\n console.log(\"复活回调函数内\", data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n\r\n if (cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n\r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n\r\n homeBtn() {\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time: this.count_Time,\r\n add_Time: this.add_Time,\r\n result: \"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\", data);\r\n if (this.gameStart == true) {\r\n cc.fx.GameTool.setUserHealth(-1, (data) => {\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (MapConroler._instance = null) {\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n // MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n\r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type) {\r\n this.stopTimeCutDown();\r\n if (this.gameOver == true || this.gameWin == true) {\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if (type == \"boom\") {\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active = false;\r\n if (cc.fx.GameConfig.GM_INFO.review == 0) buyBtn.getChildByName(\"coin1\").active = true;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if (type) {\r\n if (type == \"boom\") {\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n\r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type) {\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n\r\n downDoor(color, type) {\r\n for (let i = 0; i < this.wallArray.length; i++) {\r\n if (this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").color == color) {\r\n if (type) {\r\n if (type == 5) {\r\n if (this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").special == 1) {\r\n this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n }\r\n else this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n else this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n }\r\n }\r\n\r\n upDoor() {\r\n for (let i = 0; i < this.wallArray.length; i++) {\r\n if (this.wallArray[i].getChildByName(\"wall\").opacity == 0) {\r\n this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").upDoor();\r\n }\r\n }\r\n }\r\n\r\n //开始倒计时\r\n startTimeCutDown() {\r\n this.scheduleCallback = function () {\r\n if (this.pause) return;\r\n if (this.timeNumber <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n // this.timeLabel.string = timeTemp.toString();\r\n if (!this.pause) this.failLevel(\"time\");\r\n }\r\n else {\r\n this.timeNumber -= 1;\r\n this.count_Time += 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n // this.timeLabel.string = timeTemp.toString();\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n // 停止倒计时\r\n stopTimeCutDown() {\r\n if (this.scheduleCallback) {\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n //使用时间道具\r\n useTimeProp() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n if (freezeBtn.getComponent(\"btnControl\")._touch) {\r\n freezeBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.freezeAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"freeze\");\r\n }\r\n else {\r\n if (!this.node.parent.getChildByName(\"Ice\").active && !this.pause) {\r\n const timestamp = Date.now();\r\n this.freezeMask.active = true;\r\n\r\n this.pause = true;\r\n this.node.parent.getChildByName(\"Ice\").active = true;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = true;\r\n\r\n cc.fx.GameConfig.GM_INFO.freezeAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.freezeAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2001, cc.fx.GameConfig.GM_INFO.freezeAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2001\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce() {\r\n if (this.node.parent.getChildByName(\"Ice\").active) {\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n\r\n handleBuySuccess(data) {\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if (data == \"freezeAmount\") {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n\r\n }\r\n else if (data == \"magicAmount\") {\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n\r\n }\r\n else if (data == \"hammerAmount\") {\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if (hammerBtn.getComponent(\"btnControl\")._touch) {\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.hammerAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else {\r\n if (!this.hammer) {\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.hammerAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\", propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2002, cc.fx.GameConfig.GM_INFO.hammerAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2002\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n buyMagic() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003, this.handleBuySuccess.bind(this, \"magicAmount\"));\r\n }\r\n\r\n buyHammer() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this, \"hammerAmount\"));\r\n }\r\n\r\n buyFreeze() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001, this.handleBuySuccess.bind(this, \"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (magicBtn.getComponent(\"btnControl\")._touch) {\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.magicAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else {\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n\r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.magicAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2003, cc.fx.GameConfig.GM_INFO.magicAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2003\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n // console.log(\"方块类型\",this.blocks[i].getComponent(\"Block\").type);\r\n if (this.blocks[i].getComponent(\"Block\").type == 3) {\r\n this.loackArray.push(this.blocks[i]);\r\n }\r\n else if (this.blocks[i].getComponent(\"Block\").type == 4) {\r\n this.freezeArray.push(this.blocks[i]);\r\n }\r\n else if (this.blocks[i].getComponent(\"Block\").type == 10) {\r\n if (this.blocks[i].getComponent(\"Block\").block_Info.node) {\r\n nomalArray.push(this.blocks[i].getComponent(\"Block\").block_Info.node);\r\n }\r\n else nomalArray.push(this.blocks[i]);\r\n }\r\n else {\r\n nomalArray.push(this.blocks[i]);\r\n }\r\n }\r\n if (nomalArray.length > 1) {\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if (nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9) {\r\n time = 200;\r\n }\r\n if (time > 0) {\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if (nomalArray.length == 1) {\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if (nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9) {\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if (this.freezeArray.length == 0 && this.loackArray.length == 0) {\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else {\r\n if (this.loackArray.length != 0) {\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if (this.freezeArray.length != 0) {\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n }, 200 + time);\r\n }\r\n else {\r\n let count = 2;\r\n if (this.loackArray.length != 0) {\r\n for (let i = 0; i < this.loackArray.length; i++) {\r\n // console.log(\"没有普通快,魔法消除一个带锁块\");\r\n this.loackArray[i].getComponent(\"Block\").eliminate();\r\n count -= 1;\r\n if (count == 0) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if (count != 0) {\r\n for (let i = 0; i < this.freezeArray.length; i++) {\r\n // console.log(\"没有普通快,魔法消除一个冻结块\");\r\n // this.freezeArray[i].getComponent(\"Block\").eliminate();\r\n count -= 1;\r\n if (count == 0) {\r\n break;\r\n }\r\n }\r\n }\r\n }, 100);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //按下暂停按钮\r\n usePause() {\r\n if (this.pause) {\r\n this.pause = false;\r\n }\r\n else {\r\n this.pause = true;\r\n }\r\n }\r\n\r\n\r\n\r\n //根据关卡设置地图大小\r\n setMapInfo() {\r\n let width = 0;\r\n if (this.mapWidth < 10) {\r\n width = 0.2;\r\n }\r\n else if (this.mapWidth < 17) {\r\n width = 0.15 - (this.mapWidth - 11) * 0.01;\r\n }\r\n\r\n this.node.scale = 1.6 + (6 - this.mapWidth) * width;\r\n\r\n if (this.mapWidth == 8 && this.mapHeight > 13) {\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block, jg) {\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if (jg == 0 || jg == 1) {\r\n let y = block.y + block.height;\r\n let x = block.x - block.width / 2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if (jg == 1) {\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if (block.anchorX == 0.5) {\r\n x = block.x;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x + block.width * (0.5 - 0.33);\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * (0.5 - 0.66);\r\n }\r\n particle.setPosition(x, y);\r\n }\r\n else if (jg == 2 || jg == 3) {\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height / 2;\r\n if (block.anchorX == 0.5) {\r\n x = block.x - block.width / 2;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x - block.width * 0.33;\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * 0.66;\r\n }\r\n if (jg == 3) {\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if (block.anchorX == 0.5) {\r\n x = block.x + block.width / 2;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x + block.width * 0.66;\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * 0.33;\r\n }\r\n }\r\n\r\n particle.setPosition(x, y);\r\n }\r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, { opacity: 0 })\r\n .call(() => {\r\n particle.destroy();\r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].opacity == 0) {\r\n this.blocks[i].destroy();\r\n this.blocks.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n update(dt) {\r\n\r\n }\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\Map.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameManager from \"./GameManager\";\r\nimport { LQCollide } from \"./lq_collide_system/lq_collide\";\r\nimport NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n\r\n\r\n@ccclass\r\nexport default class MapConroler extends cc.Component {\r\n static _instance: any;\r\n\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"方块数组\" })\r\n Block_Array: Array = [];\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"方块道具数组\" })\r\n Block_Prop: Array = [];\r\n\r\n @property(cc.Prefab)\r\n MapBlockPrefab: cc.Prefab = null;\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n\r\n @property({ type: [cc.Prefab], tooltip: \"墙壁数组\" })\r\n Wall_Prefab: Array = [];\r\n\r\n\r\n\r\n @property(cc.Prefab)\r\n wallTurnPrefab: cc.Prefab = null;\r\n\r\n @property(cc.Button)\r\n timeBtn: cc.Button = null;\r\n @property(cc.Button)\r\n destroyBtn: cc.Button = null;\r\n @property(cc.Button)\r\n magicBtn: cc.Button = null;\r\n\r\n @property(cc.Node)\r\n mask: cc.Node = null;\r\n\r\n @property(cc.Label)\r\n iceLabel: cc.Label = null;\r\n @property(cc.Label)\r\n hammerLabel: cc.Label = null;\r\n @property(cc.Label)\r\n magicLabel: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n magicMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammerMask: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n freezeMask: cc.Node = null;\r\n\r\n\r\n @property(cc.Node)\r\n coinPop: cc.Node = null;\r\n\r\n timeLabel: cc.Node = null;\r\n levelLabel: cc.Node = null;\r\n coin: cc.Node = null;\r\n\r\n new_mode: number = 0;\r\n mapWidth: number = 0;\r\n mapHeight: number = 0;\r\n wallNum: number = 0;\r\n blockNum: number = 0;\r\n mapBlocksWall: any; //地图的所有底块\r\n mapInfo: any; //地图除了底块的其他信息\r\n blocks: any; //方块数组\r\n wallInfo: any; //墙壁数组\r\n wallArray: any; //\r\n openWall: any; //开关墙数组\r\n freezeWall: any; //冻结墙数组\r\n riseFallBlcok: any; //升降地块数组\r\n scheduleCallback: any;//倒计时用\r\n homeCanTouch: boolean = true;//按钮可用状态\r\n againCanTouch: boolean = true;//重玩按钮可以用状态\r\n gameOver: boolean = false;//游戏结束状态\r\n gameWin: boolean = false;//游戏胜利状态\r\n gameStart: boolean = false;//游戏开始状态\r\n timeNumber: number = 0; //游戏时间 用于倒计时\r\n count_Time: number = 0; //用于统计总游戏时长\r\n add_Time: number = 0; //复活时间\r\n mapBlockArray: any; //地图的所有格子状态存储\r\n pause: boolean = false;//暂停状态\r\n hammer: boolean = false;//锤子状态\r\n freezeArray: any; //冻结\r\n loackArray: any; //上锁\r\n particleEffects: cc.ParticleAsset[];\r\n // leftDoors: []; //左门\r\n rightDoors: any; //右门\r\n topDoors: any; //上门\r\n bottomDoors: any; //下门\r\n leftDoors: any;\r\n\r\n\r\n // mapInfo: number[][] = [];\r\n\r\n onLoad() {\r\n\r\n cc.fx.GameConfig.GM_INFO.review = 0;\r\n cc.fx.GameConfig.GM_INFO.gameState = true;\r\n this.mask.opacity = 0;\r\n this.node.getChildByName(\"Adhesive\").zIndex = 500;\r\n cc.game.setFrameRate(63);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\") {\r\n // 动画播放结束后执行的逻辑\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n this.blocks = [];\r\n this.leftDoors = []; //左门\r\n this.rightDoors = []; //右门\r\n this.topDoors = []; //上门\r\n this.bottomDoors = []; //下门\r\n this.gameWin = false;\r\n this.gameOver = false;\r\n this.gameStart = false;\r\n this.homeCanTouch = true;\r\n this.againCanTouch = true;\r\n this.new_mode = 0;\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n\r\n\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n\r\n // cc.game.addPersistRootNode(this.node);\r\n MapConroler._instance = this;\r\n }\r\n\r\n start() {\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 HomeScene 失败:', err);\r\n return;\r\n }\r\n });\r\n }, 1000);\r\n // console.log(\"进入GameScene\");\r\n this.Block_Array = GameManager._instance.Block_Array;\r\n this.Wall_Prefab = GameManager._instance.Wall_Prefab;\r\n this.Block_Color = GameManager._instance.Block_Color;\r\n // this.particleEffects = GameManager._instance.particleEffects;\r\n\r\n this.initMap();\r\n\r\n }\r\n\r\n startUpdate() {\r\n if (this.gameStart == false) {\r\n this.gameStart = true;\r\n //发送数数事件——进入关卡\r\n console.log(\"准备进入下一关,发送下一关进入\");\r\n cc.fx.GameTool.shushu_Track(\"enter_stage\");\r\n this.startTimeCutDown();\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").type == 6) {\r\n this.blocks[i].getChildByName(\"boom\").getComponent(\"Boom\").startBoom();\r\n }\r\n }\r\n }\r\n }\r\n\r\n initMap() {\r\n\r\n // this.node.getChildByName(\"Wall\").zIndex = 10;\r\n this.timeLabel = this.node.parent.getChildByName(\"Top\").getChildByName(\"time\");\r\n this.levelLabel = this.node.parent.getChildByName(\"Top\").getChildByName(\"level\");\r\n this.coin = this.node.parent.getChildByName(\"Top\").getChildByName(\"coin\");\r\n this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;\r\n console.log(\"当前关卡时间\", this.timeNumber);\r\n\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n // var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n // this.timeLabel.string = timeTemp.toString();\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, \"level_\", this.levelLabel, false)\r\n console.log(\"当前关卡\", cc.fx.GameConfig.GM_INFO.level + 1);\r\n //this.startTimeCutDown();\r\n\r\n this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];\r\n this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];\r\n let gap = cc.fx.GameConfig.LEVEL_INFO[0].gap;\r\n let risefall = cc.fx.GameConfig.LEVEL_INFO[0].risefall;\r\n\r\n this.pause = false;\r\n this.hammer = false;\r\n this.wallNum = 0;\r\n this.setMapInfo();\r\n this.blocks = [];\r\n this.mapBlocksWall = [];\r\n this.mapInfo = [];\r\n this.wallInfo = [];\r\n this.openWall = [];\r\n this.wallArray = [];\r\n this.freezeWall = [];\r\n this.riseFallBlcok = [];\r\n this.mapBlockArray = [];\r\n this.freezeArray = [];\r\n this.loackArray = [];\r\n this.count_Time = 0;\r\n this.add_Time = 0;\r\n\r\n\r\n let startX = this.mapWidth % 2 == 0 ? -(this.mapWidth - 1) * 60 : -(this.mapWidth - 1) * 60;\r\n let startY = this.mapHeight % 2 == 0 ? -(this.mapHeight - 1) * 60 : -(this.mapHeight - 1) * 60;\r\n // startX =(this.mapWidth-1)*60 + 60;\r\n // startY =-(this.mapHeight-1)*60 - 60;\r\n\r\n for (let i = 0; i < this.mapWidth; i++) {\r\n this.mapBlocksWall[i] = [];\r\n\r\n for (let j = 0; j < this.mapHeight; j++) {\r\n let block = cc.instantiate(this.MapBlockPrefab);\r\n block.parent = this.node.getChildByName(\"mapBlock\");\r\n block.getComponent(\"MapBlock\").init(i, j);\r\n // block.getChildByName(\"num\").getComponent(cc.Label).string = i + \":\" + j;\r\n block.setPosition(cc.v2(startX + i * 120, startY + j * 120))\r\n if (risefall != null) {\r\n if (this.mapRiseFall(cc.v2(i, j), risefall, block)) {\r\n this.riseFallBlcok.push(block);\r\n }\r\n }\r\n if (gap != null) {\r\n if (!this.mapGap(cc.v2(i, j), gap) || i == 0 || i == this.mapWidth - 1\r\n || j == 0 || j == this.mapHeight - 1) {\r\n block.opacity = 254;\r\n block.removeComponent(cc.Sprite);\r\n block.removeAllChildren();\r\n this.wallInfo.push(block);\r\n }\r\n else this.mapInfo.push(block);\r\n }\r\n else {\r\n if (i == 0 || i == this.mapWidth - 1\r\n || j == 0 || j == this.mapHeight - 1) {\r\n block.opacity = 254;\r\n block.removeComponent(cc.Sprite);\r\n block.removeAllChildren();\r\n this.wallInfo.push(block);\r\n }\r\n else this.mapInfo.push(block);\r\n }\r\n\r\n this.mapBlocksWall[i].push(block);\r\n }\r\n }\r\n\r\n this.wallInit();\r\n this.blockInit();\r\n\r\n }\r\n\r\n //创建方块\r\n // ... 已有代码 ...\r\n\r\n //创建方块\r\n // ... 已有代码 ...\r\n\r\n\r\n\r\n\r\n blockInit() {\r\n let blockArray = cc.fx.GameConfig.BLOCK_INFO[0];\r\n blockArray = this.sortBlock(blockArray);\r\n console.log(\"创建方块\", blockArray);\r\n let index = 0; // 当前要创建的方块索引\r\n let BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createBlocks = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) {\r\n let blockInfo = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockPrefab = this.Block_Array[blockInfo.block];\r\n let block = cc.instantiate(blockPrefab);\r\n block.parent = this.node;\r\n block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y));\r\n if (blockInfo.block != 23) {\r\n this.blockNum += 1;\r\n this.blocks.push(block);\r\n if (blockInfo.type == 1) {\r\n let info = {\r\n id: blockInfo.id + 1,\r\n block: blockInfo.block,\r\n color: blockInfo.stacking,\r\n type: 10,\r\n position: blockInfo.position,\r\n stacking: blockInfo.color\r\n };\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block];\r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp);\r\n blockUp.getComponent(\"Block\").init(info, null, null, block);\r\n\r\n this.blockNum += 1;\r\n } else if (blockInfo.type == 9) {\r\n if (blockInfo.adhesiveTime < 2) {\r\n index++;\r\n continue;\r\n }\r\n index++;\r\n let info = blockArray[index];\r\n // 缓存 Block_Array 访问\r\n const blockUpPrefab = this.Block_Array[info.block];\r\n let blockUp = cc.instantiate(blockUpPrefab);\r\n blockUp.parent = this.node;\r\n blockUp.setPosition(cc.v2(info.position.x, info.position.y));\r\n\r\n this.blocks.push(blockUp);\r\n block.getComponent(\"Block\").init(blockInfo, null, null, blockUp, false);\r\n setTimeout(() => {\r\n blockUp.getComponent(\"Block\").init(info, null, null, block, true);\r\n }, 100);\r\n this.blockNum += 1;\r\n } else {\r\n block.getComponent(\"Block\").init(blockInfo);\r\n }\r\n }\r\n else {\r\n block.getComponent(\"Barrier\").init(blockInfo);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) {\r\n BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有方块未创建,下一帧继续创建\r\n if (index < blockArray.length) {\r\n // 使用 scheduleOnce 在下一帧执行 createBlocks\r\n this.scheduleOnce(() => {\r\n createBlocks();\r\n }, 0);\r\n } else {\r\n\r\n }\r\n };\r\n\r\n // 开始分帧创建方块\r\n createBlocks();\r\n }\r\n //给创建方块排序,用来降低drawcall 合批\r\n sortBlock(allBlocks: { color: number; block: number; type: number }[]) {\r\n return allBlocks.sort((a, b) => {\r\n // 先处理 type 为 1 的情况,将其放到最后\r\n if (a.type === 1 && b.type !== 1) {\r\n return 1;\r\n }\r\n if (a.type !== 1 && b.type === 1) {\r\n return -1;\r\n }\r\n\r\n // 对 type 不为 0 的元素按 type 排序\r\n if (a.type !== 0 && b.type !== 0) {\r\n return a.type - b.type;\r\n }\r\n if (a.type !== 0 && b.type === 0) {\r\n return 1;\r\n }\r\n if (a.type === 0 && b.type !== 0) {\r\n return -1;\r\n }\r\n\r\n // 再处理 block 为 23 的情况,将其放到最前面\r\n if (a.block === 23 && b.block !== 23) {\r\n return -1;\r\n }\r\n if (a.block !== 23 && b.block === 23) {\r\n return 1;\r\n }\r\n\r\n // 其余按 color 升序排列\r\n return a.color - b.color;\r\n });\r\n }\r\n\r\n\r\n //创建墙壁\r\n\r\n wallInit() {\r\n let index = 0; // 当前要创建的墙壁索引\r\n let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量\r\n const MAX_PER_FRAME = 10; // 每帧最大创建数量\r\n const MIN_PER_FRAME = 1; // 每帧最小创建数量\r\n\r\n const createWalls = () => {\r\n const startTime = performance.now();\r\n for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[index];\r\n let dir = this.getWllDiraction(\"wall\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createWall(dir, block);\r\n }\r\n index++;\r\n }\r\n const endTime = performance.now();\r\n const frameTime = endTime - startTime;\r\n // 如果当前帧执行时间过长,减少每帧创建数量\r\n if (frameTime > 16) {\r\n WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME);\r\n } else {\r\n WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME);\r\n }\r\n\r\n // 如果还有墙壁未创建,下一帧继续创建\r\n if (index < this.wallInfo.length) {\r\n this.scheduleOnce(() => {\r\n createWalls();\r\n }, 0);\r\n } else {\r\n // 所有墙壁创建完成后,创建拐角节点\r\n this.createCornerNodes();\r\n }\r\n };\r\n\r\n // 开始分帧创建墙壁\r\n createWalls();\r\n }\r\n\r\n // ... 已有代码 ...\r\n\r\n getWllDiraction(type, pointA) {\r\n let dir = [];\r\n let pointB = cc.v2(pointA.x + 1, pointA.y);\r\n let pointC = cc.v2(pointA.x - 1, pointA.y);\r\n let pointD = cc.v2(pointA.x, pointA.y + 1);\r\n let pointE = cc.v2(pointA.x, pointA.y - 1);\r\n let opacity = 0;\r\n if (type == \"wall\") opacity = 255;\r\n if (type == \"turn\") opacity = 250;\r\n\r\n if (pointB.x < this.mapWidth) {\r\n if (this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointB.x][pointB.y].getComponent(\"MapBlock\").direction == \"right\") {\r\n\r\n }\r\n else dir.push(\"right\");\r\n }\r\n }\r\n if (pointC.x >= 0) {\r\n if (this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointC.x][pointC.y].getComponent(\"MapBlock\").direction == \"left\") {\r\n\r\n }\r\n else dir.push(\"left\");\r\n }\r\n }\r\n if (pointD.y < this.mapHeight) {\r\n if (this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointD.x][pointD.y].getComponent(\"MapBlock\").direction == \"up\") {\r\n\r\n }\r\n else dir.push(\"up\");\r\n }\r\n }\r\n if (pointE.y >= 0) {\r\n if (this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity) {\r\n if (type == \"turn\" && this.mapBlocksWall[pointE.x][pointE.y].getComponent(\"MapBlock\").direction == \"down\") {\r\n\r\n }\r\n else dir.push(\"down\");\r\n }\r\n }\r\n if (dir.length > 2) {\r\n\r\n return null;\r\n }\r\n if (dir.length == 1) {\r\n if (type == \"wall\")\r\n return dir[0];\r\n else\r\n return null;\r\n }\r\n else if (dir.length == 2) {\r\n return dir[0] + dir[1];\r\n }\r\n }\r\n\r\n createCornerNodes() {\r\n // 定义拐角位置\r\n for (let i = 0; i < this.wallInfo.length; i++) {\r\n let block = this.wallInfo[i];\r\n if (block.opacity != 250) {\r\n let dir = this.getWllDiraction(\"turn\", cc.v2(block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY));\r\n if (dir != null) {\r\n this.createTurn(dir, block, block.getComponent(\"MapBlock\").posX, block.getComponent(\"MapBlock\").posY);\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n createWall(direction, node) {\r\n let wall = null;\r\n node.getComponent(\"MapBlock\").setDiraction(direction);\r\n switch (direction) {\r\n case \"right\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[4]);\r\n this.leftDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n node.opacity = 250;\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n\r\n break;\r\n case \"left\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[3]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n this.rightDoors.push(wall);\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"up\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[5]);\r\n\r\n this.topDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"down\":\r\n node.opacity = 250;\r\n wall = cc.instantiate(this.Wall_Prefab[0]);\r\n this.bottomDoors.push(wall);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n // this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n wall.getChildByName(\"wall\").getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n this.setDoorInfo(wall.getChildByName(\"wall\"));\r\n //wall.getChildByName(\"wall\").getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.wallNum += 1;\r\n if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 2)\r\n this.openWall.push(wall);\r\n else if (wall.getChildByName(\"wall\").getComponent(\"Wall\").special == 3)\r\n this.freezeWall.push(wall);\r\n break;\r\n case \"upright\": case \"rightup\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[7]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"upleft\": case \"leftup\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[6]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"downright\": case \"rightdown\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[2]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n case \"downleft\": case \"leftdown\":\r\n node.opacity = 249;\r\n wall = cc.instantiate(this.Wall_Prefab[1]);\r\n // wall.parent = this.node.getChildByName(\"Wall\");\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n wall.children[1].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n wall.children[2].getComponent(\"Wall\").init(null, node.getComponent(\"MapBlock\").posX, node.getComponent(\"MapBlock\").posY, direction);\r\n //wall.children[0].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[0]);\r\n this.wallNum += 1;\r\n //wall.children[1].getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum.toString();\r\n this.setDoorInfo(wall.children[1]);\r\n this.wallNum += 1;\r\n\r\n break;\r\n\r\n }\r\n\r\n\r\n // if(wallTurn){\r\n // wallTurn.getComponent(\"wallTunr\").init(wall);\r\n // }\r\n }\r\n\r\n setDoorInfo(wall) {\r\n let doorInfo = cc.fx.GameConfig.WALL_INFO[0];\r\n\r\n if (doorInfo) {\r\n for (let j = 0; j < doorInfo.length; j++) {\r\n if (doorInfo[j].num == this.wallNum) {\r\n wall.getComponent(\"Wall\").init(doorInfo[j], null, null, null);\r\n this.wallArray.push(wall.parent);\r\n }\r\n }\r\n }\r\n }\r\n\r\n createTurn(direction, node, posX, posY) {\r\n let wall = null;\r\n wall = cc.instantiate(this.wallTurnPrefab);\r\n wall.parent = this.node;\r\n wall.setPosition(cc.v2(node.x, node.y));\r\n switch (direction) {\r\n case \"upright\": case \"rightup\":\r\n wall.angle = 0;\r\n wall.getChildByName(\"icon\").angle = 0;\r\n\r\n break;\r\n case \"upleft\": case \"leftup\":\r\n wall.angle = 90;\r\n wall.getChildByName(\"icon\").angle = -90;\r\n wall.getChildByName(\"icon\").y += 5;\r\n wall.getChildByName(\"icon\").x -= 1.3;\r\n break;\r\n case \"downright\": case \"rightdown\":\r\n wall.angle = 270;\r\n wall.getChildByName(\"icon\").angle = -270;\r\n wall.getChildByName(\"icon\").x += 2.5;\r\n wall.getChildByName(\"icon\").y += 1;\r\n break;\r\n case \"downleft\": case \"leftdown\":\r\n wall.angle = 180;\r\n wall.getChildByName(\"icon\").angle = -180;\r\n wall.getChildByName(\"icon\").x += 4.5;\r\n wall.getChildByName(\"icon\").y += 3.2;\r\n break;\r\n }\r\n\r\n // if(direction == \"rightdown\" || direction == \"downright\") {\r\n // wall.zIndex = 50 + posX - posY*3;\r\n // }\r\n // else \r\n // wall.zIndex = 50 + posX - posY*3;\r\n\r\n if (direction == \"up\" || direction == \"leftup\" || direction == \"upleft\"\r\n ) {\r\n wall.zIndex = 100 + posX - posY * 3;\r\n }\r\n else if (direction == \"rightup\" || direction == \"upright\" || direction == \"rightdown\" || direction == \"downright\" || direction == \"downleft\") {\r\n wall.zIndex = 30 + posX - posY * 3;\r\n }\r\n else if (direction == \"left\" || direction == \"leftdown\") {\r\n wall.zIndex = 70 + posX - posY * 3;\r\n }\r\n else wall.zIndex = 70 + posX - posY * 3;\r\n\r\n // wall.getChildByName(\"num\").angle = -wall.angle;\r\n //wall.getChildByName(\"num\").getComponent(cc.Label).string = direction;\r\n //wall.getChildByName(\"num\").getComponent(cc.Label).string = wall.zIndex+ \"\";\r\n // console.log(posX,posY,wall.zIndex);\r\n // this.wallNum += 1;\r\n // wall.getChildByName(\"num\").getComponent(cc.Label).string = this.wallNum + \"\";\r\n }\r\n\r\n //地图底块缺口判断\r\n mapGap(point, gap) {\r\n for (let i = 0; i < gap.length; i++) {\r\n if (point.x == gap[i].x && point.y == gap[i].y) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n //升降地块判断\r\n mapRiseFall(point, risefall, block) {\r\n for (let i = 0; i < risefall.length; i++) {\r\n if (point.x == risefall[i].pos.x && point.y == risefall[i].pos.y) {\r\n block.getChildByName(\"risefall\").active = true;\r\n block.getChildByName('risefall').getChildByName(\"color\").getComponent(cc.Label).string = risefall[i].color + \"\";\r\n block.getChildByName('risefall').addComponent(cc.BoxCollider);\r\n block.getChildByName('risefall').getComponent(cc.BoxCollider).size = cc.size(110, 110);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n //升降地块\r\n changeRiseFall(color, down) {\r\n color = color.toString();\r\n for (let i = 0; i < this.riseFallBlcok.length; i++) {\r\n if (color == this.riseFallBlcok[i].getChildByName(\"risefall\").getChildByName(\"color\").getComponent(cc.Label).string) {\r\n if (down) {\r\n this.riseFallBlcok[i].getChildByName(\"risefall\").active = false;\r\n this.riseFallBlcok[i].getChildByName('risefall').removeComponent(cc.BoxCollider);\r\n }\r\n else {\r\n this.riseFallBlcok[i].getChildByName(\"risefall\").active = true;\r\n this.riseFallBlcok[i].getChildByName('risefall').addComponent(cc.BoxCollider);\r\n this.riseFallBlcok[i].getChildByName('risefall').getComponent(cc.BoxCollider).size = cc.size(110, 110);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n //查询叠加快id\r\n foundDownBlock(id) {\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").blockId == id) {\r\n return this.blocks[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n //删除块\r\n removeBlock(id) {\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].getComponent(\"Block\").blockId == id) {\r\n return this.blocks[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getMinAndMax(block) {\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n\r\n let minX = width;\r\n let maxX = this.mapWidth - 2;\r\n let minY = 1;\r\n let maxY = this.mapHeight - 2 - height + 1;\r\n\r\n if (block.name == \"block10\") {\r\n minX = width - 1;\r\n if (this.mapWidth > 3) maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block11\") {\r\n minX = width - 2;\r\n if (this.mapWidth > 3) maxX = maxX - 2;\r\n }\r\n\r\n else if (block.name == \"block14\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block16\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block18\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n else if (block.name == \"block21\") {\r\n minX = width - 1;\r\n maxX = maxX - 1;\r\n }\r\n\r\n return { minX: minX, maxX: maxX, minY: minY, maxY: maxY };\r\n }\r\n\r\n //检测落点是否可以消除\r\n checkPass(node, blocks) {\r\n let minAndMax = this.getMinAndMax(node);\r\n let minX = minAndMax.minX;\r\n let maxX = minAndMax.maxX;\r\n let minY = minAndMax.minY;\r\n let maxY = minAndMax.maxY;\r\n\r\n let nodePos = cc.v2(node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY);\r\n\r\n // 获取地图边界信息\r\n\r\n let allBlocks = [];\r\n for (let i = 0; i < blocks.length; i++) {\r\n allBlocks.push(cc.v2(nodePos.x + blocks[i].x, nodePos.y + blocks[i].y));\r\n }\r\n\r\n // const date1 = new Date().getTime();\r\n // console.log(\"将小块放入数组的时间\",date1);\r\n\r\n let jg = -1;\r\n let pz = 0;\r\n // 获取所有墙壁节点\r\n // let wall = this.node;\r\n let direction = this.checkDiraction(allBlocks, maxX, maxY);\r\n\r\n // 判断方块是否在地图边缘\r\n if (nodePos.x <= minX || direction[0] == true) {\r\n // const date2 = new Date().getTime();\r\n // console.log(\"碰到左边缘\",date2);\r\n pz += 1;\r\n let leftWalls = [];\r\n for (let i = 0; i < this.leftDoors.length; i++) {\r\n let wallLeft = this.leftDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallLeft.getComponent(\"Wall\").posX, wallLeft.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].y == wallPos.y && allBlocks[i].x > wallPos.x) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n leftWalls.push(wallLeft);\r\n }\r\n }\r\n }\r\n // console.log(\"得到左边墙壁数组\",date6);\r\n if (leftWalls.length != 0) {\r\n let result = this.detectingBlock(\"left\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, leftWalls, node);\r\n // console.log(\"碰到左边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 2;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n }\r\n if (nodePos.x >= maxX || direction[1] == true) {\r\n // const date3 = new Date().getTime();\r\n // console.log(\"碰到右边缘\",date3);\r\n pz += 1;\r\n let rightWalls = [];\r\n for (let i = 0; i < this.rightDoors.length; i++) {\r\n let wallRight = this.rightDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallRight.getComponent(\"Wall\").posX, wallRight.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n rightWalls.push(wallRight);\r\n }\r\n }\r\n }\r\n\r\n if (rightWalls.length != 0) {\r\n let result = this.detectingBlock(\"right\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n\r\n if (result == true) result = this.passWall(result, rightWalls, node);\r\n // console.log(\"碰到右边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 3;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n\r\n }\r\n if (nodePos.y <= minY || direction[2] == true) {\r\n pz += 1;\r\n // const date4 = new Date().getTime();\r\n // console.log(\"碰到下边缘\",date4);\r\n let downWalls = [];\r\n for (let i = 0; i < this.topDoors.length; i++) {\r\n let wallBottom = this.topDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallBottom.getComponent(\"Wall\").posX, wallBottom.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if (allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent(\"Block\").shu) {\r\n // console.log(\"id:\",wall.getChildByName(\"num\").getComponent(cc.Label).string);\r\n downWalls.push(wallBottom);\r\n }\r\n }\r\n }\r\n\r\n if (downWalls.length != 0) {\r\n let result = this.detectingBlock(\"down\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, downWalls, node);\r\n // console.log(\"碰到下边缘结果:\",jg);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 1;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n\r\n }\r\n if (nodePos.y >= maxY || direction[3] == true) {\r\n pz += 1;\r\n // const date5 = new Date().getTime();\r\n // console.log(\"碰到上边缘\",date5);\r\n let upWalls = [];\r\n for (let i = 0; i < this.bottomDoors.length; i++) {\r\n let wallTop = this.bottomDoors[i].getChildByName(\"wall\");\r\n let wallPos = cc.v2(wallTop.getComponent(\"Wall\").posX, wallTop.getComponent(\"Wall\").posY);\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n let luocha = Math.abs(allBlocks[i].y - wallPos.y)\r\n if (allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent(\"Block\").shu) {\r\n upWalls.push(wallTop);\r\n }\r\n }\r\n }\r\n\r\n if (upWalls.length != 0) {\r\n let result = this.detectingBlock(\"up\", node.getComponent(\"Block\").posX, node.getComponent(\"Block\").posY, allBlocks);\r\n if (result == true) result = this.passWall(result, upWalls, node);\r\n // console.log(\"碰到上边缘结果:\",result);\r\n if (result) {\r\n\r\n this.blockNum -= 1;\r\n this.special_Treatment(node);\r\n jg = 0;\r\n this.createParticle(node, jg);\r\n return jg;\r\n }\r\n }\r\n\r\n }\r\n if (pz == 0) jg = -1;\r\n // const date10 = new Date().getTime();\r\n // console.log(\"所有检测结束耗时\",date10,jg);\r\n return jg;\r\n }\r\n\r\n changeState() {\r\n if (this.openWall.length != 0) {\r\n for (let i = 0; i < this.openWall.length; i++) {\r\n this.openWall[i].getChildByName(\"wall\").getComponent(\"Wall\").changeLock();\r\n }\r\n }\r\n\r\n if (this.freezeWall.length != 0) {\r\n for (let i = 0; i < this.freezeWall.length; i++) {\r\n this.freezeWall[i].getChildByName(\"wall\").getComponent(\"Wall\").changeFreeze();\r\n }\r\n }\r\n }\r\n\r\n //检测是否可以通过门\r\n passWall(jg, wallArray, node) {\r\n for (let i = 0; i < wallArray.length; i++) {\r\n if (wallArray[i].getComponent(\"Wall\").special == 2) {\r\n console.log(\"尝试通过开关门:\", wallArray[i].getComponent(\"Wall\").open);\r\n }\r\n if (wallArray[i].getComponent(\"Wall\").special == 2 && wallArray[i].getComponent(\"Wall\").open == false) {\r\n jg = false;\r\n break;\r\n }\r\n //console.log(wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").color,node.getComponent(\"Block\").color)\r\n if (wallArray[i].getComponent(\"Wall\").color != node.getComponent(\"Block\").color) {\r\n\r\n jg = false;\r\n break;\r\n }\r\n if (node.getComponent(\"Block\").type == 5) {\r\n if (wallArray[i].getComponent(\"Wall\").special != 1) {\r\n jg = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (jg == true && node.getComponent(\"Block\").type == 5) {\r\n for (let j = 0; j < wallArray.length; j++) {\r\n if (wallArray[j].getComponent(\"Wall\").special == 1 && wallArray[j].getComponent(\"Wall\").wall_Info.length != 0) {\r\n wallArray[j].getComponent(\"Wall\").playStarDoor();\r\n }\r\n }\r\n }\r\n // const date8 = new Date().getTime();\r\n // console.log(\"检测颜色是否能够通过门\",date8);\r\n return jg;\r\n }\r\n\r\n //检测方块和门中间有没有夹杂其他块\r\n detectingBlock(direction, posX, posY, blocks) {\r\n let jg = true;\r\n let id = \"\";\r\n if (blocks.length > 0) {\r\n for (let i = 0; i < blocks.length; i++) {\r\n let pos = blocks[i];\r\n let x = pos.x;\r\n let y = pos.y;\r\n id = this.mapBlocksWall[x][y].getComponent(\"MapBlock\").block_Id;\r\n jg = this.checkAllDirections(id, direction, x, y);\r\n if (!jg) {\r\n // console.log(\"方向检测没过\");\r\n i = 1000000;\r\n return jg;\r\n }\r\n }\r\n }\r\n // const date7 = new Date().getTime();\r\n // console.log(\"方向检测通过\",date7,jg);\r\n return jg;\r\n }\r\n\r\n //检测物体各方向是否有别的物块,防止碰到墙壁了但是是凹凸形状,墙与块之间有阻挡物块\r\n checkAllDirections(id, direction, x, y) {\r\n let jg = true;\r\n\r\n if (direction == \"left\") {\r\n if (this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x - 1][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x - 1][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((x - 2) >= 0) {\r\n if (this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x - 2][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"左侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x - 2][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n else if (direction == \"right\") {\r\n if (this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x + 1][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x + 1][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((x + 2) <= this.mapBlocksWall.length - 1) {\r\n if (this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x + 2][y].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"右侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x + 2][y].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if (direction == \"up\") {\r\n if (this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y + 1].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y + 1].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((y + 2) <= this.mapBlocksWall[x].length - 1) {\r\n if (this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y + 2].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"上侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y + 2].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n if (direction == \"down\") {\r\n if (this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y - 1].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y - 1].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n if ((y - 2) >= 0) {\r\n if (this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != \"\" && this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != \"Wall\"\r\n && this.mapBlocksWall[x][y - 2].getComponent(\"MapBlock\").block_Id != id) {\r\n // console.log(\"下侧有物体\")\r\n jg = false;\r\n return jg;\r\n }\r\n if (this.mapBlocksWall[x][y - 2].opacity == 249) {\r\n jg = false;\r\n return jg;\r\n }\r\n }\r\n }\r\n // console.log(\"检测物体各方向是否有别的物块\",jg);\r\n return jg;\r\n }\r\n\r\n checkDiraction(allBlocks, maxX, maxY) {\r\n let jg = [false, false, false, false];\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n if (allBlocks[i].x > 0 && jg[0] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x - 1][allBlocks[i].y].opacity == 250) {\r\n jg[0] = true;\r\n }\r\n }\r\n if (jg[1] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x + 1][allBlocks[i].y].opacity == 250) {\r\n jg[1] = true;\r\n }\r\n }\r\n if (allBlocks[i].y > 0 && jg[2] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y - 1].opacity == 250) {\r\n jg[2] = true;\r\n }\r\n }\r\n if (jg[3] == false) {\r\n if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y + 1].opacity == 250) {\r\n jg[3] = true;\r\n }\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n checkLeft(allBlocks) {\r\n let jg = false;\r\n return jg;\r\n }\r\n\r\n checkRight(allBlocks, max) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n checkDown(allBlocks) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n checkUp(allBlocks, max) {\r\n let jg = false;\r\n for (let i = 0; i < allBlocks.length; i++) {\r\n\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n //特殊处理,方块带道具或者需要消除冰块\r\n special_Treatment(node) {\r\n let freezeBlock = this.node.children.filter(child => {\r\n if (child.getComponent(\"Block\")) {\r\n if (child.getComponent(\"Block\").type == 4)\r\n return child\r\n }\r\n });\r\n if (freezeBlock.length > 0) {\r\n for (let i = 0; i < freezeBlock.length; i++) {\r\n freezeBlock[i].getChildByName(\"freeze\").getComponent(\"Freeze\").reduce(1);\r\n }\r\n }\r\n\r\n if (node.getComponent(\"Block\").type == 2 || node.getComponent(\"Block\").type == 4) {\r\n let lockBlock = this.node.children.filter(child => {\r\n if (child.getComponent(\"Block\")) {\r\n if (child.getComponent(\"Block\").type == 3)\r\n return child\r\n }\r\n });\r\n if (lockBlock.length > 0)\r\n for (let i = 0; i < lockBlock.length; i++) {\r\n lockBlock[i].getChildByName(\"lock\").getComponent(\"Lock\").reduce();\r\n }\r\n\r\n }\r\n\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i] == node) {\r\n this.blocks.splice(i, 1);\r\n }\r\n }\r\n\r\n }\r\n\r\n //判断游戏成功下一关\r\n nextLevel() {\r\n this.pause = false;\r\n this.openIce();\r\n\r\n this.blockNum = this.blocks.length;\r\n\r\n if (this.blockNum == 0 && !this.gameWin && !this.gameOver) {\r\n // alert(\"游戏成功\");\r\n this.gameWin = true;\r\n\r\n this.stopTimeCutDown();\r\n // console.log(\"成功消除一个\");\r\n cc.fx.GameTool.changeCoin(40);\r\n cc.fx.GameTool.addLevel(this.count_Time, this.add_Time);\r\n\r\n this.check_NewMode();\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Win\").active = true;\r\n }, 660);\r\n // console.log(\"游戏成功\");\r\n }\r\n else {\r\n if (this.gameOver == true) {\r\n this.failLevel(null);\r\n }\r\n }\r\n }\r\n\r\n check_NewMode() {\r\n for (let i = 0; i < cc.fx.GameConfig.NEW_LEVEL.length; i++) {\r\n if ((cc.fx.GameConfig.GM_INFO.level + 1) == cc.fx.GameConfig.NEW_LEVEL[i].level) {\r\n this.new_mode = 3;\r\n }\r\n }\r\n }\r\n\r\n winLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (cc.fx.GameConfig.GM_INFO.level > 156) {\r\n cc.fx.GameConfig.GM_INFO.level = 156;\r\n // MapConroler._instance = null;\r\n\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n return;\r\n }\r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n });\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n else {\r\n\r\n // console.log(\"下一关\");\r\n // MapConroler._instance = null;\r\n\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(2);\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 0);\r\n }, 1200);\r\n\r\n // this.node.parent.parent.parent.destroy();\r\n\r\n }\r\n }\r\n\r\n againLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (cc.fx.GameConfig.GM_INFO.hp < 1) {\r\n MiniGameSdk.API.showToast(\"体力值不足\");\r\n return;\r\n }\r\n if (!this.againCanTouch) return;\r\n\r\n this.againCanTouch = false;\r\n\r\n // MapConroler._instance = null;\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n // if (entry.animation.name === \"up\") {\r\n // // 动画播放结束后执行的逻辑\r\n // this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = false;\r\n // }\r\n // });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 0);\r\n }, 1200);\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n reviewLevel() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n let coin = 900;\r\n if (cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500;\r\n // console.log(\"自身金币:\",cc.fx.GameConfig.GM_INFO.coin,\"消耗金币:\",coin);\r\n if (cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法加时间\");\r\n return;\r\n }\r\n else {\r\n this.runRewive(-coin);\r\n }\r\n }\r\n\r\n runRewive(data) {\r\n console.log(\"复活回调函数内\", data);\r\n cc.fx.GameTool.changeCoin(data);\r\n MiniGameSdk.API.showToast(\"继续游戏\");\r\n\r\n if (cc.fx.GameConfig.GM_INFO.review < 2)\r\n cc.fx.GameConfig.GM_INFO.review += 1;\r\n\r\n this.gameOver = false;\r\n this.timeNumber = 21;\r\n this.add_Time += 20;\r\n this.pause = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = false;\r\n this.startTimeCutDown();\r\n }\r\n\r\n\r\n\r\n homeBtn() {\r\n // alert(\"游戏失败\");\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (!this.homeCanTouch) return;\r\n this.homeCanTouch = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Lock\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Health\").active = true;\r\n let data = {\r\n time: this.count_Time,\r\n add_Time: this.add_Time,\r\n result: \"fail\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\", data);\r\n if (this.gameStart == true) {\r\n cc.fx.GameTool.setUserHealth(-1, (data) => {\r\n })\r\n }\r\n // this.node.parent.parent.parent.destroy();\r\n }\r\n\r\n returnHome() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n if (MapConroler._instance = null) {\r\n return;\r\n }\r\n // MiniGameSdk.API.showToast(\"体力值减少\");\r\n // MapConroler._instance = null;\r\n cc.fx.GameConfig.LEVEL_INFO_init(false, 0);\r\n if (this.new_mode == 3) {\r\n this.node.parent.parent.getChildByName(\"Win\").active = false;\r\n this.openNewMode(1);\r\n return;\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").active = true;\r\n this.node.parent.parent.parent.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.director.preloadScene(\"HomeScene\", (err, asset) => {\r\n if (err) {\r\n console.error('动态加载 Prefab 失败:', err);\r\n return;\r\n }\r\n\r\n });\r\n\r\n setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n\r\n //判断游戏失败\r\n failLevel(type) {\r\n this.stopTimeCutDown();\r\n if (this.gameOver == true || this.gameWin == true) {\r\n return;\r\n }\r\n\r\n let time = 0;\r\n this.gameOver = true;\r\n if (type == \"boom\") {\r\n time = 2000;\r\n }\r\n setTimeout(() => {\r\n this.node.parent.parent.getChildByName(\"Lose\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = true;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = false;\r\n let buyBtn = this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").getChildByName(\"buyBtn\");\r\n buyBtn.getChildByName(\"coin1\").active = buyBtn.getChildByName(\"coin2\").active = buyBtn.getChildByName(\"coin3\").active = false;\r\n if (cc.fx.GameConfig.GM_INFO.review == 0) buyBtn.getChildByName(\"coin1\").active = true;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName(\"coin2\").active = true;\r\n else if (cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName(\"coin3\").active = true;\r\n if (type) {\r\n if (type == \"boom\") {\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Time\").active = false;\r\n this.node.parent.parent.getChildByName(\"Lose\").getChildByName(\"Boom\").active = true;\r\n }\r\n }\r\n }, time);\r\n\r\n // console.log(\"游戏失败\");\r\n }\r\n\r\n //打开新模式弹窗\r\n openNewMode(type) {\r\n let index = 0;\r\n const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量\r\n const destroyBlocks = () => {\r\n const endIndex = Math.min(index + BLOCKS_PER_FRAME, this.blocks.length);\r\n for (; index < endIndex; index++) {\r\n if (this.blocks[index]) {\r\n this.blocks[index].destroy();\r\n }\r\n }\r\n // 如果还有方块未销毁,下一帧继续\r\n if (index < this.blocks.length) {\r\n this.scheduleOnce(destroyBlocks, 0);\r\n } else {\r\n }\r\n };\r\n // 开始分帧销毁方块\r\n destroyBlocks();\r\n this.node.parent.parent.getChildByName(\"NewMode\").active = true;\r\n this.node.parent.parent.getChildByName(\"NewMode\").getComponent(\"NewMode\").setMode(type);\r\n }\r\n\r\n\r\n downDoor(color, type) {\r\n for (let i = 0; i < this.wallArray.length; i++) {\r\n if (this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").color == color) {\r\n if (type) {\r\n if (type == 5) {\r\n if (this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").special == 1) {\r\n this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n }\r\n else this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n else this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").downDoor();\r\n }\r\n }\r\n }\r\n\r\n upDoor() {\r\n for (let i = 0; i < this.wallArray.length; i++) {\r\n if (this.wallArray[i].getChildByName(\"wall\").opacity == 0) {\r\n this.wallArray[i].getChildByName(\"wall\").getComponent(\"Wall\").upDoor();\r\n }\r\n }\r\n }\r\n\r\n //开始倒计时\r\n startTimeCutDown() {\r\n this.scheduleCallback = function () {\r\n if (this.pause) return;\r\n if (this.timeNumber <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n // this.timeLabel.string = timeTemp.toString();\r\n if (!this.pause) this.failLevel(\"time\");\r\n }\r\n else {\r\n this.timeNumber -= 1;\r\n this.count_Time += 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);\r\n NumberToImage.getTimeMargin(this.timeNumber, 50, \"time_\", this.timeLabel)\r\n // this.timeLabel.string = timeTemp.toString();\r\n }\r\n }.bind(this);\r\n this.schedule(this.scheduleCallback, 1);\r\n }\r\n // 停止倒计时\r\n stopTimeCutDown() {\r\n if (this.scheduleCallback) {\r\n this.unschedule(this.scheduleCallback);\r\n }\r\n }\r\n\r\n //使用时间道具\r\n useTimeProp() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n if (freezeBtn.getComponent(\"btnControl\")._touch) {\r\n freezeBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.freezeAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"freeze\");\r\n }\r\n else {\r\n if (!this.node.parent.getChildByName(\"Ice\").active && !this.pause) {\r\n const timestamp = Date.now();\r\n this.freezeMask.active = true;\r\n\r\n this.pause = true;\r\n this.node.parent.getChildByName(\"Ice\").active = true;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = true;\r\n\r\n cc.fx.GameConfig.GM_INFO.freezeAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.freezeAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2001, cc.fx.GameConfig.GM_INFO.freezeAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2001\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n //解开时间冻结\r\n openIce() {\r\n if (this.node.parent.getChildByName(\"Ice\").active) {\r\n this.freezeMask.active = false;\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n this.node.parent.getChildByName(\"Ice\").active = false;\r\n this.node.parent.getChildByName(\"Top\").getChildByName(\"Ice\").active = false;\r\n this.pause = false;\r\n // this.startTimeCutDown();\r\n }\r\n }\r\n\r\n handleBuySuccess(data) {\r\n this.pause = false;\r\n const timestamp = Date.now();\r\n // console.log(\"回调函数内:\",this.pause);\r\n let freezeBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (data == \"freezeAmount\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (data == \"hammerAmount\") hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (data == \"magicAmount\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n if (data == \"freezeAmount\") {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买冻结时间道具成功\");\r\n }, 200);\r\n\r\n\r\n }\r\n else if (data == \"magicAmount\") {\r\n cc.fx.GameConfig.GM_INFO.magicAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n MiniGameSdk.API.showToast(\"购买锤子道具成功\");\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n }, 200);\r\n\r\n }\r\n else if (data == \"hammerAmount\") {\r\n cc.fx.GameConfig.GM_INFO.hammerAmount += 3;\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").closePropBuy();\r\n setTimeout(() => {\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n MiniGameSdk.API.showToast(\"购买魔法棒道具成功\");\r\n }, 200);\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //使用锤子道具\r\n useHammer() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let hammerBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n if (hammerBtn.getComponent(\"btnControl\")._touch) {\r\n hammerBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.hammerAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"hammer\");\r\n }\r\n else {\r\n if (!this.hammer) {\r\n const timestamp = Date.now();\r\n this.hammerMask.active = true;\r\n\r\n this.hammer = true;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.hammerAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n console.log(\"锤子道具信息:\", propInfo);\r\n propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2002, cc.fx.GameConfig.GM_INFO.hammerAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2002\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n }\r\n else MiniGameSdk.API.showToast(\"道具使用中,请稍后再试\");\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n buyMagic() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2003, this.handleBuySuccess.bind(this, \"magicAmount\"));\r\n }\r\n\r\n buyHammer() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this, \"hammerAmount\"));\r\n }\r\n\r\n buyFreeze() {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n return;\r\n }\r\n cc.fx.GameTool.buyProp(2001, this.handleBuySuccess.bind(this, \"freezeAmount\"));\r\n }\r\n\r\n //使用魔法棒随机消除两个方块\r\n useMagic() {\r\n if (this.node.parent.getChildByName(\"Ice\").active == true || this.hammer == true\r\n || this.magicMask.active == true || this.timeNumber <= 1) {\r\n return;\r\n }\r\n let magicBtn = this.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (magicBtn.getComponent(\"btnControl\")._touch) {\r\n magicBtn.getComponent(\"btnControl\").setTouch(false);\r\n if (cc.fx.GameConfig.GM_INFO.magicAmount < 1) {\r\n if (cc.fx.GameConfig.GM_INFO.coin < 1500) {\r\n MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n return;\r\n }\r\n this.node.parent.parent.getChildByName(\"propWindow\").active = true;\r\n this.node.parent.parent.parent.getComponent(\"SceneManager\").openPropBuy(\"magic\");\r\n // MiniGameSdk.API.showToast(\"魔法棒数量不足,自动购买魔法棒\");\r\n }\r\n else {\r\n const timestamp = Date.now();\r\n this.magicMask.active = true;\r\n setTimeout(() => {\r\n this.magicMask.active = false;\r\n magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n }, 1000);\r\n\r\n cc.fx.GameConfig.GM_INFO.magicAmount -= 1;\r\n if (cc.fx.GameConfig.GM_INFO.magicAmount < 0)\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount;\r\n propInfo.timestamp = timestamp;\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(2003, cc.fx.GameConfig.GM_INFO.magicAmount, (data) => {\r\n })\r\n let data = {\r\n id: \"2003\",\r\n num: -1\r\n }\r\n cc.fx.GameTool.shushu_Track(\"resource_cost\", data);\r\n let nomalArray = [];\r\n // this.magicBtn.node.active = false;\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n // console.log(\"方块类型\",this.blocks[i].getComponent(\"Block\").type);\r\n if (this.blocks[i].getComponent(\"Block\").type == 3) {\r\n this.loackArray.push(this.blocks[i]);\r\n }\r\n else if (this.blocks[i].getComponent(\"Block\").type == 4) {\r\n this.freezeArray.push(this.blocks[i]);\r\n }\r\n else if (this.blocks[i].getComponent(\"Block\").type == 10) {\r\n if (this.blocks[i].getComponent(\"Block\").block_Info.node) {\r\n nomalArray.push(this.blocks[i].getComponent(\"Block\").block_Info.node);\r\n }\r\n else nomalArray.push(this.blocks[i]);\r\n }\r\n else {\r\n nomalArray.push(this.blocks[i]);\r\n }\r\n }\r\n if (nomalArray.length > 1) {\r\n nomalArray = cc.fx.GameTool.shuffleArray(nomalArray);\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if (nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9) {\r\n time = 200;\r\n }\r\n if (time > 0) {\r\n setTimeout(() => {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n }, time);\r\n return;\r\n }\r\n else {\r\n nomalArray[1].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n else if (nomalArray.length == 1) {\r\n nomalArray[0].getComponent(\"Block\").eliminate();\r\n let time = 0;\r\n if (nomalArray[0].getComponent(\"Block\").type == 1 || nomalArray[0].getComponent(\"Block\").type == 9) {\r\n time = 200;\r\n }\r\n setTimeout(() => {\r\n if (this.freezeArray.length == 0 && this.loackArray.length == 0) {\r\n // console.log(\"只剩下一个块道具使用完毕\");\r\n }\r\n else {\r\n if (this.loackArray.length != 0) {\r\n // console.log(\"消除一个普通块后,消除一个带锁块\");\r\n this.loackArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n else if (this.freezeArray.length != 0) {\r\n // console.log(\"消除一个普通块后,消除一个冻结块\");\r\n this.freezeArray[0].getComponent(\"Block\").eliminate();\r\n return;\r\n }\r\n }\r\n }, 200 + time);\r\n }\r\n else {\r\n let count = 2;\r\n if (this.loackArray.length != 0) {\r\n for (let i = 0; i < this.loackArray.length; i++) {\r\n // console.log(\"没有普通快,魔法消除一个带锁块\");\r\n this.loackArray[i].getComponent(\"Block\").eliminate();\r\n count -= 1;\r\n if (count == 0) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if (count != 0) {\r\n for (let i = 0; i < this.freezeArray.length; i++) {\r\n // console.log(\"没有普通快,魔法消除一个冻结块\");\r\n // this.freezeArray[i].getComponent(\"Block\").eliminate();\r\n count -= 1;\r\n if (count == 0) {\r\n break;\r\n }\r\n }\r\n }\r\n }, 100);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //按下暂停按钮\r\n usePause() {\r\n if (this.pause) {\r\n this.pause = false;\r\n }\r\n else {\r\n this.pause = true;\r\n }\r\n }\r\n\r\n\r\n\r\n //根据关卡设置地图大小\r\n setMapInfo() {\r\n let width = 0;\r\n if (this.mapWidth < 10) {\r\n width = 0.2;\r\n }\r\n else if (this.mapWidth < 17) {\r\n width = 0.15 - (this.mapWidth - 11) * 0.01;\r\n }\r\n\r\n this.node.scale = 1.6 + (6 - this.mapWidth) * width;\r\n\r\n if (this.mapWidth == 8 && this.mapHeight > 13) {\r\n this.node.scale = 1;\r\n }\r\n\r\n // this.node.scale = 1;\r\n cc.fx.GameConfig.GM_INFO.scale = this.node.scale;\r\n // this.node.scale = 0.5;\r\n // console.log(this.node.scale);\r\n // this.node.scale = 1;\r\n }\r\n\r\n //创建门的粒子特效\r\n createParticle(block, jg) {\r\n let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]);\r\n particle.parent = this.node;\r\n particle.zIndex = 1000;\r\n let width = Math.floor(block.width / 120);\r\n let height = Math.floor(block.height / 120);\r\n let name = \"\";\r\n\r\n if (jg == 0 || jg == 1) {\r\n let y = block.y + block.height;\r\n let x = block.x - block.width / 2;\r\n name = \"top_\" + width + \"_\" + height;\r\n if (jg == 1) {\r\n name = \"bot_\" + width + \"_\" + height;\r\n y = block.y;\r\n }\r\n if (block.anchorX == 0.5) {\r\n x = block.x;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x + block.width * (0.5 - 0.33);\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * (0.5 - 0.66);\r\n }\r\n particle.setPosition(x, y);\r\n }\r\n else if (jg == 2 || jg == 3) {\r\n name = \"left_\" + height + \"_\" + width;\r\n let x = block.x - block.width;\r\n let y = block.y + block.height / 2;\r\n if (block.anchorX == 0.5) {\r\n x = block.x - block.width / 2;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x - block.width * 0.33;\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * 0.66;\r\n }\r\n if (jg == 3) {\r\n name = \"right_\" + height + \"_\" + width;\r\n x = block.x;\r\n if (block.anchorX == 0.5) {\r\n x = block.x + block.width / 2;\r\n }\r\n else if (block.anchorX == 0.33) {\r\n x = block.x + block.width * 0.66;\r\n }\r\n else if (block.anchorX == 0.66) {\r\n x = block.x + block.width * 0.33;\r\n }\r\n }\r\n\r\n particle.setPosition(x, y);\r\n }\r\n\r\n let particleNode = particle.getChildByName(name);\r\n let color = block.getComponent(\"Block\").color - 1;\r\n\r\n particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent(\"Reduce\").Block_Color[color];\r\n particleNode.active = true;\r\n setTimeout(() => {\r\n cc.tween(particle)\r\n .to(2, { opacity: 0 })\r\n .call(() => {\r\n particle.destroy();\r\n })\r\n .start();\r\n }, 1200);\r\n }\r\n\r\n removeOneBlock() {\r\n // 移除所有方块\r\n for (let i = 0; i < this.blocks.length; i++) {\r\n if (this.blocks[i].opacity == 0) {\r\n this.blocks[i].destroy();\r\n this.blocks.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n update(dt) {\r\n\r\n }\r\n}\r\n"]}
\ No newline at end of file
diff --git a/library/imports/22/229107be-b856-42e6-9d8e-2315685442ed.json b/library/imports/22/229107be-b856-42e6-9d8e-2315685442ed.json
index 32c25cc..fb6fc19 100644
--- a/library/imports/22/229107be-b856-42e6-9d8e-2315685442ed.json
+++ b/library/imports/22/229107be-b856-42e6-9d8e-2315685442ed.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1683,
- 50,
+ 68,
+ 1044,
30,
38
],
@@ -18,7 +18,6 @@
30,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/23/23750c3c-c51d-40bc-9ef4-32af82924691.json b/library/imports/23/23750c3c-c51d-40bc-9ef4-32af82924691.json
index 3e542a7..140db03 100644
--- a/library/imports/23/23750c3c-c51d-40bc-9ef4-32af82924691.json
+++ b/library/imports/23/23750c3c-c51d-40bc-9ef4-32af82924691.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1069,
- 226,
+ 62,
+ 1425,
27,
36
],
@@ -18,7 +18,6 @@
27,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/25/258e0ea9-88e6-4682-b224-5ff026c50fbc.json b/library/imports/25/258e0ea9-88e6-4682-b224-5ff026c50fbc.json
index 0e98185..5f35036 100644
--- a/library/imports/25/258e0ea9-88e6-4682-b224-5ff026c50fbc.json
+++ b/library/imports/25/258e0ea9-88e6-4682-b224-5ff026c50fbc.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1443,
- 61,
+ 222,
+ 1692,
21,
32
],
@@ -18,7 +18,6 @@
21,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/27/27218a8d-6fb9-4bce-b6bc-c5c50e0c10bb.json b/library/imports/27/27218a8d-6fb9-4bce-b6bc-c5c50e0c10bb.json
index 5f4c321..27a60b6 100644
--- a/library/imports/27/27218a8d-6fb9-4bce-b6bc-c5c50e0c10bb.json
+++ b/library/imports/27/27218a8d-6fb9-4bce-b6bc-c5c50e0c10bb.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 487,
159,
+ 59,
50,
92
],
@@ -18,6 +18,7 @@
50,
92
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/27/274fe752-61ae-417a-849e-8526bf8aa32c.json b/library/imports/27/274fe752-61ae-417a-849e-8526bf8aa32c.json
index 0d25776..2eb786c 100644
--- a/library/imports/27/274fe752-61ae-417a-849e-8526bf8aa32c.json
+++ b/library/imports/27/274fe752-61ae-417a-849e-8526bf8aa32c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1481,
- 83,
+ 89,
+ 1547,
45,
56
],
diff --git a/library/imports/2b/2b1e1018-f9ee-40ee-b26c-2b574bf00961.json b/library/imports/2b/2b1e1018-f9ee-40ee-b26c-2b574bf00961.json
index e3bed51..eb61ae4 100644
--- a/library/imports/2b/2b1e1018-f9ee-40ee-b26c-2b574bf00961.json
+++ b/library/imports/2b/2b1e1018-f9ee-40ee-b26c-2b574bf00961.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 796,
- 109,
+ 96,
+ 1246,
48,
57
],
@@ -18,7 +18,6 @@
48,
57
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/2c/2c1f7a9e-e103-4260-9967-e3c0610c3762.json b/library/imports/2c/2c1f7a9e-e103-4260-9967-e3c0610c3762.json
index 0a6b383..15353db 100644
--- a/library/imports/2c/2c1f7a9e-e103-4260-9967-e3c0610c3762.json
+++ b/library/imports/2c/2c1f7a9e-e103-4260-9967-e3c0610c3762.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1521,
- 141,
+ 194,
+ 1607,
41,
56
],
@@ -18,6 +18,7 @@
41,
56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/2e/2e14686a-5d29-4889-927c-c049d96dc35d.json b/library/imports/2e/2e14686a-5d29-4889-927c-c049d96dc35d.json
index ca9dc90..7223e82 100644
--- a/library/imports/2e/2e14686a-5d29-4889-927c-c049d96dc35d.json
+++ b/library/imports/2e/2e14686a-5d29-4889-927c-c049d96dc35d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1375,
- 63,
+ 129,
+ 1672,
22,
32
],
@@ -18,7 +18,6 @@
22,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/32/32724ad0-6817-45d2-8d28-49e32309ee58.json b/library/imports/32/32724ad0-6817-45d2-8d28-49e32309ee58.json
index be724b9..8be45e7 100644
--- a/library/imports/32/32724ad0-6817-45d2-8d28-49e32309ee58.json
+++ b/library/imports/32/32724ad0-6817-45d2-8d28-49e32309ee58.json
@@ -5,20 +5,19 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 510,
- 131,
- 26,
- 54
+ 66,
+ 1161,
+ 28,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 26,
- 54
+ 40,
+ 56
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/32/32a301c2-9fce-420b-9018-bc0a0d6f9e06.json b/library/imports/32/32a301c2-9fce-420b-9018-bc0a0d6f9e06.json
index 2e7a5a0..7e1b8ea 100644
--- a/library/imports/32/32a301c2-9fce-420b-9018-bc0a0d6f9e06.json
+++ b/library/imports/32/32a301c2-9fce-420b-9018-bc0a0d6f9e06.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 590,
112,
+ 590,
9,
10
],
diff --git a/library/imports/34/34314178-7f7a-4abd-885c-1860b478da56.json b/library/imports/34/34314178-7f7a-4abd-885c-1860b478da56.json
index 59a6eb2..371476d 100644
--- a/library/imports/34/34314178-7f7a-4abd-885c-1860b478da56.json
+++ b/library/imports/34/34314178-7f7a-4abd-885c-1860b478da56.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1263,
- 66,
+ 227,
+ 797,
24,
37
],
@@ -18,7 +18,6 @@
24,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/35/3514385f-5c8c-4d6a-a049-162bd75f97f8.json b/library/imports/35/3514385f-5c8c-4d6a-a049-162bd75f97f8.json
index 8b34637..5515b30 100644
--- a/library/imports/35/3514385f-5c8c-4d6a-a049-162bd75f97f8.json
+++ b/library/imports/35/3514385f-5c8c-4d6a-a049-162bd75f97f8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1429,
- 147,
+ 1,
+ 1533,
43,
58
],
@@ -18,6 +18,7 @@
43,
58
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/37/37ef93ee-6301-4c1a-ad9a-0d22f11e9104.json b/library/imports/37/37ef93ee-6301-4c1a-ad9a-0d22f11e9104.json
index 31a716b..9aaadff 100644
--- a/library/imports/37/37ef93ee-6301-4c1a-ad9a-0d22f11e9104.json
+++ b/library/imports/37/37ef93ee-6301-4c1a-ad9a-0d22f11e9104.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 794,
- 229,
+ 131,
+ 498,
24,
38
],
@@ -18,7 +18,6 @@
24,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/38/38417192-cb81-4587-8709-7e7c85155746.json b/library/imports/38/38417192-cb81-4587-8709-7e7c85155746.json
index eaa6484..fcf65b9 100644
--- a/library/imports/38/38417192-cb81-4587-8709-7e7c85155746.json
+++ b/library/imports/38/38417192-cb81-4587-8709-7e7c85155746.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1409,
- 61,
+ 145,
+ 1706,
21,
32
],
@@ -18,7 +18,6 @@
21,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/3d/3dc12def-8413-43df-86d4-ef7a83ae31ea.json b/library/imports/3d/3dc12def-8413-43df-86d4-ef7a83ae31ea.json
index b6465f9..5baf0f3 100644
--- a/library/imports/3d/3dc12def-8413-43df-86d4-ef7a83ae31ea.json
+++ b/library/imports/3d/3dc12def-8413-43df-86d4-ef7a83ae31ea.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 969,
- 159,
+ 1,
+ 939,
51,
65
],
@@ -18,6 +18,7 @@
51,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/40/40211b69-06ef-42b7-aaa8-25e491b09da5.json b/library/imports/40/40211b69-06ef-42b7-aaa8-25e491b09da5.json
index c4ffd8b..4de8d42 100644
--- a/library/imports/40/40211b69-06ef-42b7-aaa8-25e491b09da5.json
+++ b/library/imports/40/40211b69-06ef-42b7-aaa8-25e491b09da5.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 191,
1,
+ 191,
99,
132
],
@@ -18,6 +18,7 @@
99,
132
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/44/441e695e-43a2-43e8-a839-446f3547fb82.json b/library/imports/44/441e695e-43a2-43e8-a839-446f3547fb82.json
index f64345d..a00bd2a 100644
--- a/library/imports/44/441e695e-43a2-43e8-a839-446f3547fb82.json
+++ b/library/imports/44/441e695e-43a2-43e8-a839-446f3547fb82.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 275,
- 135,
+ 121,
+ 1707,
22,
32
],
@@ -18,7 +18,6 @@
22,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/44/44cbc1be-fe4c-40df-8e52-3c2f768d61ee.json b/library/imports/44/44cbc1be-fe4c-40df-8e52-3c2f768d61ee.json
index f999b52..545c75a 100644
--- a/library/imports/44/44cbc1be-fe4c-40df-8e52-3c2f768d61ee.json
+++ b/library/imports/44/44cbc1be-fe4c-40df-8e52-3c2f768d61ee.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
818,
- 159,
66,
29
],
@@ -18,7 +18,6 @@
66,
29
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/45/45562d2f-a2a7-405c-8f51-329095530a64.json b/library/imports/45/45562d2f-a2a7-405c-8f51-329095530a64.json
index 561214d..695beb3 100644
--- a/library/imports/45/45562d2f-a2a7-405c-8f51-329095530a64.json
+++ b/library/imports/45/45562d2f-a2a7-405c-8f51-329095530a64.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1348,
- 91,
+ 145,
+ 1359,
42,
60
],
@@ -18,6 +18,7 @@
42,
60
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/45/45fc7e5a-7b80-4a12-a3bb-096431c70f03.json b/library/imports/45/45fc7e5a-7b80-4a12-a3bb-096431c70f03.json
index b9b8323..9259504 100644
--- a/library/imports/45/45fc7e5a-7b80-4a12-a3bb-096431c70f03.json
+++ b/library/imports/45/45fc7e5a-7b80-4a12-a3bb-096431c70f03.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1230,
- 93,
+ 150,
+ 1181,
41,
63
],
@@ -18,6 +18,7 @@
41,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/46/46d66902-147b-4e93-9ca6-e3d61622a89f.json b/library/imports/46/46d66902-147b-4e93-9ca6-e3d61622a89f.json
index 5952797..2ea4b09 100644
--- a/library/imports/46/46d66902-147b-4e93-9ca6-e3d61622a89f.json
+++ b/library/imports/46/46d66902-147b-4e93-9ca6-e3d61622a89f.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1443,
- 207,
+ 198,
+ 1518,
46,
43
],
@@ -18,7 +18,6 @@
46,
43
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/46/46ee4c6c-2832-43e9-aada-139f7f6c1c19.json b/library/imports/46/46ee4c6c-2832-43e9-aada-139f7f6c1c19.json
index de56830..f1d5fc3 100644
--- a/library/imports/46/46ee4c6c-2832-43e9-aada-139f7f6c1c19.json
+++ b/library/imports/46/46ee4c6c-2832-43e9-aada-139f7f6c1c19.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1147,
- 226,
+ 228,
+ 701,
23,
26
],
diff --git a/library/imports/47/472313fd-c6e9-47db-a993-66a0b2d5be4a.json b/library/imports/47/472313fd-c6e9-47db-a993-66a0b2d5be4a.json
index d9f2b4f..bfff612 100644
--- a/library/imports/47/472313fd-c6e9-47db-a993-66a0b2d5be4a.json
+++ b/library/imports/47/472313fd-c6e9-47db-a993-66a0b2d5be4a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1022,
- 159,
+ 100,
+ 978,
51,
65
],
diff --git a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js
index e9b7baa..16bb039 100644
--- a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js
+++ b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js
@@ -33,10 +33,12 @@ var NewClass = /** @class */ (function (_super) {
_this.shop = null;
//商品列表
_this.itemList = null;
+ // onLoad () {}
+ //金币数量
+ _this.coin = null;
return _this;
// update (dt) {}
}
- // onLoad () {}
NewClass.prototype.start = function () {
this.openShop();
};
@@ -68,6 +70,7 @@ var NewClass = /** @class */ (function (_super) {
NumberToImage_1.default.numberToImageNodes(product.price / 100, 40, 25, "scoin_", title, false);
}
}
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
};
//关闭商店界面
NewClass.prototype.closeShop = function () {
@@ -80,6 +83,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "itemList", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "coin", void 0);
NewClass = __decorate([
ccclass
], NewClass);
diff --git a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map
index 47f3c9a..c93f82f 100644
--- a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map
+++ b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\shop\\script\\shop.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import List from \"../../Script/module/RankList/List\";\r\nimport NumberToImage from \"../../Script/NumberToImage\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n //商店界面\r\n @property(cc.Node)\r\n shop: cc.Node = null;\r\n //商品列表\r\n @property(cc.Node)\r\n itemList: cc.Node = null;\r\n // onLoad () {}\r\n\r\n start() {\r\n this.openShop();\r\n }\r\n //打开商店界面\r\n openShop() {\r\n // 商品数据数组\r\n const products = [\r\n { product_id: \"gold_pack_1\", name: \"金币包1\", price: 600, title: \"3x2六档金币\" },\r\n { product_id: \"gold_pack_2\", name: \"金币包2\", price: 3600, title: \"\" },\r\n { product_id: \"gold_pack_3\", name: \"金币包3\", price: 6800, title: \"\" },\r\n { product_id: \"gold_pack_4\", name: \"金币包4\", price: 12800, title: \"\" },\r\n { product_id: \"gold_pack_5\", name: \"金币包5\", price: 32800, title: \"\" },\r\n { product_id: \"gold_pack_6\", name: \"金币包6\", price: 64800, title: \"\" },\r\n { product_id: \"unlimited_health_bundle_1\", name: \"无限体力组合包1\", price: 1800, title: \"3个横版礼包\" },\r\n { product_id: \"unlimited_health_bundle_2\", name: \"无限体力组合包2\", price: 6600, title: \"\" }\r\n ];\r\n for (let i = 1; i <= 8 && i < this.itemList.children.length; i++) {\r\n const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);\r\n const price = this.itemList.children[i].children[1];\r\n const title = this.itemList.children[i].children[2];\r\n const product = products[i - 1];\r\n\r\n if (spriteComp && product) {\r\n // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame\r\n }\r\n\r\n\r\n if (price && product) {\r\n NumberToImage.numberToImageNodes(product.price / 100, 25, 20, \"cost_\", price, false)\r\n }\r\n if (title && product) {\r\n NumberToImage.numberToImageNodes(product.price / 100, 40, 25, \"scoin_\", title, false)\r\n }\r\n }\r\n }\r\n\r\n\r\n //关闭商店界面\r\n closeShop() {\r\n //销毁预制体\r\n this.shop.destroy();\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\shop\\script\\shop.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import List from \"../../Script/module/RankList/List\";\r\nimport NumberToImage from \"../../Script/NumberToImage\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n //商店界面\r\n @property(cc.Node)\r\n shop: cc.Node = null;\r\n //商品列表\r\n @property(cc.Node)\r\n itemList: cc.Node = null;\r\n // onLoad () {}\r\n\r\n //金币数量\r\n @property(cc.Node)\r\n coin: cc.Node = null;\r\n start() {\r\n this.openShop();\r\n }\r\n //打开商店界面\r\n openShop() {\r\n // 商品数据数组\r\n const products = [\r\n { product_id: \"gold_pack_1\", name: \"金币包1\", price: 600, title: \"3x2六档金币\" },\r\n { product_id: \"gold_pack_2\", name: \"金币包2\", price: 3600, title: \"\" },\r\n { product_id: \"gold_pack_3\", name: \"金币包3\", price: 6800, title: \"\" },\r\n { product_id: \"gold_pack_4\", name: \"金币包4\", price: 12800, title: \"\" },\r\n { product_id: \"gold_pack_5\", name: \"金币包5\", price: 32800, title: \"\" },\r\n { product_id: \"gold_pack_6\", name: \"金币包6\", price: 64800, title: \"\" },\r\n { product_id: \"unlimited_health_bundle_1\", name: \"无限体力组合包1\", price: 1800, title: \"3个横版礼包\" },\r\n { product_id: \"unlimited_health_bundle_2\", name: \"无限体力组合包2\", price: 6600, title: \"\" }\r\n ];\r\n for (let i = 1; i <= 8 && i < this.itemList.children.length; i++) {\r\n const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);\r\n const price = this.itemList.children[i].children[1];\r\n const title = this.itemList.children[i].children[2];\r\n const product = products[i - 1];\r\n\r\n if (spriteComp && product) {\r\n // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame\r\n }\r\n\r\n\r\n if (price && product) {\r\n NumberToImage.numberToImageNodes(product.price / 100, 25, 20, \"cost_\", price, false)\r\n }\r\n if (title && product) {\r\n NumberToImage.numberToImageNodes(product.price / 100, 40, 25, \"scoin_\", title, false)\r\n }\r\n }\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n }\r\n\r\n\r\n //关闭商店界面\r\n closeShop() {\r\n //销毁预制体\r\n this.shop.destroy();\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
diff --git a/library/imports/4a/4a9e1f76-acf1-48b7-a574-c0e79e935e7c.json b/library/imports/4a/4a9e1f76-acf1-48b7-a574-c0e79e935e7c.json
index 16b8bfd..5d262d4 100644
--- a/library/imports/4a/4a9e1f76-acf1-48b7-a574-c0e79e935e7c.json
+++ b/library/imports/4a/4a9e1f76-acf1-48b7-a574-c0e79e935e7c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 566,
- 131,
+ 225,
+ 836,
26,
38
],
@@ -18,7 +18,6 @@
26,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4b/4b5d6eeb-70a8-4da1-8b37-bb4ec4d0bf70.json b/library/imports/4b/4b5d6eeb-70a8-4da1-8b37-bb4ec4d0bf70.json
index 8d35c05..34a1a54 100644
--- a/library/imports/4b/4b5d6eeb-70a8-4da1-8b37-bb4ec4d0bf70.json
+++ b/library/imports/4b/4b5d6eeb-70a8-4da1-8b37-bb4ec4d0bf70.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
596,
- 159,
51,
91
],
@@ -18,6 +18,7 @@
51,
91
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4b/4b9ffa17-ba49-45c1-94e6-60f6488b98a7.json b/library/imports/4b/4b9ffa17-ba49-45c1-94e6-60f6488b98a7.json
index 4fdbb31..612d50f 100644
--- a/library/imports/4b/4b9ffa17-ba49-45c1-94e6-60f6488b98a7.json
+++ b/library/imports/4b/4b9ffa17-ba49-45c1-94e6-60f6488b98a7.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1223,
- 67,
+ 131,
+ 578,
24,
38
],
@@ -18,7 +18,6 @@
24,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4c/4c9cf9f3-575f-4c7d-911c-401a985db86d.json b/library/imports/4c/4c9cf9f3-575f-4c7d-911c-401a985db86d.json
index 49bf670..1155b58 100644
--- a/library/imports/4c/4c9cf9f3-575f-4c7d-911c-401a985db86d.json
+++ b/library/imports/4c/4c9cf9f3-575f-4c7d-911c-401a985db86d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1126,
- 159,
+ 1,
+ 1096,
42,
65
],
@@ -18,6 +18,7 @@
42,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4d/4dc14547-4696-48d8-be43-b06f713dd4c8.json b/library/imports/4d/4dc14547-4696-48d8-be43-b06f713dd4c8.json
index 35d1a13..10bb77f 100644
--- a/library/imports/4d/4dc14547-4696-48d8-be43-b06f713dd4c8.json
+++ b/library/imports/4d/4dc14547-4696-48d8-be43-b06f713dd4c8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1107,
- 226,
+ 61,
+ 1503,
26,
38
],
@@ -18,7 +18,6 @@
26,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4e/4e01f77e-81ed-4dc3-a7ab-259c444bae4d.json b/library/imports/4e/4e01f77e-81ed-4dc3-a7ab-259c444bae4d.json
index c198ba4..d68c317 100644
--- a/library/imports/4e/4e01f77e-81ed-4dc3-a7ab-259c444bae4d.json
+++ b/library/imports/4e/4e01f77e-81ed-4dc3-a7ab-259c444bae4d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1592,
- 59,
+ 135,
+ 257,
17,
32
],
@@ -18,7 +18,6 @@
17,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
index e638423..15b0581 100644
--- a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
+++ b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
@@ -79,17 +79,14 @@
"__id__": 68
},
{
- "__id__": 354
+ "__id__": 355
},
{
- "__id__": 404
+ "__id__": 405
}
],
"_active": true,
"_components": [
- {
- "__id__": 407
- },
{
"__id__": 408
},
@@ -98,6 +95,9 @@
},
{
"__id__": 410
+ },
+ {
+ "__id__": 411
}
],
"_prefab": null,
@@ -261,13 +261,13 @@
"__id__": 9
},
{
- "__id__": 167
+ "__id__": 168
},
{
- "__id__": 188
+ "__id__": 189
},
{
- "__id__": 208
+ "__id__": 209
},
{
"__id__": 70
@@ -276,7 +276,7 @@
"_active": true,
"_components": [
{
- "__id__": 353
+ "__id__": 354
}
],
"_prefab": null,
@@ -472,13 +472,13 @@
"__id__": 20
},
{
- "__id__": 163
+ "__id__": 164
}
],
"_active": true,
"_components": [
{
- "__id__": 166
+ "__id__": 167
}
],
"_prefab": null,
@@ -6257,19 +6257,22 @@
"__id__": 149
},
{
- "__id__": 153
+ "__id__": 150
},
{
- "__id__": 155
+ "__id__": 154
},
{
- "__id__": 157
+ "__id__": 156
+ },
+ {
+ "__id__": 158
}
],
"_active": true,
"_components": [
{
- "__id__": 162
+ "__id__": 163
}
],
"_prefab": null,
@@ -6729,8 +6732,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 17,
- "height": 46
+ "width": 18,
+ "height": 48
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -7108,6 +7111,64 @@
},
"_id": "d5Ga1SVtFCHpW+F/d+M2Dx"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "coin",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 132
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 200,
+ "height": 200
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 342.162,
+ -52.875,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "_eulerAngles": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_skewX": 0,
+ "_skewY": 0,
+ "_is3DNode": false,
+ "_groupIndex": 0,
+ "groupIndex": 0,
+ "_id": "20iRJz5vNKjbgjTJR3p0SW"
+ },
{
"__type__": "cc.Node",
"_name": "add",
@@ -7119,10 +7180,10 @@
"_active": true,
"_components": [
{
- "__id__": 150
+ "__id__": 151
},
{
- "__id__": 151
+ "__id__": 152
}
],
"_prefab": null,
@@ -7178,7 +7239,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -7212,7 +7273,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_normalMaterial": null,
@@ -7221,7 +7282,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 152
+ "__id__": 153
}
],
"_N$interactable": true,
@@ -7300,7 +7361,7 @@
"_active": false,
"_components": [
{
- "__id__": 154
+ "__id__": 155
}
],
"_prefab": null,
@@ -7356,7 +7417,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7394,7 +7455,7 @@
"_active": false,
"_components": [
{
- "__id__": 156
+ "__id__": 157
}
],
"_prefab": null,
@@ -7450,7 +7511,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 155
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7487,13 +7548,13 @@
},
"_children": [
{
- "__id__": 158
+ "__id__": 159
}
],
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 161
}
],
"_prefab": null,
@@ -7549,13 +7610,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 157
+ "__id__": 158
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 159
+ "__id__": 160
}
],
"_prefab": null,
@@ -7611,7 +7672,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 158
+ "__id__": 159
},
"_enabled": true,
"_materials": [
@@ -7645,7 +7706,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 157
+ "__id__": 158
},
"_enabled": true,
"_normalMaterial": null,
@@ -7654,7 +7715,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 161
+ "__id__": 162
}
],
"_N$interactable": true,
@@ -7710,7 +7771,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 157
+ "__id__": 158
},
"_id": "34Z6b/IgpOtKrGQXG1ECg6"
},
@@ -7762,10 +7823,10 @@
"_active": false,
"_components": [
{
- "__id__": 164
+ "__id__": 165
},
{
- "__id__": 165
+ "__id__": 166
}
],
"_prefab": null,
@@ -7821,7 +7882,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7853,7 +7914,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"alignMode": 1,
@@ -7911,31 +7972,31 @@
},
"_children": [
{
- "__id__": 168
+ "__id__": 169
},
{
- "__id__": 172
+ "__id__": 173
},
{
- "__id__": 174
+ "__id__": 175
},
{
- "__id__": 176
+ "__id__": 177
},
{
- "__id__": 178
+ "__id__": 179
},
{
- "__id__": 184
+ "__id__": 185
}
],
"_active": false,
"_components": [
{
- "__id__": 186
+ "__id__": 187
},
{
- "__id__": 187
+ "__id__": 188
}
],
"_prefab": null,
@@ -7991,19 +8052,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 169
- },
{
"__id__": 170
},
{
"__id__": 171
+ },
+ {
+ "__id__": 172
}
],
"_prefab": null,
@@ -8059,7 +8120,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_materials": [
@@ -8091,7 +8152,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"alignMode": 1,
@@ -8118,7 +8179,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_id": "1e62ukhsJObKLFucCNzfwm"
@@ -8128,13 +8189,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 173
+ "__id__": 174
}
],
"_prefab": null,
@@ -8190,7 +8251,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -8222,13 +8283,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 176
}
],
"_prefab": null,
@@ -8284,7 +8345,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 175
},
"_enabled": true,
"_materials": [
@@ -8316,13 +8377,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 177
+ "__id__": 178
}
],
"_prefab": null,
@@ -8378,7 +8439,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 176
+ "__id__": 177
},
"_enabled": true,
"_materials": [
@@ -8408,20 +8469,20 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [
{
- "__id__": 179
+ "__id__": 180
}
],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 182
},
{
- "__id__": 182
+ "__id__": 183
}
],
"_prefab": null,
@@ -8477,13 +8538,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 178
+ "__id__": 179
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 180
+ "__id__": 181
}
],
"_prefab": null,
@@ -8539,7 +8600,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 180
},
"_enabled": true,
"_materials": [
@@ -8571,7 +8632,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8603,7 +8664,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8612,7 +8673,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 183
+ "__id__": 184
}
],
"_N$interactable": true,
@@ -8668,14 +8729,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 178
+ "__id__": 179
},
"_id": "2bhrCpcRxImqyWzBaIVVCd"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 167
+ "__id__": 168
},
"component": "",
"_componentId": "7fe14dRFQZKSKKAoEn4S7OU",
@@ -8687,13 +8748,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 185
+ "__id__": 186
}
],
"_prefab": null,
@@ -8749,7 +8810,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 185
},
"_enabled": true,
"_materials": [
@@ -8781,7 +8842,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"alignMode": 1,
@@ -8808,7 +8869,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"label": null,
@@ -8824,22 +8885,22 @@
},
"_children": [
{
- "__id__": 189
+ "__id__": 190
},
{
- "__id__": 193
+ "__id__": 194
},
{
- "__id__": 195
+ "__id__": 196
},
{
- "__id__": 201
+ "__id__": 202
}
],
"_active": false,
"_components": [
{
- "__id__": 207
+ "__id__": 208
}
],
"_prefab": null,
@@ -8895,19 +8956,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 190
- },
{
"__id__": 191
},
{
"__id__": 192
+ },
+ {
+ "__id__": 193
}
],
"_prefab": null,
@@ -8963,7 +9024,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_materials": [
@@ -8995,7 +9056,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9022,7 +9083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_id": "7aMdyhm41AyqFZMnIAtTUY"
@@ -9032,13 +9093,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 195
}
],
"_prefab": null,
@@ -9094,7 +9155,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 193
+ "__id__": 194
},
"_enabled": true,
"_materials": [
@@ -9126,20 +9187,20 @@
"_name": "nextBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 196
+ "__id__": 197
}
],
"_active": true,
"_components": [
{
- "__id__": 198
+ "__id__": 199
},
{
- "__id__": 199
+ "__id__": 200
}
],
"_prefab": null,
@@ -9195,13 +9256,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 195
+ "__id__": 196
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 197
+ "__id__": 198
}
],
"_prefab": null,
@@ -9257,7 +9318,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 196
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -9291,7 +9352,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_materials": [
@@ -9323,7 +9384,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_normalMaterial": null,
@@ -9332,7 +9393,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 200
+ "__id__": 201
}
],
"_N$interactable": true,
@@ -9388,7 +9449,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 195
+ "__id__": 196
},
"_id": "02dmnqIIhNA7gNoxAqWnCT"
},
@@ -9407,20 +9468,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 202
+ "__id__": 203
}
],
"_active": true,
"_components": [
{
- "__id__": 204
+ "__id__": 205
},
{
- "__id__": 205
+ "__id__": 206
}
],
"_prefab": null,
@@ -9476,13 +9537,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 201
+ "__id__": 202
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 203
+ "__id__": 204
}
],
"_prefab": null,
@@ -9538,7 +9599,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 202
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9572,7 +9633,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_materials": [
@@ -9604,7 +9665,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_normalMaterial": null,
@@ -9613,7 +9674,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 206
+ "__id__": 207
}
],
"_N$interactable": true,
@@ -9669,7 +9730,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 201
+ "__id__": 202
},
"_id": "340osYA4tCpJlhedNAxg8f"
},
@@ -9688,7 +9749,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 189
},
"_enabled": true,
"alignMode": 1,
@@ -9719,28 +9780,28 @@
},
"_children": [
{
- "__id__": 209
+ "__id__": 210
},
{
- "__id__": 213
+ "__id__": 214
},
{
- "__id__": 215
+ "__id__": 216
},
{
- "__id__": 287
+ "__id__": 288
},
{
- "__id__": 308
+ "__id__": 309
},
{
- "__id__": 331
+ "__id__": 332
}
],
"_active": false,
"_components": [
{
- "__id__": 352
+ "__id__": 353
}
],
"_prefab": null,
@@ -9796,19 +9857,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 210
- },
{
"__id__": 211
},
{
"__id__": 212
+ },
+ {
+ "__id__": 213
}
],
"_prefab": null,
@@ -9864,7 +9925,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_materials": [
@@ -9896,7 +9957,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"alignMode": 1,
@@ -9923,7 +9984,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_id": "c22Pk+4yZHHaEcGiym9WxK"
@@ -9933,13 +9994,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 215
}
],
"_prefab": null,
@@ -9995,7 +10056,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -10027,32 +10088,32 @@
"_name": "Time",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 216
+ "__id__": 217
},
{
- "__id__": 218
+ "__id__": 219
},
{
- "__id__": 220
+ "__id__": 221
},
{
- "__id__": 222
+ "__id__": 223
},
{
- "__id__": 224
+ "__id__": 225
},
{
- "__id__": 226
+ "__id__": 227
},
{
- "__id__": 242
+ "__id__": 243
},
{
- "__id__": 281
+ "__id__": 282
}
],
"_active": true,
@@ -10110,13 +10171,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 217
+ "__id__": 218
}
],
"_prefab": null,
@@ -10172,7 +10233,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 216
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -10206,13 +10267,13 @@
"_name": "result_Label1",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 219
+ "__id__": 220
}
],
"_prefab": null,
@@ -10268,7 +10329,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 218
+ "__id__": 219
},
"_enabled": true,
"_materials": [
@@ -10302,13 +10363,13 @@
"_name": "time_show",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 221
+ "__id__": 222
}
],
"_prefab": null,
@@ -10364,7 +10425,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 220
+ "__id__": 221
},
"_enabled": true,
"_materials": [
@@ -10398,13 +10459,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 223
+ "__id__": 224
}
],
"_prefab": null,
@@ -10460,7 +10521,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 223
},
"_enabled": true,
"_materials": [
@@ -10493,13 +10554,13 @@
"_name": "time_hide",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 225
+ "__id__": 226
}
],
"_prefab": null,
@@ -10555,7 +10616,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 224
+ "__id__": 225
},
"_enabled": true,
"_materials": [
@@ -10589,35 +10650,35 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 227
+ "__id__": 228
},
{
- "__id__": 229
+ "__id__": 230
},
{
- "__id__": 231
+ "__id__": 232
},
{
- "__id__": 233
+ "__id__": 234
},
{
- "__id__": 235
+ "__id__": 236
},
{
- "__id__": 237
+ "__id__": 238
}
],
"_active": false,
"_components": [
{
- "__id__": 239
+ "__id__": 240
},
{
- "__id__": 240
+ "__id__": 241
}
],
"_prefab": null,
@@ -10673,13 +10734,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 229
}
],
"_prefab": null,
@@ -10735,7 +10796,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10769,13 +10830,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 231
}
],
"_prefab": null,
@@ -10831,7 +10892,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10865,13 +10926,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 233
}
],
"_prefab": null,
@@ -10927,7 +10988,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10961,13 +11022,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 234
+ "__id__": 235
}
],
"_prefab": null,
@@ -11023,7 +11084,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -11057,13 +11118,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 236
+ "__id__": 237
}
],
"_prefab": null,
@@ -11119,7 +11180,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 235
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -11153,13 +11214,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 238
+ "__id__": 239
}
],
"_prefab": null,
@@ -11215,7 +11276,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -11249,7 +11310,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_materials": [
@@ -11283,7 +11344,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_normalMaterial": null,
@@ -11292,7 +11353,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 241
+ "__id__": 242
}
],
"_N$interactable": true,
@@ -11348,7 +11409,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 226
+ "__id__": 227
},
"_id": "f26wyaXk1ODqKTicGneesK"
},
@@ -11365,41 +11426,41 @@
"_name": "buyBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 243
+ "__id__": 244
},
{
- "__id__": 245
+ "__id__": 246
},
{
- "__id__": 247
+ "__id__": 248
},
{
- "__id__": 249
+ "__id__": 250
},
{
- "__id__": 251
+ "__id__": 252
},
{
- "__id__": 258
+ "__id__": 259
},
{
- "__id__": 267
+ "__id__": 268
},
{
- "__id__": 276
+ "__id__": 277
}
],
"_active": true,
"_components": [
{
- "__id__": 278
+ "__id__": 279
},
{
- "__id__": 279
+ "__id__": 280
}
],
"_prefab": null,
@@ -11455,13 +11516,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 245
}
],
"_prefab": null,
@@ -11517,7 +11578,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11551,13 +11612,13 @@
"_name": "coins_+",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 247
}
],
"_prefab": null,
@@ -11613,7 +11674,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 246
},
"_enabled": true,
"_materials": [
@@ -11647,13 +11708,13 @@
"_name": "coins2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 249
}
],
"_prefab": null,
@@ -11709,7 +11770,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11743,13 +11804,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 251
}
],
"_prefab": null,
@@ -11805,7 +11866,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 250
},
"_enabled": true,
"_materials": [
@@ -11839,17 +11900,17 @@
"_name": "coin1",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 252
+ "__id__": 253
},
{
- "__id__": 254
+ "__id__": 255
},
{
- "__id__": 256
+ "__id__": 257
}
],
"_active": false,
@@ -11907,13 +11968,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 253
+ "__id__": 254
}
],
"_prefab": null,
@@ -11969,7 +12030,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 253
},
"_enabled": true,
"_materials": [
@@ -12003,13 +12064,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 255
+ "__id__": 256
}
],
"_prefab": null,
@@ -12065,7 +12126,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 254
+ "__id__": 255
},
"_enabled": true,
"_materials": [
@@ -12099,13 +12160,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 257
+ "__id__": 258
}
],
"_prefab": null,
@@ -12161,7 +12222,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 256
+ "__id__": 257
},
"_enabled": true,
"_materials": [
@@ -12195,20 +12256,20 @@
"_name": "coin2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 259
+ "__id__": 260
},
{
- "__id__": 261
+ "__id__": 262
},
{
- "__id__": 263
+ "__id__": 264
},
{
- "__id__": 265
+ "__id__": 266
}
],
"_active": false,
@@ -12266,13 +12327,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 261
}
],
"_prefab": null,
@@ -12328,7 +12389,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 259
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -12362,13 +12423,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 262
+ "__id__": 263
}
],
"_prefab": null,
@@ -12424,7 +12485,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 261
+ "__id__": 262
},
"_enabled": true,
"_materials": [
@@ -12458,13 +12519,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 264
+ "__id__": 265
}
],
"_prefab": null,
@@ -12520,7 +12581,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 263
+ "__id__": 264
},
"_enabled": true,
"_materials": [
@@ -12554,13 +12615,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 266
+ "__id__": 267
}
],
"_prefab": null,
@@ -12616,7 +12677,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 265
+ "__id__": 266
},
"_enabled": true,
"_materials": [
@@ -12650,20 +12711,20 @@
"_name": "coin3",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 268
+ "__id__": 269
},
{
- "__id__": 270
+ "__id__": 271
},
{
- "__id__": 272
+ "__id__": 273
},
{
- "__id__": 274
+ "__id__": 275
}
],
"_active": false,
@@ -12721,13 +12782,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 269
+ "__id__": 270
}
],
"_prefab": null,
@@ -12783,7 +12844,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 268
+ "__id__": 269
},
"_enabled": true,
"_materials": [
@@ -12817,13 +12878,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 271
+ "__id__": 272
}
],
"_prefab": null,
@@ -12879,7 +12940,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 270
+ "__id__": 271
},
"_enabled": true,
"_materials": [
@@ -12913,13 +12974,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 273
+ "__id__": 274
}
],
"_prefab": null,
@@ -12975,7 +13036,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 272
+ "__id__": 273
},
"_enabled": true,
"_materials": [
@@ -13009,13 +13070,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 275
+ "__id__": 276
}
],
"_prefab": null,
@@ -13071,7 +13132,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 274
+ "__id__": 275
},
"_enabled": true,
"_materials": [
@@ -13105,13 +13166,13 @@
"_name": "coins",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 277
+ "__id__": 278
}
],
"_prefab": null,
@@ -13167,7 +13228,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 276
+ "__id__": 277
},
"_enabled": true,
"_materials": [
@@ -13201,7 +13262,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_materials": [
@@ -13233,7 +13294,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_normalMaterial": null,
@@ -13242,7 +13303,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 280
+ "__id__": 281
}
],
"_N$interactable": true,
@@ -13298,7 +13359,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 242
+ "__id__": 243
},
"_id": "d9X6reFQ5ElIF/oEEoTwvB"
},
@@ -13317,20 +13378,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 282
+ "__id__": 283
}
],
"_active": true,
"_components": [
{
- "__id__": 284
+ "__id__": 285
},
{
- "__id__": 285
+ "__id__": 286
}
],
"_prefab": null,
@@ -13386,13 +13447,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 281
+ "__id__": 282
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 283
+ "__id__": 284
}
],
"_prefab": null,
@@ -13448,7 +13509,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 282
+ "__id__": 283
},
"_enabled": true,
"_materials": [
@@ -13482,7 +13543,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_materials": [
@@ -13514,7 +13575,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_normalMaterial": null,
@@ -13523,7 +13584,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 286
+ "__id__": 287
}
],
"_N$interactable": true,
@@ -13579,7 +13640,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 281
+ "__id__": 282
},
"_id": "48mz2WOYxOmpmmNFGfPFpu"
},
@@ -13598,23 +13659,23 @@
"_name": "Boom",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 288
+ "__id__": 289
},
{
- "__id__": 290
+ "__id__": 291
},
{
- "__id__": 292
+ "__id__": 293
},
{
- "__id__": 300
+ "__id__": 301
},
{
- "__id__": 306
+ "__id__": 307
}
],
"_active": false,
@@ -13672,13 +13733,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 289
+ "__id__": 290
}
],
"_prefab": null,
@@ -13734,7 +13795,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 289
},
"_enabled": true,
"_materials": [
@@ -13768,13 +13829,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 291
+ "__id__": 292
}
],
"_prefab": null,
@@ -13830,7 +13891,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 290
+ "__id__": 291
},
"_enabled": true,
"_materials": [
@@ -13864,23 +13925,23 @@
"_name": "boomBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 293
+ "__id__": 294
},
{
- "__id__": 295
+ "__id__": 296
}
],
"_active": false,
"_components": [
{
- "__id__": 297
+ "__id__": 298
},
{
- "__id__": 298
+ "__id__": 299
}
],
"_prefab": null,
@@ -13936,13 +13997,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 294
+ "__id__": 295
}
],
"_prefab": null,
@@ -13998,7 +14059,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 293
+ "__id__": 294
},
"_enabled": true,
"_materials": [
@@ -14032,13 +14093,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 296
+ "__id__": 297
}
],
"_prefab": null,
@@ -14094,7 +14155,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 295
+ "__id__": 296
},
"_enabled": true,
"_materials": [
@@ -14128,7 +14189,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_materials": [
@@ -14162,7 +14223,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_normalMaterial": null,
@@ -14171,7 +14232,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 299
+ "__id__": 300
}
],
"_N$interactable": true,
@@ -14227,7 +14288,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 292
+ "__id__": 293
},
"_id": "fdZzVHD4hNAIg80rQMiVrL"
},
@@ -14244,20 +14305,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 301
+ "__id__": 302
}
],
"_active": true,
"_components": [
{
- "__id__": 303
+ "__id__": 304
},
{
- "__id__": 304
+ "__id__": 305
}
],
"_prefab": null,
@@ -14313,13 +14374,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 300
+ "__id__": 301
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 302
+ "__id__": 303
}
],
"_prefab": null,
@@ -14375,7 +14436,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 301
+ "__id__": 302
},
"_enabled": true,
"_materials": [
@@ -14409,7 +14470,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_materials": [
@@ -14441,7 +14502,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_normalMaterial": null,
@@ -14450,7 +14511,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 305
+ "__id__": 306
}
],
"_N$interactable": true,
@@ -14506,7 +14567,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 300
+ "__id__": 301
},
"_id": "55yv+R8WZJC6lx8Nc3Ql1k"
},
@@ -14525,13 +14586,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 307
+ "__id__": 308
}
],
"_prefab": null,
@@ -14587,7 +14648,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 306
+ "__id__": 307
},
"_enabled": true,
"_materials": [
@@ -14621,20 +14682,20 @@
"_name": "Lock",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 309
+ "__id__": 310
},
{
- "__id__": 311
+ "__id__": 312
},
{
- "__id__": 313
+ "__id__": 314
},
{
- "__id__": 315
+ "__id__": 316
}
],
"_active": false,
@@ -14692,13 +14753,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 310
+ "__id__": 311
}
],
"_prefab": null,
@@ -14754,7 +14815,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 309
+ "__id__": 310
},
"_enabled": true,
"_materials": [
@@ -14788,13 +14849,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 312
+ "__id__": 313
}
],
"_prefab": null,
@@ -14850,7 +14911,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 312
},
"_enabled": true,
"_materials": [
@@ -14883,13 +14944,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 314
+ "__id__": 315
}
],
"_prefab": null,
@@ -14945,7 +15006,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 313
+ "__id__": 314
},
"_enabled": false,
"_materials": [
@@ -14979,35 +15040,35 @@
"_name": "lockBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [
{
- "__id__": 316
+ "__id__": 317
},
{
- "__id__": 318
+ "__id__": 319
},
{
- "__id__": 320
+ "__id__": 321
},
{
- "__id__": 322
+ "__id__": 323
},
{
- "__id__": 324
+ "__id__": 325
},
{
- "__id__": 326
+ "__id__": 327
}
],
"_active": true,
"_components": [
{
- "__id__": 328
+ "__id__": 329
},
{
- "__id__": 329
+ "__id__": 330
}
],
"_prefab": null,
@@ -15063,13 +15124,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 317
+ "__id__": 318
}
],
"_prefab": null,
@@ -15125,7 +15186,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 316
+ "__id__": 317
},
"_enabled": true,
"_materials": [
@@ -15159,13 +15220,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 319
+ "__id__": 320
}
],
"_prefab": null,
@@ -15221,7 +15282,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 318
+ "__id__": 319
},
"_enabled": true,
"_materials": [
@@ -15255,13 +15316,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 321
+ "__id__": 322
}
],
"_prefab": null,
@@ -15317,7 +15378,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 320
+ "__id__": 321
},
"_enabled": true,
"_materials": [
@@ -15351,13 +15412,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 323
+ "__id__": 324
}
],
"_prefab": null,
@@ -15413,7 +15474,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 322
+ "__id__": 323
},
"_enabled": true,
"_materials": [
@@ -15447,13 +15508,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 325
+ "__id__": 326
}
],
"_prefab": null,
@@ -15509,7 +15570,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 324
+ "__id__": 325
},
"_enabled": true,
"_materials": [
@@ -15543,13 +15604,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 327
+ "__id__": 328
}
],
"_prefab": null,
@@ -15605,7 +15666,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 326
+ "__id__": 327
},
"_enabled": true,
"_materials": [
@@ -15639,7 +15700,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_materials": [
@@ -15673,7 +15734,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_normalMaterial": null,
@@ -15682,7 +15743,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 330
+ "__id__": 331
}
],
"_N$interactable": true,
@@ -15738,7 +15799,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 315
+ "__id__": 316
},
"_id": "655dVf4UVDOrfIwT5AEPmn"
},
@@ -15755,23 +15816,23 @@
"_name": "Health",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 332
+ "__id__": 333
},
{
- "__id__": 334
+ "__id__": 335
},
{
- "__id__": 340
+ "__id__": 341
},
{
- "__id__": 344
+ "__id__": 345
},
{
- "__id__": 350
+ "__id__": 351
}
],
"_active": false,
@@ -15829,13 +15890,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 333
+ "__id__": 334
}
],
"_prefab": null,
@@ -15891,7 +15952,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 332
+ "__id__": 333
},
"_enabled": true,
"_materials": [
@@ -15925,20 +15986,20 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 335
+ "__id__": 336
},
{
- "__id__": 337
+ "__id__": 338
}
],
"_active": true,
"_components": [
{
- "__id__": 339
+ "__id__": 340
}
],
"_prefab": null,
@@ -15994,13 +16055,13 @@
"_name": "hp_-",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 336
+ "__id__": 337
}
],
"_prefab": null,
@@ -16056,7 +16117,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 335
+ "__id__": 336
},
"_enabled": true,
"_materials": [
@@ -16090,13 +16151,13 @@
"_name": "hp_1",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 338
+ "__id__": 339
}
],
"_prefab": null,
@@ -16152,7 +16213,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 337
+ "__id__": 338
},
"_enabled": true,
"_materials": [
@@ -16186,7 +16247,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 334
+ "__id__": 335
},
"_enabled": true,
"_materials": [
@@ -16220,16 +16281,16 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 341
+ "__id__": 342
},
{
- "__id__": 342
+ "__id__": 343
}
],
"_prefab": null,
@@ -16285,7 +16346,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_materials": [
@@ -16319,7 +16380,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_normalMaterial": null,
@@ -16328,7 +16389,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 343
+ "__id__": 344
}
],
"_N$interactable": true,
@@ -16384,7 +16445,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 340
+ "__id__": 341
},
"_id": "e6+nQbfBJDk5i7aunx3eFh"
},
@@ -16403,20 +16464,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 345
+ "__id__": 346
}
],
"_active": true,
"_components": [
{
- "__id__": 347
+ "__id__": 348
},
{
- "__id__": 348
+ "__id__": 349
}
],
"_prefab": null,
@@ -16472,13 +16533,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 344
+ "__id__": 345
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 346
+ "__id__": 347
}
],
"_prefab": null,
@@ -16534,7 +16595,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 345
+ "__id__": 346
},
"_enabled": true,
"_materials": [
@@ -16568,7 +16629,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_materials": [
@@ -16600,7 +16661,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_normalMaterial": null,
@@ -16609,7 +16670,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 349
+ "__id__": 350
}
],
"_N$interactable": true,
@@ -16665,7 +16726,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 344
+ "__id__": 345
},
"_id": "bbSZLwLOdIJJ624BuB24QD"
},
@@ -16684,13 +16745,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 351
+ "__id__": 352
}
],
"_prefab": null,
@@ -16746,7 +16807,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 350
+ "__id__": 351
},
"_enabled": true,
"_materials": [
@@ -16780,7 +16841,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 208
+ "__id__": 209
},
"_enabled": true,
"alignMode": 1,
@@ -16838,61 +16899,61 @@
},
"_children": [
{
- "__id__": 355
+ "__id__": 356
},
{
- "__id__": 358
+ "__id__": 359
},
{
- "__id__": 360
+ "__id__": 361
},
{
- "__id__": 367
+ "__id__": 368
},
{
- "__id__": 369
+ "__id__": 370
},
{
- "__id__": 373
+ "__id__": 374
},
{
- "__id__": 375
+ "__id__": 376
},
{
- "__id__": 377
+ "__id__": 378
},
{
- "__id__": 379
+ "__id__": 380
},
{
- "__id__": 381
+ "__id__": 382
},
{
- "__id__": 383
+ "__id__": 384
},
{
- "__id__": 385
+ "__id__": 386
},
{
- "__id__": 389
+ "__id__": 390
},
{
- "__id__": 393
+ "__id__": 394
},
{
- "__id__": 397
+ "__id__": 398
},
{
- "__id__": 399
+ "__id__": 400
},
{
- "__id__": 401
+ "__id__": 402
}
],
"_active": false,
"_components": [
{
- "__id__": 403
+ "__id__": 404
}
],
"_prefab": null,
@@ -16948,16 +17009,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 356
+ "__id__": 357
},
{
- "__id__": 357
+ "__id__": 358
}
],
"_prefab": null,
@@ -17013,7 +17074,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_materials": [
@@ -17045,7 +17106,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_id": "081I6vq85Jwqkph7MYgiJK"
@@ -17055,13 +17116,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 359
+ "__id__": 360
}
],
"_prefab": null,
@@ -17117,7 +17178,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 358
+ "__id__": 359
},
"_enabled": true,
"_materials": [
@@ -17149,23 +17210,23 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [
{
- "__id__": 361
+ "__id__": 362
}
],
"_active": true,
"_components": [
- {
- "__id__": 363
- },
{
"__id__": 364
},
{
- "__id__": 366
+ "__id__": 365
+ },
+ {
+ "__id__": 367
}
],
"_prefab": null,
@@ -17221,13 +17282,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 360
+ "__id__": 361
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 362
+ "__id__": 363
}
],
"_prefab": null,
@@ -17283,7 +17344,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 361
+ "__id__": 362
},
"_enabled": true,
"_materials": [
@@ -17317,7 +17378,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_materials": [
@@ -17351,7 +17412,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_normalMaterial": null,
@@ -17360,7 +17421,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 365
+ "__id__": 366
}
],
"_N$interactable": true,
@@ -17416,7 +17477,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 360
+ "__id__": 361
},
"_id": "10Gq5GdVNFoaGKYCbUkdh0"
},
@@ -17435,7 +17496,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_id": "48L+wrOmdFHpjlTvLGv0eT"
@@ -17445,13 +17506,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 368
+ "__id__": 369
}
],
"_prefab": null,
@@ -17507,7 +17568,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 367
+ "__id__": 368
},
"_enabled": true,
"_materials": [
@@ -17541,16 +17602,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 370
+ "__id__": 371
},
{
- "__id__": 371
+ "__id__": 372
}
],
"_prefab": null,
@@ -17606,7 +17667,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_materials": [
@@ -17640,7 +17701,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_normalMaterial": null,
@@ -17649,7 +17710,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 372
+ "__id__": 373
}
],
"_N$interactable": true,
@@ -17705,7 +17766,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 369
+ "__id__": 370
},
"_id": "9cyVET3cdKsYjhCs6UcCZp"
},
@@ -17724,13 +17785,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 374
+ "__id__": 375
}
],
"_prefab": null,
@@ -17786,7 +17847,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 373
+ "__id__": 374
},
"_enabled": true,
"_materials": [
@@ -17820,13 +17881,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 376
+ "__id__": 377
}
],
"_prefab": null,
@@ -17882,7 +17943,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 375
+ "__id__": 376
},
"_enabled": true,
"_materials": [
@@ -17916,13 +17977,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 378
+ "__id__": 379
}
],
"_prefab": null,
@@ -17978,7 +18039,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 377
+ "__id__": 378
},
"_enabled": true,
"_materials": [
@@ -18012,13 +18073,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 380
+ "__id__": 381
}
],
"_prefab": null,
@@ -18074,7 +18135,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 379
+ "__id__": 380
},
"_enabled": true,
"_materials": [
@@ -18108,13 +18169,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 382
+ "__id__": 383
}
],
"_prefab": null,
@@ -18170,7 +18231,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 382
},
"_enabled": true,
"_materials": [
@@ -18204,13 +18265,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 384
+ "__id__": 385
}
],
"_prefab": null,
@@ -18266,7 +18327,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 383
+ "__id__": 384
},
"_enabled": true,
"_materials": [
@@ -18300,16 +18361,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 386
+ "__id__": 387
},
{
- "__id__": 387
+ "__id__": 388
}
],
"_prefab": null,
@@ -18365,7 +18426,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_materials": [
@@ -18399,7 +18460,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_normalMaterial": null,
@@ -18408,7 +18469,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 388
+ "__id__": 389
}
],
"_N$interactable": true,
@@ -18464,14 +18525,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 385
+ "__id__": 386
},
"_id": "f5jlj3QZFNUoLmIDeOTDNk"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18483,16 +18544,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 390
+ "__id__": 391
},
{
- "__id__": 391
+ "__id__": 392
}
],
"_prefab": null,
@@ -18548,7 +18609,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_materials": [
@@ -18582,7 +18643,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_normalMaterial": null,
@@ -18591,7 +18652,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 392
+ "__id__": 393
}
],
"_N$interactable": true,
@@ -18647,14 +18708,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 389
+ "__id__": 390
},
"_id": "f7PV5tqLpANY2mQ5mNiG8G"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18666,16 +18727,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 394
+ "__id__": 395
},
{
- "__id__": 395
+ "__id__": 396
}
],
"_prefab": null,
@@ -18731,7 +18792,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_materials": [
@@ -18765,7 +18826,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_normalMaterial": null,
@@ -18774,7 +18835,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 396
+ "__id__": 397
}
],
"_N$interactable": true,
@@ -18830,14 +18891,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 393
+ "__id__": 394
},
"_id": "f9Y6q5sbpGXrDTpVBgbvWY"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18849,13 +18910,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 398
+ "__id__": 399
}
],
"_prefab": null,
@@ -18911,7 +18972,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 397
+ "__id__": 398
},
"_enabled": true,
"_materials": [
@@ -18945,13 +19006,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 400
+ "__id__": 401
}
],
"_prefab": null,
@@ -19007,7 +19068,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 399
+ "__id__": 400
},
"_enabled": true,
"_materials": [
@@ -19041,13 +19102,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 402
+ "__id__": 403
}
],
"_prefab": null,
@@ -19103,7 +19164,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 401
+ "__id__": 402
},
"_enabled": true,
"_materials": [
@@ -19137,17 +19198,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 354
+ "__id__": 355
},
"_enabled": true,
"music": {
- "__id__": 397
+ "__id__": 398
},
"effect": {
- "__id__": 399
+ "__id__": 400
},
"vibrate": {
- "__id__": 401
+ "__id__": 402
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -19168,10 +19229,10 @@
"_active": false,
"_components": [
{
- "__id__": 405
+ "__id__": 406
},
{
- "__id__": 406
+ "__id__": 407
}
],
"_prefab": null,
@@ -19227,7 +19288,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": true,
"_materials": [
@@ -19269,7 +19330,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": false,
"_id": "00qpMLeBFNhYRX9r3QZvyP"
diff --git a/library/imports/50/500774c4-a143-4b11-bc58-c4348a3488e5.json b/library/imports/50/500774c4-a143-4b11-bc58-c4348a3488e5.json
index ca89eef..d34c7e3 100644
--- a/library/imports/50/500774c4-a143-4b11-bc58-c4348a3488e5.json
+++ b/library/imports/50/500774c4-a143-4b11-bc58-c4348a3488e5.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1454,
- 1,
- 34,
- 57
+ 192,
+ 1650,
+ 40,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 34,
- 57
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/51/51f8b607-237c-411f-af14-c6f866e7e38c.json b/library/imports/51/51f8b607-237c-411f-af14-c6f866e7e38c.json
index 3dcc97f..1a127c5 100644
--- a/library/imports/51/51f8b607-237c-411f-af14-c6f866e7e38c.json
+++ b/library/imports/51/51f8b607-237c-411f-af14-c6f866e7e38c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 490,
1,
+ 490,
98,
128
],
@@ -18,6 +18,7 @@
98,
128
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/52/52b59341-eb34-42db-8878-6d2477e38744.json b/library/imports/52/52b59341-eb34-42db-8878-6d2477e38744.json
index e4714eb..7709ac5 100644
--- a/library/imports/52/52b59341-eb34-42db-8878-6d2477e38744.json
+++ b/library/imports/52/52b59341-eb34-42db-8878-6d2477e38744.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1170,
- 159,
+ 152,
+ 1095,
41,
65
],
@@ -18,6 +18,7 @@
41,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/53/533c2acb-d13e-4a25-bc66-9dbbc2824815.json b/library/imports/53/533c2acb-d13e-4a25-bc66-9dbbc2824815.json
index 5a5fd70..43ae2a2 100644
--- a/library/imports/53/533c2acb-d13e-4a25-bc66-9dbbc2824815.json
+++ b/library/imports/53/533c2acb-d13e-4a25-bc66-9dbbc2824815.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1534,
- 199,
- 33,
- 54
+ 117,
+ 1742,
+ 38,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 33,
- 54
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/56/563c9081-5afa-483c-97f0-ace4fcd1e8ec.json b/library/imports/56/563c9081-5afa-483c-97f0-ace4fcd1e8ec.json
index 6eb77c1..3d6e587 100644
--- a/library/imports/56/563c9081-5afa-483c-97f0-ace4fcd1e8ec.json
+++ b/library/imports/56/563c9081-5afa-483c-97f0-ace4fcd1e8ec.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1637,
- 179,
+ 68,
+ 995,
30,
47
],
diff --git a/library/imports/57/57bd7dec-ac07-4d7e-b7f7-87460aee85cc.json b/library/imports/57/57bd7dec-ac07-4d7e-b7f7-87460aee85cc.json
index ca2b4a5..58fbbac 100644
--- a/library/imports/57/57bd7dec-ac07-4d7e-b7f7-87460aee85cc.json
+++ b/library/imports/57/57bd7dec-ac07-4d7e-b7f7-87460aee85cc.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 292,
1,
+ 292,
98,
129
],
@@ -18,6 +18,7 @@
98,
129
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/58/585fa1b5-8fc0-4997-aee2-5e6fa51b934e.json b/library/imports/58/585fa1b5-8fc0-4997-aee2-5e6fa51b934e.json
index f25d0a7..18fca64 100644
--- a/library/imports/58/585fa1b5-8fc0-4997-aee2-5e6fa51b934e.json
+++ b/library/imports/58/585fa1b5-8fc0-4997-aee2-5e6fa51b934e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1680,
- 1,
+ 89,
+ 1470,
41,
47
],
@@ -18,6 +18,7 @@
41,
47
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/58/5896f6d0-930d-4020-b36a-a16adb1a7882.json b/library/imports/58/5896f6d0-930d-4020-b36a-a16adb1a7882.json
index 1858d1b..26af89d 100644
--- a/library/imports/58/5896f6d0-930d-4020-b36a-a16adb1a7882.json
+++ b/library/imports/58/5896f6d0-930d-4020-b36a-a16adb1a7882.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 241,
- 135,
+ 228,
+ 763,
22,
32
],
@@ -18,7 +18,6 @@
22,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/59/59cb433c-8cb3-4935-a236-e453ab3f712d.json b/library/imports/59/59cb433c-8cb3-4935-a236-e453ab3f712d.json
index 9a96001..ec47ad0 100644
--- a/library/imports/59/59cb433c-8cb3-4935-a236-e453ab3f712d.json
+++ b/library/imports/59/59cb433c-8cb3-4935-a236-e453ab3f712d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 376,
- 159,
+ 157,
+ 543,
51,
93
],
@@ -18,6 +18,7 @@
51,
93
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/5f/5fbadca8-607d-431e-8dcf-c03968d4ff15.json b/library/imports/5f/5fbadca8-607d-431e-8dcf-c03968d4ff15.json
index 0ab817c..bfc3d2d 100644
--- a/library/imports/5f/5fbadca8-607d-431e-8dcf-c03968d4ff15.json
+++ b/library/imports/5f/5fbadca8-607d-431e-8dcf-c03968d4ff15.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1722,
- 85,
+ 220,
+ 1043,
31,
47
],
diff --git a/library/imports/65/657a131a-53f2-42b1-bc38-4d7273632553.json b/library/imports/65/657a131a-53f2-42b1-bc38-4d7273632553.json
index 6740a80..4869e3c 100644
--- a/library/imports/65/657a131a-53f2-42b1-bc38-4d7273632553.json
+++ b/library/imports/65/657a131a-53f2-42b1-bc38-4d7273632553.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 131,
- 159,
+ 157,
+ 359,
94,
125
],
@@ -18,7 +18,6 @@
94,
125
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/65/65fc153a-4019-4fba-84fc-a75a9e90c479.json b/library/imports/65/65fc153a-4019-4fba-84fc-a75a9e90c479.json
index 06f8f38..f25e41f 100644
--- a/library/imports/65/65fc153a-4019-4fba-84fc-a75a9e90c479.json
+++ b/library/imports/65/65fc153a-4019-4fba-84fc-a75a9e90c479.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 391,
- 132,
+ 59,
+ 1662,
25,
38
],
@@ -18,7 +18,6 @@
25,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/66/669f44ae-4a5f-4e46-a6b0-05c6f008da46.js.map b/library/imports/66/669f44ae-4a5f-4e46-a6b0-05c6f008da46.js.map
index 2cd1885..dc227d2 100644
--- a/library/imports/66/669f44ae-4a5f-4e46-a6b0-05c6f008da46.js.map
+++ b/library/imports/66/669f44ae-4a5f-4e46-a6b0-05c6f008da46.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\NumberToImage.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NumberToImage extends cc.Component {\r\n\r\n @property(cc.SpriteAtlas)\r\n fontUI: cc.SpriteAtlas = null;\r\n\r\n static font:any = null;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n if(this.fontUI != null){\r\n NumberToImage.font = this.fontUI;\r\n } \r\n }\r\n\r\n //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点\r\n static numberToImageNodes(number, width, posX, name ,targetNode:cc.Node,middle:boolean = false) {\r\n const numStr = number.toString();\r\n let cha = 0; \r\n if(number > 99) cha = -posX\r\n else if(number < 10) cha = posX\r\n if(targetNode.children.length > 0)\r\n targetNode.removeAllChildren();\r\n for (let i = 0; i < numStr.length; i++) {\r\n const digit = parseInt(numStr[i], 10);\r\n const node = new cc.Node();\r\n const sprite = node.addComponent(cc.Sprite);\r\n // debugger;\r\n sprite.spriteFrame = this.font._spriteFrames[name + digit + \"\"];\r\n // 将节点添加到目标节点下\r\n node.x = i * width + cha;\r\n node.parent = targetNode;\r\n }\r\n if(middle){\r\n targetNode.x = targetNode.x - targetNode.children.length * (width-15) / 2;\r\n }\r\n }\r\n\r\n static getTimeMargin(number, width, name ,targetNode:cc.Node) {\r\n let timeArr = [];\r\n let total = 0;\r\n total = number;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n\r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n\r\n let result = m + miao;\r\n for (let i = 0; i < result.length; i++) {\r\n const digit = parseInt(result[i], 10);\r\n timeArr.push(digit);\r\n }\r\n \r\n if(targetNode.children.length > 0){\r\n for (let i = 0; i < targetNode.children.length; i++) {\r\n targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + \"\"];\r\n }\r\n }\r\n else{\r\n for (let i = 0; i < 4; i++) {\r\n const node = new cc.Node();\r\n const sprite = node.addComponent(cc.Sprite);\r\n const digit = timeArr[i];\r\n // debugger;\r\n sprite.spriteFrame = this.font._spriteFrames[name + digit + \"\"];\r\n // 将节点添加到目标节点下\r\n node.x = i * width;\r\n if(i > 1) node.x += 35;\r\n node.parent = targetNode;\r\n }\r\n }\r\n\r\n }\r\n\r\n // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] {\r\n // let result: number;\r\n // switch (operator) {\r\n // case '+':\r\n // result = num1 + num2;\r\n // break;\r\n // case '-':\r\n // result = num1 - num2;\r\n // break;\r\n // case '*':\r\n // result = num1 * num2;\r\n // break;\r\n // case '/':\r\n // result = num1 / num2;\r\n // break;\r\n // default:\r\n // throw new Error('不支持的运算符');\r\n // }\r\n\r\n // // 处理结果为小数的情况,这里简单取整\r\n // result = Math.floor(result);\r\n // return this.numberToImageNodes(result, spriteFrames);\r\n // }\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\NumberToImage.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NumberToImage extends cc.Component {\r\n\r\n @property(cc.SpriteAtlas)\r\n fontUI: cc.SpriteAtlas = null;\r\n\r\n static font: any = null;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n if (this.fontUI != null) {\r\n NumberToImage.font = this.fontUI;\r\n }\r\n }\r\n\r\n //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点\r\n static numberToImageNodes(number, width, posX, name, targetNode: cc.Node, middle: boolean = false) {\r\n const numStr = number.toString();\r\n let cha = 0;\r\n if (number > 99) cha = -posX\r\n else if (number < 10) cha = posX\r\n if (targetNode.children.length > 0)\r\n targetNode.removeAllChildren();\r\n for (let i = 0; i < numStr.length; i++) {\r\n const digit = parseInt(numStr[i], 10);\r\n const node = new cc.Node();\r\n const sprite = node.addComponent(cc.Sprite);\r\n // debugger;\r\n sprite.spriteFrame = this.font._spriteFrames[name + digit + \"\"];\r\n // 将节点添加到目标节点下\r\n node.x = i * width + cha;\r\n node.parent = targetNode;\r\n }\r\n if (middle) {\r\n targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2;\r\n }\r\n }\r\n\r\n\r\n static getTimeMargin(number, width, name, targetNode: cc.Node) {\r\n let timeArr = [];\r\n let total = 0;\r\n total = number;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60) + \"\");//计算整数分\r\n let m = \"\" + min;\r\n\r\n if (min < 10) m = \"0\" + min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n\r\n if (afterMin < 10) miao = \"0\" + afterMin;\r\n\r\n let result = m + miao;\r\n for (let i = 0; i < result.length; i++) {\r\n const digit = parseInt(result[i], 10);\r\n timeArr.push(digit);\r\n }\r\n\r\n if (targetNode.children.length > 0) {\r\n for (let i = 0; i < targetNode.children.length; i++) {\r\n targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + \"\"];\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 4; i++) {\r\n const node = new cc.Node();\r\n const sprite = node.addComponent(cc.Sprite);\r\n const digit = timeArr[i];\r\n // debugger;\r\n sprite.spriteFrame = this.font._spriteFrames[name + digit + \"\"];\r\n // 将节点添加到目标节点下\r\n node.x = i * width;\r\n if (i > 1) node.x += 35;\r\n node.parent = targetNode;\r\n }\r\n }\r\n\r\n }\r\n\r\n // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] {\r\n // let result: number;\r\n // switch (operator) {\r\n // case '+':\r\n // result = num1 + num2;\r\n // break;\r\n // case '-':\r\n // result = num1 - num2;\r\n // break;\r\n // case '*':\r\n // result = num1 * num2;\r\n // break;\r\n // case '/':\r\n // result = num1 / num2;\r\n // break;\r\n // default:\r\n // throw new Error('不支持的运算符');\r\n // }\r\n\r\n // // 处理结果为小数的情况,这里简单取整\r\n // result = Math.floor(result);\r\n // return this.numberToImageNodes(result, spriteFrames);\r\n // }\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
diff --git a/library/imports/67/67297c4b-f01b-407b-a5d4-64b551ef61e9.json b/library/imports/67/67297c4b-f01b-407b-a5d4-64b551ef61e9.json
index f1fce98..8d62771 100644
--- a/library/imports/67/67297c4b-f01b-407b-a5d4-64b551ef61e9.json
+++ b/library/imports/67/67297c4b-f01b-407b-a5d4-64b551ef61e9.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 350,
- 132,
+ 60,
+ 1621,
25,
39
],
@@ -18,7 +18,6 @@
25,
39
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/69/695e881d-f1ba-4d2c-8b29-2bb77e6c0f60.json b/library/imports/69/695e881d-f1ba-4d2c-8b29-2bb77e6c0f60.json
index 6fbe429..1545a04 100644
--- a/library/imports/69/695e881d-f1ba-4d2c-8b29-2bb77e6c0f60.json
+++ b/library/imports/69/695e881d-f1ba-4d2c-8b29-2bb77e6c0f60.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1030,
- 226,
+ 62,
+ 1386,
27,
37
],
@@ -18,7 +18,6 @@
27,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/6c/6c50e399-9112-433c-9d9e-550aabb198e1.json b/library/imports/6c/6c50e399-9112-433c-9d9e-550aabb198e1.json
index 176d5f5..6b90567 100644
--- a/library/imports/6c/6c50e399-9112-433c-9d9e-550aabb198e1.json
+++ b/library/imports/6c/6c50e399-9112-433c-9d9e-550aabb198e1.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1279,
1,
+ 1232,
40,
63
],
@@ -18,6 +18,7 @@
40,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/6d/6d4c8955-52e9-4427-9473-b5e0e172f8d8.json b/library/imports/6d/6d4c8955-52e9-4427-9473-b5e0e172f8d8.json
index 1c1f093..dfe3de2 100644
--- a/library/imports/6d/6d4c8955-52e9-4427-9473-b5e0e172f8d8.json
+++ b/library/imports/6d/6d4c8955-52e9-4427-9473-b5e0e172f8d8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1359,
- 1,
+ 207,
+ 1356,
44,
60
],
diff --git a/library/imports/6f/6f445f4a-48d4-4c86-ac0e-12a5c1f0c456.json b/library/imports/6f/6f445f4a-48d4-4c86-ac0e-12a5c1f0c456.json
index a49835d..7c6c9a2 100644
--- a/library/imports/6f/6f445f4a-48d4-4c86-ac0e-12a5c1f0c456.json
+++ b/library/imports/6f/6f445f4a-48d4-4c86-ac0e-12a5c1f0c456.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1067,
- 68,
+ 61,
+ 1543,
26,
38
],
@@ -18,7 +18,6 @@
26,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/6f/6f9fad22-7dd8-455e-8b03-cc150fe12d7d.json b/library/imports/6f/6f9fad22-7dd8-455e-8b03-cc150fe12d7d.json
index a22f56f..0fcf7f9 100644
--- a/library/imports/6f/6f9fad22-7dd8-455e-8b03-cc150fe12d7d.json
+++ b/library/imports/6f/6f9fad22-7dd8-455e-8b03-cc150fe12d7d.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1599,
- 129,
+ 219,
+ 1178,
32,
49
],
diff --git a/library/imports/70/70efdd8e-f02f-4751-bc7f-e5101ca94c8a.json b/library/imports/70/70efdd8e-f02f-4751-bc7f-e5101ca94c8a.json
index 1913da9..fb2f05a 100644
--- a/library/imports/70/70efdd8e-f02f-4751-bc7f-e5101ca94c8a.json
+++ b/library/imports/70/70efdd8e-f02f-4751-bc7f-e5101ca94c8a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 885,
- 1,
+ 100,
+ 880,
52,
96
],
diff --git a/library/imports/70/70f3ac76-dc6b-41fa-9ef6-be110841156a.json b/library/imports/70/70f3ac76-dc6b-41fa-9ef6-be110841156a.json
index 6fda4aa..baac7f8 100644
--- a/library/imports/70/70f3ac76-dc6b-41fa-9ef6-be110841156a.json
+++ b/library/imports/70/70f3ac76-dc6b-41fa-9ef6-be110841156a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1249,
- 225,
+ 195,
+ 915,
21,
24
],
diff --git a/library/imports/71/716cc039-f633-4417-b4f9-67da0d6f5fec.json b/library/imports/71/716cc039-f633-4417-b4f9-67da0d6f5fec.json
index de63b40..656e51a 100644
--- a/library/imports/71/716cc039-f633-4417-b4f9-67da0d6f5fec.json
+++ b/library/imports/71/716cc039-f633-4417-b4f9-67da0d6f5fec.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 748,
1,
+ 748,
98,
106
],
@@ -18,6 +18,7 @@
98,
106
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/71/71d194e2-9452-4c83-9117-681598bc3b9b.json b/library/imports/71/71d194e2-9452-4c83-9117-681598bc3b9b.json
index a54eca4..f167896 100644
--- a/library/imports/71/71d194e2-9452-4c83-9117-681598bc3b9b.json
+++ b/library/imports/71/71d194e2-9452-4c83-9117-681598bc3b9b.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 158,
137,
+ 158,
19,
23
],
@@ -18,7 +18,6 @@
19,
23
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/72/726eeac3-19a8-4937-835f-76cda762f3f0.json b/library/imports/72/726eeac3-19a8-4937-835f-76cda762f3f0.json
index a7b1d0e..ae50bbd 100644
--- a/library/imports/72/726eeac3-19a8-4937-835f-76cda762f3f0.json
+++ b/library/imports/72/726eeac3-19a8-4937-835f-76cda762f3f0.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 855,
- 100,
+ 206,
+ 1418,
45,
57
],
diff --git a/library/imports/73/73949c0b-e669-4649-b17b-fefcbaad4ed7.json b/library/imports/73/73949c0b-e669-4649-b17b-fefcbaad4ed7.json
index 6fdba9e..5f0a182 100644
--- a/library/imports/73/73949c0b-e669-4649-b17b-fefcbaad4ed7.json
+++ b/library/imports/73/73949c0b-e669-4649-b17b-fefcbaad4ed7.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 392,
1,
+ 392,
96,
129
],
@@ -18,6 +18,7 @@
96,
129
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/76/767d79d8-f0ed-4339-915e-15804014f2e5.json b/library/imports/76/767d79d8-f0ed-4339-915e-15804014f2e5.json
index ff6cd5d..2312307 100644
--- a/library/imports/76/767d79d8-f0ed-4339-915e-15804014f2e5.json
+++ b/library/imports/76/767d79d8-f0ed-4339-915e-15804014f2e5.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1477,
- 60,
+ 222,
+ 1726,
21,
32
],
@@ -18,7 +18,6 @@
21,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/77/77f49e6b-2699-4187-8e0c-ade003ce1a9e.json b/library/imports/77/77f49e6b-2699-4187-8e0c-ade003ce1a9e.json
index d7eb74a..d2e164e 100644
--- a/library/imports/77/77f49e6b-2699-4187-8e0c-ade003ce1a9e.json
+++ b/library/imports/77/77f49e6b-2699-4187-8e0c-ade003ce1a9e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 989,
- 226,
+ 66,
+ 1345,
27,
39
],
@@ -18,7 +18,6 @@
27,
39
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/78/7837bd39-c732-4f78-8d66-0b148588efb0.json b/library/imports/78/7837bd39-c732-4f78-8d66-0b148588efb0.json
index c6d29d2..87ca4a1 100644
--- a/library/imports/78/7837bd39-c732-4f78-8d66-0b148588efb0.json
+++ b/library/imports/78/7837bd39-c732-4f78-8d66-0b148588efb0.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1603,
- 198,
+ 95,
+ 1376,
32,
48
],
@@ -18,6 +18,7 @@
32,
48
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/7b/7b93a019-5dc2-4925-bb61-1226de4cc1eb.json b/library/imports/7b/7b93a019-5dc2-4925-bb61-1226de4cc1eb.json
index b3bb8bc..86e43a9 100644
--- a/library/imports/7b/7b93a019-5dc2-4925-bb61-1226de4cc1eb.json
+++ b/library/imports/7b/7b93a019-5dc2-4925-bb61-1226de4cc1eb.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 673,
- 112,
+ 145,
+ 1312,
45,
60
],
diff --git a/library/imports/7d/7d0f91ce-fa39-4ece-8a68-5c2e15af0962.json b/library/imports/7d/7d0f91ce-fa39-4ece-8a68-5c2e15af0962.json
index f8e8521..19e8461 100644
--- a/library/imports/7d/7d0f91ce-fa39-4ece-8a68-5c2e15af0962.json
+++ b/library/imports/7d/7d0f91ce-fa39-4ece-8a68-5c2e15af0962.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1139,
- 96,
+ 112,
+ 684,
43,
61
],
diff --git a/library/imports/7d/7ddb72a4-8e2c-4ade-bdef-5ffdedb4a265.json b/library/imports/7d/7ddb72a4-8e2c-4ade-bdef-5ffdedb4a265.json
index 7f8ff37..143e034 100644
--- a/library/imports/7d/7ddb72a4-8e2c-4ade-bdef-5ffdedb4a265.json
+++ b/library/imports/7d/7ddb72a4-8e2c-4ade-bdef-5ffdedb4a265.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 319,
- 159,
+ 157,
+ 486,
55,
93
],
@@ -18,6 +18,7 @@
55,
93
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/7f/7fa7c02b-be24-40f2-a122-14c3fc0040ef.json b/library/imports/7f/7fa7c02b-be24-40f2-a122-14c3fc0040ef.json
index 1406798..95d85da 100644
--- a/library/imports/7f/7fa7c02b-be24-40f2-a122-14c3fc0040ef.json
+++ b/library/imports/7f/7fa7c02b-be24-40f2-a122-14c3fc0040ef.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1075,
- 159,
+ 153,
+ 993,
49,
65
],
@@ -18,6 +18,7 @@
49,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/81/81052fbf-a8f3-45f8-bc0f-d2688d6565f1.json b/library/imports/81/81052fbf-a8f3-45f8-bc0f-d2688d6565f1.json
index 0a180f1..3171dc5 100644
--- a/library/imports/81/81052fbf-a8f3-45f8-bc0f-d2688d6565f1.json
+++ b/library/imports/81/81052fbf-a8f3-45f8-bc0f-d2688d6565f1.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1723,
- 36,
+ 89,
+ 1513,
32,
47
],
@@ -18,6 +18,7 @@
32,
47
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/81/819dac08-fe48-4d0c-911d-00b118f7140e.json b/library/imports/81/819dac08-fe48-4d0c-911d-00b118f7140e.json
index 6a60819..eabac92 100644
--- a/library/imports/81/819dac08-fe48-4d0c-911d-00b118f7140e.json
+++ b/library/imports/81/819dac08-fe48-4d0c-911d-00b118f7140e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 92,
1,
+ 92,
97,
134
],
@@ -18,6 +18,7 @@
97,
134
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/82/82dc8a04-4dee-493b-ad96-31310a7261c8.json b/library/imports/82/82dc8a04-4dee-493b-ad96-31310a7261c8.json
index ce3e67f..a50f83f 100644
--- a/library/imports/82/82dc8a04-4dee-493b-ad96-31310a7261c8.json
+++ b/library/imports/82/82dc8a04-4dee-493b-ad96-31310a7261c8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1525,
- 1,
+ 136,
+ 1586,
42,
56
],
@@ -18,6 +18,7 @@
42,
56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/83/837692cc-2850-4a36-b913-0851d05d17f8.json b/library/imports/83/837692cc-2850-4a36-b913-0851d05d17f8.json
index f7b3ec0..3632d35 100644
--- a/library/imports/83/837692cc-2850-4a36-b913-0851d05d17f8.json
+++ b/library/imports/83/837692cc-2850-4a36-b913-0851d05d17f8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1405,
1,
+ 1438,
47,
58
],
@@ -18,6 +18,7 @@
47,
58
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/85/857a2b1c-22dc-40bf-9e48-3ca8d6649e34.json b/library/imports/85/857a2b1c-22dc-40bf-9e48-3ca8d6649e34.json
index 5daed77..ed98458 100644
--- a/library/imports/85/857a2b1c-22dc-40bf-9e48-3ca8d6649e34.json
+++ b/library/imports/85/857a2b1c-22dc-40bf-9e48-3ca8d6649e34.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 754,
- 230,
+ 132,
+ 385,
23,
38
],
@@ -18,7 +18,6 @@
23,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/88/88c8c1ac-e6e7-46a2-9383-85036d1fae0e.json b/library/imports/88/88c8c1ac-e6e7-46a2-9383-85036d1fae0e.json
index f5bbc6d..8ff442e 100644
--- a/library/imports/88/88c8c1ac-e6e7-46a2-9383-85036d1fae0e.json
+++ b/library/imports/88/88c8c1ac-e6e7-46a2-9383-85036d1fae0e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1721,
- 134,
+ 68,
+ 946,
30,
47
],
diff --git a/library/imports/89/890ff2d5-cb4a-4415-93ce-4613c416c197.json b/library/imports/89/890ff2d5-cb4a-4415-93ce-4613c416c197.json
index 7eabdb9..06021a4 100644
--- a/library/imports/89/890ff2d5-cb4a-4415-93ce-4613c416c197.json
+++ b/library/imports/89/890ff2d5-cb4a-4415-93ce-4613c416c197.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1184,
- 94,
+ 1,
+ 1140,
44,
63
],
@@ -18,6 +18,7 @@
44,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8b/8b5538ad-4dbc-4f45-87a8-2bf931ca0c7a.json b/library/imports/8b/8b5538ad-4dbc-4f45-87a8-2bf931ca0c7a.json
index b077808..bfca6b7 100644
--- a/library/imports/8b/8b5538ad-4dbc-4f45-87a8-2bf931ca0c7a.json
+++ b/library/imports/8b/8b5538ad-4dbc-4f45-87a8-2bf931ca0c7a.json
@@ -5,9 +5,9 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1564,
- 141,
- 33,
+ 1,
+ 1664,
+ 40,
56
],
"offset": [
@@ -15,9 +15,10 @@
0
],
"originalSize": [
- 33,
+ 40,
56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8b/8bafce7a-1a22-40fe-994e-a9eae23c5efa.json b/library/imports/8b/8bafce7a-1a22-40fe-994e-a9eae23c5efa.json
index 47d7077..e3d3502 100644
--- a/library/imports/8b/8bafce7a-1a22-40fe-994e-a9eae23c5efa.json
+++ b/library/imports/8b/8bafce7a-1a22-40fe-994e-a9eae23c5efa.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1145,
- 1,
+ 152,
+ 1138,
41,
65
],
@@ -18,6 +18,7 @@
41,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8e/8e5ee732-7c6f-4016-b040-5850d8ad0c1a.json b/library/imports/8e/8e5ee732-7c6f-4016-b040-5850d8ad0c1a.json
index 90e506e..b8d4e16 100644
--- a/library/imports/8e/8e5ee732-7c6f-4016-b040-5850d8ad0c1a.json
+++ b/library/imports/8e/8e5ee732-7c6f-4016-b040-5850d8ad0c1a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 132,
137,
+ 132,
24,
20
],
@@ -18,6 +18,7 @@
24,
20
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8f/8f395139-64a0-4519-bf7b-7cdb56697220.json b/library/imports/8f/8f395139-64a0-4519-bf7b-7cdb56697220.json
index 2149b12..e5e104a 100644
--- a/library/imports/8f/8f395139-64a0-4519-bf7b-7cdb56697220.json
+++ b/library/imports/8f/8f395139-64a0-4519-bf7b-7cdb56697220.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1183,
- 68,
+ 131,
+ 538,
24,
38
],
@@ -18,7 +18,6 @@
24,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/90/9026aa5a-1be4-4f61-8d50-e44e1df4c071.json b/library/imports/90/9026aa5a-1be4-4f61-8d50-e44e1df4c071.json
index 91d5e4d..bd49d50 100644
--- a/library/imports/90/9026aa5a-1be4-4f61-8d50-e44e1df4c071.json
+++ b/library/imports/90/9026aa5a-1be4-4f61-8d50-e44e1df4c071.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 694,
1,
+ 694,
52,
107
],
@@ -18,6 +18,7 @@
52,
107
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/90/906df537-9686-4ce0-952f-0671f9a48306.json b/library/imports/90/906df537-9686-4ce0-952f-0671f9a48306.json
index 8b079a8..ddcb1f6 100644
--- a/library/imports/90/906df537-9686-4ce0-952f-0671f9a48306.json
+++ b/library/imports/90/906df537-9686-4ce0-952f-0671f9a48306.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1669,
- 145,
+ 200,
+ 1477,
39,
47
],
diff --git a/library/imports/90/90e816d5-45c8-4ff7-a072-bb59e162d9f6.json b/library/imports/90/90e816d5-45c8-4ff7-a072-bb59e162d9f6.json
index dbb801d..7535a64 100644
--- a/library/imports/90/90e816d5-45c8-4ff7-a072-bb59e162d9f6.json
+++ b/library/imports/90/90e816d5-45c8-4ff7-a072-bb59e162d9f6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1713,
- 186,
+ 88,
+ 1605,
44,
42
],
@@ -18,7 +18,6 @@
44,
42
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/97/97362dcd-96e3-42ec-b73f-281ac9778643.json b/library/imports/97/97362dcd-96e3-42ec-b73f-281ac9778643.json
index fb522d1..23a7181 100644
--- a/library/imports/97/97362dcd-96e3-42ec-b73f-281ac9778643.json
+++ b/library/imports/97/97362dcd-96e3-42ec-b73f-281ac9778643.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1392,
- 87,
+ 140,
+ 1452,
43,
58
],
@@ -18,6 +18,7 @@
43,
58
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/98/98b92eb9-9ac6-4dcf-bbb4-d8d7e0f55697.json b/library/imports/98/98b92eb9-9ac6-4dcf-bbb4-d8d7e0f55697.json
index a71689d..500a6b7 100644
--- a/library/imports/98/98b92eb9-9ac6-4dcf-bbb4-d8d7e0f55697.json
+++ b/library/imports/98/98b92eb9-9ac6-4dcf-bbb4-d8d7e0f55697.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 309,
- 132,
+ 154,
+ 915,
25,
39
],
diff --git a/library/imports/9a/9a17964d-d911-4b67-8107-7c55470ed386.json b/library/imports/9a/9a17964d-d911-4b67-8107-7c55470ed386.json
index 483b4af..86f3c13 100644
--- a/library/imports/9a/9a17964d-d911-4b67-8107-7c55470ed386.json
+++ b/library/imports/9a/9a17964d-d911-4b67-8107-7c55470ed386.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 939,
- 1,
+ 154,
+ 942,
49,
95
],
@@ -18,6 +18,7 @@
49,
95
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/9a/9aff338f-d5d2-436c-84f4-ab7b7b1abda3.json b/library/imports/9a/9aff338f-d5d2-436c-84f4-ab7b7b1abda3.json
index c6f3eb3..ee1a811 100644
--- a/library/imports/9a/9aff338f-d5d2-436c-84f4-ab7b7b1abda3.json
+++ b/library/imports/9a/9aff338f-d5d2-436c-84f4-ab7b7b1abda3.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1211,
- 226,
+ 175,
+ 1738,
25,
36
],
@@ -18,7 +18,6 @@
25,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/9f/9f5415c1-d607-4c61-b4c2-1736cdd4fb6c.json b/library/imports/9f/9f5415c1-d607-4c61-b4c2-1736cdd4fb6c.json
index 06a4ffc..fd2067c 100644
--- a/library/imports/9f/9f5415c1-d607-4c61-b4c2-1736cdd4fb6c.json
+++ b/library/imports/9f/9f5415c1-d607-4c61-b4c2-1736cdd4fb6c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1,
- 159,
+ 157,
+ 229,
94,
128
],
@@ -18,7 +18,6 @@
94,
128
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a1/a1a3b18f-6d55-4006-81d4-71c3eebb4321.json b/library/imports/a1/a1a3b18f-6d55-4006-81d4-71c3eebb4321.json
index cd62a46..244e05e 100644
--- a/library/imports/a1/a1a3b18f-6d55-4006-81d4-71c3eebb4321.json
+++ b/library/imports/a1/a1a3b18f-6d55-4006-81d4-71c3eebb4321.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 429,
159,
+ 1,
56,
92
],
@@ -18,6 +18,7 @@
56,
92
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a6/a65869ec-122b-4c0f-a784-d7966481c44a.json b/library/imports/a6/a65869ec-122b-4c0f-a784-d7966481c44a.json
index 0d94e1f..c845632 100644
--- a/library/imports/a6/a65869ec-122b-4c0f-a784-d7966481c44a.json
+++ b/library/imports/a6/a65869ec-122b-4c0f-a784-d7966481c44a.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 874,
- 226,
+ 224,
+ 876,
27,
64
],
@@ -18,7 +18,6 @@
27,
64
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a6/a6aca617-eb9e-444c-959e-c04120e8254e.json b/library/imports/a6/a6aca617-eb9e-444c-959e-c04120e8254e.json
index 7f853cc..fc2bcb9 100644
--- a/library/imports/a6/a6aca617-eb9e-444c-959e-c04120e8254e.json
+++ b/library/imports/a6/a6aca617-eb9e-444c-959e-c04120e8254e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 590,
1,
+ 590,
102,
109
],
@@ -18,6 +18,7 @@
102,
109
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a7/a7b3a8dc-4945-4c2f-a957-fcf819fd71ac.json b/library/imports/a7/a7b3a8dc-4945-4c2f-a957-fcf819fd71ac.json
index a170a8f..b97f46e 100644
--- a/library/imports/a7/a7b3a8dc-4945-4c2f-a957-fcf819fd71ac.json
+++ b/library/imports/a7/a7b3a8dc-4945-4c2f-a957-fcf819fd71ac.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 258,
- 159,
+ 158,
+ 168,
59,
93
],
@@ -18,6 +18,7 @@
59,
93
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a7/a7cdc23d-abb6-4a7e-a9a7-6c1a46eb5294.json b/library/imports/a7/a7cdc23d-abb6-4a7e-a9a7-6c1a46eb5294.json
index f71b46f..8eb63ff 100644
--- a/library/imports/a7/a7cdc23d-abb6-4a7e-a9a7-6c1a46eb5294.json
+++ b/library/imports/a7/a7cdc23d-abb6-4a7e-a9a7-6c1a46eb5294.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1599,
- 78,
+ 99,
+ 1152,
47,
49
],
@@ -18,6 +18,7 @@
47,
49
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a7/a7e479c1-38b2-40ca-8cc5-dc833669ba16.json b/library/imports/a7/a7e479c1-38b2-40ca-8cc5-dc833669ba16.json
index a692fa7..a646721 100644
--- a/library/imports/a7/a7e479c1-38b2-40ca-8cc5-dc833669ba16.json
+++ b/library/imports/a7/a7e479c1-38b2-40ca-8cc5-dc833669ba16.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1233,
1,
+ 1186,
44,
63
],
@@ -18,6 +18,7 @@
44,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a8/a869a67e-1a22-49df-8a81-1731746c1641.json b/library/imports/a8/a869a67e-1a22-49df-8a81-1731746c1641.json
index 326e8f6..72acd97 100644
--- a/library/imports/a8/a869a67e-1a22-49df-8a81-1731746c1641.json
+++ b/library/imports/a8/a869a67e-1a22-49df-8a81-1731746c1641.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1683,
- 113,
+ 68,
+ 1084,
30,
36
],
@@ -18,7 +18,6 @@
30,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/a8/a8743269-1766-4da5-a1db-aab5c3de7234.json b/library/imports/a8/a8743269-1766-4da5-a1db-aab5c3de7234.json
index a07a0d6..260b269 100644
--- a/library/imports/a8/a8743269-1766-4da5-a1db-aab5c3de7234.json
+++ b/library/imports/a8/a8743269-1766-4da5-a1db-aab5c3de7234.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 735,
- 110,
+ 145,
+ 1403,
47,
59
],
diff --git a/library/imports/ad/ad13c68b-f592-45fa-bd87-fd3ce3a23df4.json b/library/imports/ad/ad13c68b-f592-45fa-bd87-fd3ce3a23df4.json
index 53fc9ae..2e330e3 100644
--- a/library/imports/ad/ad13c68b-f592-45fa-bd87-fd3ce3a23df4.json
+++ b/library/imports/ad/ad13c68b-f592-45fa-bd87-fd3ce3a23df4.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1683,
- 82,
+ 68,
+ 1122,
29,
37
],
@@ -18,7 +18,6 @@
29,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
index 5fb56c0..a9c6a54 100644
--- a/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
+++ b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
@@ -8927,6 +8927,9 @@
"itemList": {
"__id__": 73
},
+ "coin": {
+ "__id__": 60
+ },
"_id": ""
},
{
diff --git a/library/imports/b2/b2ec870f-5ac8-4b00-ad61-7986b947ecf6.json b/library/imports/b2/b2ec870f-5ac8-4b00-ad61-7986b947ecf6.json
index 9d1ee95..de31713 100644
--- a/library/imports/b2/b2ec870f-5ac8-4b00-ad61-7986b947ecf6.json
+++ b/library/imports/b2/b2ec870f-5ac8-4b00-ad61-7986b947ecf6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1626,
- 57,
+ 135,
+ 291,
16,
39
],
@@ -18,7 +18,6 @@
16,
39
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b5/b5498c3a-31f8-45fc-942c-9478eaa145b3.json b/library/imports/b5/b5498c3a-31f8-45fc-942c-9478eaa145b3.json
index f43de54..8ab035e 100644
--- a/library/imports/b5/b5498c3a-31f8-45fc-942c-9478eaa145b3.json
+++ b/library/imports/b5/b5498c3a-31f8-45fc-942c-9478eaa145b3.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1145,
- 68,
+ 195,
+ 1692,
25,
36
],
@@ -18,7 +18,6 @@
25,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b5/b560848e-7d71-4e7a-b9ea-899e21188021.json b/library/imports/b5/b560848e-7d71-4e7a-b9ea-899e21188021.json
index 732cd4f..b1658ad 100644
--- a/library/imports/b5/b560848e-7d71-4e7a-b9ea-899e21188021.json
+++ b/library/imports/b5/b560848e-7d71-4e7a-b9ea-899e21188021.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1273,
- 92,
+ 212,
+ 1229,
39,
63
],
diff --git a/library/imports/b7/b70f31d7-7729-49aa-af3c-ce6f678528bc.json b/library/imports/b7/b70f31d7-7729-49aa-af3c-ce6f678528bc.json
index d430380..b7f5ac4 100644
--- a/library/imports/b7/b70f31d7-7729-49aa-af3c-ce6f678528bc.json
+++ b/library/imports/b7/b70f31d7-7729-49aa-af3c-ce6f678528bc.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1565,
- 78,
- 32,
- 55
+ 1,
+ 1706,
+ 38,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 32,
- 55
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b7/b732b8f1-0410-403a-b176-04c956dbeb21.json b/library/imports/b7/b732b8f1-0410-403a-b176-04c956dbeb21.json
index bec189c..fc15d97 100644
--- a/library/imports/b7/b732b8f1-0410-403a-b176-04c956dbeb21.json
+++ b/library/imports/b7/b732b8f1-0410-403a-b176-04c956dbeb21.json
@@ -5,9 +5,9 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1528,
- 83,
- 35,
+ 134,
+ 1630,
+ 40,
56
],
"offset": [
@@ -15,9 +15,10 @@
0
],
"originalSize": [
- 35,
+ 40,
56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b8/b8346db6-71a3-4353-9655-cc7eae388af8.json b/library/imports/b8/b8346db6-71a3-4353-9655-cc7eae388af8.json
index a16fb87..a363b1c 100644
--- a/library/imports/b8/b8346db6-71a3-4353-9655-cc7eae388af8.json
+++ b/library/imports/b8/b8346db6-71a3-4353-9655-cc7eae388af8.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1339,
- 154,
+ 209,
+ 1294,
42,
60
],
diff --git a/library/imports/b8/b87fb2bd-9fba-4804-80ea-d2bea6921273.json b/library/imports/b8/b87fb2bd-9fba-4804-80ea-d2bea6921273.json
index 53b3307..10514a2 100644
--- a/library/imports/b8/b87fb2bd-9fba-4804-80ea-d2bea6921273.json
+++ b/library/imports/b8/b87fb2bd-9fba-4804-80ea-d2bea6921273.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 915,
- 159,
+ 1,
+ 885,
52,
65
],
@@ -18,6 +18,7 @@
52,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b8/b8e22375-daee-4ed2-912b-b483735df685.json b/library/imports/b8/b8e22375-daee-4ed2-912b-b483735df685.json
index 4560dec..e42f8c5 100644
--- a/library/imports/b8/b8e22375-daee-4ed2-912b-b483735df685.json
+++ b/library/imports/b8/b8e22375-daee-4ed2-912b-b483735df685.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1333,
- 222,
+ 220,
+ 993,
31,
48
],
@@ -18,7 +18,6 @@
31,
48
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/bc/bccf63ba-b29f-4020-b862-3480eb2cfcdf.json b/library/imports/bc/bccf63ba-b29f-4020-b862-3480eb2cfcdf.json
index b87f87c..493dafe 100644
--- a/library/imports/bc/bccf63ba-b29f-4020-b862-3480eb2cfcdf.json
+++ b/library/imports/bc/bccf63ba-b29f-4020-b862-3480eb2cfcdf.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 701,
- 230,
+ 132,
+ 332,
23,
51
],
@@ -18,7 +18,6 @@
23,
51
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c1/c1ab5d3c-ab1b-4378-9665-5f7e66c9cede.json b/library/imports/c1/c1ab5d3c-ab1b-4378-9665-5f7e66c9cede.json
index c125713..50f3733 100644
--- a/library/imports/c1/c1ab5d3c-ab1b-4378-9665-5f7e66c9cede.json
+++ b/library/imports/c1/c1ab5d3c-ab1b-4378-9665-5f7e66c9cede.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 940,
- 226,
+ 66,
+ 1296,
27,
47
],
@@ -18,7 +18,6 @@
27,
47
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c2/c23b5782-56d1-4758-8d81-22689679d867.json b/library/imports/c2/c23b5782-56d1-4758-8d81-22689679d867.json
index eaa3821..7467b55 100644
--- a/library/imports/c2/c23b5782-56d1-4758-8d81-22689679d867.json
+++ b/library/imports/c2/c23b5782-56d1-4758-8d81-22689679d867.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1383,
- 153,
+ 1,
+ 1487,
44,
58
],
@@ -18,6 +18,7 @@
44,
58
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c6/c676176b-18c6-4b6e-ab24-f0d13125de65.json b/library/imports/c6/c676176b-18c6-4b6e-ab24-f0d13125de65.json
index 3bdc1ae..cb7d84a 100644
--- a/library/imports/c6/c676176b-18c6-4b6e-ab24-f0d13125de65.json
+++ b/library/imports/c6/c676176b-18c6-4b6e-ab24-f0d13125de65.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1383,
- 213,
+ 138,
+ 1497,
40,
58
],
diff --git a/library/imports/c6/c6a8ba23-1b36-4812-89e6-cd3ea75f34bd.json b/library/imports/c6/c6a8ba23-1b36-4812-89e6-cd3ea75f34bd.json
index 2913f18..caf4d5e 100644
--- a/library/imports/c6/c6a8ba23-1b36-4812-89e6-cd3ea75f34bd.json
+++ b/library/imports/c6/c6a8ba23-1b36-4812-89e6-cd3ea75f34bd.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1488,
- 201,
+ 100,
+ 1106,
44,
50
],
@@ -18,6 +18,7 @@
44,
50
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c8/c8446482-2a18-4251-b5ea-d4be7414150c.json b/library/imports/c8/c8446482-2a18-4251-b5ea-d4be7414150c.json
index aba6cc4..c3e4a5a 100644
--- a/library/imports/c8/c8446482-2a18-4251-b5ea-d4be7414150c.json
+++ b/library/imports/c8/c8446482-2a18-4251-b5ea-d4be7414150c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 183,
- 137,
+ 135,
+ 233,
22,
18
],
@@ -18,6 +18,7 @@
22,
18
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c9/c974dbb8-a4e7-4c0b-b8ac-33de600e7096.json b/library/imports/c9/c974dbb8-a4e7-4c0b-b8ac-33de600e7096.json
index 1ec604a..b86d719 100644
--- a/library/imports/c9/c974dbb8-a4e7-4c0b-b8ac-33de600e7096.json
+++ b/library/imports/c9/c974dbb8-a4e7-4c0b-b8ac-33de600e7096.json
@@ -5,9 +5,9 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1569,
- 1,
- 32,
+ 87,
+ 1649,
+ 40,
56
],
"offset": [
@@ -15,7 +15,7 @@
0
],
"originalSize": [
- 32,
+ 40,
56
],
"capInsets": [
diff --git a/library/imports/cb/cb6aff57-a633-4151-a025-39ef62ccedd0.json b/library/imports/cb/cb6aff57-a633-4151-a025-39ef62ccedd0.json
index 02223fd..9599c56 100644
--- a/library/imports/cb/cb6aff57-a633-4151-a025-39ef62ccedd0.json
+++ b/library/imports/cb/cb6aff57-a633-4151-a025-39ef62ccedd0.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1094,
- 1,
+ 153,
+ 1044,
49,
65
],
@@ -18,6 +18,7 @@
49,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/cc/cc8de5c6-9230-4842-9f4a-f2ad5e3f4615.json b/library/imports/cc/cc8de5c6-9230-4842-9f4a-f2ad5e3f4615.json
index 347f596..8538496 100644
--- a/library/imports/cc/cc8de5c6-9230-4842-9f4a-f2ad5e3f4615.json
+++ b/library/imports/cc/cc8de5c6-9230-4842-9f4a-f2ad5e3f4615.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1003,
- 98,
+ 1,
+ 1348,
44,
59
],
@@ -18,6 +18,7 @@
44,
59
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ce/cea47276-16b9-48ce-87ee-cb85a2b79b11.json b/library/imports/ce/cea47276-16b9-48ce-87ee-cb85a2b79b11.json
index 44348cf..7e1fcc2 100644
--- a/library/imports/ce/cea47276-16b9-48ce-87ee-cb85a2b79b11.json
+++ b/library/imports/ce/cea47276-16b9-48ce-87ee-cb85a2b79b11.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1603,
1,
- 30,
- 54
+ 1746,
+ 36,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 30,
- 54
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/cf/cffb741d-aa2b-417d-955b-9e1e485a5351.json b/library/imports/cf/cffb741d-aa2b-417d-955b-9e1e485a5351.json
index 2ac9427..61cec59 100644
--- a/library/imports/cf/cffb741d-aa2b-417d-955b-9e1e485a5351.json
+++ b/library/imports/cf/cffb741d-aa2b-417d-955b-9e1e485a5351.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 471,
- 132,
+ 153,
+ 1672,
25,
37
],
diff --git a/library/imports/d4/d4315808-edb8-4246-b8c6-e0ab7177ed19.json b/library/imports/d4/d4315808-edb8-4246-b8c6-e0ab7177ed19.json
index 927c172..06e8517 100644
--- a/library/imports/d4/d4315808-edb8-4246-b8c6-e0ab7177ed19.json
+++ b/library/imports/d4/d4315808-edb8-4246-b8c6-e0ab7177ed19.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1303,
- 157,
+ 1,
+ 1312,
34,
63
],
@@ -18,6 +18,7 @@
34,
63
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/d7/d79188f8-7935-4a7c-b6cf-dba62fbb5289.json b/library/imports/d7/d79188f8-7935-4a7c-b6cf-dba62fbb5289.json
index b575625..287741f 100644
--- a/library/imports/d7/d79188f8-7935-4a7c-b6cf-dba62fbb5289.json
+++ b/library/imports/d7/d79188f8-7935-4a7c-b6cf-dba62fbb5289.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 539,
159,
+ 111,
55,
91
],
@@ -18,6 +18,7 @@
55,
91
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/d7/d7c12d61-f696-4de5-b62b-449dbf8788f0.json b/library/imports/d7/d7c12d61-f696-4de5-b62b-449dbf8788f0.json
index 078ec34..aac00ba 100644
--- a/library/imports/d7/d7c12d61-f696-4de5-b62b-449dbf8788f0.json
+++ b/library/imports/d7/d7c12d61-f696-4de5-b62b-449dbf8788f0.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
649,
- 159,
50,
77
],
@@ -18,6 +18,7 @@
50,
77
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/d8/d8b3546a-d3c2-42fe-a545-7714bb16627c.json b/library/imports/d8/d8b3546a-d3c2-42fe-a545-7714bb16627c.json
index 0698ca7..4519bdd 100644
--- a/library/imports/d8/d8b3546a-d3c2-42fe-a545-7714bb16627c.json
+++ b/library/imports/d8/d8b3546a-d3c2-42fe-a545-7714bb16627c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1029,
- 68,
+ 66,
+ 1258,
28,
36
],
@@ -18,7 +18,6 @@
28,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/db/dbca9561-4db0-415e-ba04-e94cc1ed7833.json b/library/imports/db/dbca9561-4db0-415e-ba04-e94cc1ed7833.json
index 71292eb..72580ac 100644
--- a/library/imports/db/dbca9561-4db0-415e-ba04-e94cc1ed7833.json
+++ b/library/imports/db/dbca9561-4db0-415e-ba04-e94cc1ed7833.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
701,
- 159,
67,
69
],
@@ -18,6 +18,7 @@
67,
69
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/dc/dca5df16-714f-49bc-93d9-072a95869af6.json b/library/imports/dc/dca5df16-714f-49bc-93d9-072a95869af6.json
index ab73f3c..94b58bb 100644
--- a/library/imports/dc/dca5df16-714f-49bc-93d9-072a95869af6.json
+++ b/library/imports/dc/dca5df16-714f-49bc-93d9-072a95869af6.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 92,
137,
+ 92,
20,
38
],
@@ -18,7 +18,6 @@
20,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/dd/ddf55804-ab2f-4385-9098-39ca598f382e.json b/library/imports/dd/ddf55804-ab2f-4385-9098-39ca598f382e.json
index 00ee6eb..97d40bf 100644
--- a/library/imports/dd/ddf55804-ab2f-4385-9098-39ca598f382e.json
+++ b/library/imports/dd/ddf55804-ab2f-4385-9098-39ca598f382e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 990,
- 68,
+ 66,
+ 1219,
28,
37
],
@@ -18,7 +18,6 @@
28,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/e2/e299c220-3c0b-45cb-8765-5f93818af5d4.json b/library/imports/e2/e299c220-3c0b-45cb-8765-5f93818af5d4.json
index c40281a..1fa17f8 100644
--- a/library/imports/e2/e299c220-3c0b-45cb-8765-5f93818af5d4.json
+++ b/library/imports/e2/e299c220-3c0b-45cb-8765-5f93818af5d4.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 902,
- 99,
+ 91,
+ 1410,
47,
58
],
diff --git a/library/imports/e4/e4e797c9-da14-4ead-bb8f-a8beec287ddc.json b/library/imports/e4/e4e797c9-da14-4ead-bb8f-a8beec287ddc.json
index f076f6d..3ea47c3 100644
--- a/library/imports/e4/e4e797c9-da14-4ead-bb8f-a8beec287ddc.json
+++ b/library/imports/e4/e4e797c9-da14-4ead-bb8f-a8beec287ddc.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 834,
- 227,
+ 61,
+ 1463,
26,
38
],
@@ -18,7 +18,6 @@
26,
38
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/e6/e6f8ce70-a963-4152-9fac-334128bc1eba.json b/library/imports/e6/e6f8ce70-a963-4152-9fac-334128bc1eba.json
index 6c52d85..09ada2b 100644
--- a/library/imports/e6/e6f8ce70-a963-4152-9fac-334128bc1eba.json
+++ b/library/imports/e6/e6f8ce70-a963-4152-9fac-334128bc1eba.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 990,
1,
+ 992,
51,
65
],
@@ -18,6 +18,7 @@
51,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/e9/e9089c82-db47-44ae-b9e1-2d4e99abb41e.json b/library/imports/e9/e9089c82-db47-44ae-b9e1-2d4e99abb41e.json
index dbccff6..de29e4c 100644
--- a/library/imports/e9/e9089c82-db47-44ae-b9e1-2d4e99abb41e.json
+++ b/library/imports/e9/e9089c82-db47-44ae-b9e1-2d4e99abb41e.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1107,
- 68,
+ 60,
+ 1583,
26,
36
],
@@ -18,7 +18,6 @@
26,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ed/ed4e3289-95aa-4940-a517-67f9fd931afe.json b/library/imports/ed/ed4e3289-95aa-4940-a517-67f9fd931afe.json
index 5c8d39c..4f205b7 100644
--- a/library/imports/ed/ed4e3289-95aa-4940-a517-67f9fd931afe.json
+++ b/library/imports/ed/ed4e3289-95aa-4940-a517-67f9fd931afe.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1633,
- 129,
+ 95,
+ 1305,
34,
48
],
@@ -18,6 +18,7 @@
34,
48
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ed/edfa4e39-8e12-47f3-ab71-75e139d7c0e5.json b/library/imports/ed/edfa4e39-8e12-47f3-ab71-75e139d7c0e5.json
index cba4e65..d7982bf 100644
--- a/library/imports/ed/edfa4e39-8e12-47f3-ab71-75e139d7c0e5.json
+++ b/library/imports/ed/edfa4e39-8e12-47f3-ab71-75e139d7c0e5.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1437,
- 84,
+ 1,
+ 1578,
42,
57
],
@@ -18,6 +18,7 @@
42,
57
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ee/ee1f756f-b070-44b1-a415-4809b2634490.json b/library/imports/ee/ee1f756f-b070-44b1-a415-4809b2634490.json
index 008d99b..a3258f9 100644
--- a/library/imports/ee/ee1f756f-b070-44b1-a415-4809b2634490.json
+++ b/library/imports/ee/ee1f756f-b070-44b1-a415-4809b2634490.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1635,
- 1,
+ 96,
+ 1201,
43,
49
],
@@ -18,6 +18,7 @@
43,
49
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ee/eea2ffb8-378e-4a0b-abd9-f57a0db4cd1f.json b/library/imports/ee/eea2ffb8-378e-4a0b-abd9-f57a0db4cd1f.json
index 47069e4..75da99a 100644
--- a/library/imports/ee/eea2ffb8-378e-4a0b-abd9-f57a0db4cd1f.json
+++ b/library/imports/ee/eea2ffb8-378e-4a0b-abd9-f57a0db4cd1f.json
@@ -5,19 +5,20 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1569,
- 199,
- 32,
- 54
+ 59,
+ 1742,
+ 38,
+ 56
],
"offset": [
0,
0
],
"originalSize": [
- 32,
- 54
+ 40,
+ 56
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ef/efcfc450-7096-423f-80fa-097f310a453c.json b/library/imports/ef/efcfc450-7096-423f-80fa-097f310a453c.json
index bafc0b1..d9e66ff 100644
--- a/library/imports/ef/efcfc450-7096-423f-80fa-097f310a453c.json
+++ b/library/imports/ef/efcfc450-7096-423f-80fa-097f310a453c.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1599,
- 180,
+ 202,
+ 1730,
16,
36
],
@@ -18,7 +18,6 @@
16,
36
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/f1/f1cb68b4-fc78-45bd-9786-d4e21fd02523.json b/library/imports/f1/f1cb68b4-fc78-45bd-9786-d4e21fd02523.json
index 3cbb9cd..32c5074 100644
--- a/library/imports/f1/f1cb68b4-fc78-45bd-9786-d4e21fd02523.json
+++ b/library/imports/f1/f1cb68b4-fc78-45bd-9786-d4e21fd02523.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
+ 157,
770,
- 159,
46,
68
],
@@ -18,6 +18,7 @@
46,
68
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/f3/f37ad52f-0da0-41ae-9ffe-655a5d1ca131.json b/library/imports/f3/f37ad52f-0da0-41ae-9ffe-655a5d1ca131.json
index a01a1cb..0f80f40 100644
--- a/library/imports/f3/f37ad52f-0da0-41ae-9ffe-655a5d1ca131.json
+++ b/library/imports/f3/f37ad52f-0da0-41ae-9ffe-655a5d1ca131.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1302,
- 66,
+ 132,
+ 425,
23,
37
],
@@ -18,7 +18,6 @@
23,
37
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/f8/f8d067a0-98d0-4a97-8159-506946262d4b.png b/library/imports/f8/f8d067a0-98d0-4a97-8159-506946262d4b.png
index 9e93df5..e6445b7 100644
Binary files a/library/imports/f8/f8d067a0-98d0-4a97-8159-506946262d4b.png and b/library/imports/f8/f8d067a0-98d0-4a97-8159-506946262d4b.png differ
diff --git a/library/imports/fc/fca32751-bd3a-46fb-8ab7-e839748ae30b.json b/library/imports/fc/fca32751-bd3a-46fb-8ab7-e839748ae30b.json
index b5ee541..22dcda4 100644
--- a/library/imports/fc/fca32751-bd3a-46fb-8ab7-e839748ae30b.json
+++ b/library/imports/fc/fca32751-bd3a-46fb-8ab7-e839748ae30b.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1043,
1,
+ 1045,
49,
65
],
@@ -18,6 +18,7 @@
49,
65
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/fd/fdf291e2-8e11-4136-8e8d-4427a8e14e48.json b/library/imports/fd/fdf291e2-8e11-4136-8e8d-4427a8e14e48.json
index 096a96a..c682737 100644
--- a/library/imports/fd/fdf291e2-8e11-4136-8e8d-4427a8e14e48.json
+++ b/library/imports/fd/fdf291e2-8e11-4136-8e8d-4427a8e14e48.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1341,
- 66,
+ 132,
+ 464,
23,
32
],
@@ -18,7 +18,6 @@
23,
32
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/ff/ff588649-12b5-42ea-ab9f-59d07833a7fd.json b/library/imports/ff/ff588649-12b5-42ea-ab9f-59d07833a7fd.json
index bd80c59..713fbbf 100644
--- a/library/imports/ff/ff588649-12b5-42ea-ab9f-59d07833a7fd.json
+++ b/library/imports/ff/ff588649-12b5-42ea-ab9f-59d07833a7fd.json
@@ -5,8 +5,8 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1723,
- 1,
+ 86,
+ 1707,
33,
33
],
diff --git a/library/imports/ff/ff947612-64d1-4ad2-add0-b7d8fbd5df4f.json b/library/imports/ff/ff947612-64d1-4ad2-add0-b7d8fbd5df4f.json
index 039cffa..5c3ea61 100644
--- a/library/imports/ff/ff947612-64d1-4ad2-add0-b7d8fbd5df4f.json
+++ b/library/imports/ff/ff947612-64d1-4ad2-add0-b7d8fbd5df4f.json
@@ -5,20 +5,19 @@
"texture": "f8d067a0-98d0-4a97-8159-506946262d4b",
"atlas": "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8",
"rect": [
- 1544,
- 59,
- 17,
- 46
+ 137,
+ 183,
+ 18,
+ 48
],
"offset": [
0,
0
],
"originalSize": [
- 17,
- 46
+ 40,
+ 56
],
- "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json
index 61a626b..74557c9 100644
--- a/library/uuid-to-mtime.json
+++ b/library/uuid-to-mtime.json
@@ -145,8 +145,8 @@
"relativePath": "Script\\RankManager.ts"
},
"9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d": {
- "asset": 1751348362897,
- "meta": 1751348362900,
+ "asset": 1751354233097,
+ "meta": 1751354233102,
"relativePath": "StartScene\\LoadScene.fire"
},
"93c9bdf3-8205-46e5-a8f1-3576b0dbc836": {
@@ -2774,11 +2774,6 @@
"meta": 1751270456879,
"relativePath": "Script\\prop\\Lock.ts"
},
- "669f44ae-4a5f-4e46-a6b0-05c6f008da46": {
- "asset": 1751270412047,
- "meta": 1751270455651,
- "relativePath": "Script\\NumberToImage.ts"
- },
"3890fe43-f2f3-4d6e-acfa-07ba7794f7b6": {
"asset": 1751270412326,
"meta": 1751270456443,
@@ -2964,11 +2959,6 @@
"meta": 1751270456363,
"relativePath": "resources\\Json\\level157.json"
},
- "0f9aab89-5e08-423d-8030-259fe54c4d74": {
- "asset": 1751270412081,
- "meta": 1751270457397,
- "relativePath": "TextureBg\\pop_Bg\\loadBg.jpg"
- },
"75b4f368-70b5-452d-9afd-ca7a6f1e2e60": {
"asset": 1751270412219,
"meta": 1751270456576,
@@ -3265,8 +3255,8 @@
"relativePath": "Scene\\HomeScene.fire"
},
"4eaf518b-35ec-4262-928d-4d497c3f2830": {
- "asset": 1751350775166,
- "meta": 1751350775175,
+ "asset": 1751353555970,
+ "meta": 1751353555982,
"relativePath": "Scene\\GameScene.fire"
},
"50c01dd8-431f-43cc-820e-abb2a859d031": {
@@ -3295,8 +3285,8 @@
"relativePath": "UI\\UI\\set"
},
"b01ef5c5-2755-455d-acb4-ba3818f5e331": {
- "asset": 1751350784977,
- "meta": 1751350784985,
+ "asset": 1751353092137,
+ "meta": 1751353092144,
"relativePath": "shop\\prefab\\shop.prefab"
},
"a81d74d9-943b-4d0e-aad5-2999276d3447": {
@@ -3354,11 +3344,6 @@
"meta": 1751271661840,
"relativePath": "shop\\img\\shuzi.plist"
},
- "1dc936f8-7de8-4eae-91a0-4e48a1047e20": {
- "asset": 1751273589501,
- "meta": 1751273603663,
- "relativePath": "Script\\JiaZai.ts"
- },
"19d95d9d-e645-41ac-b4b3-00819e12514a": {
"asset": 1751274346640,
"meta": 1751274347780,
@@ -3414,24 +3399,39 @@
"meta": 1751340688934,
"relativePath": "Script\\Sdk\\MiniGameSdk.ts"
},
- "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": {
- "asset": 1751342200791,
- "meta": 1751342202723,
- "relativePath": "Script\\Map.ts"
- },
- "f8d067a0-98d0-4a97-8159-506946262d4b": {
- "asset": 1751348232989,
- "meta": 1751348283289,
- "relativePath": "res\\font\\font.png"
+ "669f44ae-4a5f-4e46-a6b0-05c6f008da46": {
+ "asset": 1751351951784,
+ "meta": 1751351972099,
+ "relativePath": "Script\\NumberToImage.ts"
},
"fa9a438e-1f24-47fe-bbcd-b75abcff2ea8": {
- "asset": 1751348232992,
- "meta": 1751348328076,
+ "asset": 1751352270767,
+ "meta": 1751352332017,
"relativePath": "res\\font\\font.plist"
},
+ "f8d067a0-98d0-4a97-8159-506946262d4b": {
+ "asset": 1751352270764,
+ "meta": 1751352331898,
+ "relativePath": "res\\font\\font.png"
+ },
"48bfe66e-6056-44da-a9a0-c5b5b6222801": {
- "asset": 1751349131695,
- "meta": 1751349133998,
+ "asset": 1751353063747,
+ "meta": 1751353064888,
"relativePath": "shop\\script\\shop.ts"
+ },
+ "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": {
+ "asset": 1751353522650,
+ "meta": 1751353523919,
+ "relativePath": "Script\\Map.ts"
+ },
+ "1dc936f8-7de8-4eae-91a0-4e48a1047e20": {
+ "asset": 1751353642083,
+ "meta": 1751353733162,
+ "relativePath": "Script\\JiaZai.ts"
+ },
+ "0f9aab89-5e08-423d-8030-259fe54c4d74": {
+ "asset": 1749810324000,
+ "meta": 1751354227036,
+ "relativePath": "TextureBg\\pop_Bg\\loadBg.jpg"
}
}
\ No newline at end of file
diff --git a/local/local.json b/local/local.json
index 359ff2f..8a9b157 100644
--- a/local/local.json
+++ b/local/local.json
@@ -1,5 +1,5 @@
{
- "last-edit": "4eaf518b-35ec-4262-928d-4d497c3f2830",
+ "last-edit": "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d",
"recent-items": [
"5ed13d95-5b93-4407-b770-0dedeb674b0f",
"bf502854-8e31-40c1-9d27-ac480682b4c4",
@@ -36,9 +36,9 @@
"fc41ae6e-8743-4057-86fa-bff2f8ff171b",
"4466b8d6-b468-4cb5-bc57-7a2bd3df12e4",
"a81d74d9-943b-4d0e-aad5-2999276d3447",
- "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d",
"66281f32-0047-4af8-8237-90c93fc4b0e8",
+ "b01ef5c5-2755-455d-acb4-ba3818f5e331",
"4eaf518b-35ec-4262-928d-4d497c3f2830",
- "b01ef5c5-2755-455d-acb4-ba3818f5e331"
+ "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d"
]
}
diff --git a/temp/BackupAssets/assets/Scene/GameScene.fire b/temp/BackupAssets/assets/Scene/GameScene.fire
index a10f45a..8da14ec 100644
--- a/temp/BackupAssets/assets/Scene/GameScene.fire
+++ b/temp/BackupAssets/assets/Scene/GameScene.fire
@@ -78,17 +78,14 @@
"__id__": 68
},
{
- "__id__": 354
+ "__id__": 355
},
{
- "__id__": 404
+ "__id__": 405
}
],
"_active": true,
"_components": [
- {
- "__id__": 407
- },
{
"__id__": 408
},
@@ -97,6 +94,9 @@
},
{
"__id__": 410
+ },
+ {
+ "__id__": 411
}
],
"_prefab": null,
@@ -260,13 +260,13 @@
"__id__": 9
},
{
- "__id__": 167
+ "__id__": 168
},
{
- "__id__": 188
+ "__id__": 189
},
{
- "__id__": 208
+ "__id__": 209
},
{
"__id__": 70
@@ -275,7 +275,7 @@
"_active": true,
"_components": [
{
- "__id__": 353
+ "__id__": 354
}
],
"_prefab": null,
@@ -471,13 +471,13 @@
"__id__": 20
},
{
- "__id__": 163
+ "__id__": 164
}
],
"_active": true,
"_components": [
{
- "__id__": 166
+ "__id__": 167
}
],
"_prefab": null,
@@ -1228,7 +1228,7 @@
},
{
"__type__": "cc.Node",
- "_name": "底板00_1",
+ "_name": "floor",
"_objFlags": 0,
"_parent": {
"__id__": 20
@@ -6256,19 +6256,22 @@
"__id__": 149
},
{
- "__id__": 153
+ "__id__": 150
},
{
- "__id__": 155
+ "__id__": 154
},
{
- "__id__": 157
+ "__id__": 156
+ },
+ {
+ "__id__": 158
}
],
"_active": true,
"_components": [
{
- "__id__": 162
+ "__id__": 163
}
],
"_prefab": null,
@@ -6609,7 +6612,7 @@
},
{
"__type__": "cc.Node",
- "_name": "小钟图标_1",
+ "_name": "time_icon",
"_objFlags": 0,
"_parent": {
"__id__": 132
@@ -6728,8 +6731,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 17,
- "height": 46
+ "width": 18,
+ "height": 48
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -7109,7 +7112,65 @@
},
{
"__type__": "cc.Node",
- "_name": "加按钮_1",
+ "_name": "coin",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 132
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 200,
+ "height": 200
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 342.162,
+ -48.441,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "_eulerAngles": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_skewX": 0,
+ "_skewY": 0,
+ "_is3DNode": false,
+ "_groupIndex": 0,
+ "groupIndex": 0,
+ "_id": "20iRJz5vNKjbgjTJR3p0SW"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "add",
"_objFlags": 0,
"_parent": {
"__id__": 132
@@ -7118,10 +7179,10 @@
"_active": true,
"_components": [
{
- "__id__": 150
+ "__id__": 151
},
{
- "__id__": 151
+ "__id__": 152
}
],
"_prefab": null,
@@ -7177,7 +7238,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -7211,7 +7272,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 150
},
"_enabled": true,
"_normalMaterial": null,
@@ -7220,7 +7281,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 152
+ "__id__": 153
}
],
"_N$interactable": true,
@@ -7299,7 +7360,7 @@
"_active": false,
"_components": [
{
- "__id__": 154
+ "__id__": 155
}
],
"_prefab": null,
@@ -7355,7 +7416,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7393,7 +7454,7 @@
"_active": false,
"_components": [
{
- "__id__": 156
+ "__id__": 157
}
],
"_prefab": null,
@@ -7449,7 +7510,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 155
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7486,13 +7547,13 @@
},
"_children": [
{
- "__id__": 158
+ "__id__": 159
}
],
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 161
}
],
"_prefab": null,
@@ -7548,13 +7609,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 157
+ "__id__": 158
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 159
+ "__id__": 160
}
],
"_prefab": null,
@@ -7610,7 +7671,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 158
+ "__id__": 159
},
"_enabled": true,
"_materials": [
@@ -7644,7 +7705,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 157
+ "__id__": 158
},
"_enabled": true,
"_normalMaterial": null,
@@ -7653,7 +7714,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 161
+ "__id__": 162
}
],
"_N$interactable": true,
@@ -7709,7 +7770,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 157
+ "__id__": 158
},
"_id": "34Z6b/IgpOtKrGQXG1ECg6"
},
@@ -7761,10 +7822,10 @@
"_active": false,
"_components": [
{
- "__id__": 164
+ "__id__": 165
},
{
- "__id__": 165
+ "__id__": 166
}
],
"_prefab": null,
@@ -7820,7 +7881,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7852,7 +7913,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 164
},
"_enabled": true,
"alignMode": 1,
@@ -7910,31 +7971,31 @@
},
"_children": [
{
- "__id__": 168
+ "__id__": 169
},
{
- "__id__": 172
+ "__id__": 173
},
{
- "__id__": 174
+ "__id__": 175
},
{
- "__id__": 176
+ "__id__": 177
},
{
- "__id__": 178
+ "__id__": 179
},
{
- "__id__": 184
+ "__id__": 185
}
],
"_active": false,
"_components": [
{
- "__id__": 186
+ "__id__": 187
},
{
- "__id__": 187
+ "__id__": 188
}
],
"_prefab": null,
@@ -7990,19 +8051,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 169
- },
{
"__id__": 170
},
{
"__id__": 171
+ },
+ {
+ "__id__": 172
}
],
"_prefab": null,
@@ -8058,7 +8119,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_materials": [
@@ -8090,7 +8151,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"alignMode": 1,
@@ -8117,7 +8178,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 169
},
"_enabled": true,
"_id": "1e62ukhsJObKLFucCNzfwm"
@@ -8127,13 +8188,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 173
+ "__id__": 174
}
],
"_prefab": null,
@@ -8189,7 +8250,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -8221,13 +8282,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 176
}
],
"_prefab": null,
@@ -8283,7 +8344,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 175
},
"_enabled": true,
"_materials": [
@@ -8315,13 +8376,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 177
+ "__id__": 178
}
],
"_prefab": null,
@@ -8377,7 +8438,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 176
+ "__id__": 177
},
"_enabled": true,
"_materials": [
@@ -8407,20 +8468,20 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [
{
- "__id__": 179
+ "__id__": 180
}
],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 182
},
{
- "__id__": 182
+ "__id__": 183
}
],
"_prefab": null,
@@ -8476,13 +8537,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 178
+ "__id__": 179
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 180
+ "__id__": 181
}
],
"_prefab": null,
@@ -8538,7 +8599,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 180
},
"_enabled": true,
"_materials": [
@@ -8570,7 +8631,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8602,7 +8663,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8611,7 +8672,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 183
+ "__id__": 184
}
],
"_N$interactable": true,
@@ -8667,14 +8728,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 178
+ "__id__": 179
},
"_id": "2bhrCpcRxImqyWzBaIVVCd"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 167
+ "__id__": 168
},
"component": "",
"_componentId": "7fe14dRFQZKSKKAoEn4S7OU",
@@ -8686,13 +8747,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 168
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 185
+ "__id__": 186
}
],
"_prefab": null,
@@ -8748,7 +8809,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 185
},
"_enabled": true,
"_materials": [
@@ -8780,7 +8841,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"alignMode": 1,
@@ -8807,7 +8868,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 168
},
"_enabled": true,
"label": null,
@@ -8823,22 +8884,22 @@
},
"_children": [
{
- "__id__": 189
+ "__id__": 190
},
{
- "__id__": 193
+ "__id__": 194
},
{
- "__id__": 195
+ "__id__": 196
},
{
- "__id__": 201
+ "__id__": 202
}
],
"_active": false,
"_components": [
{
- "__id__": 207
+ "__id__": 208
}
],
"_prefab": null,
@@ -8894,19 +8955,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 190
- },
{
"__id__": 191
},
{
"__id__": 192
+ },
+ {
+ "__id__": 193
}
],
"_prefab": null,
@@ -8962,7 +9023,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_materials": [
@@ -8994,7 +9055,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9021,7 +9082,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 190
},
"_enabled": true,
"_id": "7aMdyhm41AyqFZMnIAtTUY"
@@ -9031,13 +9092,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 195
}
],
"_prefab": null,
@@ -9093,7 +9154,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 193
+ "__id__": 194
},
"_enabled": true,
"_materials": [
@@ -9125,20 +9186,20 @@
"_name": "nextBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 196
+ "__id__": 197
}
],
"_active": true,
"_components": [
{
- "__id__": 198
+ "__id__": 199
},
{
- "__id__": 199
+ "__id__": 200
}
],
"_prefab": null,
@@ -9194,13 +9255,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 195
+ "__id__": 196
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 197
+ "__id__": 198
}
],
"_prefab": null,
@@ -9256,7 +9317,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 196
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -9290,7 +9351,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_materials": [
@@ -9322,7 +9383,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 195
+ "__id__": 196
},
"_enabled": true,
"_normalMaterial": null,
@@ -9331,7 +9392,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 200
+ "__id__": 201
}
],
"_N$interactable": true,
@@ -9387,7 +9448,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 195
+ "__id__": 196
},
"_id": "02dmnqIIhNA7gNoxAqWnCT"
},
@@ -9406,20 +9467,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 188
+ "__id__": 189
},
"_children": [
{
- "__id__": 202
+ "__id__": 203
}
],
"_active": true,
"_components": [
{
- "__id__": 204
+ "__id__": 205
},
{
- "__id__": 205
+ "__id__": 206
}
],
"_prefab": null,
@@ -9475,13 +9536,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 201
+ "__id__": 202
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 203
+ "__id__": 204
}
],
"_prefab": null,
@@ -9537,7 +9598,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 202
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9571,7 +9632,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_materials": [
@@ -9603,7 +9664,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 201
+ "__id__": 202
},
"_enabled": true,
"_normalMaterial": null,
@@ -9612,7 +9673,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 206
+ "__id__": 207
}
],
"_N$interactable": true,
@@ -9668,7 +9729,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 201
+ "__id__": 202
},
"_id": "340osYA4tCpJlhedNAxg8f"
},
@@ -9687,7 +9748,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 189
},
"_enabled": true,
"alignMode": 1,
@@ -9718,28 +9779,28 @@
},
"_children": [
{
- "__id__": 209
+ "__id__": 210
},
{
- "__id__": 213
+ "__id__": 214
},
{
- "__id__": 215
+ "__id__": 216
},
{
- "__id__": 287
+ "__id__": 288
},
{
- "__id__": 308
+ "__id__": 309
},
{
- "__id__": 331
+ "__id__": 332
}
],
"_active": false,
"_components": [
{
- "__id__": 352
+ "__id__": 353
}
],
"_prefab": null,
@@ -9795,19 +9856,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 210
- },
{
"__id__": 211
},
{
"__id__": 212
+ },
+ {
+ "__id__": 213
}
],
"_prefab": null,
@@ -9863,7 +9924,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_materials": [
@@ -9895,7 +9956,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"alignMode": 1,
@@ -9922,7 +9983,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 210
},
"_enabled": true,
"_id": "c22Pk+4yZHHaEcGiym9WxK"
@@ -9932,13 +9993,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 215
}
],
"_prefab": null,
@@ -9994,7 +10055,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -10026,32 +10087,32 @@
"_name": "Time",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 216
+ "__id__": 217
},
{
- "__id__": 218
+ "__id__": 219
},
{
- "__id__": 220
+ "__id__": 221
},
{
- "__id__": 222
+ "__id__": 223
},
{
- "__id__": 224
+ "__id__": 225
},
{
- "__id__": 226
+ "__id__": 227
},
{
- "__id__": 242
+ "__id__": 243
},
{
- "__id__": 281
+ "__id__": 282
}
],
"_active": true,
@@ -10109,13 +10170,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 217
+ "__id__": 218
}
],
"_prefab": null,
@@ -10171,7 +10232,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 216
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -10205,13 +10266,13 @@
"_name": "result_Label1",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 219
+ "__id__": 220
}
],
"_prefab": null,
@@ -10267,7 +10328,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 218
+ "__id__": 219
},
"_enabled": true,
"_materials": [
@@ -10301,13 +10362,13 @@
"_name": "time_show",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 221
+ "__id__": 222
}
],
"_prefab": null,
@@ -10363,7 +10424,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 220
+ "__id__": 221
},
"_enabled": true,
"_materials": [
@@ -10397,13 +10458,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 223
+ "__id__": 224
}
],
"_prefab": null,
@@ -10459,7 +10520,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 223
},
"_enabled": true,
"_materials": [
@@ -10492,13 +10553,13 @@
"_name": "time_hide",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 225
+ "__id__": 226
}
],
"_prefab": null,
@@ -10554,7 +10615,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 224
+ "__id__": 225
},
"_enabled": true,
"_materials": [
@@ -10588,35 +10649,35 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 227
+ "__id__": 228
},
{
- "__id__": 229
+ "__id__": 230
},
{
- "__id__": 231
+ "__id__": 232
},
{
- "__id__": 233
+ "__id__": 234
},
{
- "__id__": 235
+ "__id__": 236
},
{
- "__id__": 237
+ "__id__": 238
}
],
"_active": false,
"_components": [
{
- "__id__": 239
+ "__id__": 240
},
{
- "__id__": 240
+ "__id__": 241
}
],
"_prefab": null,
@@ -10672,13 +10733,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 229
}
],
"_prefab": null,
@@ -10734,7 +10795,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10768,13 +10829,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 231
}
],
"_prefab": null,
@@ -10830,7 +10891,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10864,13 +10925,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 233
}
],
"_prefab": null,
@@ -10926,7 +10987,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10960,13 +11021,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 234
+ "__id__": 235
}
],
"_prefab": null,
@@ -11022,7 +11083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -11056,13 +11117,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 236
+ "__id__": 237
}
],
"_prefab": null,
@@ -11118,7 +11179,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 235
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -11152,13 +11213,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 226
+ "__id__": 227
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 238
+ "__id__": 239
}
],
"_prefab": null,
@@ -11214,7 +11275,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -11248,7 +11309,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_materials": [
@@ -11282,7 +11343,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 226
+ "__id__": 227
},
"_enabled": true,
"_normalMaterial": null,
@@ -11291,7 +11352,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 241
+ "__id__": 242
}
],
"_N$interactable": true,
@@ -11347,7 +11408,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 226
+ "__id__": 227
},
"_id": "f26wyaXk1ODqKTicGneesK"
},
@@ -11364,41 +11425,41 @@
"_name": "buyBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 243
+ "__id__": 244
},
{
- "__id__": 245
+ "__id__": 246
},
{
- "__id__": 247
+ "__id__": 248
},
{
- "__id__": 249
+ "__id__": 250
},
{
- "__id__": 251
+ "__id__": 252
},
{
- "__id__": 258
+ "__id__": 259
},
{
- "__id__": 267
+ "__id__": 268
},
{
- "__id__": 276
+ "__id__": 277
}
],
"_active": true,
"_components": [
{
- "__id__": 278
+ "__id__": 279
},
{
- "__id__": 279
+ "__id__": 280
}
],
"_prefab": null,
@@ -11454,13 +11515,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 245
}
],
"_prefab": null,
@@ -11516,7 +11577,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11550,13 +11611,13 @@
"_name": "coins_+",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 247
}
],
"_prefab": null,
@@ -11612,7 +11673,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 246
},
"_enabled": true,
"_materials": [
@@ -11646,13 +11707,13 @@
"_name": "coins2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 249
}
],
"_prefab": null,
@@ -11708,7 +11769,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11742,13 +11803,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 251
}
],
"_prefab": null,
@@ -11804,7 +11865,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 250
},
"_enabled": true,
"_materials": [
@@ -11838,17 +11899,17 @@
"_name": "coin1",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 252
+ "__id__": 253
},
{
- "__id__": 254
+ "__id__": 255
},
{
- "__id__": 256
+ "__id__": 257
}
],
"_active": false,
@@ -11906,13 +11967,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 253
+ "__id__": 254
}
],
"_prefab": null,
@@ -11968,7 +12029,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 253
},
"_enabled": true,
"_materials": [
@@ -12002,13 +12063,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 255
+ "__id__": 256
}
],
"_prefab": null,
@@ -12064,7 +12125,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 254
+ "__id__": 255
},
"_enabled": true,
"_materials": [
@@ -12098,13 +12159,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 251
+ "__id__": 252
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 257
+ "__id__": 258
}
],
"_prefab": null,
@@ -12160,7 +12221,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 256
+ "__id__": 257
},
"_enabled": true,
"_materials": [
@@ -12194,20 +12255,20 @@
"_name": "coin2",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 259
+ "__id__": 260
},
{
- "__id__": 261
+ "__id__": 262
},
{
- "__id__": 263
+ "__id__": 264
},
{
- "__id__": 265
+ "__id__": 266
}
],
"_active": false,
@@ -12265,13 +12326,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 261
}
],
"_prefab": null,
@@ -12327,7 +12388,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 259
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -12361,13 +12422,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 262
+ "__id__": 263
}
],
"_prefab": null,
@@ -12423,7 +12484,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 261
+ "__id__": 262
},
"_enabled": true,
"_materials": [
@@ -12457,13 +12518,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 264
+ "__id__": 265
}
],
"_prefab": null,
@@ -12519,7 +12580,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 263
+ "__id__": 264
},
"_enabled": true,
"_materials": [
@@ -12553,13 +12614,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 258
+ "__id__": 259
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 266
+ "__id__": 267
}
],
"_prefab": null,
@@ -12615,7 +12676,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 265
+ "__id__": 266
},
"_enabled": true,
"_materials": [
@@ -12649,20 +12710,20 @@
"_name": "coin3",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [
{
- "__id__": 268
+ "__id__": 269
},
{
- "__id__": 270
+ "__id__": 271
},
{
- "__id__": 272
+ "__id__": 273
},
{
- "__id__": 274
+ "__id__": 275
}
],
"_active": false,
@@ -12720,13 +12781,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 269
+ "__id__": 270
}
],
"_prefab": null,
@@ -12782,7 +12843,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 268
+ "__id__": 269
},
"_enabled": true,
"_materials": [
@@ -12816,13 +12877,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 271
+ "__id__": 272
}
],
"_prefab": null,
@@ -12878,7 +12939,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 270
+ "__id__": 271
},
"_enabled": true,
"_materials": [
@@ -12912,13 +12973,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 273
+ "__id__": 274
}
],
"_prefab": null,
@@ -12974,7 +13035,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 272
+ "__id__": 273
},
"_enabled": true,
"_materials": [
@@ -13008,13 +13069,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 267
+ "__id__": 268
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 275
+ "__id__": 276
}
],
"_prefab": null,
@@ -13070,7 +13131,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 274
+ "__id__": 275
},
"_enabled": true,
"_materials": [
@@ -13104,13 +13165,13 @@
"_name": "coins",
"_objFlags": 0,
"_parent": {
- "__id__": 242
+ "__id__": 243
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 277
+ "__id__": 278
}
],
"_prefab": null,
@@ -13166,7 +13227,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 276
+ "__id__": 277
},
"_enabled": true,
"_materials": [
@@ -13200,7 +13261,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_materials": [
@@ -13232,7 +13293,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 242
+ "__id__": 243
},
"_enabled": true,
"_normalMaterial": null,
@@ -13241,7 +13302,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 280
+ "__id__": 281
}
],
"_N$interactable": true,
@@ -13297,7 +13358,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 242
+ "__id__": 243
},
"_id": "d9X6reFQ5ElIF/oEEoTwvB"
},
@@ -13316,20 +13377,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 215
+ "__id__": 216
},
"_children": [
{
- "__id__": 282
+ "__id__": 283
}
],
"_active": true,
"_components": [
{
- "__id__": 284
+ "__id__": 285
},
{
- "__id__": 285
+ "__id__": 286
}
],
"_prefab": null,
@@ -13385,13 +13446,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 281
+ "__id__": 282
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 283
+ "__id__": 284
}
],
"_prefab": null,
@@ -13447,7 +13508,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 282
+ "__id__": 283
},
"_enabled": true,
"_materials": [
@@ -13481,7 +13542,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_materials": [
@@ -13513,7 +13574,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 281
+ "__id__": 282
},
"_enabled": true,
"_normalMaterial": null,
@@ -13522,7 +13583,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 286
+ "__id__": 287
}
],
"_N$interactable": true,
@@ -13578,7 +13639,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 281
+ "__id__": 282
},
"_id": "48mz2WOYxOmpmmNFGfPFpu"
},
@@ -13597,23 +13658,23 @@
"_name": "Boom",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 288
+ "__id__": 289
},
{
- "__id__": 290
+ "__id__": 291
},
{
- "__id__": 292
+ "__id__": 293
},
{
- "__id__": 300
+ "__id__": 301
},
{
- "__id__": 306
+ "__id__": 307
}
],
"_active": false,
@@ -13671,13 +13732,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 289
+ "__id__": 290
}
],
"_prefab": null,
@@ -13733,7 +13794,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 289
},
"_enabled": true,
"_materials": [
@@ -13767,13 +13828,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 291
+ "__id__": 292
}
],
"_prefab": null,
@@ -13829,7 +13890,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 290
+ "__id__": 291
},
"_enabled": true,
"_materials": [
@@ -13863,23 +13924,23 @@
"_name": "boomBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 293
+ "__id__": 294
},
{
- "__id__": 295
+ "__id__": 296
}
],
"_active": false,
"_components": [
{
- "__id__": 297
+ "__id__": 298
},
{
- "__id__": 298
+ "__id__": 299
}
],
"_prefab": null,
@@ -13935,13 +13996,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 294
+ "__id__": 295
}
],
"_prefab": null,
@@ -13997,7 +14058,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 293
+ "__id__": 294
},
"_enabled": true,
"_materials": [
@@ -14031,13 +14092,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 292
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 296
+ "__id__": 297
}
],
"_prefab": null,
@@ -14093,7 +14154,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 295
+ "__id__": 296
},
"_enabled": true,
"_materials": [
@@ -14127,7 +14188,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_materials": [
@@ -14161,7 +14222,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 292
+ "__id__": 293
},
"_enabled": true,
"_normalMaterial": null,
@@ -14170,7 +14231,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 299
+ "__id__": 300
}
],
"_N$interactable": true,
@@ -14226,7 +14287,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 292
+ "__id__": 293
},
"_id": "fdZzVHD4hNAIg80rQMiVrL"
},
@@ -14243,20 +14304,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [
{
- "__id__": 301
+ "__id__": 302
}
],
"_active": true,
"_components": [
{
- "__id__": 303
+ "__id__": 304
},
{
- "__id__": 304
+ "__id__": 305
}
],
"_prefab": null,
@@ -14312,13 +14373,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 300
+ "__id__": 301
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 302
+ "__id__": 303
}
],
"_prefab": null,
@@ -14374,7 +14435,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 301
+ "__id__": 302
},
"_enabled": true,
"_materials": [
@@ -14408,7 +14469,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_materials": [
@@ -14440,7 +14501,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 300
+ "__id__": 301
},
"_enabled": true,
"_normalMaterial": null,
@@ -14449,7 +14510,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 305
+ "__id__": 306
}
],
"_N$interactable": true,
@@ -14505,7 +14566,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 300
+ "__id__": 301
},
"_id": "55yv+R8WZJC6lx8Nc3Ql1k"
},
@@ -14524,13 +14585,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 287
+ "__id__": 288
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 307
+ "__id__": 308
}
],
"_prefab": null,
@@ -14586,7 +14647,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 306
+ "__id__": 307
},
"_enabled": true,
"_materials": [
@@ -14620,20 +14681,20 @@
"_name": "Lock",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 309
+ "__id__": 310
},
{
- "__id__": 311
+ "__id__": 312
},
{
- "__id__": 313
+ "__id__": 314
},
{
- "__id__": 315
+ "__id__": 316
}
],
"_active": false,
@@ -14691,13 +14752,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 310
+ "__id__": 311
}
],
"_prefab": null,
@@ -14753,7 +14814,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 309
+ "__id__": 310
},
"_enabled": true,
"_materials": [
@@ -14787,13 +14848,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 312
+ "__id__": 313
}
],
"_prefab": null,
@@ -14849,7 +14910,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 312
},
"_enabled": true,
"_materials": [
@@ -14882,13 +14943,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 314
+ "__id__": 315
}
],
"_prefab": null,
@@ -14944,7 +15005,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 313
+ "__id__": 314
},
"_enabled": false,
"_materials": [
@@ -14978,35 +15039,35 @@
"_name": "lockBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 308
+ "__id__": 309
},
"_children": [
{
- "__id__": 316
+ "__id__": 317
},
{
- "__id__": 318
+ "__id__": 319
},
{
- "__id__": 320
+ "__id__": 321
},
{
- "__id__": 322
+ "__id__": 323
},
{
- "__id__": 324
+ "__id__": 325
},
{
- "__id__": 326
+ "__id__": 327
}
],
"_active": true,
"_components": [
{
- "__id__": 328
+ "__id__": 329
},
{
- "__id__": 329
+ "__id__": 330
}
],
"_prefab": null,
@@ -15062,13 +15123,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 317
+ "__id__": 318
}
],
"_prefab": null,
@@ -15124,7 +15185,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 316
+ "__id__": 317
},
"_enabled": true,
"_materials": [
@@ -15158,13 +15219,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 319
+ "__id__": 320
}
],
"_prefab": null,
@@ -15220,7 +15281,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 318
+ "__id__": 319
},
"_enabled": true,
"_materials": [
@@ -15254,13 +15315,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 321
+ "__id__": 322
}
],
"_prefab": null,
@@ -15316,7 +15377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 320
+ "__id__": 321
},
"_enabled": true,
"_materials": [
@@ -15350,13 +15411,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 323
+ "__id__": 324
}
],
"_prefab": null,
@@ -15412,7 +15473,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 322
+ "__id__": 323
},
"_enabled": true,
"_materials": [
@@ -15446,13 +15507,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 325
+ "__id__": 326
}
],
"_prefab": null,
@@ -15508,7 +15569,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 324
+ "__id__": 325
},
"_enabled": true,
"_materials": [
@@ -15542,13 +15603,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 315
+ "__id__": 316
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 327
+ "__id__": 328
}
],
"_prefab": null,
@@ -15604,7 +15665,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 326
+ "__id__": 327
},
"_enabled": true,
"_materials": [
@@ -15638,7 +15699,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_materials": [
@@ -15672,7 +15733,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 315
+ "__id__": 316
},
"_enabled": true,
"_normalMaterial": null,
@@ -15681,7 +15742,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 330
+ "__id__": 331
}
],
"_N$interactable": true,
@@ -15737,7 +15798,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 315
+ "__id__": 316
},
"_id": "655dVf4UVDOrfIwT5AEPmn"
},
@@ -15754,23 +15815,23 @@
"_name": "Health",
"_objFlags": 0,
"_parent": {
- "__id__": 208
+ "__id__": 209
},
"_children": [
{
- "__id__": 332
+ "__id__": 333
},
{
- "__id__": 334
+ "__id__": 335
},
{
- "__id__": 340
+ "__id__": 341
},
{
- "__id__": 344
+ "__id__": 345
},
{
- "__id__": 350
+ "__id__": 351
}
],
"_active": false,
@@ -15828,13 +15889,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 333
+ "__id__": 334
}
],
"_prefab": null,
@@ -15890,7 +15951,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 332
+ "__id__": 333
},
"_enabled": true,
"_materials": [
@@ -15924,20 +15985,20 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 335
+ "__id__": 336
},
{
- "__id__": 337
+ "__id__": 338
}
],
"_active": true,
"_components": [
{
- "__id__": 339
+ "__id__": 340
}
],
"_prefab": null,
@@ -15993,13 +16054,13 @@
"_name": "hp_-",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 336
+ "__id__": 337
}
],
"_prefab": null,
@@ -16055,7 +16116,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 335
+ "__id__": 336
},
"_enabled": true,
"_materials": [
@@ -16089,13 +16150,13 @@
"_name": "hp_1",
"_objFlags": 0,
"_parent": {
- "__id__": 334
+ "__id__": 335
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 338
+ "__id__": 339
}
],
"_prefab": null,
@@ -16151,7 +16212,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 337
+ "__id__": 338
},
"_enabled": true,
"_materials": [
@@ -16185,7 +16246,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 334
+ "__id__": 335
},
"_enabled": true,
"_materials": [
@@ -16219,16 +16280,16 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 341
+ "__id__": 342
},
{
- "__id__": 342
+ "__id__": 343
}
],
"_prefab": null,
@@ -16284,7 +16345,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_materials": [
@@ -16318,7 +16379,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 341
},
"_enabled": true,
"_normalMaterial": null,
@@ -16327,7 +16388,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 343
+ "__id__": 344
}
],
"_N$interactable": true,
@@ -16383,7 +16444,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 340
+ "__id__": 341
},
"_id": "e6+nQbfBJDk5i7aunx3eFh"
},
@@ -16402,20 +16463,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [
{
- "__id__": 345
+ "__id__": 346
}
],
"_active": true,
"_components": [
{
- "__id__": 347
+ "__id__": 348
},
{
- "__id__": 348
+ "__id__": 349
}
],
"_prefab": null,
@@ -16471,13 +16532,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 344
+ "__id__": 345
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 346
+ "__id__": 347
}
],
"_prefab": null,
@@ -16533,7 +16594,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 345
+ "__id__": 346
},
"_enabled": true,
"_materials": [
@@ -16567,7 +16628,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_materials": [
@@ -16599,7 +16660,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 344
+ "__id__": 345
},
"_enabled": true,
"_normalMaterial": null,
@@ -16608,7 +16669,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 349
+ "__id__": 350
}
],
"_N$interactable": true,
@@ -16664,7 +16725,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 344
+ "__id__": 345
},
"_id": "bbSZLwLOdIJJ624BuB24QD"
},
@@ -16683,13 +16744,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 331
+ "__id__": 332
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 351
+ "__id__": 352
}
],
"_prefab": null,
@@ -16745,7 +16806,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 350
+ "__id__": 351
},
"_enabled": true,
"_materials": [
@@ -16779,7 +16840,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 208
+ "__id__": 209
},
"_enabled": true,
"alignMode": 1,
@@ -16837,61 +16898,61 @@
},
"_children": [
{
- "__id__": 355
+ "__id__": 356
},
{
- "__id__": 358
+ "__id__": 359
},
{
- "__id__": 360
+ "__id__": 361
},
{
- "__id__": 367
+ "__id__": 368
},
{
- "__id__": 369
+ "__id__": 370
},
{
- "__id__": 373
+ "__id__": 374
},
{
- "__id__": 375
+ "__id__": 376
},
{
- "__id__": 377
+ "__id__": 378
},
{
- "__id__": 379
+ "__id__": 380
},
{
- "__id__": 381
+ "__id__": 382
},
{
- "__id__": 383
+ "__id__": 384
},
{
- "__id__": 385
+ "__id__": 386
},
{
- "__id__": 389
+ "__id__": 390
},
{
- "__id__": 393
+ "__id__": 394
},
{
- "__id__": 397
+ "__id__": 398
},
{
- "__id__": 399
+ "__id__": 400
},
{
- "__id__": 401
+ "__id__": 402
}
],
"_active": false,
"_components": [
{
- "__id__": 403
+ "__id__": 404
}
],
"_prefab": null,
@@ -16947,16 +17008,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 356
+ "__id__": 357
},
{
- "__id__": 357
+ "__id__": 358
}
],
"_prefab": null,
@@ -17012,7 +17073,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_materials": [
@@ -17044,7 +17105,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 355
+ "__id__": 356
},
"_enabled": true,
"_id": "081I6vq85Jwqkph7MYgiJK"
@@ -17054,13 +17115,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 359
+ "__id__": 360
}
],
"_prefab": null,
@@ -17116,7 +17177,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 358
+ "__id__": 359
},
"_enabled": true,
"_materials": [
@@ -17148,23 +17209,23 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [
{
- "__id__": 361
+ "__id__": 362
}
],
"_active": true,
"_components": [
- {
- "__id__": 363
- },
{
"__id__": 364
},
{
- "__id__": 366
+ "__id__": 365
+ },
+ {
+ "__id__": 367
}
],
"_prefab": null,
@@ -17220,13 +17281,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 360
+ "__id__": 361
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 362
+ "__id__": 363
}
],
"_prefab": null,
@@ -17282,7 +17343,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 361
+ "__id__": 362
},
"_enabled": true,
"_materials": [
@@ -17316,7 +17377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_materials": [
@@ -17350,7 +17411,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_normalMaterial": null,
@@ -17359,7 +17420,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 365
+ "__id__": 366
}
],
"_N$interactable": true,
@@ -17415,7 +17476,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 360
+ "__id__": 361
},
"_id": "10Gq5GdVNFoaGKYCbUkdh0"
},
@@ -17434,7 +17495,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 360
+ "__id__": 361
},
"_enabled": true,
"_id": "48L+wrOmdFHpjlTvLGv0eT"
@@ -17444,13 +17505,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 368
+ "__id__": 369
}
],
"_prefab": null,
@@ -17506,7 +17567,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 367
+ "__id__": 368
},
"_enabled": true,
"_materials": [
@@ -17540,16 +17601,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 370
+ "__id__": 371
},
{
- "__id__": 371
+ "__id__": 372
}
],
"_prefab": null,
@@ -17605,7 +17666,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_materials": [
@@ -17639,7 +17700,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 370
},
"_enabled": true,
"_normalMaterial": null,
@@ -17648,7 +17709,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 372
+ "__id__": 373
}
],
"_N$interactable": true,
@@ -17704,7 +17765,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 369
+ "__id__": 370
},
"_id": "9cyVET3cdKsYjhCs6UcCZp"
},
@@ -17723,13 +17784,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 374
+ "__id__": 375
}
],
"_prefab": null,
@@ -17785,7 +17846,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 373
+ "__id__": 374
},
"_enabled": true,
"_materials": [
@@ -17819,13 +17880,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 376
+ "__id__": 377
}
],
"_prefab": null,
@@ -17881,7 +17942,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 375
+ "__id__": 376
},
"_enabled": true,
"_materials": [
@@ -17915,13 +17976,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 378
+ "__id__": 379
}
],
"_prefab": null,
@@ -17977,7 +18038,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 377
+ "__id__": 378
},
"_enabled": true,
"_materials": [
@@ -18011,13 +18072,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 380
+ "__id__": 381
}
],
"_prefab": null,
@@ -18073,7 +18134,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 379
+ "__id__": 380
},
"_enabled": true,
"_materials": [
@@ -18107,13 +18168,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 382
+ "__id__": 383
}
],
"_prefab": null,
@@ -18169,7 +18230,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 382
},
"_enabled": true,
"_materials": [
@@ -18203,13 +18264,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 384
+ "__id__": 385
}
],
"_prefab": null,
@@ -18265,7 +18326,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 383
+ "__id__": 384
},
"_enabled": true,
"_materials": [
@@ -18299,16 +18360,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 386
+ "__id__": 387
},
{
- "__id__": 387
+ "__id__": 388
}
],
"_prefab": null,
@@ -18364,7 +18425,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_materials": [
@@ -18398,7 +18459,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 386
},
"_enabled": true,
"_normalMaterial": null,
@@ -18407,7 +18468,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 388
+ "__id__": 389
}
],
"_N$interactable": true,
@@ -18463,14 +18524,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 385
+ "__id__": 386
},
"_id": "f5jlj3QZFNUoLmIDeOTDNk"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18482,16 +18543,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 390
+ "__id__": 391
},
{
- "__id__": 391
+ "__id__": 392
}
],
"_prefab": null,
@@ -18547,7 +18608,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_materials": [
@@ -18581,7 +18642,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 390
},
"_enabled": true,
"_normalMaterial": null,
@@ -18590,7 +18651,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 392
+ "__id__": 393
}
],
"_N$interactable": true,
@@ -18646,14 +18707,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 389
+ "__id__": 390
},
"_id": "f7PV5tqLpANY2mQ5mNiG8G"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18665,16 +18726,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 394
+ "__id__": 395
},
{
- "__id__": 395
+ "__id__": 396
}
],
"_prefab": null,
@@ -18730,7 +18791,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_materials": [
@@ -18764,7 +18825,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 394
},
"_enabled": true,
"_normalMaterial": null,
@@ -18773,7 +18834,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 396
+ "__id__": 397
}
],
"_N$interactable": true,
@@ -18829,14 +18890,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 393
+ "__id__": 394
},
"_id": "f9Y6q5sbpGXrDTpVBgbvWY"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 354
+ "__id__": 355
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18848,13 +18909,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 398
+ "__id__": 399
}
],
"_prefab": null,
@@ -18910,7 +18971,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 397
+ "__id__": 398
},
"_enabled": true,
"_materials": [
@@ -18944,13 +19005,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 400
+ "__id__": 401
}
],
"_prefab": null,
@@ -19006,7 +19067,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 399
+ "__id__": 400
},
"_enabled": true,
"_materials": [
@@ -19040,13 +19101,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 354
+ "__id__": 355
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 402
+ "__id__": 403
}
],
"_prefab": null,
@@ -19102,7 +19163,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 401
+ "__id__": 402
},
"_enabled": true,
"_materials": [
@@ -19136,17 +19197,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 354
+ "__id__": 355
},
"_enabled": true,
"music": {
- "__id__": 397
+ "__id__": 398
},
"effect": {
- "__id__": 399
+ "__id__": 400
},
"vibrate": {
- "__id__": 401
+ "__id__": 402
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -19167,10 +19228,10 @@
"_active": false,
"_components": [
{
- "__id__": 405
+ "__id__": 406
},
{
- "__id__": 406
+ "__id__": 407
}
],
"_prefab": null,
@@ -19226,7 +19287,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": true,
"_materials": [
@@ -19268,7 +19329,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 404
+ "__id__": 405
},
"_enabled": false,
"_id": "00qpMLeBFNhYRX9r3QZvyP"
diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js
index d089c36..0a5a6a9 100644
--- a/temp/quick-scripts/dst/__qc_bundle__.js
+++ b/temp/quick-scripts/dst/__qc_bundle__.js
@@ -847,10 +847,12 @@ var NewClass = /** @class */ (function (_super) {
_this.shop = null;
//商品列表
_this.itemList = null;
+ // onLoad () {}
+ //金币数量
+ _this.coin = null;
return _this;
// update (dt) {}
}
- // onLoad () {}
NewClass.prototype.start = function () {
this.openShop();
};
@@ -882,6 +884,7 @@ var NewClass = /** @class */ (function (_super) {
NumberToImage_1.default.numberToImageNodes(product.price / 100, 40, 25, "scoin_", title, false);
}
}
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
};
//关闭商店界面
NewClass.prototype.closeShop = function () {
@@ -894,6 +897,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "itemList", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "coin", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -912,7 +918,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUF1RDtBQUVqRCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFEQztRQXBERyxNQUFNO1FBRU4sVUFBSSxHQUFZLElBQUksQ0FBQztRQUNyQixNQUFNO1FBRU4sY0FBUSxHQUFZLElBQUksQ0FBQzs7UUE4Q3pCLGlCQUFpQjtJQUNyQixDQUFDO0lBOUNHLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRO0lBQ1IsMkJBQVEsR0FBUjtRQUNJLFNBQVM7UUFDVCxJQUFNLFFBQVEsR0FBRztZQUNiLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN6RSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ25FLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzNGLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1NBQ3hGLENBQUM7UUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBR0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN2RjtZQUNELElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRTtnQkFDbEIsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDeEY7U0FDSjtJQUNMLENBQUM7SUFHRCxRQUFRO0lBQ1IsNEJBQVMsR0FBVDtRQUNJLE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUEvQ0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzhDQUNPO0lBTlIsUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFENUI7SUFBRCxlQUFDO0NBckRELEFBcURDLENBckRxQyxFQUFFLENBQUMsU0FBUyxHQXFEakQ7a0JBckRvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpc3QgZnJvbSBcIi4uLy4uL1NjcmlwdC9tb2R1bGUvUmFua0xpc3QvTGlzdFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vLi4vU2NyaXB0L051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICAvL+WVhuW6l+eVjOmdolxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzaG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIC8v5ZWG5ZOB5YiX6KGoXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGl0ZW1MaXN0OiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMub3BlblNob3AoKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5ZWG5bqX55WM6Z2iXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDllYblk4HmlbDmja7mlbDnu4RcclxuICAgICAgICBjb25zdCBwcm9kdWN0cyA9IFtcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18xXCIsIG5hbWU6IFwi6YeR5biB5YyFMVwiLCBwcmljZTogNjAwLCB0aXRsZTogXCIzeDLlha3moaPph5HluIFcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzJcIiwgbmFtZTogXCLph5HluIHljIUyXCIsIHByaWNlOiAzNjAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzNcIiwgbmFtZTogXCLph5HluIHljIUzXCIsIHByaWNlOiA2ODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzRcIiwgbmFtZTogXCLph5HluIHljIU0XCIsIHByaWNlOiAxMjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja181XCIsIG5hbWU6IFwi6YeR5biB5YyFNVwiLCBwcmljZTogMzI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNlwiLCBuYW1lOiBcIumHkeW4geWMhTZcIiwgcHJpY2U6IDY0ODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwidW5saW1pdGVkX2hlYWx0aF9idW5kbGVfMVwiLCBuYW1lOiBcIuaXoOmZkOS9k+WKm+e7hOWQiOWMhTFcIiwgcHJpY2U6IDE4MDAsIHRpdGxlOiBcIjPkuKrmqKrniYjnpLzljIVcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwidW5saW1pdGVkX2hlYWx0aF9idW5kbGVfMlwiLCBuYW1lOiBcIuaXoOmZkOS9k+WKm+e7hOWQiOWMhTJcIiwgcHJpY2U6IDY2MDAsIHRpdGxlOiBcIlwiIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDggJiYgaSA8IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlQ29tcCA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMF0uZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdO1xyXG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0ID0gcHJvZHVjdHNbaSAtIDFdO1xyXG5cclxuICAgICAgICAgICAgaWYgKHNwcml0ZUNvbXAgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ETzog5qC55o2uIHByb2R1Y3RfaWQg5oiWIG5hbWUg6K6+572uIHNwcml0ZUNvbXAuc3ByaXRlRnJhbWVcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIGlmIChwcmljZSAmJiBwcm9kdWN0KSB7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyhwcm9kdWN0LnByaWNlIC8gMTAwLCAyNSwgMjAsIFwiY29zdF9cIiwgcHJpY2UsIGZhbHNlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aXRsZSAmJiBwcm9kdWN0KSB7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyhwcm9kdWN0LnByaWNlIC8gMTAwLCA0MCwgMjUsIFwic2NvaW5fXCIsIHRpdGxlLCBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/lhbPpl63llYblupfnlYzpnaJcclxuICAgIGNsb3NlU2hvcCgpIHtcclxuICAgICAgICAvL+mUgOavgemihOWItuS9k1xyXG4gICAgICAgIHRoaXMuc2hvcC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUF1RDtBQUVqRCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXlEQztRQXhERyxNQUFNO1FBRU4sVUFBSSxHQUFZLElBQUksQ0FBQztRQUNyQixNQUFNO1FBRU4sY0FBUSxHQUFZLElBQUksQ0FBQztRQUN6QixlQUFlO1FBRWYsTUFBTTtRQUVOLFVBQUksR0FBWSxJQUFJLENBQUM7O1FBNkNyQixpQkFBaUI7SUFDckIsQ0FBQztJQTdDRyx3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRO0lBQ1IsMkJBQVEsR0FBUjtRQUNJLFNBQVM7UUFDVCxJQUFNLFFBQVEsR0FBRztZQUNiLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN6RSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ25FLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzNGLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1NBQ3hGLENBQUM7UUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBR0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN2RjtZQUNELElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRTtnQkFDbEIsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDeEY7U0FDSjtRQUNELHVCQUFhLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFHRCxRQUFRO0lBQ1IsNEJBQVMsR0FBVDtRQUNJLE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFuREQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzhDQUNPO0lBS3pCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFYSixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBeUQ1QjtJQUFELGVBQUM7Q0F6REQsQUF5REMsQ0F6RHFDLEVBQUUsQ0FBQyxTQUFTLEdBeURqRDtrQkF6RG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuLi8uLi9TY3JpcHQvTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ld0NsYXNzIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8v5ZWG5bqX55WM6Z2iXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHNob3A6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLy/llYblk4HliJfooahcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaXRlbUxpc3Q6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgLy/ph5HluIHmlbDph49cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgY29pbjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XHJcbiAgICB9XHJcbiAgICAvL+aJk+W8gOWVhuW6l+eVjOmdolxyXG4gICAgb3BlblNob3AoKSB7XHJcbiAgICAgICAgLy8g5ZWG5ZOB5pWw5o2u5pWw57uEXHJcbiAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18yXCIsIG5hbWU6IFwi6YeR5biB5YyFMlwiLCBwcmljZTogMzYwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18zXCIsIG5hbWU6IFwi6YeR5biB5YyFM1wiLCBwcmljZTogNjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNVwiLCBuYW1lOiBcIumHkeW4geWMhTVcIiwgcHJpY2U6IDMyODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzZcIiwgbmFtZTogXCLph5HluIHljIU2XCIsIHByaWNlOiA2NDgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzJcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUyXCIsIHByaWNlOiA2NjAwLCB0aXRsZTogXCJcIiB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZUNvbXAgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzBdLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMV07XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsyXTtcclxuICAgICAgICAgICAgY29uc3QgcHJvZHVjdCA9IHByb2R1Y3RzW2kgLSAxXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzcHJpdGVDb21wICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAocHJpY2UgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMocHJvZHVjdC5wcmljZSAvIDEwMCwgMjUsIDIwLCBcImNvc3RfXCIsIHByaWNlLCBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGl0bGUgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMocHJvZHVjdC5wcmljZSAvIDEwMCwgNDAsIDI1LCBcInNjb2luX1wiLCB0aXRsZSwgZmFsc2UpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxyXG4gICAgY2xvc2VTaG9wKCkge1xyXG4gICAgICAgIC8v6ZSA5q+B6aKE5Yi25L2TXHJcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -6098,7 +6104,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBeUdDO1FBdEdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQTZFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQXpHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQWtCLEVBQUMsTUFBc0I7UUFBdEIsdUJBQUEsRUFBQSxjQUFzQjtRQUMx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Q0FBQztJQUZ2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQXlHakM7SUFBRCxvQkFBQztDQXpHRCxBQXlHQyxDQXpHMEMsRUFBRSxDQUFDLFNBQVMsR0F5R3REO2tCQXpHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyVG9JbWFnZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgZm9udFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIGZvbnQ6YW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgaWYodGhpcy5mb250VUkgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZm9udCA9IHRoaXMuZm9udFVJO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lICx0YXJnZXROb2RlOmNjLk5vZGUsbWlkZGxlOmJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwOyBcclxuICAgICAgICBpZihudW1iZXIgPiA5OSkgY2hhICA9IC1wb3NYXHJcbiAgICAgICAgZWxzZSBpZihudW1iZXIgPCAxMCkgY2hhICA9IHBvc1hcclxuICAgICAgICBpZih0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1pZGRsZSl7XHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUueCA9IHRhcmdldE5vZGUueCAtIHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoICogKHdpZHRoLTE1KSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRUaW1lTWFyZ2luKG51bWJlciwgd2lkdGgsIG5hbWUgLHRhcmdldE5vZGU6Y2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcblxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZihhZnRlck1pbiA8IDEwKSBtaWFvID0gXCIwXCIgKyBhZnRlck1pbjtcclxuXHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG0gKyBtaWFvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gcGFyc2VJbnQocmVzdWx0W2ldLCAxMCk7XHJcbiAgICAgICAgICAgIHRpbWVBcnIucHVzaChkaWdpdCk7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGlmKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZS5jaGlsZHJlbltpXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyB0aW1lQXJyW2ldICsgXCJcIl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gdGltZUFycltpXTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gdGhpcy5mb250Ll9zcHJpdGVGcmFtZXNbbmFtZSArIGRpZ2l0ICsgXCJcIl07XHJcbiAgICAgICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgICAgIG5vZGUueCA9IGkgKiB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGlmKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBMEdDO1FBdkdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQThFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQTFHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDckIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQW1CLEVBQUUsTUFBdUI7UUFBdkIsdUJBQUEsRUFBQSxjQUF1QjtRQUM3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Q0FBQztJQUZ4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQTBHakM7SUFBRCxvQkFBQztDQTFHRCxBQTBHQyxDQTFHMEMsRUFBRSxDQUFDLFNBQVMsR0EwR3REO2tCQTFHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJUb0ltYWdlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICBmb250VUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBzdGF0aWMgZm9udDogYW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5mb250VUkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmZvbnQgPSB0aGlzLmZvbnRVSTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lLCB0YXJnZXROb2RlOiBjYy5Ob2RlLCBtaWRkbGU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwO1xyXG4gICAgICAgIGlmIChudW1iZXIgPiA5OSkgY2hhID0gLXBvc1hcclxuICAgICAgICBlbHNlIGlmIChudW1iZXIgPCAxMCkgY2hhID0gcG9zWFxyXG4gICAgICAgIGlmICh0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtaWRkbGUpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Tm9kZS54ID0gdGFyZ2V0Tm9kZS54IC0gdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGggKiAod2lkdGggLSAxNSkgLyAyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGdldFRpbWVNYXJnaW4obnVtYmVyLCB3aWR0aCwgbmFtZSwgdGFyZ2V0Tm9kZTogY2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDliIZcclxuICAgICAgICBsZXQgbSA9IFwiXCIgKyBtaW47XHJcblxyXG4gICAgICAgIGlmIChtaW4gPCAxMCkgbSA9IFwiMFwiICsgbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZiAoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcblxyXG4gICAgICAgIGxldCByZXN1bHQgPSBtICsgbWlhbztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KHJlc3VsdFtpXSwgMTApO1xyXG4gICAgICAgICAgICB0aW1lQXJyLnB1c2goZGlnaXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldE5vZGUuY2hpbGRyZW5baV0uZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmZvbnQuX3Nwcml0ZUZyYW1lc1tuYW1lICsgdGltZUFycltpXSArIFwiXCJdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzcHJpdGUgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlnaXQgPSB0aW1lQXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICBzcHJpdGUuc3ByaXRlRnJhbWUgPSB0aGlzLmZvbnQuX3Nwcml0ZUZyYW1lc1tuYW1lICsgZGlnaXQgKyBcIlwiXTtcclxuICAgICAgICAgICAgICAgIC8vIOWwhuiKgueCuea3u+WKoOWIsOebruagh+iKgueCueS4i1xyXG4gICAgICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -6499,6 +6505,7 @@ var MapConroler = /** @class */ (function (_super) {
_this.coinPop = null;
_this.timeLabel = null;
_this.levelLabel = null;
+ _this.coin = null;
_this.new_mode = 0;
_this.mapWidth = 0;
_this.mapHeight = 0;
@@ -6587,11 +6594,13 @@ var MapConroler = /** @class */ (function (_super) {
// this.node.getChildByName("Wall").zIndex = 10;
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
+ this.coin = this.node.parent.getChildByName("Top").getChildByName("coin");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel);
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
// var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);
// this.timeLabel.string = timeTemp.toString();
NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, "level_", this.levelLabel, false);
@@ -8375,7 +8384,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLENBQUMsTUFBTSxDQUFDO2lEQUNPO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpREFDTztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBcytEL0I7SUFBRCxrQkFBQztDQXQrREQsQUFzK0RDLENBdCtEd0MsRUFBRSxDQUFDLFNBQVMsR0FzK0RwRDtrQkF0K0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOiBcIuWimeWjgeaVsOe7hFwiIH0pXHJcbiAgICBXYWxsX1ByZWZhYjogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHdhbGxUdXJuUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICB0aW1lQnRuOiBjYy5CdXR0b24gPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIGRlc3Ryb3lCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgbWFnaWNCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBpY2VMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgaGFtbWVyTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG1hZ2ljTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljTWFzazogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoYW1tZXJNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGNvaW5Qb3A6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIHRpbWVMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBsZXZlbExhYmVsOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBuZXdfbW9kZTogbnVtYmVyID0gMDtcclxuICAgIG1hcFdpZHRoOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgd2FsbE51bTogbnVtYmVyID0gMDtcclxuICAgIGJsb2NrTnVtOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwQmxvY2tzV2FsbDogYW55OyAgICAgIC8v5Zyw5Zu+55qE5omA5pyJ5bqV5Z2XXHJcbiAgICBtYXBJbmZvOiBhbnk7ICAgICAgIC8v5Zyw5Zu+6Zmk5LqG5bqV5Z2X55qE5YW25LuW5L+h5oGvXHJcbiAgICBibG9ja3M6IGFueTsgICAgICAgIC8v5pa55Z2X5pWw57uEXHJcbiAgICB3YWxsSW5mbzogYW55OyAgICAgIC8v5aKZ5aOB5pWw57uEXHJcbiAgICB3YWxsQXJyYXk6IGFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazogYW55OyAgLy/ljYfpmY3lnLDlnZfmlbDnu4RcclxuICAgIHNjaGVkdWxlQ2FsbGJhY2s6IGFueTsvL+WAkuiuoeaXtueUqFxyXG4gICAgaG9tZUNhblRvdWNoOiBib29sZWFuID0gdHJ1ZTsvL+aMiemSruWPr+eUqOeKtuaAgVxyXG4gICAgYWdhaW5DYW5Ub3VjaDogYm9vbGVhbiA9IHRydWU7Ly/ph43njqnmjInpkq7lj6/ku6XnlKjnirbmgIFcclxuICAgIGdhbWVPdmVyOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/nu5PmnZ/nirbmgIFcclxuICAgIGdhbWVXaW46IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+iDnOWIqeeKtuaAgVxyXG4gICAgZ2FtZVN0YXJ0OiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/lvIDlp4vnirbmgIFcclxuICAgIHRpbWVOdW1iZXI6IG51bWJlciA9IDA7IC8v5ri45oiP5pe26Ze0IOeUqOS6juWAkuiuoeaXtlxyXG4gICAgY291bnRfVGltZTogbnVtYmVyID0gMDsgLy/nlKjkuo7nu5/orqHmgLvmuLjmiI/ml7bplb9cclxuICAgIGFkZF9UaW1lOiBudW1iZXIgPSAwOyAgIC8v5aSN5rS75pe26Ze0XHJcbiAgICBtYXBCbG9ja0FycmF5OiBhbnk7ICAvL+WcsOWbvueahOaJgOacieagvOWtkOeKtuaAgeWtmOWCqFxyXG4gICAgcGF1c2U6IGJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOiBib29sZWFuID0gZmFsc2U7Ly/plKTlrZDnirbmgIFcclxuICAgIGZyZWV6ZUFycmF5OiBhbnk7IC8v5Ya757uTXHJcbiAgICBsb2Fja0FycmF5OiBhbnk7IC8v5LiK6ZSBXHJcbiAgICBwYXJ0aWNsZUVmZmVjdHM6IGNjLlBhcnRpY2xlQXNzZXRbXTtcclxuICAgIC8vIGxlZnREb29yczogW107IC8v5bem6ZeoXHJcbiAgICByaWdodERvb3JzOiBhbnk7IC8v5Y+z6ZeoXHJcbiAgICB0b3BEb29yczogYW55OyAvL+S4iumXqFxyXG4gICAgYm90dG9tRG9vcnM6IGFueTsgLy/kuIvpl6hcclxuICAgIGxlZnREb29yczogYW55O1xyXG5cclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJkb3duXCIsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIikge1xyXG4gICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLmxlZnREb29ycyA9IFtdOyAvL+W3pumXqFxyXG4gICAgICAgIHRoaXMucmlnaHREb29ycyA9IFtdOyAvL+WPs+mXqFxyXG4gICAgICAgIHRoaXMudG9wRG9vcnMgPSBbXTsgLy/kuIrpl6hcclxuICAgICAgICB0aGlzLmJvdHRvbURvb3JzID0gW107IC8v5LiL6ZeoXHJcbiAgICAgICAgdGhpcy5nYW1lV2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRNYXAoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy/lj5HpgIHmlbDmlbDkuovku7bigJTigJTov5vlhaXlhbPljaFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLlh4blpIfov5vlhaXkuIvkuIDlhbMs5Y+R6YCB5LiL5LiA5YWz6L+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaHml7bpl7RcIiwgdGhpcy50aW1lTnVtYmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDUwLCAyMCwgXCJsZXZlbF9cIiwgdGhpcy5sZXZlbExhYmVsLCBmYWxzZSlcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuW9k+WJjeWFs+WNoVwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKTtcclxuICAgICAgICAvL3RoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLm1hcFdpZHRoID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFswXTtcclxuICAgICAgICB0aGlzLm1hcEhlaWdodCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMV07XHJcbiAgICAgICAgbGV0IGdhcCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5nYXA7XHJcbiAgICAgICAgbGV0IHJpc2VmYWxsID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnJpc2VmYWxsO1xyXG5cclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oYW1tZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndhbGxOdW0gPSAwO1xyXG4gICAgICAgIHRoaXMuc2V0TWFwSW5mbygpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMub3BlbldhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZnJlZXplV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMucmlzZUZhbGxCbGNvayA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZnJlZXplQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmxvYWNrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG5cclxuXHJcbiAgICAgICAgbGV0IHN0YXJ0WCA9IHRoaXMubWFwV2lkdGggJSAyID09IDAgPyAtKHRoaXMubWFwV2lkdGggLSAxKSAqIDYwIDogLSh0aGlzLm1hcFdpZHRoIC0gMSkgKiA2MDtcclxuICAgICAgICBsZXQgc3RhcnRZID0gdGhpcy5tYXBIZWlnaHQgJSAyID09IDAgPyAtKHRoaXMubWFwSGVpZ2h0IC0gMSkgKiA2MCA6IC0odGhpcy5tYXBIZWlnaHQgLSAxKSAqIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WCA9KHRoaXMubWFwV2lkdGgtMSkqNjAgKyA2MDtcclxuICAgICAgICAvLyBzdGFydFkgPS0odGhpcy5tYXBIZWlnaHQtMSkqNjAgLSA2MDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsW2ldID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubWFwSGVpZ2h0OyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksIGopO1xyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZiAocmlzZWZhbGwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksIGopLCByaXNlZmFsbCwgYmxvY2spKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNvay5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZ2FwICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFwR2FwKGNjLnYyKGksIGopLCBnYXApIHx8IGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm1hcEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+WIm+W7uuaWueWdl1xyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbiAgICAvL+WIm+W7uuaWueWdl1xyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcblxyXG5cclxuXHJcbiAgICBibG9ja0luaXQoKSB7XHJcbiAgICAgICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICAgICAgYmxvY2tBcnJheSA9IHRoaXMuc29ydEJsb2NrKGJsb2NrQXJyYXkpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5Yib5bu65pa55Z2XXCIsIGJsb2NrQXJyYXkpO1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgICAgIGxldCBCTE9DS1NfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5pa55Z2X5pWw6YePXHJcbiAgICAgICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgICAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgICAgIGNvbnN0IGNyZWF0ZUJsb2NrcyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9ja0luZm8gPSBibG9ja0FycmF5W2luZGV4XTtcclxuICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoYmxvY2tJbmZvLnBvc2l0aW9uLngsIGJsb2NrSW5mby5wb3NpdGlvbi55KSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGJsb2NrSW5mby5pZCArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJsb2NrSW5mby5zdGFja2luZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNraW5nOiBibG9ja0luZm8uY29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJsb2NrSW5mby50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby5hZGhlc2l2ZVRpbWUgPCAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSBibG9ja0FycmF5W2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCYXJyaWVyXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3luKfmiafooYzml7bpl7Tov4fplb/vvIzlh4/lsJHmr4/luKfliJvlu7rmlbDph49cclxuICAgICAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7XHJcbiAgICAgICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5tYXgoQkxPQ0tTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWluKEJMT0NLU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDkvb/nlKggc2NoZWR1bGVPbmNlIOWcqOS4i+S4gOW4p+aJp+ihjCBjcmVhdGVCbG9ja3NcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVCbG9ja3MoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgfVxyXG4gICAgLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuICAgIHNvcnRCbG9jayhhbGxCbG9ja3M6IHsgY29sb3I6IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgdHlwZTogbnVtYmVyIH1bXSkge1xyXG4gICAgICAgIHJldHVybiBhbGxCbG9ja3Muc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICAgICAgaWYgKGEudHlwZSA9PT0gMSAmJiBiLnR5cGUgIT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDEgJiYgYi50eXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWvuSB0eXBlIOS4jeS4uiAwIOeahOWFg+e0oOaMiSB0eXBlIOaOkuW6j1xyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSA9PT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5YaN5aSE55CGIGJsb2NrIOS4uiAyMyDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDliY3pnaJcclxuICAgICAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgICAgICByZXR1cm4gYS5jb2xvciAtIGIuY29sb3I7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5Yib5bu65aKZ5aOBXHJcblxyXG4gICAgd2FsbEluaXQoKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICAgICAgbGV0IFdBTExTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOWimeWjgeaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICAgICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgICAgICBjb25zdCBjcmVhdGVXYWxscyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ3YWxsXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlV2FsbChkaXIsIGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3luKfmiafooYzml7bpl7Tov4fplb/vvIzlh4/lsJHmr4/luKfliJvlu7rmlbDph49cclxuICAgICAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7XHJcbiAgICAgICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1heChXQUxMU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIFdBTExTX1BFUl9GUkFNRSA9IE1hdGgubWluKFdBTExTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29ybmVyTm9kZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuWimeWjgVxyXG4gICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbiAgICBnZXRXbGxEaXJhY3Rpb24odHlwZSwgcG9pbnRBKSB7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEsIHBvaW50QS55KTtcclxuICAgICAgICBsZXQgcG9pbnRDID0gY2MudjIocG9pbnRBLnggLSAxLCBwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50RCA9IGNjLnYyKHBvaW50QS54LCBwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCwgcG9pbnRBLnkgLSAxKTtcclxuICAgICAgICBsZXQgb3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJ3YWxsXCIpIG9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcblxyXG4gICAgICAgIGlmIChwb2ludEIueCA8IHRoaXMubWFwV2lkdGgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJyaWdodFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRDLnggPj0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qy54XVtwb2ludEMueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwibGVmdFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRELnkgPCB0aGlzLm1hcEhlaWdodCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RC54XVtwb2ludEQueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInVwXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEUueSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRFLnhdW3BvaW50RS55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJkb3duXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXIubGVuZ3RoID4gMikge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXIubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ3YWxsXCIpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlyWzBdO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkaXJbMF0gKyBkaXJbMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNvcm5lck5vZGVzKCkge1xyXG4gICAgICAgIC8vIOWumuS5ieaLkOinkuS9jee9rlxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2ldO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2sub3BhY2l0eSAhPSAyNTApIHtcclxuICAgICAgICAgICAgICAgIGxldCBkaXIgPSB0aGlzLmdldFdsbERpcmFjdGlvbihcInR1cm5cIiwgY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUdXJuKGRpciwgYmxvY2ssIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlV2FsbChkaXJlY3Rpb24sIG5vZGUpIHtcclxuICAgICAgICBsZXQgd2FsbCA9IG51bGw7XHJcbiAgICAgICAgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5zZXREaXJhY3Rpb24oZGlyZWN0aW9uKTtcclxuICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzVdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvcERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbURvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXByaWdodFwiOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCI6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3dubGVmdFwiOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCkge1xyXG4gICAgICAgIGxldCBkb29ySW5mbyA9IGNjLmZ4LkdhbWVDb25maWcuV0FMTF9JTkZPWzBdO1xyXG5cclxuICAgICAgICBpZiAoZG9vckluZm8pIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkb29ySW5mby5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pIHtcclxuICAgICAgICAgICAgICAgICAgICB3YWxsLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChkb29ySW5mb1tqXSwgbnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXkucHVzaCh3YWxsLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sIG5vZGUsIHBvc1gsIHBvc1kpIHtcclxuICAgICAgICBsZXQgd2FsbCA9IG51bGw7XHJcbiAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMud2FsbFR1cm5QcmVmYWIpO1xyXG4gICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlIFwidXByaWdodFwiOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIjogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCI6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAyNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0yNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDIuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIjogY2FzZSBcImxlZnRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMTgwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMTgwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSA0LjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDMuMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gaWYoZGlyZWN0aW9uID09IFwicmlnaHRkb3duXCIgfHwgZGlyZWN0aW9uID09IFwiZG93bnJpZ2h0XCIpIHtcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgXHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG5cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwidXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cGxlZnRcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Ugd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZICogMztcclxuXHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5hbmdsZSA9IC13YWxsLmFuZ2xlO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRpcmVjdGlvbjtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB3YWxsLnpJbmRleCsgXCJcIjtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhwb3NYLHBvc1ksd2FsbC56SW5kZXgpO1xyXG4gICAgICAgIC8vIHRoaXMud2FsbE51bSArPSAgMTtcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtICsgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvL+WcsOWbvuW6leWdl+e8uuWPo+WIpOaWrVxyXG4gICAgbWFwR2FwKHBvaW50LCBnYXApIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocG9pbnQueCA9PSBnYXBbaV0ueCAmJiBwb2ludC55ID09IGdhcFtpXS55KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/ljYfpmY3lnLDlnZfliKTmlq1cclxuICAgIG1hcFJpc2VGYWxsKHBvaW50LCByaXNlZmFsbCwgYmxvY2spIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpc2VmYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwb2ludC54ID09IHJpc2VmYWxsW2ldLnBvcy54ICYmIHBvaW50LnkgPT0gcmlzZWZhbGxbaV0ucG9zLnkpIHtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvciArIFwiXCI7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsIDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsIGRvd24pIHtcclxuICAgICAgICBjb2xvciA9IGNvbG9yLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJpc2VGYWxsQmxjb2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpLnNpemUgPSBjYy5zaXplKDExMCwgMTEwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+afpeivouWPoOWKoOW/q2lkXHJcbiAgICBmb3VuZERvd25CbG9jayhpZCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIoOmZpOWdl1xyXG4gICAgcmVtb3ZlQmxvY2soaWQpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWluQW5kTWF4KGJsb2NrKSB7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGggLSAyO1xyXG4gICAgICAgIGxldCBtaW5ZID0gMTtcclxuICAgICAgICBsZXQgbWF4WSA9IHRoaXMubWFwSGVpZ2h0IC0gMiAtIGhlaWdodCArIDE7XHJcblxyXG4gICAgICAgIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxMFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFggLSAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTRcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE2XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxOFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMjFcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBtaW5YOiBtaW5YLCBtYXhYOiBtYXhYLCBtaW5ZOiBtaW5ZLCBtYXhZOiBtYXhZIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvokL3ngrnmmK/lkKblj6/ku6XmtojpmaRcclxuICAgIGNoZWNrUGFzcyhub2RlLCBibG9ja3MpIHtcclxuICAgICAgICBsZXQgbWluQW5kTWF4ID0gdGhpcy5nZXRNaW5BbmRNYXgobm9kZSk7XHJcbiAgICAgICAgbGV0IG1pblggPSBtaW5BbmRNYXgubWluWDtcclxuICAgICAgICBsZXQgbWF4WCA9IG1pbkFuZE1heC5tYXhYO1xyXG4gICAgICAgIGxldCBtaW5ZID0gbWluQW5kTWF4Lm1pblk7XHJcbiAgICAgICAgbGV0IG1heFkgPSBtaW5BbmRNYXgubWF4WTtcclxuXHJcbiAgICAgICAgbGV0IG5vZGVQb3MgPSBjYy52Mihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSk7XHJcblxyXG4gICAgICAgIC8vIOiOt+WPluWcsOWbvui+ueeVjOS/oeaBr1xyXG5cclxuICAgICAgICBsZXQgYWxsQmxvY2tzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgYWxsQmxvY2tzLnB1c2goY2MudjIobm9kZVBvcy54ICsgYmxvY2tzW2ldLngsIG5vZGVQb3MueSArIGJsb2Nrc1tpXS55KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBjb25zdCBkYXRlMSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bCG5bCP5Z2X5pS+5YWl5pWw57uE55qE5pe26Ze0XCIsZGF0ZTEpO1xyXG5cclxuICAgICAgICBsZXQgamcgPSAtMTtcclxuICAgICAgICBsZXQgcHogPSAwO1xyXG4gICAgICAgIC8vIOiOt+WPluaJgOacieWimeWjgeiKgueCuVxyXG4gICAgICAgIC8vIGxldCB3YWxsID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLmNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcywgbWF4WCwgbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVmdERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbExlZnQgPSB0aGlzLmxlZnREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0V2FsbHMucHVzaCh3YWxsTGVmdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5b6X5Yiw5bem6L655aKZ5aOB5pWw57uEXCIsZGF0ZTYpO1xyXG4gICAgICAgICAgICBpZiAobGVmdFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCBsZWZ0V2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJpZ2h0RG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUmlnaHQgPSB0aGlzLnJpZ2h0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodFdhbGxzLnB1c2god2FsbFJpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyaWdodFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIHJpZ2h0V2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSA8PSBtaW5ZIHx8IGRpcmVjdGlvblsyXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yYXCIsZGF0ZTQpO1xyXG4gICAgICAgICAgICBsZXQgZG93bldhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxCb3R0b20gPSB0aGlzLnRvcERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbEJvdHRvbS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPiB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGRvd25XYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJkb3duXCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgZG93bldhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnkgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJvdHRvbURvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFRvcCA9IHRoaXMuYm90dG9tRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBXYWxscy5wdXNoKHdhbGxUb3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHVwV2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCB1cFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChweiA9PSAwKSBqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3BlbldhbGwubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9wZW5XYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZnJlZXplV2FsbC5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZnJlZXplV2FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5piv5ZCm5Y+v5Lul6YCa6L+H6ZeoXHJcbiAgICBwYXNzV2FsbChqZywgd2FsbEFycmF5LCBub2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIgJiYgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3BlbiA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciAhPSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgIT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGpnID09IHRydWUgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3YWxsQXJyYXkubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEgJiYgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikud2FsbF9JbmZvLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikucGxheVN0YXJEb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+minOiJsuaYr+WQpuiDveWkn+mAmui/h+mXqFwiLGRhdGU4KTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmlrnlnZflkozpl6jkuK3pl7TmnInmsqHmnInlpLnmnYLlhbbku5blnZdcclxuICAgIGRldGVjdGluZ0Jsb2NrKGRpcmVjdGlvbiwgcG9zWCwgcG9zWSwgYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmIChibG9ja3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gcG9zLng7XHJcbiAgICAgICAgICAgICAgICBsZXQgeSA9IHBvcy55O1xyXG4gICAgICAgICAgICAgICAgaWQgPSB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQ7XHJcbiAgICAgICAgICAgICAgICBqZyA9IHRoaXMuY2hlY2tBbGxEaXJlY3Rpb25zKGlkLCBkaXJlY3Rpb24sIHgsIHkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFqZykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlNyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL6YCa6L+HXCIsZGF0ZTcsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl++8jOmYsuatoueisOWIsOWimeWjgeS6huS9huaYr+aYr+WHueWHuOW9oueKtu+8jOWimeS4juWdl+S5i+mXtOaciemYu+aMoeeJqeWdl1xyXG4gICAgY2hlY2tBbGxEaXJlY3Rpb25zKGlkLCBkaXJlY3Rpb24sIHgsIHkpIHtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwibGVmdFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh4IC0gMikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPs+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh5ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwiZG93blwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh5IC0gMikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsIG1heFgsIG1heFkpIHtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA+IDAgJiYgamdbMF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnggLSAxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnWzFdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54ICsgMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA+IDAgJiYgamdbMl0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55IC0gMV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnWzNdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSArIDFdLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbM10gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0xlZnQoYWxsQmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrUmlnaHQoYWxsQmxvY2tzLCBtYXgpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRG93bihhbGxCbG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVXAoYWxsQmxvY2tzLCBtYXgpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+eJueauiuWkhOeQhu+8jOaWueWdl+W4pumBk+WFt+aIluiAhemcgOimgea2iOmZpOWGsOWdl1xyXG4gICAgc3BlY2lhbF9UcmVhdG1lbnQobm9kZSkge1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZnJlZXplQmxvY2subGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyZWV6ZUJsb2NrLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmcmVlemVCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5nZXRDb21wb25lbnQoXCJGcmVlemVcIikucmVkdWNlKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpIHtcclxuICAgICAgICAgICAgbGV0IGxvY2tCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAobG9ja0Jsb2NrLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2tCbG9jay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2tCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuZ2V0Q29tcG9uZW50KFwiTG9ja1wiKS5yZWR1Y2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXSA9PSBub2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5ri45oiP5oiQ5Yqf5LiL5LiA5YWzXHJcbiAgICBuZXh0TGV2ZWwoKSB7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkljZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrTnVtID0gdGhpcy5ibG9ja3MubGVuZ3RoO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ibG9ja051bSA9PSAwICYmICF0aGlzLmdhbWVXaW4gJiYgIXRoaXMuZ2FtZU92ZXIpIHtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRoaXMuY291bnRfVGltZSwgdGhpcy5hZGRfVGltZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX05ld01vZGUoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9LCA2NjApO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmFpbExldmVsKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrX05ld01vZGUoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZ2FpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwIDwgMSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldmlld0xldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBjb2luID0gMTkwMDtcclxuICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XliqDml7bpl7RcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLCBkYXRhKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKGRhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnu6fnu63muLjmiI9cIik7XHJcblxyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG5cclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaG9tZUJ0bigpIHtcclxuICAgICAgICAvLyBhbGVydChcIua4uOaIj+Wksei0pVwiKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6IHRoaXMuY291bnRfVGltZSxcclxuICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDogXCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsIGRhdGEpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5ri45oiP5aSx6LSlXHJcbiAgICBmYWlsTGV2ZWwodHlwZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSB8fCB0aGlzLmdhbWVXaW4gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJib29tXCIpIHtcclxuICAgICAgICAgICAgdGltZSA9IDIwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgYnV5QnRuID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ1eUJ0blwiKTtcclxuICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4xXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJib29tXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHRpbWUpO1xyXG5cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+Wksei0pVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaWsOaooeW8j+W8ueeql1xyXG4gICAgb3Blbk5ld01vZGUodHlwZSkge1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgY29uc3QgQkxPQ0tTX1BFUl9GUkFNRSA9IDU7IC8vIOavj+W4p+mUgOavgeeahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyBCTE9DS1NfUEVSX0ZSQU1FLCB0aGlzLmJsb2Nrcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKDsgaW5kZXggPCBlbmRJbmRleDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2luZGV4XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2luZGV4XS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq6ZSA5q+B77yM5LiL5LiA5bin57un57utXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYmxvY2tzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJsb2NrcywgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+mUgOavgeaWueWdl1xyXG4gICAgICAgIGRlc3Ryb3lCbG9ja3MoKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuZ2V0Q29tcG9uZW50KFwiTmV3TW9kZVwiKS5zZXRNb2RlKHR5cGUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBkb3duRG9vcihjb2xvciwgdHlwZSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yID09IGNvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09IDUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5vcGFjaXR5ID09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnVwRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgICBzdGFydFRpbWVDdXREb3duKCkge1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZU51bWJlciA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhdXNlKSB0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnRfVGltZSArPSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrLCAxKTtcclxuICAgIH1cclxuICAgIC8vIOWBnOatouWAkuiuoeaXtlxyXG4gICAgc3RvcFRpbWVDdXREb3duKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spIHtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So5pe26Ze06YGT5YW3XHJcbiAgICB1c2VUaW1lUHJvcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGlmIChmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImZyZWV6ZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v6Kej5byA5pe26Ze05Ya757uTXHJcbiAgICBvcGVuSWNlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSkge1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Zue6LCD5Ye95pWw5YaFOlwiLHRoaXMucGF1c2UpO1xyXG4gICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmIChkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYgKGRhdGEgPT0gXCJmcmVlemVBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmUpOWtkOmBk+WFt1xyXG4gICAgdXNlSGFtbWVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYgKGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiaGFtbWVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhbW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJNYXNrLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumUpOWtkOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgYnV5TWFnaWMoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMywgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJtYWdpY0Ftb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5SGFtbWVyKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDIsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSwgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJmcmVlemVBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6a2U5rOV5qOS6ZqP5py65raI6Zmk5Lik5Liq5pa55Z2XXHJcbiAgICB1c2VNYWdpYygpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmIChtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAzLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwM1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbm9tYWxBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5tYWdpY0J0bi5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55Z2X57G75Z6LXCIsdGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxIHx8IG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aW1lID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobm9tYWxBcnJheS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoID09IDAgJiYgdGhpcy5sb2Fja0FycmF5Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPquWJqeS4i+S4gOS4quWdl+mBk+WFt+S9v+eUqOWujOavlVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvYWNrQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5mcmVlemVBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwICsgdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvYWNrQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mcmVlemVBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhdXNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8v5qC55o2u5YWz5Y2h6K6+572u5Zyw5Zu+5aSn5bCPXHJcbiAgICBzZXRNYXBJbmZvKCkge1xyXG4gICAgICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPCAxMCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9IDAuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5tYXBXaWR0aCA8IDE3KSB7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoIC0gMTEpICogMC4wMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDEuNiArICg2IC0gdGhpcy5tYXBXaWR0aCkgKiB3aWR0aDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPT0gOCAmJiB0aGlzLm1hcEhlaWdodCA+IDEzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jaywgamcpIHtcclxuICAgICAgICBsZXQgcGFydGljbGUgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFs5XSk7XHJcbiAgICAgICAgcGFydGljbGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHBhcnRpY2xlLnpJbmRleCA9IDEwMDA7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuICAgICAgICBsZXQgbmFtZSA9IFwiXCI7XHJcblxyXG4gICAgICAgIGlmIChqZyA9PSAwIHx8IGpnID09IDEpIHtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmIChqZyA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJib3RfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgeSA9IGJsb2NrLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAoMC41IC0gMC4zMyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogKDAuNSAtIDAuNjYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChqZyA9PSAyIHx8IGpnID09IDMpIHtcclxuICAgICAgICAgICAgbmFtZSA9IFwibGVmdF9cIiArIGhlaWdodCArIFwiX1wiICsgd2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAqIDAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC42NjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamcgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwicmlnaHRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjY2O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuMzM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9IHBhcnRpY2xlLmdldENoaWxkQnlOYW1lKG5hbWUpO1xyXG4gICAgICAgIGxldCBjb2xvciA9IGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yIC0gMTtcclxuXHJcbiAgICAgICAgcGFydGljbGVOb2RlLmdldENvbXBvbmVudChjYy5QYXJ0aWNsZVN5c3RlbSkuc3ByaXRlRnJhbWUgPSBwYXJ0aWNsZS5nZXRDb21wb25lbnQoXCJSZWR1Y2VcIikuQmxvY2tfQ29sb3JbY29sb3JdO1xyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy50d2VlbihwYXJ0aWNsZSlcclxuICAgICAgICAgICAgICAgIC50bygyLCB7IG9wYWNpdHk6IDAgfSlcclxuICAgICAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlT25lQmxvY2soKSB7XHJcbiAgICAgICAgLy8g56e76Zmk5omA5pyJ5pa55Z2XXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0ub3BhY2l0eSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRSxDQUFDO29EQUNkO0lBSXhDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUtuQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3VEQUNhO0lBR2pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0RBQ007SUFFMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2lEQUNPO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpREFDTztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBMCtEL0I7SUFBRCxrQkFBQztDQTErREQsQUEwK0RDLENBMStEd0MsRUFBRSxDQUFDLFNBQVMsR0EwK0RwRDtrQkExK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOiBcIuWimeWjgeaVsOe7hFwiIH0pXHJcbiAgICBXYWxsX1ByZWZhYjogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHdhbGxUdXJuUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICB0aW1lQnRuOiBjYy5CdXR0b24gPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIGRlc3Ryb3lCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgbWFnaWNCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBpY2VMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgaGFtbWVyTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG1hZ2ljTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljTWFzazogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoYW1tZXJNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGNvaW5Qb3A6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIHRpbWVMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBsZXZlbExhYmVsOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGNvaW46IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIG5ld19tb2RlOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICBtYXBIZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgICB3YWxsTnVtOiBudW1iZXIgPSAwO1xyXG4gICAgYmxvY2tOdW06IG51bWJlciA9IDA7XHJcbiAgICBtYXBCbG9ja3NXYWxsOiBhbnk7ICAgICAgLy/lnLDlm77nmoTmiYDmnInlupXlnZdcclxuICAgIG1hcEluZm86IGFueTsgICAgICAgLy/lnLDlm77pmaTkuoblupXlnZfnmoTlhbbku5bkv6Hmga9cclxuICAgIGJsb2NrczogYW55OyAgICAgICAgLy/mlrnlnZfmlbDnu4RcclxuICAgIHdhbGxJbmZvOiBhbnk7ICAgICAgLy/lopnlo4HmlbDnu4RcclxuICAgIHdhbGxBcnJheTogYW55OyAgICAgIC8vXHJcbiAgICBvcGVuV2FsbDogYW55OyAgICAgIC8v5byA5YWz5aKZ5pWw57uEXHJcbiAgICBmcmVlemVXYWxsOiBhbnk7ICAgIC8v5Ya757uT5aKZ5pWw57uEXHJcbiAgICByaXNlRmFsbEJsY29rOiBhbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6IGJvb2xlYW4gPSB0cnVlOy8v5oyJ6ZKu5Y+v55So54q25oCBXHJcbiAgICBhZ2FpbkNhblRvdWNoOiBib29sZWFuID0gdHJ1ZTsvL+mHjeeOqeaMiemSruWPr+S7peeUqOeKtuaAgVxyXG4gICAgZ2FtZU92ZXI6IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+e7k+adn+eKtuaAgVxyXG4gICAgZ2FtZVdpbjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP6IOc5Yip54q25oCBXHJcbiAgICBnYW1lU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+W8gOWni+eKtuaAgVxyXG4gICAgdGltZU51bWJlcjogbnVtYmVyID0gMDsgLy/muLjmiI/ml7bpl7Qg55So5LqO5YCS6K6h5pe2XHJcbiAgICBjb3VudF9UaW1lOiBudW1iZXIgPSAwOyAvL+eUqOS6jue7n+iuoeaAu+a4uOaIj+aXtumVv1xyXG4gICAgYWRkX1RpbWU6IG51bWJlciA9IDA7ICAgLy/lpI3mtLvml7bpl7RcclxuICAgIG1hcEJsb2NrQXJyYXk6IGFueTsgIC8v5Zyw5Zu+55qE5omA5pyJ5qC85a2Q54q25oCB5a2Y5YKoXHJcbiAgICBwYXVzZTogYm9vbGVhbiA9IGZhbHNlOy8v5pqC5YGc54q25oCBXHJcbiAgICBoYW1tZXI6IGJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQoKSB7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubWFzay5vcGFjaXR5ID0gMDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJBZGhlc2l2ZVwiKS56SW5kZXggPSA1MDA7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMlwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubGVmdERvb3JzID0gW107IC8v5bem6ZeoXHJcbiAgICAgICAgdGhpcy5yaWdodERvb3JzID0gW107IC8v5Y+z6ZeoXHJcbiAgICAgICAgdGhpcy50b3BEb29ycyA9IFtdOyAvL+S4iumXqFxyXG4gICAgICAgIHRoaXMuYm90dG9tRG9vcnMgPSBbXTsgLy/kuIvpl6hcclxuICAgICAgICB0aGlzLmdhbWVXaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAvLyBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBIb21lU2NlbmUg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIui/m+WFpUdhbWVTY2VuZVwiKTtcclxuICAgICAgICB0aGlzLkJsb2NrX0FycmF5ID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0FycmF5O1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuV2FsbF9QcmVmYWI7XHJcbiAgICAgICAgdGhpcy5CbG9ja19Db2xvciA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19Db2xvcjtcclxuICAgICAgICAvLyB0aGlzLnBhcnRpY2xlRWZmZWN0cyA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5wYXJ0aWNsZUVmZmVjdHM7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5nYW1lU3RhcnQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmdldENoaWxkQnlOYW1lKFwiYm9vbVwiKS5nZXRDb21wb25lbnQoXCJCb29tXCIpLnN0YXJ0Qm9vbSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRNYXAoKSB7XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy5jb2luID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImNvaW5cIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaHml7bpl7RcIiwgdGhpcy50aW1lTnVtYmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwgMzAsIDE1LCBcImNvaW5fXCIsIHRoaXMuY29pbiwgdHJ1ZSk7XHJcbiAgICAgICAgLy8gdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCA1MCwgMjAsIFwibGV2ZWxfXCIsIHRoaXMubGV2ZWxMYWJlbCwgZmFsc2UpXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaFcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSk7XHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuXHJcblxyXG4gICAgICAgIGxldCBzdGFydFggPSB0aGlzLm1hcFdpZHRoICUgMiA9PSAwID8gLSh0aGlzLm1hcFdpZHRoIC0gMSkgKiA2MCA6IC0odGhpcy5tYXBXaWR0aCAtIDEpICogNjA7XHJcbiAgICAgICAgbGV0IHN0YXJ0WSA9IHRoaXMubWFwSGVpZ2h0ICUgMiA9PSAwID8gLSh0aGlzLm1hcEhlaWdodCAtIDEpICogNjAgOiAtKHRoaXMubWFwSGVpZ2h0IC0gMSkgKiA2MDtcclxuICAgICAgICAvLyBzdGFydFggPSh0aGlzLm1hcFdpZHRoLTEpKjYwICsgNjA7XHJcbiAgICAgICAgLy8gc3RhcnRZID0tKHRoaXMubWFwSGVpZ2h0LTEpKjYwIC0gNjA7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXBXaWR0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLk1hcEJsb2NrUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hcEJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuaW5pdChpLCBqKTtcclxuICAgICAgICAgICAgICAgIC8vIGJsb2NrLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gaSArIFwiOlwiICsgajtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKHN0YXJ0WCArIGkgKiAxMjAsIHN0YXJ0WSArIGogKiAxMjApKVxyXG4gICAgICAgICAgICAgICAgaWYgKHJpc2VmYWxsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBSaXNlRmFsbChjYy52MihpLCBqKSwgcmlzZWZhbGwsIGJsb2NrKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGdhcCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hcEdhcChjYy52MihpLCBqKSwgZ2FwKSB8fCBpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm1hcEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsW2ldLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLndhbGxJbml0KCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja0luaXQoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG5cclxuXHJcblxyXG4gICAgYmxvY2tJbml0KCkge1xyXG4gICAgICAgIGxldCBibG9ja0FycmF5ID0gY2MuZnguR2FtZUNvbmZpZy5CTE9DS19JTkZPWzBdO1xyXG4gICAgICAgIGJsb2NrQXJyYXkgPSB0aGlzLnNvcnRCbG9jayhibG9ja0FycmF5KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWIm+W7uuaWueWdl1wiLCBibG9ja0FycmF5KTtcclxuICAgICAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTmlrnlnZfntKLlvJVcclxuICAgICAgICBsZXQgQkxPQ0tTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICAgICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgICAgICBjb25zdCBjcmVhdGVCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEJMT0NLU19QRVJfRlJBTUUgJiYgaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2tJbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja1ByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbYmxvY2tJbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKGJsb2NrUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby5ibG9jayAhPSAyMykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLnR5cGUgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2s6IGJsb2NrSW5mby5ibG9jayxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBibG9ja0luZm8uc3RhY2tpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBibG9ja0luZm8ucG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZzogYmxvY2tJbmZvLmNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jayk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8uYWRoZXNpdmVUaW1lIDwgMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jaywgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmFycmllclwiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgY29uc3QgZnJhbWVUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikge1xyXG4gICAgICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1pbihCTE9DS1NfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyDlvIDlp4vliIbluKfliJvlu7rmlrnlnZdcclxuICAgICAgICBjcmVhdGVCbG9ja3MoKTtcclxuICAgIH1cclxuICAgIC8v57uZ5Yib5bu65pa55Z2X5o6S5bqP77yM55So5p2l6ZmN5L2OZHJhd2NhbGwg5ZCI5om5XHJcbiAgICBzb3J0QmxvY2soYWxsQmxvY2tzOiB7IGNvbG9yOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IHR5cGU6IG51bWJlciB9W10pIHtcclxuICAgICAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgLy8g5YWI5aSE55CGIHR5cGUg5Li6IDEg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5ZCOXHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgPT09IDEgJiYgYi50eXBlICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAxICYmIGIudHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlr7kgdHlwZSDkuI3kuLogMCDnmoTlhYPntKDmjIkgdHlwZSDmjpLluo9cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnR5cGUgLSBiLnR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgICAgIGlmIChhLmJsb2NrID09PSAyMyAmJiBiLmJsb2NrICE9PSAyMykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLmJsb2NrICE9PSAyMyAmJiBiLmJsb2NrID09PSAyMykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWFtuS9meaMiSBjb2xvciDljYfluo/mjpLliJdcclxuICAgICAgICAgICAgcmV0dXJuIGEuY29sb3IgLSBiLmNvbG9yO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WIm+W7uuWimeWjgVxyXG5cclxuICAgIHdhbGxJbml0KCkge1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOWimeWjgee0ouW8lVxyXG4gICAgICAgIGxldCBXQUxMU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTlopnlo4HmlbDph49cclxuICAgICAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICAgICAgY29uc3QgY3JlYXRlV2FsbHMgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IFdBTExTX1BFUl9GUkFNRSAmJiBpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVdhbGwoZGlyLCBibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgY29uc3QgZnJhbWVUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikge1xyXG4gICAgICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1pbihXQUxMU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5aKZ5aOB5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlV2FsbHMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8g5omA5pyJ5aKZ5aOB5Yib5bu65a6M5oiQ5ZCO77yM5Yib5bu65ouQ6KeS6IqC54K5XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvcm5lck5vZGVzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyDlvIDlp4vliIbluKfliJvlu7rlopnlo4FcclxuICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgZ2V0V2xsRGlyYWN0aW9uKHR5cGUsIHBvaW50QSkge1xyXG4gICAgICAgIGxldCBkaXIgPSBbXTtcclxuICAgICAgICBsZXQgcG9pbnRCID0gY2MudjIocG9pbnRBLnggKyAxLCBwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50QyA9IGNjLnYyKHBvaW50QS54IC0gMSwgcG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCwgcG9pbnRBLnkgKyAxKTtcclxuICAgICAgICBsZXQgcG9pbnRFID0gY2MudjIocG9pbnRBLngsIHBvaW50QS55IC0gMSk7XHJcbiAgICAgICAgbGV0IG9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGlmICh0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwidHVyblwiKSBvcGFjaXR5ID0gMjUwO1xyXG5cclxuICAgICAgICBpZiAocG9pbnRCLnggPCB0aGlzLm1hcFdpZHRoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50Qy54ID49IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qy54XVtwb2ludEMueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImxlZnRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RC54XVtwb2ludEQueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwidXBcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJ1cFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRFLnkgPj0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRFLnhdW3BvaW50RS55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJkb3duXCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyLmxlbmd0aCA+IDIpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlID09IFwid2FsbFwiKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpclswXTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpci5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYgKGJsb2NrLm9wYWNpdHkgIT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ0dXJuXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsIGJsb2NrLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLCBub2RlKSB7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuc2V0RGlyYWN0aW9uKGRpcmVjdGlvbik7XHJcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls0XSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbM10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50b3BEb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIjogY2FzZSBcInJpZ2h0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzddKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIjogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlsyXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIjogY2FzZSBcImxlZnRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlsxXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyBpZih3YWxsVHVybil7XHJcbiAgICAgICAgLy8gICAgIHdhbGxUdXJuLmdldENvbXBvbmVudChcIndhbGxUdW5yXCIpLmluaXQod2FsbCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERvb3JJbmZvKHdhbGwpIHtcclxuICAgICAgICBsZXQgZG9vckluZm8gPSBjYy5meC5HYW1lQ29uZmlnLldBTExfSU5GT1swXTtcclxuXHJcbiAgICAgICAgaWYgKGRvb3JJbmZvKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZG9vckluZm8ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChkb29ySW5mb1tqXS5udW0gPT0gdGhpcy53YWxsTnVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQoZG9vckluZm9bal0sIG51bGwsIG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5LnB1c2god2FsbC5wYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVR1cm4oZGlyZWN0aW9uLCBub2RlLCBwb3NYLCBwb3NZKSB7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLndhbGxUdXJuUHJlZmFiKTtcclxuICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIjogY2FzZSBcInJpZ2h0dXBcIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCI6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSA5MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSA1O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCAtPSAxLjM7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCI6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gNC41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAzLjI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiKSB7XHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIFxyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuXHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAxMDAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRkb3duXCIgfHwgZGlyZWN0aW9uID09IFwiZG93bnJpZ2h0XCIgfHwgZGlyZWN0aW9uID09IFwiZG93bmxlZnRcIikge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDMwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIikge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcblxyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuYW5nbGUgPSAtd2FsbC5hbmdsZTtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gd2FsbC56SW5kZXgrIFwiXCI7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zWCxwb3NZLHdhbGwuekluZGV4KTtcclxuICAgICAgICAvLyB0aGlzLndhbGxOdW0gKz0gIDE7XHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bSArIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lnLDlm77lupXlnZfnvLrlj6PliKTmlq1cclxuICAgIG1hcEdhcChwb2ludCwgZ2FwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHBvaW50LnggPT0gZ2FwW2ldLnggJiYgcG9pbnQueSA9PSBnYXBbaV0ueSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2X5Yik5patXHJcbiAgICBtYXBSaXNlRmFsbChwb2ludCwgcmlzZWZhbGwsIGJsb2NrKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXNlZmFsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KSB7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDaGlsZEJ5TmFtZShcImNvbG9yXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gcmlzZWZhbGxbaV0uY29sb3IgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLCAxMTApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy/ljYfpmY3lnLDlnZdcclxuICAgIGNoYW5nZVJpc2VGYWxsKGNvbG9yLCBkb3duKSB7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yaXNlRmFsbEJsY29rLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChjb2xvciA9PSB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5nZXRDaGlsZEJ5TmFtZShcImNvbG9yXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG93bikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5yZW1vdmVDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsIDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jaykge1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcblxyXG4gICAgICAgIGxldCBtaW5YID0gd2lkdGg7XHJcbiAgICAgICAgbGV0IG1heFggPSB0aGlzLm1hcFdpZHRoIC0gMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodCAtIDIgLSBoZWlnaHQgKyAxO1xyXG5cclxuICAgICAgICBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTFcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAyO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYIC0gMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE0XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxNlwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMThcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazIxXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbWluWDogbWluWCwgbWF4WDogbWF4WCwgbWluWTogbWluWSwgbWF4WTogbWF4WSB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL6JC954K55piv5ZCm5Y+v5Lul5raI6ZmkXHJcbiAgICBjaGVja1Bhc3Mobm9kZSwgYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFsbEJsb2Nrcy5wdXNoKGNjLnYyKG5vZGVQb3MueCArIGJsb2Nrc1tpXS54LCBub2RlUG9zLnkgKyBibG9ja3NbaV0ueSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWwhuWwj+Wdl+aUvuWFpeaVsOe7hOeahOaXtumXtFwiLGRhdGUxKTtcclxuXHJcbiAgICAgICAgbGV0IGpnID0gLTE7XHJcbiAgICAgICAgbGV0IHB6ID0gMDtcclxuICAgICAgICAvLyDojrflj5bmiYDmnInlopnlo4HoioLngrlcclxuICAgICAgICAvLyBsZXQgd2FsbCA9IHRoaXMubm9kZTtcclxuICAgICAgICBsZXQgZGlyZWN0aW9uID0gdGhpcy5jaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsIG1heFgsIG1heFkpO1xyXG5cclxuICAgICAgICAvLyDliKTmlq3mlrnlnZfmmK/lkKblnKjlnLDlm77ovrnnvJhcclxuICAgICAgICBpZiAobm9kZVBvcy54IDw9IG1pblggfHwgZGlyZWN0aW9uWzBdID09IHRydWUpIHtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJhcIixkYXRlMik7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIGxldCBsZWZ0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlZnREb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA9PSB3YWxsUG9zLnkgJiYgYWxsQmxvY2tzW2ldLnggPiB3YWxsUG9zLngpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFdhbGxzLnB1c2god2FsbExlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW+l+WIsOW3pui+ueWimeWjgeaVsOe7hFwiLGRhdGU2KTtcclxuICAgICAgICAgICAgaWYgKGxlZnRXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJsZWZ0XCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgbGVmdFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy54ID49IG1heFggfHwgZGlyZWN0aW9uWzFdID09IHRydWUpIHtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJhcIixkYXRlMyk7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIGxldCByaWdodFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yaWdodERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA9PSB3YWxsUG9zLnkgJiYgYWxsQmxvY2tzW2ldLnggPCB3YWxsUG9zLngpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRXYWxscy5wdXNoKHdhbGxSaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmlnaHRXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJyaWdodFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCByaWdodFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnkgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9wRG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsQm90dG9tID0gdGhpcy50b3BEb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb3duV2FsbHMucHVzaCh3YWxsQm90dG9tKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChkb3duV2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIGRvd25XYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ID49IG1heFkgfHwgZGlyZWN0aW9uWzNdID09IHRydWUpIHtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJhcIixkYXRlNSk7XHJcbiAgICAgICAgICAgIGxldCB1cFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ib3R0b21Eb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxUb3AuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPCB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwV2FsbHMucHVzaCh3YWxsVG9wKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh1cFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInVwXCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgdXBXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mOe7k+aenDpcIixyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHogPT0gMCkgamcgPSAtMTtcclxuICAgICAgICAvLyBjb25zdCBkYXRlMTAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaJgOacieajgOa1i+e7k+adn+iAl+aXtlwiLGRhdGUxMCxqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVN0YXRlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VMb2NrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsIHdhbGxBcnJheSwgbm9kZSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5bCd6K+V6YCa6L+H5byA5YWz6ZeoOlwiLCB3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHdhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvcixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yKVxyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgIT0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcikge1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpIHtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqZyA9PSB0cnVlICYmIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgd2FsbEFycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxICYmIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLndhbGxfSW5mby5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24sIHBvc1gsIHBvc1ksIGJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcbiAgICAgICAgbGV0IGlkID0gXCJcIjtcclxuICAgICAgICBpZiAoYmxvY2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTtcclxuICAgICAgICAgICAgICAgIGlkID0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkO1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmNoZWNrQWxsRGlyZWN0aW9ucyhpZCwgZGlyZWN0aW9uLCB4LCB5KTtcclxuICAgICAgICAgICAgICAgIGlmICghamcpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+ayoei/h1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCwgZGlyZWN0aW9uLCB4LCB5KSB7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcImxlZnRcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeCAtIDIpID49IDApIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJyaWdodFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh4ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPs+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwidXBcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcImRvd25cIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeSAtIDIpID49IDApIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl1wiLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLCBtYXhYLCBtYXhZKSB7XHJcbiAgICAgICAgbGV0IGpnID0gW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPiAwICYmIGpnWzBdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54IC0gMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMF0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZ1sxXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCArIDFdW2FsbEJsb2Nrc1tpXS55XS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzFdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPiAwICYmIGpnWzJdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSAtIDFdLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMl0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZ1szXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkgKyAxXS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tMZWZ0KGFsbEJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcywgbWF4KSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0Rvd24oYWxsQmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1VwKGFsbEJsb2NrcywgbWF4KSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpIHtcclxuICAgICAgICBsZXQgZnJlZXplQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGZyZWV6ZUJsb2NrLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmVlemVCbG9jay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAyIHx8IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NrQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NrQmxvY2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0gPT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+aIkOWKn+S4i+S4gOWFs1xyXG4gICAgbmV4dExldmVsKCkge1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKSB7XHJcbiAgICAgICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmdhbWVXaW4gPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiJDlip/mtojpmaTkuIDkuKpcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oNDApO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5hZGRMZXZlbCh0aGlzLmNvdW50X1RpbWUsIHRoaXMuYWRkX1RpbWUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGVja19OZXdNb2RlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSwgNjYwKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYW1lT3ZlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZhaWxMZXZlbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja19OZXdNb2RlKCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd2luTGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPiAxNTYpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2O1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUpO1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkuIDlhbNcIik7XHJcbiAgICAgICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICAgICAgfSwgMTIwMCk7XHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWdhaW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFnYWluQ2FuVG91Y2ggPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSwgMCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZpZXdMZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgbGV0IGNvaW4gPSA5MDA7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgY29pbiA9IDE5MDA7XHJcbiAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCBNYXRoLmFicyhjb2luKSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV5Yqg5pe26Ze0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlpI3mtLvlm57osIPlh73mlbDlhoVcIiwgZGF0YSk7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbihkYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi57un57ut5ri45oiPXCIpO1xyXG5cclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDIxO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgKz0gMjA7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGhvbWVCdG4oKSB7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmICghdGhpcy5ob21lQ2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJMb2NrXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkhlYWx0aFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICB0aW1lOiB0aGlzLmNvdW50X1RpbWUsXHJcbiAgICAgICAgICAgIGFkZF9UaW1lOiB0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6IFwiZmFpbFwiXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImZpbmlzaF9zdGFnZVwiLCBkYXRhKTtcclxuICAgICAgICBpZiAodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySGVhbHRoKC0xLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybkhvbWUoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDEpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+Wksei0pVxyXG4gICAgZmFpbExldmVsKHR5cGUpIHtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUgfHwgdGhpcy5nYW1lV2luID09IHRydWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiYm9vbVwiKSB7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGJ1eUJ0biA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidXlCdG5cIik7XHJcbiAgICAgICAgICAgIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4xXCIpLmFjdGl2ZSA9IGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAwKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwiYm9vbVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy/miZPlvIDmlrDmqKHlvI/lvLnnqpdcclxuICAgIG9wZW5OZXdNb2RlKHR5cGUpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZG93bkRvb3IoY29sb3IsIHR5cGUpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwRG9vcigpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikub3BhY2l0eSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVOdW1iZXIgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsIDUwLCBcInRpbWVfXCIsIHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYXVzZSkgdGhpcy5mYWlsTGV2ZWwoXCJ0aW1lXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50X1RpbWUgKz0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsIDUwLCBcInRpbWVfXCIsIHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZUNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOaXtumXtOmBk+WFt1xyXG4gICAgdXNlVGltZVByb3AoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBpZiAoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJmcmVlemVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlICYmICF0aGlzLnBhdXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDEsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+ino+W8gOaXtumXtOWGu+e7k1xyXG4gICAgb3BlbkljZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVCdXlTdWNjZXNzKGRhdGEpIHtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWbnuiwg+WHveaVsOWGhTpcIix0aGlzLnBhdXNlKTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKSBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGlmIChkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw5Ya757uT5pe26Ze06YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDplKTlrZDpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6a2U5rOV5qOS6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGlmIChoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImhhbW1lclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYW1tZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLplKTlrZDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGJ1eU1hZ2ljKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDMsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcImhhbW1lckFtb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5RnJlZXplKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDEsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAobWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcIm1hZ2ljXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumtlOazleajkuaVsOmHj+S4jei2syzoh6rliqjotK3kubDprZTms5Xmo5JcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLm1hZ2ljQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMywgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWdl+exu+Wei1wiLHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5ID0gY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KG5vbWFsQXJyYXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGltZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5vbWFsQXJyYXkubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCA9PSAwICYmIHRoaXMubG9hY2tBcnJheS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMCArIHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuayoeacieaZrumAmuW/q++8jOmtlOazlea2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mcmVlemVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5oyJ5LiL5pqC5YGc5oyJ6ZKuXHJcbiAgICB1c2VQYXVzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wYXVzZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+agueaNruWFs+WNoeiuvue9ruWcsOWbvuWkp+Wwj1xyXG4gICAgc2V0TWFwSW5mbygpIHtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmICh0aGlzLm1hcFdpZHRoIDwgMTApIHtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMubWFwV2lkdGggPCAxNykge1xyXG4gICAgICAgICAgICB3aWR0aCA9IDAuMTUgLSAodGhpcy5tYXBXaWR0aCAtIDExKSAqIDAuMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxLjYgKyAoNiAtIHRoaXMubWFwV2lkdGgpICogd2lkdGg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMykge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NhbGUgPSB0aGlzLm5vZGUuc2NhbGU7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMC41O1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubm9kZS5zY2FsZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIm+W7uumXqOeahOeykuWtkOeJueaViFxyXG4gICAgY3JlYXRlUGFydGljbGUoYmxvY2ssIGpnKSB7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZiAoamcgPT0gMCB8fCBqZyA9PSAxKSB7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICBuYW1lID0gXCJ0b3BfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZiAoamcgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogKDAuNSAtIDAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqICgwLjUgLSAwLjY2KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoamcgPT0gMiB8fCBqZyA9PSAzKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcImxlZnRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aDtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0IC8gMjtcclxuICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGggKiAwLjMzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuNjY7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnID09IDMpIHtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjMzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwYXJ0aWNsZU5vZGUgPSBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgICAgICAudG8oMiwgeyBvcGFjaXR5OiAwIH0pXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLm9wYWNpdHkgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
diff --git a/temp/quick-scripts/dst/assets/Script/Map.js b/temp/quick-scripts/dst/assets/Script/Map.js
index 4ece632..1f912d2 100644
--- a/temp/quick-scripts/dst/assets/Script/Map.js
+++ b/temp/quick-scripts/dst/assets/Script/Map.js
@@ -67,6 +67,7 @@ var MapConroler = /** @class */ (function (_super) {
_this.coinPop = null;
_this.timeLabel = null;
_this.levelLabel = null;
+ _this.coin = null;
_this.new_mode = 0;
_this.mapWidth = 0;
_this.mapHeight = 0;
@@ -155,11 +156,13 @@ var MapConroler = /** @class */ (function (_super) {
// this.node.getChildByName("Wall").zIndex = 10;
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
+ this.coin = this.node.parent.getChildByName("Top").getChildByName("coin");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel);
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
// var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);
// this.timeLabel.string = timeTemp.toString();
NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, "level_", this.levelLabel, false);
@@ -1943,4 +1946,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBRXhDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFFMUMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFLNUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUFzK0RDO1FBaitERyxpQkFBVyxHQUFxQixFQUFFLENBQUM7UUFHbkMsZ0JBQVUsR0FBcUIsRUFBRSxDQUFDO1FBR2xDLG9CQUFjLEdBQWMsSUFBSSxDQUFDO1FBR2pDLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUl4QyxpQkFBVyxHQUFxQixFQUFFLENBQUM7UUFLbkMsb0JBQWMsR0FBYyxJQUFJLENBQUM7UUFHakMsYUFBTyxHQUFjLElBQUksQ0FBQztRQUUxQixnQkFBVSxHQUFjLElBQUksQ0FBQztRQUU3QixjQUFRLEdBQWMsSUFBSSxDQUFDO1FBRzNCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFHckIsY0FBUSxHQUFhLElBQUksQ0FBQztRQUUxQixpQkFBVyxHQUFhLElBQUksQ0FBQztRQUU3QixnQkFBVSxHQUFhLElBQUksQ0FBQztRQUc1QixlQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBSTNCLGFBQU8sR0FBWSxJQUFJLENBQUM7UUFFeEIsZUFBUyxHQUFZLElBQUksQ0FBQztRQUMxQixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixjQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGNBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsZUFBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLGNBQVEsR0FBVyxDQUFDLENBQUM7UUFVckIsa0JBQVksR0FBWSxJQUFJLENBQUMsQ0FBQSxRQUFRO1FBQ3JDLG1CQUFhLEdBQVksSUFBSSxDQUFDLENBQUEsV0FBVztRQUN6QyxjQUFRLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNsQyxhQUFPLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNqQyxlQUFTLEdBQVksS0FBSyxDQUFDLENBQUEsUUFBUTtRQUNuQyxnQkFBVSxHQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDcEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBQ25DLGNBQVEsR0FBVyxDQUFDLENBQUMsQ0FBRyxNQUFNO1FBRTlCLFdBQUssR0FBWSxLQUFLLENBQUMsQ0FBQSxNQUFNO1FBQzdCLFlBQU0sR0FBWSxLQUFLLENBQUMsQ0FBQSxNQUFNOztJQW81RGxDLENBQUM7b0JBdCtEb0IsV0FBVztJQTZGNUIsNEJBQTRCO0lBRTVCLDRCQUFNLEdBQU47UUFBQSxpQkFxQ0M7UUFuQ0csRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEQsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBQyxLQUFLO1lBQzVHLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNqQyxlQUFlO2dCQUNmLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDOUU7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUdsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV6RSx5Q0FBeUM7UUFDekMsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVELDJCQUFLLEdBQUw7UUFDSSxVQUFVLENBQUM7WUFDUCxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztnQkFDN0MsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDekMsT0FBTztpQkFDVjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3JELGdFQUFnRTtRQUVoRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFbkIsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLGNBQWM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO29CQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQzFFO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCw2QkFBTyxHQUFQO1FBQ0ksZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQix1QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pFLGdFQUFnRTtRQUNoRSwrQ0FBK0M7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNoSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hELDBCQUEwQjtRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUV2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFHbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9GLHFDQUFxQztRQUNyQyx1Q0FBdUM7UUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLDJFQUEyRTtnQkFDM0UsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDNUQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO29CQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDbEM7aUJBQ0o7Z0JBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQzsyQkFDL0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7d0JBQ3RDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3dCQUNwQixLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDakMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3Qjs7d0JBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pDO3FCQUNJO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDOzJCQUM3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTt3QkFDdEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7d0JBQ3BCLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNqQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzdCOzt3QkFDSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDakM7Z0JBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckM7U0FDSjtRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckIsQ0FBQztJQUVELE1BQU07SUFDTixlQUFlO0lBRWYsTUFBTTtJQUNOLGVBQWU7SUFLZiwrQkFBUyxHQUFUO1FBQUEsaUJBMkZDO1FBMUZHLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUN4QyxJQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ3JDLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFFcEMsSUFBTSxZQUFZLEdBQUc7WUFDakIsSUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO29DQUMzQixDQUFDO2dCQUNOLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsb0JBQW9CO2dCQUNwQixJQUFNLFdBQVcsR0FBRyxLQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO29CQUN2QixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztvQkFDbkIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7d0JBQ3JCLElBQUksSUFBSSxHQUFHOzRCQUNQLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7NEJBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSzs0QkFDdEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFROzRCQUN6QixJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7NEJBQzVCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSzt5QkFDNUIsQ0FBQzt3QkFDRixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDakUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBRTVELEtBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO3FCQUN0Qjt5QkFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUM1QixJQUFJLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFOzRCQUM1QixLQUFLLEVBQUUsQ0FBQzs7eUJBRVg7d0JBQ0QsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxNQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM3QixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLFNBQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxTQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLFNBQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3hFLFVBQVUsQ0FBQzs0QkFDUCxTQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3RFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDUixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQy9DO2lCQUNKO3FCQUNJO29CQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxLQUFLLEVBQUUsQ0FBQzs7WUF4RFosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTt3QkFBN0QsQ0FBQzthQXlEVDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNILGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO1lBRUQsb0JBQW9CO1lBQ3BCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNCLHNDQUFzQztnQkFDdEMsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxZQUFZLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07YUFFTjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLCtCQUFTLEdBQVQsVUFBVSxTQUEyRDtRQUNqRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUVELDJCQUEyQjtZQUMzQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUMxQjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7WUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7WUFFRCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELGlCQUFpQjtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxNQUFNO0lBRU4sOEJBQVEsR0FBUjtRQUFBLGlCQXNDQztRQXJDRyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDdkMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNyQyxJQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBRXBDLElBQU0sV0FBVyxHQUFHO1lBQ2hCLElBQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxLQUFLLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixLQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0I7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDbEU7aUJBQU07Z0JBQ0gsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNsRTtZQUVELG9CQUFvQjtZQUNwQixJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDOUIsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07Z0JBQ0gsbUJBQW1CO2dCQUNuQixLQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUM1QjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZTtJQUVmLHFDQUFlLEdBQWYsVUFBZ0IsSUFBSSxFQUFFLE1BQU07UUFDeEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLElBQUksSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBRWxDLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7Z0JBQzNELElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLEVBQUU7aUJBRTNHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFCO1NBQ0o7UUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtnQkFDM0QsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTtpQkFFMUc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7Z0JBQzNELElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7aUJBRXhHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0o7UUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtnQkFDM0QsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTtpQkFFMUc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFFaEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxJQUFJLElBQUksTUFBTTtnQkFDZCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBRWQsT0FBTyxJQUFJLENBQUM7U0FDbkI7YUFDSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRCx1Q0FBaUIsR0FBakI7UUFDSSxTQUFTO1FBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekc7YUFDSjtTQUVKO0lBRUwsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxTQUFTLEVBQUUsSUFBSTtRQUN0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsUUFBUSxTQUFTLEVBQUU7WUFDZixLQUFLLE9BQU87Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQy9JLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRS9CLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDL0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssSUFBSTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMvSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsNEdBQTRHO2dCQUM1RyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDL0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssU0FBUyxDQUFDO1lBQUMsS0FBSyxTQUFTO2dCQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDO1lBQUMsS0FBSyxRQUFRO2dCQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDO1lBQUMsS0FBSyxXQUFXO2dCQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxVQUFVO2dCQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtTQUViO1FBR0QsZ0JBQWdCO1FBQ2hCLG9EQUFvRDtRQUNwRCxJQUFJO0lBQ1IsQ0FBQztJQUVELGlDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdDLElBQUksUUFBUSxFQUFFO1lBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNwQzthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsZ0NBQVUsR0FBVixVQUFXLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsUUFBUSxTQUFTLEVBQUU7WUFDZixLQUFLLFNBQVMsQ0FBQztZQUFDLEtBQUssU0FBUztnQkFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUV0QyxNQUFNO1lBQ1YsS0FBSyxRQUFRLENBQUM7WUFBQyxLQUFLLFFBQVE7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQztZQUFDLEtBQUssV0FBVztnQkFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxVQUFVO2dCQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUNyQyxNQUFNO1NBQ2I7UUFFRCw2REFBNkQ7UUFDN0Qsd0NBQXdDO1FBQ3hDLElBQUk7UUFDSixRQUFRO1FBQ1Isd0NBQXdDO1FBRXhDLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksUUFBUSxJQUFJLFNBQVMsSUFBSSxRQUFRLEVBQ3JFO1lBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDdkM7YUFDSSxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsSUFBSSxXQUFXLElBQUksU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUMxSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUN0QzthQUNJLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDOztZQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLGtEQUFrRDtRQUNsRCx1RUFBdUU7UUFDdkUsNkVBQTZFO1FBQzdFLHNDQUFzQztRQUN0QyxzQkFBc0I7UUFDdEIsZ0ZBQWdGO0lBQ3BGLENBQUM7SUFFRCxVQUFVO0lBQ1YsNEJBQU0sR0FBTixVQUFPLEtBQUssRUFBRSxHQUFHO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QyxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVE7SUFDUixpQ0FBVyxHQUFYLFVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLO1FBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUM5RCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQy9DLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoSCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlELEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZGLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNO0lBQ04sb0NBQWMsR0FBZCxVQUFlLEtBQUssRUFBRSxJQUFJO1FBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hELElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDakgsSUFBSSxJQUFJLEVBQUU7b0JBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDcEY7cUJBQ0k7b0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzFHO2FBQ0o7U0FFSjtJQUNMLENBQUM7SUFJRCxTQUFTO0lBQ1Qsb0NBQWMsR0FBZCxVQUFlLEVBQUU7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO2dCQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLO0lBQ0wsaUNBQVcsR0FBWCxVQUFZLEVBQUU7UUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO2dCQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQ0FBWSxHQUFaLFVBQWEsS0FBSztRQUNkLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFM0MsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUN6QixJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztnQkFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUMxQzthQUNJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDOUIsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUM7Z0JBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDMUM7YUFFSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO2FBQ0ksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUM5QixJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNuQjthQUNJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDOUIsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDbkI7YUFDSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsWUFBWTtJQUNaLCtCQUFTLEdBQVQsVUFBVSxJQUFJLEVBQUUsTUFBTTtRQUNsQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFMUIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRGLFdBQVc7UUFFWCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsc0NBQXNDO1FBQ3RDLG1DQUFtQztRQUVuQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNaLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNYLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNELGNBQWM7UUFDZCxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDM0Msc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1IsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUYsS0FBSyxJQUFJLEdBQUMsR0FBRyxDQUFDLEVBQUUsR0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLEVBQUU7b0JBQ3ZDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRTt3QkFDM0QsK0VBQStFO3dCQUMvRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUM1QjtpQkFDSjthQUNKO1lBQ0QsaUNBQWlDO1lBQ2pDLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN0SCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLDhCQUE4QjtnQkFDOUIsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUNKO1FBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLHNDQUFzQztZQUN0Qyw4QkFBOEI7WUFDOUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNSLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlGLEtBQUssSUFBSSxHQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxFQUFFO29CQUN2QyxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzNELCtFQUErRTt3QkFDL0UsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0o7YUFDSjtZQUVELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUV2SCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JFLDhCQUE4QjtnQkFDOUIsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUdKO1FBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDUixzQ0FBc0M7WUFDdEMsOEJBQThCO1lBQzlCLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hHLEtBQUssSUFBSSxHQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxFQUFFO29CQUN2QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNqRCxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFO3dCQUN2RywrRUFBK0U7d0JBQy9FLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzlCO2lCQUNKO2FBQ0o7WUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDdEgsSUFBSSxNQUFNLElBQUksSUFBSTtvQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRSw4QkFBOEI7Z0JBQzlCLElBQUksTUFBTSxFQUFFO29CQUVSLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FHSjtRQUNELElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUMzQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1Isc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxRixLQUFLLElBQUksR0FBQyxHQUFHLENBQUMsRUFBRSxHQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDakQsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRTt3QkFDdkcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekI7aUJBQ0o7YUFDSjtZQUVELElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNwSCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2xFLGtDQUFrQztnQkFDbEMsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUVKO1FBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQztZQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQix1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3RTtTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDakY7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXO0lBQ1gsOEJBQVEsR0FBUixVQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSTtRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRTtZQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDbkcsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxNQUFNO2FBQ1Q7WUFDRCw4R0FBOEc7WUFDOUcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFFN0UsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxNQUFNO2FBQ1Q7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7b0JBQ2hELEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsTUFBTTtpQkFDVDthQUNKO1NBQ0o7UUFDRCxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUMzRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUNwRDthQUNKO1NBQ0o7UUFDRCxzQ0FBc0M7UUFDdEMsb0NBQW9DO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQ0FBYyxHQUFkLFVBQWUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTTtRQUN4QyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDWixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDZCxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNoRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNMLHlCQUF5QjtvQkFDekIsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDWixPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBQ0o7UUFDRCxzQ0FBc0M7UUFDdEMsa0NBQWtDO1FBQ2xDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELDBDQUEwQztJQUMxQyx3Q0FBa0IsR0FBbEIsVUFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFZCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07bUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO2dCQUN6RSx1QkFBdUI7Z0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDN0MsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjthQUNJLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTt1QkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7b0JBQ3pFLHVCQUF1QjtvQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztpQkFDYjtnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQzdDLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUNKO1FBQ0Qsb0NBQW9DO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFjLEdBQWQsVUFBZSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDaEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUN2RSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjthQUNKO1lBQ0QsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFO2dCQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtvQkFDdkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDaEI7YUFDSjtZQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTtnQkFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQ3ZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ2hCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUN2RSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjthQUNKO1NBQ0o7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCwrQkFBUyxHQUFULFVBQVUsU0FBUztRQUNmLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxTQUFTLEVBQUUsR0FBRztRQUNyQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtTQUUxQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtCQUFTLEdBQVQsVUFBVSxTQUFTO1FBQ2YsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FFMUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCw2QkFBTyxHQUFQLFVBQVEsU0FBUyxFQUFFLEdBQUc7UUFDbEIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FFMUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHRCxvQkFBb0I7SUFDcEIsdUNBQWlCLEdBQWpCLFVBQWtCLElBQUk7UUFDbEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsS0FBSztZQUM3QyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztvQkFDckMsT0FBTyxLQUFLLENBQUE7YUFDbkI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1RTtTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQzlFLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEtBQUs7Z0JBQzNDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO3dCQUNyQyxPQUFPLEtBQUssQ0FBQTtpQkFDbkI7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDdkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3JFO1NBRVI7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFFTCxDQUFDO0lBRUQsV0FBVztJQUNYLCtCQUFTLEdBQVQ7UUFBQSxpQkEwQkM7UUF6QkcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdkQsaUJBQWlCO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2Qix5QkFBeUI7WUFDekIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDO2dCQUNQLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDUix1QkFBdUI7U0FDMUI7YUFDSTtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7U0FDSjtJQUNMLENBQUM7SUFFRCxtQ0FBYSxHQUFiO1FBQ0ksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDN0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7YUFDckI7U0FDSjtJQUNMLENBQUM7SUFFRCw4QkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUN0QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNyQyxnQ0FBZ0M7WUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPO2FBQ1Y7WUFDRCwwQ0FBMEM7WUFDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ILHlIQUF5SDtZQUN6SCwyQ0FBMkM7WUFDM0MsMEJBQTBCO1lBQzFCLHNGQUFzRjtZQUN0RixRQUFRO1lBQ1IsTUFBTTtZQUVOLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUcsRUFBRSxLQUFLO2dCQUM3QyxJQUFJLEdBQUcsRUFBRTtvQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUN0QyxPQUFPO2lCQUNWO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ1o7YUFDSTtZQUVELHNCQUFzQjtZQUN0QixnQ0FBZ0M7WUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPO2FBQ1Y7WUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkgseUhBQXlIO1lBQ3pILDJDQUEyQztZQUMzQywwQkFBMEI7WUFDMUIsc0ZBQXNGO1lBQ3RGLFFBQVE7WUFDUixNQUFNO1lBQ04sVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRVQsNENBQTRDO1NBRS9DO0lBQ0wsQ0FBQztJQUVELGdDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRWhDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLGdDQUFnQztRQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkgseUhBQXlIO1FBQ3pILDJDQUEyQztRQUMzQywwQkFBMEI7UUFDMUIsc0ZBQXNGO1FBQ3RGLFFBQVE7UUFDUixNQUFNO1FBQ04sVUFBVSxDQUFDO1lBQ1AsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDVCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLElBQUksR0FBRyxJQUFJLENBQUM7YUFDakQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzNELG1FQUFtRTtRQUNuRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsT0FBTztTQUNWO2FBQ0k7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsK0JBQVMsR0FBVCxVQUFVLElBQUk7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBSUQsNkJBQU8sR0FBUDtRQUNJLGlCQUFpQjtRQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3RGLElBQUksSUFBSSxHQUFHO1lBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFBO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ3hCLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFDLElBQUk7WUFDdEMsQ0FBQyxDQUFDLENBQUE7U0FDTDtRQUNELDRDQUE0QztJQUNoRCxDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUU7WUFDOUIsT0FBTztTQUNWO1FBQ0Qsc0NBQXNDO1FBQ3RDLGdDQUFnQztRQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ILEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUcsRUFBRSxLQUFLO1lBQzdDLElBQUksR0FBRyxFQUFFO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU87YUFDVjtRQUVMLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDO1lBQ1AsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7SUFDUiwrQkFBUyxHQUFULFVBQVUsSUFBSTtRQUFkLGlCQTZCQztRQTVCRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtZQUMvQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzdELEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDcEYsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNyRixJQUFJLE1BQU0sR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzlILElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDbEYsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUN2RixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDNUYsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO29CQUNoQixLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNyRixLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUN2RjthQUNKO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQsdUJBQXVCO0lBQzNCLENBQUM7SUFFRCxTQUFTO0lBQ1QsaUNBQVcsR0FBWCxVQUFZLElBQUk7UUFBaEIsaUJBb0JDO1FBbkJHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUN4QyxJQUFNLGFBQWEsR0FBRztZQUNsQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sS0FBSyxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNwQixLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUNoQzthQUNKO1lBQ0Qsa0JBQWtCO1lBQ2xCLElBQUksS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUM1QixLQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QztpQkFBTTthQUNOO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsV0FBVztRQUNYLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUdELDhCQUFRLEdBQVIsVUFBUyxLQUFLLEVBQUUsSUFBSTtRQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRTtnQkFDOUUsSUFBSSxJQUFJLEVBQUU7b0JBQ04sSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7NEJBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt5QkFDNUU7cUJBQ0o7O3dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDakY7O29CQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNqRjtTQUNKO0lBQ0wsQ0FBQztJQUVELDRCQUFNLEdBQU47UUFDSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDMUU7U0FDSjtJQUNMLENBQUM7SUFFRCxPQUFPO0lBQ1Asc0NBQWdCLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdELHVCQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3pFLCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO29CQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDM0M7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2dCQUNyQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3RCx1QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUN6RSwrQ0FBK0M7YUFDbEQ7UUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFFBQVE7SUFDUixxQ0FBZSxHQUFmO1FBQ0ksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsaUNBQVcsR0FBWDtRQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO2VBQ3pFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtZQUMxRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDN0MsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtvQkFDdEMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN6QyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEQsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyRjtpQkFDSTtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQy9ELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFFM0UsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7b0JBQzNDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDO3dCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDeEUsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQzlELFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNsRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBQyxJQUFJO29CQUM3RSxDQUFDLENBQUMsQ0FBQTtvQkFDRixJQUFJLElBQUksR0FBRzt3QkFDUCxFQUFFLEVBQUUsTUFBTTt3QkFDVixHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUNWLENBQUE7b0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdEQ7O29CQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNqRDtTQUNKO0lBR0wsQ0FBQztJQUVELFFBQVE7SUFDUiw2QkFBTyxHQUFQO1FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BGLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUM1RSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQiwyQkFBMkI7U0FDOUI7SUFDTCxDQUFDO0lBRUQsc0NBQWdCLEdBQWhCLFVBQWlCLElBQUk7UUFBckIsaUJBcURDO1FBcERHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixvQ0FBb0M7UUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEYsSUFBSSxJQUFJLElBQUksY0FBYztZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNFLElBQUksSUFBSSxJQUFJLGNBQWM7WUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoRixJQUFJLElBQUksSUFBSSxhQUFhO1lBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkYsSUFBSSxJQUFJLElBQUksY0FBYyxFQUFFO1lBQ3hCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEUseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUdYO2FBQ0ksSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFO1lBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDNUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN0QyxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUVYO2FBQ0ksSUFBSSxJQUFJLElBQUksY0FBYyxFQUFFO1lBQzdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDM0UseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUVYO0lBSUwsQ0FBQztJQUVELFFBQVE7SUFDUiwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7ZUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFO1lBQzFELE9BQU87U0FDVjtRQUNELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkYsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFO29CQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3pDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwRCxPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JGO2lCQUNJO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNkLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUU5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7b0JBQzNDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDO3dCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDM0UsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDakMsUUFBUSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO29CQUM5RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztvQkFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDbEQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQUMsSUFBSTtvQkFDN0UsQ0FBQyxDQUFDLENBQUE7b0JBQ0YsSUFBSSxJQUFJLEdBQUc7d0JBQ1AsRUFBRSxFQUFFLE1BQU07d0JBQ1YsR0FBRyxFQUFFLENBQUMsQ0FBQztxQkFDVixDQUFBO29CQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3REOztvQkFDSSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDakQ7U0FFSjtJQUVMLENBQUM7SUFFRCw4QkFBUSxHQUFSO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxlQUFlO0lBQ2YsOEJBQVEsR0FBUjtRQUFBLGlCQW1JQztRQWxJRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtlQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDMUQsT0FBTztTQUNWO1FBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRixJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzVDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUU7Z0JBQzFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUU7b0JBQ3RDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDekMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25ELE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pGLGdEQUFnRDthQUNuRDtpQkFDSTtnQkFDRCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDN0IsVUFBVSxDQUFDO29CQUNQLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDOUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFVCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUM7b0JBQ3hDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZELFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDNUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFDLElBQUk7Z0JBQzVFLENBQUMsQ0FBQyxDQUFBO2dCQUNGLElBQUksSUFBSSxHQUFHO29CQUNQLEVBQUUsRUFBRSxNQUFNO29CQUNWLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQ1YsQ0FBQTtnQkFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLFlBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLHFDQUFxQztnQkFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN6QyxpRUFBaUU7b0JBQ2pFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRTt3QkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4Qzt5QkFDSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7d0JBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekM7eUJBQ0ksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO3dCQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7NEJBQ3RELFlBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RTs7NEJBQ0ksWUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3hDO3lCQUNJO3dCQUNELFlBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuQztpQkFDSjtnQkFDRCxJQUFJLFlBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN2QixZQUFVLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVUsQ0FBQyxDQUFDO29CQUNyRCxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ2IsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNoRyxJQUFJLEdBQUcsR0FBRyxDQUFDO3FCQUNkO29CQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTt3QkFDVixVQUFVLENBQUM7NEJBQ1AsWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDcEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUNULE9BQU87cUJBQ1Y7eUJBQ0k7d0JBQ0QsWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDaEQsT0FBTztxQkFDVjtpQkFDSjtxQkFDSSxJQUFJLFlBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUM3QixZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ2IsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNoRyxJQUFJLEdBQUcsR0FBRyxDQUFDO3FCQUNkO29CQUNELFVBQVUsQ0FBQzt3QkFDUCxJQUFJLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7NEJBQzdELCtCQUErQjt5QkFDbEM7NkJBQ0k7NEJBQ0QsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0NBQzdCLG1DQUFtQztnQ0FDbkMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0NBQ3JELE9BQU87NkJBQ1Y7aUNBQ0ksSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0NBQ25DLG1DQUFtQztnQ0FDbkMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0NBQ3RELE9BQU87NkJBQ1Y7eUJBQ0o7b0JBQ0wsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztpQkFDbEI7cUJBQ0k7b0JBQ0QsSUFBSSxPQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO3dCQUM3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQzdDLGtDQUFrQzs0QkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7NEJBQ3JELE9BQUssSUFBSSxDQUFDLENBQUM7NEJBQ1gsSUFBSSxPQUFLLElBQUksQ0FBQyxFQUFFO2dDQUNaLE1BQU07NkJBQ1Q7eUJBQ0o7cUJBQ0o7b0JBRUQsVUFBVSxDQUFDO3dCQUNQLElBQUksT0FBSyxJQUFJLENBQUMsRUFBRTs0QkFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQzlDLGtDQUFrQztnQ0FDbEMseURBQXlEO2dDQUN6RCxPQUFLLElBQUksQ0FBQyxDQUFDO2dDQUNYLElBQUksT0FBSyxJQUFJLENBQUMsRUFBRTtvQ0FDWixNQUFNO2lDQUNUOzZCQUNKO3lCQUNKO29CQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDWDthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNSLDhCQUFRLEdBQVI7UUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUN0QjthQUNJO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBSUQsWUFBWTtJQUNaLGdDQUFVLEdBQVY7UUFDSSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ3BCLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDZjthQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEVBQUU7WUFDekIsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFFRCx1QkFBdUI7UUFDdkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNqRCx5QkFBeUI7UUFDekIsZ0NBQWdDO1FBQ2hDLHVCQUF1QjtJQUMzQixDQUFDO0lBRUQsVUFBVTtJQUNWLG9DQUFjLEdBQWQsVUFBZSxLQUFLLEVBQUUsRUFBRTtRQUNwQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztnQkFDckMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDZjtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2Y7aUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtnQkFDNUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUM1QztpQkFDSSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQzVDO1lBQ0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUI7YUFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2FBQ2pDO2lCQUNJLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3BDO2lCQUNJLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNULElBQUksR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztxQkFDSSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO29CQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztpQkFDcEM7cUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtvQkFDNUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7aUJBQ3BDO2FBQ0o7WUFFRCxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWxELFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFVLENBQUM7WUFDUCxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztpQkFDYixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNyQixJQUFJLENBQUM7Z0JBQ0YsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsb0NBQWMsR0FBZDtRQUNJLFNBQVM7UUFDVCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM1QjtTQUNKO0lBQ0wsQ0FBQztJQUlELDRCQUFNLEdBQU4sVUFBTyxFQUFFO0lBRVQsQ0FBQzs7SUFoK0REO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7bURBQ2pCO0lBR2xDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7dURBQ2E7SUFHakM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO29EQUNkO0lBSXhDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUtuQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3VEQUNhO0lBR2pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0RBQ007SUFFMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2lEQUNPO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpREFDTztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBcytEL0I7SUFBRCxrQkFBQztDQXQrREQsQUFzK0RDLENBdCtEd0MsRUFBRSxDQUFDLFNBQVMsR0FzK0RwRDtrQkF0K0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOiBcIuWimeWjgeaVsOe7hFwiIH0pXHJcbiAgICBXYWxsX1ByZWZhYjogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHdhbGxUdXJuUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICB0aW1lQnRuOiBjYy5CdXR0b24gPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIGRlc3Ryb3lCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgbWFnaWNCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBpY2VMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgaGFtbWVyTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG1hZ2ljTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljTWFzazogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoYW1tZXJNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGNvaW5Qb3A6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIHRpbWVMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBsZXZlbExhYmVsOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBuZXdfbW9kZTogbnVtYmVyID0gMDtcclxuICAgIG1hcFdpZHRoOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgd2FsbE51bTogbnVtYmVyID0gMDtcclxuICAgIGJsb2NrTnVtOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwQmxvY2tzV2FsbDogYW55OyAgICAgIC8v5Zyw5Zu+55qE5omA5pyJ5bqV5Z2XXHJcbiAgICBtYXBJbmZvOiBhbnk7ICAgICAgIC8v5Zyw5Zu+6Zmk5LqG5bqV5Z2X55qE5YW25LuW5L+h5oGvXHJcbiAgICBibG9ja3M6IGFueTsgICAgICAgIC8v5pa55Z2X5pWw57uEXHJcbiAgICB3YWxsSW5mbzogYW55OyAgICAgIC8v5aKZ5aOB5pWw57uEXHJcbiAgICB3YWxsQXJyYXk6IGFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazogYW55OyAgLy/ljYfpmY3lnLDlnZfmlbDnu4RcclxuICAgIHNjaGVkdWxlQ2FsbGJhY2s6IGFueTsvL+WAkuiuoeaXtueUqFxyXG4gICAgaG9tZUNhblRvdWNoOiBib29sZWFuID0gdHJ1ZTsvL+aMiemSruWPr+eUqOeKtuaAgVxyXG4gICAgYWdhaW5DYW5Ub3VjaDogYm9vbGVhbiA9IHRydWU7Ly/ph43njqnmjInpkq7lj6/ku6XnlKjnirbmgIFcclxuICAgIGdhbWVPdmVyOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/nu5PmnZ/nirbmgIFcclxuICAgIGdhbWVXaW46IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+iDnOWIqeeKtuaAgVxyXG4gICAgZ2FtZVN0YXJ0OiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/lvIDlp4vnirbmgIFcclxuICAgIHRpbWVOdW1iZXI6IG51bWJlciA9IDA7IC8v5ri45oiP5pe26Ze0IOeUqOS6juWAkuiuoeaXtlxyXG4gICAgY291bnRfVGltZTogbnVtYmVyID0gMDsgLy/nlKjkuo7nu5/orqHmgLvmuLjmiI/ml7bplb9cclxuICAgIGFkZF9UaW1lOiBudW1iZXIgPSAwOyAgIC8v5aSN5rS75pe26Ze0XHJcbiAgICBtYXBCbG9ja0FycmF5OiBhbnk7ICAvL+WcsOWbvueahOaJgOacieagvOWtkOeKtuaAgeWtmOWCqFxyXG4gICAgcGF1c2U6IGJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOiBib29sZWFuID0gZmFsc2U7Ly/plKTlrZDnirbmgIFcclxuICAgIGZyZWV6ZUFycmF5OiBhbnk7IC8v5Ya757uTXHJcbiAgICBsb2Fja0FycmF5OiBhbnk7IC8v5LiK6ZSBXHJcbiAgICBwYXJ0aWNsZUVmZmVjdHM6IGNjLlBhcnRpY2xlQXNzZXRbXTtcclxuICAgIC8vIGxlZnREb29yczogW107IC8v5bem6ZeoXHJcbiAgICByaWdodERvb3JzOiBhbnk7IC8v5Y+z6ZeoXHJcbiAgICB0b3BEb29yczogYW55OyAvL+S4iumXqFxyXG4gICAgYm90dG9tRG9vcnM6IGFueTsgLy/kuIvpl6hcclxuICAgIGxlZnREb29yczogYW55O1xyXG5cclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJkb3duXCIsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIikge1xyXG4gICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLmxlZnREb29ycyA9IFtdOyAvL+W3pumXqFxyXG4gICAgICAgIHRoaXMucmlnaHREb29ycyA9IFtdOyAvL+WPs+mXqFxyXG4gICAgICAgIHRoaXMudG9wRG9vcnMgPSBbXTsgLy/kuIrpl6hcclxuICAgICAgICB0aGlzLmJvdHRvbURvb3JzID0gW107IC8v5LiL6ZeoXHJcbiAgICAgICAgdGhpcy5nYW1lV2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRNYXAoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy/lj5HpgIHmlbDmlbDkuovku7bigJTigJTov5vlhaXlhbPljaFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLlh4blpIfov5vlhaXkuIvkuIDlhbMs5Y+R6YCB5LiL5LiA5YWz6L+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaHml7bpl7RcIiwgdGhpcy50aW1lTnVtYmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDUwLCAyMCwgXCJsZXZlbF9cIiwgdGhpcy5sZXZlbExhYmVsLCBmYWxzZSlcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuW9k+WJjeWFs+WNoVwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKTtcclxuICAgICAgICAvL3RoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLm1hcFdpZHRoID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFswXTtcclxuICAgICAgICB0aGlzLm1hcEhlaWdodCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMV07XHJcbiAgICAgICAgbGV0IGdhcCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5nYXA7XHJcbiAgICAgICAgbGV0IHJpc2VmYWxsID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnJpc2VmYWxsO1xyXG5cclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oYW1tZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndhbGxOdW0gPSAwO1xyXG4gICAgICAgIHRoaXMuc2V0TWFwSW5mbygpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMub3BlbldhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZnJlZXplV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMucmlzZUZhbGxCbGNvayA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZnJlZXplQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmxvYWNrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG5cclxuXHJcbiAgICAgICAgbGV0IHN0YXJ0WCA9IHRoaXMubWFwV2lkdGggJSAyID09IDAgPyAtKHRoaXMubWFwV2lkdGggLSAxKSAqIDYwIDogLSh0aGlzLm1hcFdpZHRoIC0gMSkgKiA2MDtcclxuICAgICAgICBsZXQgc3RhcnRZID0gdGhpcy5tYXBIZWlnaHQgJSAyID09IDAgPyAtKHRoaXMubWFwSGVpZ2h0IC0gMSkgKiA2MCA6IC0odGhpcy5tYXBIZWlnaHQgLSAxKSAqIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WCA9KHRoaXMubWFwV2lkdGgtMSkqNjAgKyA2MDtcclxuICAgICAgICAvLyBzdGFydFkgPS0odGhpcy5tYXBIZWlnaHQtMSkqNjAgLSA2MDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsW2ldID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubWFwSGVpZ2h0OyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksIGopO1xyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZiAocmlzZWZhbGwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksIGopLCByaXNlZmFsbCwgYmxvY2spKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNvay5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZ2FwICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFwR2FwKGNjLnYyKGksIGopLCBnYXApIHx8IGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm1hcEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+WIm+W7uuaWueWdl1xyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbiAgICAvL+WIm+W7uuaWueWdl1xyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcblxyXG5cclxuXHJcbiAgICBibG9ja0luaXQoKSB7XHJcbiAgICAgICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICAgICAgYmxvY2tBcnJheSA9IHRoaXMuc29ydEJsb2NrKGJsb2NrQXJyYXkpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5Yib5bu65pa55Z2XXCIsIGJsb2NrQXJyYXkpO1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgICAgIGxldCBCTE9DS1NfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5pa55Z2X5pWw6YePXHJcbiAgICAgICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgICAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgICAgIGNvbnN0IGNyZWF0ZUJsb2NrcyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9ja0luZm8gPSBibG9ja0FycmF5W2luZGV4XTtcclxuICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoYmxvY2tJbmZvLnBvc2l0aW9uLngsIGJsb2NrSW5mby5wb3NpdGlvbi55KSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGJsb2NrSW5mby5pZCArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJsb2NrSW5mby5zdGFja2luZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNraW5nOiBibG9ja0luZm8uY29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJsb2NrSW5mby50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby5hZGhlc2l2ZVRpbWUgPCAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSBibG9ja0FycmF5W2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvLCBudWxsLCBudWxsLCBibG9ja1VwLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCYXJyaWVyXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3luKfmiafooYzml7bpl7Tov4fplb/vvIzlh4/lsJHmr4/luKfliJvlu7rmlbDph49cclxuICAgICAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7XHJcbiAgICAgICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5tYXgoQkxPQ0tTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWluKEJMT0NLU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDkvb/nlKggc2NoZWR1bGVPbmNlIOWcqOS4i+S4gOW4p+aJp+ihjCBjcmVhdGVCbG9ja3NcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVCbG9ja3MoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgfVxyXG4gICAgLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuICAgIHNvcnRCbG9jayhhbGxCbG9ja3M6IHsgY29sb3I6IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgdHlwZTogbnVtYmVyIH1bXSkge1xyXG4gICAgICAgIHJldHVybiBhbGxCbG9ja3Muc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICAgICAgaWYgKGEudHlwZSA9PT0gMSAmJiBiLnR5cGUgIT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDEgJiYgYi50eXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWvuSB0eXBlIOS4jeS4uiAwIOeahOWFg+e0oOaMiSB0eXBlIOaOkuW6j1xyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAwICYmIGIudHlwZSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSA9PT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5YaN5aSE55CGIGJsb2NrIOS4uiAyMyDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDliY3pnaJcclxuICAgICAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgICAgICByZXR1cm4gYS5jb2xvciAtIGIuY29sb3I7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5Yib5bu65aKZ5aOBXHJcblxyXG4gICAgd2FsbEluaXQoKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICAgICAgbGV0IFdBTExTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOWimeWjgeaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICAgICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgICAgICBjb25zdCBjcmVhdGVXYWxscyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ3YWxsXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlV2FsbChkaXIsIGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3luKfmiafooYzml7bpl7Tov4fplb/vvIzlh4/lsJHmr4/luKfliJvlu7rmlbDph49cclxuICAgICAgICAgICAgaWYgKGZyYW1lVGltZSA+IDE2KSB7XHJcbiAgICAgICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1heChXQUxMU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIFdBTExTX1BFUl9GUkFNRSA9IE1hdGgubWluKFdBTExTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29ybmVyTm9kZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuWimeWjgVxyXG4gICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLi4uIOW3suacieS7o+eggSAuLi5cclxuXHJcbiAgICBnZXRXbGxEaXJhY3Rpb24odHlwZSwgcG9pbnRBKSB7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEsIHBvaW50QS55KTtcclxuICAgICAgICBsZXQgcG9pbnRDID0gY2MudjIocG9pbnRBLnggLSAxLCBwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50RCA9IGNjLnYyKHBvaW50QS54LCBwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCwgcG9pbnRBLnkgLSAxKTtcclxuICAgICAgICBsZXQgb3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJ3YWxsXCIpIG9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcblxyXG4gICAgICAgIGlmIChwb2ludEIueCA8IHRoaXMubWFwV2lkdGgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJyaWdodFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRDLnggPj0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qy54XVtwb2ludEMueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwibGVmdFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRELnkgPCB0aGlzLm1hcEhlaWdodCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RC54XVtwb2ludEQueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInVwXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEUueSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRFLnhdW3BvaW50RS55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJkb3duXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXIubGVuZ3RoID4gMikge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXIubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ3YWxsXCIpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlyWzBdO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkaXJbMF0gKyBkaXJbMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNvcm5lck5vZGVzKCkge1xyXG4gICAgICAgIC8vIOWumuS5ieaLkOinkuS9jee9rlxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2ldO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2sub3BhY2l0eSAhPSAyNTApIHtcclxuICAgICAgICAgICAgICAgIGxldCBkaXIgPSB0aGlzLmdldFdsbERpcmFjdGlvbihcInR1cm5cIiwgY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUdXJuKGRpciwgYmxvY2ssIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlV2FsbChkaXJlY3Rpb24sIG5vZGUpIHtcclxuICAgICAgICBsZXQgd2FsbCA9IG51bGw7XHJcbiAgICAgICAgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5zZXREaXJhY3Rpb24oZGlyZWN0aW9uKTtcclxuICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzVdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvcERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbURvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXByaWdodFwiOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCI6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3dubGVmdFwiOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCkge1xyXG4gICAgICAgIGxldCBkb29ySW5mbyA9IGNjLmZ4LkdhbWVDb25maWcuV0FMTF9JTkZPWzBdO1xyXG5cclxuICAgICAgICBpZiAoZG9vckluZm8pIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkb29ySW5mby5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pIHtcclxuICAgICAgICAgICAgICAgICAgICB3YWxsLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChkb29ySW5mb1tqXSwgbnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXkucHVzaCh3YWxsLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sIG5vZGUsIHBvc1gsIHBvc1kpIHtcclxuICAgICAgICBsZXQgd2FsbCA9IG51bGw7XHJcbiAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMud2FsbFR1cm5QcmVmYWIpO1xyXG4gICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlIFwidXByaWdodFwiOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIjogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCI6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAyNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0yNzA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDIuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIjogY2FzZSBcImxlZnRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMTgwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMTgwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSA0LjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDMuMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gaWYoZGlyZWN0aW9uID09IFwicmlnaHRkb3duXCIgfHwgZGlyZWN0aW9uID09IFwiZG93bnJpZ2h0XCIpIHtcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgXHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG5cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwidXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cGxlZnRcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Ugd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZICogMztcclxuXHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5hbmdsZSA9IC13YWxsLmFuZ2xlO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRpcmVjdGlvbjtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB3YWxsLnpJbmRleCsgXCJcIjtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhwb3NYLHBvc1ksd2FsbC56SW5kZXgpO1xyXG4gICAgICAgIC8vIHRoaXMud2FsbE51bSArPSAgMTtcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtICsgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvL+WcsOWbvuW6leWdl+e8uuWPo+WIpOaWrVxyXG4gICAgbWFwR2FwKHBvaW50LCBnYXApIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocG9pbnQueCA9PSBnYXBbaV0ueCAmJiBwb2ludC55ID09IGdhcFtpXS55KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/ljYfpmY3lnLDlnZfliKTmlq1cclxuICAgIG1hcFJpc2VGYWxsKHBvaW50LCByaXNlZmFsbCwgYmxvY2spIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpc2VmYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwb2ludC54ID09IHJpc2VmYWxsW2ldLnBvcy54ICYmIHBvaW50LnkgPT0gcmlzZWZhbGxbaV0ucG9zLnkpIHtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvciArIFwiXCI7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsIDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsIGRvd24pIHtcclxuICAgICAgICBjb2xvciA9IGNvbG9yLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJpc2VGYWxsQmxjb2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5hZGRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpLnNpemUgPSBjYy5zaXplKDExMCwgMTEwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+afpeivouWPoOWKoOW/q2lkXHJcbiAgICBmb3VuZERvd25CbG9jayhpZCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIoOmZpOWdl1xyXG4gICAgcmVtb3ZlQmxvY2soaWQpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWluQW5kTWF4KGJsb2NrKSB7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGggLSAyO1xyXG4gICAgICAgIGxldCBtaW5ZID0gMTtcclxuICAgICAgICBsZXQgbWF4WSA9IHRoaXMubWFwSGVpZ2h0IC0gMiAtIGhlaWdodCArIDE7XHJcblxyXG4gICAgICAgIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxMFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFggLSAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTRcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE2XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxOFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMjFcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBtaW5YOiBtaW5YLCBtYXhYOiBtYXhYLCBtaW5ZOiBtaW5ZLCBtYXhZOiBtYXhZIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvokL3ngrnmmK/lkKblj6/ku6XmtojpmaRcclxuICAgIGNoZWNrUGFzcyhub2RlLCBibG9ja3MpIHtcclxuICAgICAgICBsZXQgbWluQW5kTWF4ID0gdGhpcy5nZXRNaW5BbmRNYXgobm9kZSk7XHJcbiAgICAgICAgbGV0IG1pblggPSBtaW5BbmRNYXgubWluWDtcclxuICAgICAgICBsZXQgbWF4WCA9IG1pbkFuZE1heC5tYXhYO1xyXG4gICAgICAgIGxldCBtaW5ZID0gbWluQW5kTWF4Lm1pblk7XHJcbiAgICAgICAgbGV0IG1heFkgPSBtaW5BbmRNYXgubWF4WTtcclxuXHJcbiAgICAgICAgbGV0IG5vZGVQb3MgPSBjYy52Mihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSk7XHJcblxyXG4gICAgICAgIC8vIOiOt+WPluWcsOWbvui+ueeVjOS/oeaBr1xyXG5cclxuICAgICAgICBsZXQgYWxsQmxvY2tzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgYWxsQmxvY2tzLnB1c2goY2MudjIobm9kZVBvcy54ICsgYmxvY2tzW2ldLngsIG5vZGVQb3MueSArIGJsb2Nrc1tpXS55KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBjb25zdCBkYXRlMSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bCG5bCP5Z2X5pS+5YWl5pWw57uE55qE5pe26Ze0XCIsZGF0ZTEpO1xyXG5cclxuICAgICAgICBsZXQgamcgPSAtMTtcclxuICAgICAgICBsZXQgcHogPSAwO1xyXG4gICAgICAgIC8vIOiOt+WPluaJgOacieWimeWjgeiKgueCuVxyXG4gICAgICAgIC8vIGxldCB3YWxsID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLmNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcywgbWF4WCwgbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVmdERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbExlZnQgPSB0aGlzLmxlZnREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0V2FsbHMucHVzaCh3YWxsTGVmdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5b6X5Yiw5bem6L655aKZ5aOB5pWw57uEXCIsZGF0ZTYpO1xyXG4gICAgICAgICAgICBpZiAobGVmdFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCBsZWZ0V2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJpZ2h0RG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUmlnaHQgPSB0aGlzLnJpZ2h0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodFdhbGxzLnB1c2god2FsbFJpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyaWdodFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIHJpZ2h0V2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSA8PSBtaW5ZIHx8IGRpcmVjdGlvblsyXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yYXCIsZGF0ZTQpO1xyXG4gICAgICAgICAgICBsZXQgZG93bldhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxCb3R0b20gPSB0aGlzLnRvcERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbEJvdHRvbS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPiB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGRvd25XYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJkb3duXCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgZG93bldhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiL6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnkgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJvdHRvbURvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFRvcCA9IHRoaXMuYm90dG9tRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBXYWxscy5wdXNoKHdhbGxUb3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHVwV2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCB1cFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChweiA9PSAwKSBqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3BlbldhbGwubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9wZW5XYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZnJlZXplV2FsbC5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZnJlZXplV2FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5piv5ZCm5Y+v5Lul6YCa6L+H6ZeoXHJcbiAgICBwYXNzV2FsbChqZywgd2FsbEFycmF5LCBub2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIgJiYgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3BlbiA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciAhPSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgIT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGpnID09IHRydWUgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3YWxsQXJyYXkubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEgJiYgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikud2FsbF9JbmZvLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikucGxheVN0YXJEb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+minOiJsuaYr+WQpuiDveWkn+mAmui/h+mXqFwiLGRhdGU4KTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmlrnlnZflkozpl6jkuK3pl7TmnInmsqHmnInlpLnmnYLlhbbku5blnZdcclxuICAgIGRldGVjdGluZ0Jsb2NrKGRpcmVjdGlvbiwgcG9zWCwgcG9zWSwgYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmIChibG9ja3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gcG9zLng7XHJcbiAgICAgICAgICAgICAgICBsZXQgeSA9IHBvcy55O1xyXG4gICAgICAgICAgICAgICAgaWQgPSB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQ7XHJcbiAgICAgICAgICAgICAgICBqZyA9IHRoaXMuY2hlY2tBbGxEaXJlY3Rpb25zKGlkLCBkaXJlY3Rpb24sIHgsIHkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFqZykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlNyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL6YCa6L+HXCIsZGF0ZTcsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl++8jOmYsuatoueisOWIsOWimeWjgeS6huS9huaYr+aYr+WHueWHuOW9oueKtu+8jOWimeS4juWdl+S5i+mXtOaciemYu+aMoeeJqeWdl1xyXG4gICAgY2hlY2tBbGxEaXJlY3Rpb25zKGlkLCBkaXJlY3Rpb24sIHgsIHkpIHtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwibGVmdFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh4IC0gMikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPs+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh5ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwiZG93blwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh5IC0gMikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsIG1heFgsIG1heFkpIHtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA+IDAgJiYgamdbMF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnggLSAxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnWzFdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54ICsgMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA+IDAgJiYgamdbMl0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55IC0gMV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnWzNdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSArIDFdLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbM10gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0xlZnQoYWxsQmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrUmlnaHQoYWxsQmxvY2tzLCBtYXgpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRG93bihhbGxCbG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVXAoYWxsQmxvY2tzLCBtYXgpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+eJueauiuWkhOeQhu+8jOaWueWdl+W4pumBk+WFt+aIluiAhemcgOimgea2iOmZpOWGsOWdl1xyXG4gICAgc3BlY2lhbF9UcmVhdG1lbnQobm9kZSkge1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZnJlZXplQmxvY2subGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyZWV6ZUJsb2NrLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmcmVlemVCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImZyZWV6ZVwiKS5nZXRDb21wb25lbnQoXCJGcmVlemVcIikucmVkdWNlKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpIHtcclxuICAgICAgICAgICAgbGV0IGxvY2tCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAobG9ja0Jsb2NrLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2tCbG9jay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2tCbG9ja1tpXS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuZ2V0Q29tcG9uZW50KFwiTG9ja1wiKS5yZWR1Y2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXSA9PSBub2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5ri45oiP5oiQ5Yqf5LiL5LiA5YWzXHJcbiAgICBuZXh0TGV2ZWwoKSB7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkljZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrTnVtID0gdGhpcy5ibG9ja3MubGVuZ3RoO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ibG9ja051bSA9PSAwICYmICF0aGlzLmdhbWVXaW4gJiYgIXRoaXMuZ2FtZU92ZXIpIHtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRoaXMuY291bnRfVGltZSwgdGhpcy5hZGRfVGltZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX05ld01vZGUoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9LCA2NjApO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmFpbExldmVsKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrX05ld01vZGUoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZ2FpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwIDwgMSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldmlld0xldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBjb2luID0gMTkwMDtcclxuICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XliqDml7bpl7RcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLCBkYXRhKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKGRhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnu6fnu63muLjmiI9cIik7XHJcblxyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG5cclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaG9tZUJ0bigpIHtcclxuICAgICAgICAvLyBhbGVydChcIua4uOaIj+Wksei0pVwiKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6IHRoaXMuY291bnRfVGltZSxcclxuICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDogXCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsIGRhdGEpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5ri45oiP5aSx6LSlXHJcbiAgICBmYWlsTGV2ZWwodHlwZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSB8fCB0aGlzLmdhbWVXaW4gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJib29tXCIpIHtcclxuICAgICAgICAgICAgdGltZSA9IDIwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgYnV5QnRuID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ1eUJ0blwiKTtcclxuICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4xXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJib29tXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHRpbWUpO1xyXG5cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+Wksei0pVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaWsOaooeW8j+W8ueeql1xyXG4gICAgb3Blbk5ld01vZGUodHlwZSkge1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgY29uc3QgQkxPQ0tTX1BFUl9GUkFNRSA9IDU7IC8vIOavj+W4p+mUgOavgeeahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyBCTE9DS1NfUEVSX0ZSQU1FLCB0aGlzLmJsb2Nrcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKDsgaW5kZXggPCBlbmRJbmRleDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2luZGV4XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2luZGV4XS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq6ZSA5q+B77yM5LiL5LiA5bin57un57utXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYmxvY2tzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJsb2NrcywgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIOW8gOWni+WIhuW4p+mUgOavgeaWueWdl1xyXG4gICAgICAgIGRlc3Ryb3lCbG9ja3MoKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIk5ld01vZGVcIikuZ2V0Q29tcG9uZW50KFwiTmV3TW9kZVwiKS5zZXRNb2RlKHR5cGUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBkb3duRG9vcihjb2xvciwgdHlwZSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yID09IGNvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09IDUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53YWxsQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5vcGFjaXR5ID09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnVwRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgICBzdGFydFRpbWVDdXREb3duKCkge1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZU51bWJlciA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhdXNlKSB0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnRfVGltZSArPSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrLCAxKTtcclxuICAgIH1cclxuICAgIC8vIOWBnOatouWAkuiuoeaXtlxyXG4gICAgc3RvcFRpbWVDdXREb3duKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spIHtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So5pe26Ze06YGT5YW3XHJcbiAgICB1c2VUaW1lUHJvcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGlmIChmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImZyZWV6ZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v6Kej5byA5pe26Ze05Ya757uTXHJcbiAgICBvcGVuSWNlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSkge1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Zue6LCD5Ye95pWw5YaFOlwiLHRoaXMucGF1c2UpO1xyXG4gICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmIChkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYgKGRhdGEgPT0gXCJmcmVlemVBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5mcmVlemVBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ICs9IDM7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmUpOWtkOmBk+WFt1xyXG4gICAgdXNlSGFtbWVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYgKGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiaGFtbWVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhbW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJNYXNrLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumUpOWtkOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgYnV5TWFnaWMoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMywgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJtYWdpY0Ftb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5SGFtbWVyKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDIsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSwgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJmcmVlemVBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6a2U5rOV5qOS6ZqP5py65raI6Zmk5Lik5Liq5pa55Z2XXHJcbiAgICB1c2VNYWdpYygpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmIChtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAzLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwM1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbm9tYWxBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5tYWdpY0J0bi5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55Z2X57G75Z6LXCIsdGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxIHx8IG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aW1lID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobm9tYWxBcnJheS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoID09IDAgJiYgdGhpcy5sb2Fja0FycmF5Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPquWJqeS4i+S4gOS4quWdl+mBk+WFt+S9v+eUqOWujOavlVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvYWNrQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5mcmVlemVBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwICsgdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvYWNrQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mcmVlemVBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhdXNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8v5qC55o2u5YWz5Y2h6K6+572u5Zyw5Zu+5aSn5bCPXHJcbiAgICBzZXRNYXBJbmZvKCkge1xyXG4gICAgICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPCAxMCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9IDAuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5tYXBXaWR0aCA8IDE3KSB7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoIC0gMTEpICogMC4wMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDEuNiArICg2IC0gdGhpcy5tYXBXaWR0aCkgKiB3aWR0aDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPT0gOCAmJiB0aGlzLm1hcEhlaWdodCA+IDEzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jaywgamcpIHtcclxuICAgICAgICBsZXQgcGFydGljbGUgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFs5XSk7XHJcbiAgICAgICAgcGFydGljbGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHBhcnRpY2xlLnpJbmRleCA9IDEwMDA7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuICAgICAgICBsZXQgbmFtZSA9IFwiXCI7XHJcblxyXG4gICAgICAgIGlmIChqZyA9PSAwIHx8IGpnID09IDEpIHtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmIChqZyA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJib3RfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgeSA9IGJsb2NrLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAoMC41IC0gMC4zMyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogKDAuNSAtIDAuNjYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChqZyA9PSAyIHx8IGpnID09IDMpIHtcclxuICAgICAgICAgICAgbmFtZSA9IFwibGVmdF9cIiArIGhlaWdodCArIFwiX1wiICsgd2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAqIDAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC42NjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamcgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwicmlnaHRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjY2O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjY2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuMzM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9IHBhcnRpY2xlLmdldENoaWxkQnlOYW1lKG5hbWUpO1xyXG4gICAgICAgIGxldCBjb2xvciA9IGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yIC0gMTtcclxuXHJcbiAgICAgICAgcGFydGljbGVOb2RlLmdldENvbXBvbmVudChjYy5QYXJ0aWNsZVN5c3RlbSkuc3ByaXRlRnJhbWUgPSBwYXJ0aWNsZS5nZXRDb21wb25lbnQoXCJSZWR1Y2VcIikuQmxvY2tfQ29sb3JbY29sb3JdO1xyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy50d2VlbihwYXJ0aWNsZSlcclxuICAgICAgICAgICAgICAgIC50bygyLCB7IG9wYWNpdHk6IDAgfSlcclxuICAgICAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlT25lQmxvY2soKSB7XHJcbiAgICAgICAgLy8g56e76Zmk5omA5pyJ5pa55Z2XXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0ub3BhY2l0eSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRSxDQUFDO29EQUNkO0lBSXhDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUtuQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3VEQUNhO0lBR2pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0RBQ007SUFFMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2lEQUNPO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpREFDTztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBMCtEL0I7SUFBRCxrQkFBQztDQTErREQsQUEwK0RDLENBMStEd0MsRUFBRSxDQUFDLFNBQVMsR0EwK0RwRDtrQkExK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOiBcIuWimeWjgeaVsOe7hFwiIH0pXHJcbiAgICBXYWxsX1ByZWZhYjogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHdhbGxUdXJuUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICB0aW1lQnRuOiBjYy5CdXR0b24gPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIGRlc3Ryb3lCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgbWFnaWNCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBpY2VMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgaGFtbWVyTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG1hZ2ljTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljTWFzazogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoYW1tZXJNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGNvaW5Qb3A6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIHRpbWVMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBsZXZlbExhYmVsOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGNvaW46IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIG5ld19tb2RlOiBudW1iZXIgPSAwO1xyXG4gICAgbWFwV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICBtYXBIZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgICB3YWxsTnVtOiBudW1iZXIgPSAwO1xyXG4gICAgYmxvY2tOdW06IG51bWJlciA9IDA7XHJcbiAgICBtYXBCbG9ja3NXYWxsOiBhbnk7ICAgICAgLy/lnLDlm77nmoTmiYDmnInlupXlnZdcclxuICAgIG1hcEluZm86IGFueTsgICAgICAgLy/lnLDlm77pmaTkuoblupXlnZfnmoTlhbbku5bkv6Hmga9cclxuICAgIGJsb2NrczogYW55OyAgICAgICAgLy/mlrnlnZfmlbDnu4RcclxuICAgIHdhbGxJbmZvOiBhbnk7ICAgICAgLy/lopnlo4HmlbDnu4RcclxuICAgIHdhbGxBcnJheTogYW55OyAgICAgIC8vXHJcbiAgICBvcGVuV2FsbDogYW55OyAgICAgIC8v5byA5YWz5aKZ5pWw57uEXHJcbiAgICBmcmVlemVXYWxsOiBhbnk7ICAgIC8v5Ya757uT5aKZ5pWw57uEXHJcbiAgICByaXNlRmFsbEJsY29rOiBhbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6IGJvb2xlYW4gPSB0cnVlOy8v5oyJ6ZKu5Y+v55So54q25oCBXHJcbiAgICBhZ2FpbkNhblRvdWNoOiBib29sZWFuID0gdHJ1ZTsvL+mHjeeOqeaMiemSruWPr+S7peeUqOeKtuaAgVxyXG4gICAgZ2FtZU92ZXI6IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+e7k+adn+eKtuaAgVxyXG4gICAgZ2FtZVdpbjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP6IOc5Yip54q25oCBXHJcbiAgICBnYW1lU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTsvL+a4uOaIj+W8gOWni+eKtuaAgVxyXG4gICAgdGltZU51bWJlcjogbnVtYmVyID0gMDsgLy/muLjmiI/ml7bpl7Qg55So5LqO5YCS6K6h5pe2XHJcbiAgICBjb3VudF9UaW1lOiBudW1iZXIgPSAwOyAvL+eUqOS6jue7n+iuoeaAu+a4uOaIj+aXtumVv1xyXG4gICAgYWRkX1RpbWU6IG51bWJlciA9IDA7ICAgLy/lpI3mtLvml7bpl7RcclxuICAgIG1hcEJsb2NrQXJyYXk6IGFueTsgIC8v5Zyw5Zu+55qE5omA5pyJ5qC85a2Q54q25oCB5a2Y5YKoXHJcbiAgICBwYXVzZTogYm9vbGVhbiA9IGZhbHNlOy8v5pqC5YGc54q25oCBXHJcbiAgICBoYW1tZXI6IGJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQoKSB7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubWFzay5vcGFjaXR5ID0gMDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJBZGhlc2l2ZVwiKS56SW5kZXggPSA1MDA7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMlwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubGVmdERvb3JzID0gW107IC8v5bem6ZeoXHJcbiAgICAgICAgdGhpcy5yaWdodERvb3JzID0gW107IC8v5Y+z6ZeoXHJcbiAgICAgICAgdGhpcy50b3BEb29ycyA9IFtdOyAvL+S4iumXqFxyXG4gICAgICAgIHRoaXMuYm90dG9tRG9vcnMgPSBbXTsgLy/kuIvpl6hcclxuICAgICAgICB0aGlzLmdhbWVXaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAvLyBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBIb21lU2NlbmUg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIui/m+WFpUdhbWVTY2VuZVwiKTtcclxuICAgICAgICB0aGlzLkJsb2NrX0FycmF5ID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0FycmF5O1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuV2FsbF9QcmVmYWI7XHJcbiAgICAgICAgdGhpcy5CbG9ja19Db2xvciA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19Db2xvcjtcclxuICAgICAgICAvLyB0aGlzLnBhcnRpY2xlRWZmZWN0cyA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5wYXJ0aWNsZUVmZmVjdHM7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5nYW1lU3RhcnQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmdldENoaWxkQnlOYW1lKFwiYm9vbVwiKS5nZXRDb21wb25lbnQoXCJCb29tXCIpLnN0YXJ0Qm9vbSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRNYXAoKSB7XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy5jb2luID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImNvaW5cIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaHml7bpl7RcIiwgdGhpcy50aW1lTnVtYmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwgMzAsIDE1LCBcImNvaW5fXCIsIHRoaXMuY29pbiwgdHJ1ZSk7XHJcbiAgICAgICAgLy8gdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCA1MCwgMjAsIFwibGV2ZWxfXCIsIHRoaXMubGV2ZWxMYWJlbCwgZmFsc2UpXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlvZPliY3lhbPljaFcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSk7XHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuXHJcblxyXG4gICAgICAgIGxldCBzdGFydFggPSB0aGlzLm1hcFdpZHRoICUgMiA9PSAwID8gLSh0aGlzLm1hcFdpZHRoIC0gMSkgKiA2MCA6IC0odGhpcy5tYXBXaWR0aCAtIDEpICogNjA7XHJcbiAgICAgICAgbGV0IHN0YXJ0WSA9IHRoaXMubWFwSGVpZ2h0ICUgMiA9PSAwID8gLSh0aGlzLm1hcEhlaWdodCAtIDEpICogNjAgOiAtKHRoaXMubWFwSGVpZ2h0IC0gMSkgKiA2MDtcclxuICAgICAgICAvLyBzdGFydFggPSh0aGlzLm1hcFdpZHRoLTEpKjYwICsgNjA7XHJcbiAgICAgICAgLy8gc3RhcnRZID0tKHRoaXMubWFwSGVpZ2h0LTEpKjYwIC0gNjA7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXBXaWR0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLk1hcEJsb2NrUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hcEJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuaW5pdChpLCBqKTtcclxuICAgICAgICAgICAgICAgIC8vIGJsb2NrLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gaSArIFwiOlwiICsgajtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKHN0YXJ0WCArIGkgKiAxMjAsIHN0YXJ0WSArIGogKiAxMjApKVxyXG4gICAgICAgICAgICAgICAgaWYgKHJpc2VmYWxsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBSaXNlRmFsbChjYy52MihpLCBqKSwgcmlzZWZhbGwsIGJsb2NrKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGdhcCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hcEdhcChjYy52MihpLCBqKSwgZ2FwKSB8fCBpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5vcGFjaXR5ID0gMjU0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53YWxsSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm1hcEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBCbG9ja3NXYWxsW2ldLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLndhbGxJbml0KCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja0luaXQoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZdcclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG5cclxuXHJcblxyXG4gICAgYmxvY2tJbml0KCkge1xyXG4gICAgICAgIGxldCBibG9ja0FycmF5ID0gY2MuZnguR2FtZUNvbmZpZy5CTE9DS19JTkZPWzBdO1xyXG4gICAgICAgIGJsb2NrQXJyYXkgPSB0aGlzLnNvcnRCbG9jayhibG9ja0FycmF5KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWIm+W7uuaWueWdl1wiLCBibG9ja0FycmF5KTtcclxuICAgICAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTmlrnlnZfntKLlvJVcclxuICAgICAgICBsZXQgQkxPQ0tTX1BFUl9GUkFNRSA9IDE7IC8vIOWIneWni+avj+W4p+WIm+W7uueahOaWueWdl+aVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICAgICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgICAgICBjb25zdCBjcmVhdGVCbG9ja3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEJMT0NLU19QRVJfRlJBTUUgJiYgaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2tJbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja1ByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbYmxvY2tJbmZvLmJsb2NrXTtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKGJsb2NrUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby5ibG9jayAhPSAyMykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLnR5cGUgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2s6IGJsb2NrSW5mby5ibG9jayxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBibG9ja0luZm8uc3RhY2tpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBibG9ja0luZm8ucG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZzogYmxvY2tJbmZvLmNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jayk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8uYWRoZXNpdmVUaW1lIDwgMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmZvID0gYmxvY2tBcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tVcFByZWZhYiA9IHRoaXMuQmxvY2tfQXJyYXlbaW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBibG9ja1VwID0gY2MuaW5zdGFudGlhdGUoYmxvY2tVcFByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChpbmZvLCBudWxsLCBudWxsLCBibG9jaywgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmFycmllclwiKS5pbml0KGJsb2NrSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgY29uc3QgZnJhbWVUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikge1xyXG4gICAgICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1pbihCTE9DS1NfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCBibG9ja0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyDlvIDlp4vliIbluKfliJvlu7rmlrnlnZdcclxuICAgICAgICBjcmVhdGVCbG9ja3MoKTtcclxuICAgIH1cclxuICAgIC8v57uZ5Yib5bu65pa55Z2X5o6S5bqP77yM55So5p2l6ZmN5L2OZHJhd2NhbGwg5ZCI5om5XHJcbiAgICBzb3J0QmxvY2soYWxsQmxvY2tzOiB7IGNvbG9yOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IHR5cGU6IG51bWJlciB9W10pIHtcclxuICAgICAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgLy8g5YWI5aSE55CGIHR5cGUg5Li6IDEg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5ZCOXHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgPT09IDEgJiYgYi50eXBlICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlICE9PSAxICYmIGIudHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlr7kgdHlwZSDkuI3kuLogMCDnmoTlhYPntKDmjIkgdHlwZSDmjpLluo9cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnR5cGUgLSBiLnR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgICAgIGlmIChhLmJsb2NrID09PSAyMyAmJiBiLmJsb2NrICE9PSAyMykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLmJsb2NrICE9PSAyMyAmJiBiLmJsb2NrID09PSAyMykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWFtuS9meaMiSBjb2xvciDljYfluo/mjpLliJdcclxuICAgICAgICAgICAgcmV0dXJuIGEuY29sb3IgLSBiLmNvbG9yO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WIm+W7uuWimeWjgVxyXG5cclxuICAgIHdhbGxJbml0KCkge1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOWimeWjgee0ouW8lVxyXG4gICAgICAgIGxldCBXQUxMU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTlopnlo4HmlbDph49cclxuICAgICAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICAgICAgY29uc3QgY3JlYXRlV2FsbHMgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IFdBTExTX1BFUl9GUkFNRSAmJiBpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVdhbGwoZGlyLCBibG9jayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgY29uc3QgZnJhbWVUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5b2T5YmN5bin5omn6KGM5pe26Ze06L+H6ZW/77yM5YeP5bCR5q+P5bin5Yib5bu65pWw6YePXHJcbiAgICAgICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikge1xyXG4gICAgICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBXQUxMU19QRVJfRlJBTUUgPSBNYXRoLm1pbihXQUxMU19QRVJfRlJBTUUgKyAxLCBNQVhfUEVSX0ZSQU1FKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5aKZ5aOB5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMud2FsbEluZm8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlV2FsbHMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8g5omA5pyJ5aKZ5aOB5Yib5bu65a6M5oiQ5ZCO77yM5Yib5bu65ouQ6KeS6IqC54K5XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvcm5lck5vZGVzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyDlvIDlp4vliIbluKfliJvlu7rlopnlo4FcclxuICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4gICAgZ2V0V2xsRGlyYWN0aW9uKHR5cGUsIHBvaW50QSkge1xyXG4gICAgICAgIGxldCBkaXIgPSBbXTtcclxuICAgICAgICBsZXQgcG9pbnRCID0gY2MudjIocG9pbnRBLnggKyAxLCBwb2ludEEueSk7XHJcbiAgICAgICAgbGV0IHBvaW50QyA9IGNjLnYyKHBvaW50QS54IC0gMSwgcG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCwgcG9pbnRBLnkgKyAxKTtcclxuICAgICAgICBsZXQgcG9pbnRFID0gY2MudjIocG9pbnRBLngsIHBvaW50QS55IC0gMSk7XHJcbiAgICAgICAgbGV0IG9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGlmICh0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwidHVyblwiKSBvcGFjaXR5ID0gMjUwO1xyXG5cclxuICAgICAgICBpZiAocG9pbnRCLnggPCB0aGlzLm1hcFdpZHRoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50Qy54ID49IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qy54XVtwb2ludEMueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImxlZnRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RC54XVtwb2ludEQueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwidXBcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJ1cFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocG9pbnRFLnkgPj0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRFLnhdW3BvaW50RS55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJkb3duXCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyLmxlbmd0aCA+IDIpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlID09IFwid2FsbFwiKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpclswXTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpci5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYgKGJsb2NrLm9wYWNpdHkgIT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlyID0gdGhpcy5nZXRXbGxEaXJhY3Rpb24oXCJ0dXJuXCIsIGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1kpKTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsIGJsb2NrLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLCBub2RlKSB7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuc2V0RGlyYWN0aW9uKGRpcmVjdGlvbik7XHJcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls0XSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbM10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50b3BEb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIjogY2FzZSBcInJpZ2h0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzddKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGxlZnRcIjogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlsyXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bmxlZnRcIjogY2FzZSBcImxlZnRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlsxXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyBpZih3YWxsVHVybil7XHJcbiAgICAgICAgLy8gICAgIHdhbGxUdXJuLmdldENvbXBvbmVudChcIndhbGxUdW5yXCIpLmluaXQod2FsbCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERvb3JJbmZvKHdhbGwpIHtcclxuICAgICAgICBsZXQgZG9vckluZm8gPSBjYy5meC5HYW1lQ29uZmlnLldBTExfSU5GT1swXTtcclxuXHJcbiAgICAgICAgaWYgKGRvb3JJbmZvKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZG9vckluZm8ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChkb29ySW5mb1tqXS5udW0gPT0gdGhpcy53YWxsTnVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FsbC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQoZG9vckluZm9bal0sIG51bGwsIG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5LnB1c2god2FsbC5wYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVR1cm4oZGlyZWN0aW9uLCBub2RlLCBwb3NYLCBwb3NZKSB7XHJcbiAgICAgICAgbGV0IHdhbGwgPSBudWxsO1xyXG4gICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLndhbGxUdXJuUHJlZmFiKTtcclxuICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSBcInVwcmlnaHRcIjogY2FzZSBcInJpZ2h0dXBcIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCI6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSA5MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSA1O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCAtPSAxLjM7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25yaWdodFwiOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCI6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTE4MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gNC41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAzLjI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiKSB7XHJcbiAgICAgICAgLy8gICAgIHdhbGwuekluZGV4ID0gNTAgKyBwb3NYIC0gcG9zWSozO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIFxyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuXHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAxMDAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRkb3duXCIgfHwgZGlyZWN0aW9uID09IFwiZG93bnJpZ2h0XCIgfHwgZGlyZWN0aW9uID09IFwiZG93bmxlZnRcIikge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDMwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIikge1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSAqIDM7XHJcblxyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuYW5nbGUgPSAtd2FsbC5hbmdsZTtcclxuICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gd2FsbC56SW5kZXgrIFwiXCI7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zWCxwb3NZLHdhbGwuekluZGV4KTtcclxuICAgICAgICAvLyB0aGlzLndhbGxOdW0gKz0gIDE7XHJcbiAgICAgICAgLy8gd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bSArIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lnLDlm77lupXlnZfnvLrlj6PliKTmlq1cclxuICAgIG1hcEdhcChwb2ludCwgZ2FwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHBvaW50LnggPT0gZ2FwW2ldLnggJiYgcG9pbnQueSA9PSBnYXBbaV0ueSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2X5Yik5patXHJcbiAgICBtYXBSaXNlRmFsbChwb2ludCwgcmlzZWZhbGwsIGJsb2NrKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXNlZmFsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KSB7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDaGlsZEJ5TmFtZShcImNvbG9yXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gcmlzZWZhbGxbaV0uY29sb3IgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLCAxMTApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy/ljYfpmY3lnLDlnZdcclxuICAgIGNoYW5nZVJpc2VGYWxsKGNvbG9yLCBkb3duKSB7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yaXNlRmFsbEJsY29rLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChjb2xvciA9PSB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5nZXRDaGlsZEJ5TmFtZShcImNvbG9yXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG93bikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5yZW1vdmVDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5zaXplID0gY2Muc2l6ZSgxMTAsIDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja0lkID09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jaykge1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcblxyXG4gICAgICAgIGxldCBtaW5YID0gd2lkdGg7XHJcbiAgICAgICAgbGV0IG1heFggPSB0aGlzLm1hcFdpZHRoIC0gMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodCAtIDIgLSBoZWlnaHQgKyAxO1xyXG5cclxuICAgICAgICBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTFcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAyO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA+IDMpIG1heFggPSBtYXhYIC0gMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE0XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxNlwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMThcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazIxXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbWluWDogbWluWCwgbWF4WDogbWF4WCwgbWluWTogbWluWSwgbWF4WTogbWF4WSB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL6JC954K55piv5ZCm5Y+v5Lul5raI6ZmkXHJcbiAgICBjaGVja1Bhc3Mobm9kZSwgYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFsbEJsb2Nrcy5wdXNoKGNjLnYyKG5vZGVQb3MueCArIGJsb2Nrc1tpXS54LCBub2RlUG9zLnkgKyBibG9ja3NbaV0ueSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWwhuWwj+Wdl+aUvuWFpeaVsOe7hOeahOaXtumXtFwiLGRhdGUxKTtcclxuXHJcbiAgICAgICAgbGV0IGpnID0gLTE7XHJcbiAgICAgICAgbGV0IHB6ID0gMDtcclxuICAgICAgICAvLyDojrflj5bmiYDmnInlopnlo4HoioLngrlcclxuICAgICAgICAvLyBsZXQgd2FsbCA9IHRoaXMubm9kZTtcclxuICAgICAgICBsZXQgZGlyZWN0aW9uID0gdGhpcy5jaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsIG1heFgsIG1heFkpO1xyXG5cclxuICAgICAgICAvLyDliKTmlq3mlrnlnZfmmK/lkKblnKjlnLDlm77ovrnnvJhcclxuICAgICAgICBpZiAobm9kZVBvcy54IDw9IG1pblggfHwgZGlyZWN0aW9uWzBdID09IHRydWUpIHtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJhcIixkYXRlMik7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIGxldCBsZWZ0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlZnREb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxMZWZ0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA9PSB3YWxsUG9zLnkgJiYgYWxsQmxvY2tzW2ldLnggPiB3YWxsUG9zLngpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFdhbGxzLnB1c2god2FsbExlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW+l+WIsOW3pui+ueWimeWjgeaVsOe7hFwiLGRhdGU2KTtcclxuICAgICAgICAgICAgaWYgKGxlZnRXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJsZWZ0XCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgbGVmdFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy54ID49IG1heFggfHwgZGlyZWN0aW9uWzFdID09IHRydWUpIHtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJhcIixkYXRlMyk7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIGxldCByaWdodFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yaWdodERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueSA9PSB3YWxsUG9zLnkgJiYgYWxsQmxvY2tzW2ldLnggPCB3YWxsUG9zLngpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRXYWxscy5wdXNoKHdhbGxSaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmlnaHRXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJyaWdodFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCByaWdodFdhbGxzLCBub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yY57uT5p6cOlwiLGpnKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnkgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9wRG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsQm90dG9tID0gdGhpcy50b3BEb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxCb3R0b20uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImlkOlwiLHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb3duV2FsbHMucHVzaCh3YWxsQm90dG9tKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChkb3duV2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIGRvd25XYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55ID49IG1heFkgfHwgZGlyZWN0aW9uWzNdID09IHRydWUpIHtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJhcIixkYXRlNSk7XHJcbiAgICAgICAgICAgIGxldCB1cFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ib3R0b21Eb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxUb3AuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxCbG9ja3NbaV0ueCA9PSB3YWxsUG9zLnggJiYgYWxsQmxvY2tzW2ldLnkgPCB3YWxsUG9zLnkgJiYgbHVvY2hhIDw9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2h1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwV2FsbHMucHVzaCh3YWxsVG9wKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh1cFdhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInVwXCIsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLCBhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgdXBXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mOe7k+aenDpcIixyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHogPT0gMCkgamcgPSAtMTtcclxuICAgICAgICAvLyBjb25zdCBkYXRlMTAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaJgOacieajgOa1i+e7k+adn+iAl+aXtlwiLGRhdGUxMCxqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVN0YXRlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VMb2NrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyZWV6ZVdhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsIHdhbGxBcnJheSwgbm9kZSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5bCd6K+V6YCa6L+H5byA5YWz6ZeoOlwiLCB3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHdhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvcixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmNvbG9yKVxyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgIT0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcikge1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpIHtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqZyA9PSB0cnVlICYmIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgd2FsbEFycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbEFycmF5W2pdLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxICYmIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLndhbGxfSW5mby5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24sIHBvc1gsIHBvc1ksIGJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcbiAgICAgICAgbGV0IGlkID0gXCJcIjtcclxuICAgICAgICBpZiAoYmxvY2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTtcclxuICAgICAgICAgICAgICAgIGlkID0gdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkO1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmNoZWNrQWxsRGlyZWN0aW9ucyhpZCwgZGlyZWN0aW9uLCB4LCB5KTtcclxuICAgICAgICAgICAgICAgIGlmICghamcpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+ayoei/h1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCwgZGlyZWN0aW9uLCB4LCB5KSB7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcImxlZnRcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeCAtIDIpID49IDApIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJyaWdodFwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh4ICsgMikgPD0gdGhpcy5tYXBCbG9ja3NXYWxsLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWPs+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IFwidXBcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcImRvd25cIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeSAtIDIpID49IDApIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0ub3BhY2l0eSA9PSAyNDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuajgOa1i+eJqeS9k+WQhOaWueWQkeaYr+WQpuacieWIq+eahOeJqeWdl1wiLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLCBtYXhYLCBtYXhZKSB7XHJcbiAgICAgICAgbGV0IGpnID0gW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPiAwICYmIGpnWzBdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54IC0gMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMF0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZ1sxXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCArIDFdW2FsbEJsb2Nrc1tpXS55XS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzFdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPiAwICYmIGpnWzJdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW2FsbEJsb2Nrc1tpXS54XVthbGxCbG9ja3NbaV0ueSAtIDFdLm9wYWNpdHkgPT0gMjUwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamdbMl0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZ1szXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkgKyAxXS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tMZWZ0KGFsbEJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcywgbWF4KSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0Rvd24oYWxsQmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1VwKGFsbEJsb2NrcywgbWF4KSB7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpIHtcclxuICAgICAgICBsZXQgZnJlZXplQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGZyZWV6ZUJsb2NrLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmVlemVCbG9jay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAyIHx8IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NrQmxvY2sgPSB0aGlzLm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NrQmxvY2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0gPT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+aIkOWKn+S4i+S4gOWFs1xyXG4gICAgbmV4dExldmVsKCkge1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKSB7XHJcbiAgICAgICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmdhbWVXaW4gPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiJDlip/mtojpmaTkuIDkuKpcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oNDApO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5hZGRMZXZlbCh0aGlzLmNvdW50X1RpbWUsIHRoaXMuYWRkX1RpbWUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGVja19OZXdNb2RlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSwgNjYwKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYW1lT3ZlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZhaWxMZXZlbChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja19OZXdNb2RlKCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd2luTGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPiAxNTYpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMTU2O1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUpO1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkuIDlhbNcIik7XHJcbiAgICAgICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICAgICAgfSwgMTIwMCk7XHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWdhaW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFnYWluQ2FuVG91Y2ggPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSwgMCk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZpZXdMZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgbGV0IGNvaW4gPSA5MDA7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMSkgY29pbiA9IDE5MDA7XHJcbiAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCBNYXRoLmFicyhjb2luKSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV5Yqg5pe26Ze0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLlpI3mtLvlm57osIPlh73mlbDlhoVcIiwgZGF0YSk7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbihkYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi57un57ut5ri45oiPXCIpO1xyXG5cclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDIxO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgKz0gMjA7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGhvbWVCdG4oKSB7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmICghdGhpcy5ob21lQ2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJMb2NrXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkhlYWx0aFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICB0aW1lOiB0aGlzLmNvdW50X1RpbWUsXHJcbiAgICAgICAgICAgIGFkZF9UaW1lOiB0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6IFwiZmFpbFwiXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImZpbmlzaF9zdGFnZVwiLCBkYXRhKTtcclxuICAgICAgICBpZiAodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySGVhbHRoKC0xLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybkhvbWUoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDEpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IFByZWZhYiDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIpOaWrea4uOaIj+Wksei0pVxyXG4gICAgZmFpbExldmVsKHR5cGUpIHtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUgfHwgdGhpcy5nYW1lV2luID09IHRydWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiYm9vbVwiKSB7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGJ1eUJ0biA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidXlCdG5cIik7XHJcbiAgICAgICAgICAgIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4xXCIpLmFjdGl2ZSA9IGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAwKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4yXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwiYm9vbVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmuLjmiI/lpLHotKVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy/miZPlvIDmlrDmqKHlvI/lvLnnqpdcclxuICAgIG9wZW5OZXdNb2RlKHR5cGUpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZG93bkRvb3IoY29sb3IsIHR5cGUpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwRG9vcigpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2FsbEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikub3BhY2l0eSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVOdW1iZXIgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsIDUwLCBcInRpbWVfXCIsIHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYXVzZSkgdGhpcy5mYWlsTGV2ZWwoXCJ0aW1lXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50X1RpbWUgKz0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsIDUwLCBcInRpbWVfXCIsIHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZUNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOaXtumXtOmBk+WFt1xyXG4gICAgdXNlVGltZVByb3AoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBmcmVlemVCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBpZiAoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJmcmVlemVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlICYmICF0aGlzLnBhdXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDEsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+ino+W8gOaXtumXtOWGu+e7k1xyXG4gICAgb3BlbkljZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgICAgIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVCdXlTdWNjZXNzKGRhdGEpIHtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWbnuiwg+WHveaVsOWGhTpcIix0aGlzLnBhdXNlKTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKSBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGlmIChkYXRhID09IFwiZnJlZXplQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw5Ya757uT5pe26Ze06YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gXCJtYWdpY0Ftb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDplKTlrZDpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwiaGFtbWVyQW1vdW50XCIpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6a2U5rOV5qOS6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlXHJcbiAgICAgICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJkZXN0cm95QnRuXCIpO1xyXG4gICAgICAgIGlmIChoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA8IDEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcImhhbW1lclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYW1tZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTWFzay5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXJMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLplKTlrZDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTogLTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumBk+WFt+S9v+eUqOS4re+8jOivt+eojeWQjuWGjeivlVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGJ1eU1hZ2ljKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDMsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcImhhbW1lckFtb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnV5RnJlZXplKCkge1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5idXlQcm9wKDIwMDEsIHRoaXMuaGFuZGxlQnV5U3VjY2Vzcy5iaW5kKHRoaXMsIFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtYWdpY0J0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAobWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5vcGVuUHJvcEJ1eShcIm1hZ2ljXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumtlOazleajkuaVsOmHj+S4jei2syzoh6rliqjotK3kubDprZTms5Xmo5JcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY01hc2suYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLm1hZ2ljQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMywgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWdl+exu+Wei1wiLHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5ID0gY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KG5vbWFsQXJyYXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMSB8fCBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGltZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzFdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5vbWFsQXJyYXkubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCA9PSAwICYmIHRoaXMubG9hY2tBcnJheS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMCArIHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2Fja0FycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuayoeacieaZrumAmuW/q++8jOmtlOazlea2iOmZpOS4gOS4quW4pumUgeWdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mcmVlemVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5oyJ5LiL5pqC5YGc5oyJ6ZKuXHJcbiAgICB1c2VQYXVzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wYXVzZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+agueaNruWFs+WNoeiuvue9ruWcsOWbvuWkp+Wwj1xyXG4gICAgc2V0TWFwSW5mbygpIHtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmICh0aGlzLm1hcFdpZHRoIDwgMTApIHtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMubWFwV2lkdGggPCAxNykge1xyXG4gICAgICAgICAgICB3aWR0aCA9IDAuMTUgLSAodGhpcy5tYXBXaWR0aCAtIDExKSAqIDAuMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxLjYgKyAoNiAtIHRoaXMubWFwV2lkdGgpICogd2lkdGg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMykge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NhbGUgPSB0aGlzLm5vZGUuc2NhbGU7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMC41O1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubm9kZS5zY2FsZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WIm+W7uumXqOeahOeykuWtkOeJueaViFxyXG4gICAgY3JlYXRlUGFydGljbGUoYmxvY2ssIGpnKSB7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZiAoamcgPT0gMCB8fCBqZyA9PSAxKSB7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICBuYW1lID0gXCJ0b3BfXCIgKyB3aWR0aCArIFwiX1wiICsgaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZiAoamcgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLng7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogKDAuNSAtIDAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqICgwLjUgLSAwLjY2KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoamcgPT0gMiB8fCBqZyA9PSAzKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcImxlZnRfXCIgKyBoZWlnaHQgKyBcIl9cIiArIHdpZHRoO1xyXG4gICAgICAgICAgICBsZXQgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aDtcclxuICAgICAgICAgICAgbGV0IHkgPSBibG9jay55ICsgYmxvY2suaGVpZ2h0IC8gMjtcclxuICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54IC0gYmxvY2sud2lkdGggKiAwLjMzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuNjY7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGpnID09IDMpIHtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrLmFuY2hvclggPT0gMC41KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuMzMpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC42Nikge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjMzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwYXJ0aWNsZU5vZGUgPSBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgICAgICAudG8oMiwgeyBvcGFjaXR5OiAwIH0pXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLm9wYWNpdHkgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ==
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/Script/NumberToImage.js b/temp/quick-scripts/dst/assets/Script/NumberToImage.js
index be3ac95..b654dfc 100644
--- a/temp/quick-scripts/dst/assets/Script/NumberToImage.js
+++ b/temp/quick-scripts/dst/assets/Script/NumberToImage.js
@@ -166,4 +166,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBeUdDO1FBdEdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQTZFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQXpHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQWtCLEVBQUMsTUFBc0I7UUFBdEIsdUJBQUEsRUFBQSxjQUFzQjtRQUMx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Q0FBQztJQUZ2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQXlHakM7SUFBRCxvQkFBQztDQXpHRCxBQXlHQyxDQXpHMEMsRUFBRSxDQUFDLFNBQVMsR0F5R3REO2tCQXpHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyVG9JbWFnZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgZm9udFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIGZvbnQ6YW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgaWYodGhpcy5mb250VUkgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UuZm9udCA9IHRoaXMuZm9udFVJO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lICx0YXJnZXROb2RlOmNjLk5vZGUsbWlkZGxlOmJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwOyBcclxuICAgICAgICBpZihudW1iZXIgPiA5OSkgY2hhICA9IC1wb3NYXHJcbiAgICAgICAgZWxzZSBpZihudW1iZXIgPCAxMCkgY2hhICA9IHBvc1hcclxuICAgICAgICBpZih0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1pZGRsZSl7XHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUueCA9IHRhcmdldE5vZGUueCAtIHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoICogKHdpZHRoLTE1KSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRUaW1lTWFyZ2luKG51bWJlciwgd2lkdGgsIG5hbWUgLHRhcmdldE5vZGU6Y2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcblxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZihhZnRlck1pbiA8IDEwKSBtaWFvID0gXCIwXCIgKyBhZnRlck1pbjtcclxuXHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG0gKyBtaWFvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gcGFyc2VJbnQocmVzdWx0W2ldLCAxMCk7XHJcbiAgICAgICAgICAgIHRpbWVBcnIucHVzaChkaWdpdCk7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGlmKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZS5jaGlsZHJlbltpXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyB0aW1lQXJyW2ldICsgXCJcIl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZ2l0ID0gdGltZUFycltpXTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gdGhpcy5mb250Ll9zcHJpdGVGcmFtZXNbbmFtZSArIGRpZ2l0ICsgXCJcIl07XHJcbiAgICAgICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgICAgIG5vZGUueCA9IGkgKiB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGlmKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOdW1iZXJUb0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBMEdDO1FBdkdHLFlBQU0sR0FBbUIsSUFBSSxDQUFDOztRQThFOUIsaUlBQWlJO1FBQ2pJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxRQUFRO1FBRVIsMkJBQTJCO1FBQzNCLG1DQUFtQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSTtRQUVKLGlCQUFpQjtJQUNyQixDQUFDO3NCQTFHb0IsYUFBYTtJQU05Qix3QkFBd0I7SUFFeEIsOEJBQU0sR0FBTjtRQUNJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDckIsZUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxnQ0FBa0IsR0FBekIsVUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQW1CLEVBQUUsTUFBdUI7UUFBdkIsdUJBQUEsRUFBQSxjQUF1QjtRQUM3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Q0FBQztJQUZ4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNLO0lBSGIsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQTBHakM7SUFBRCxvQkFBQztDQTFHRCxBQTBHQyxDQTFHMEMsRUFBRSxDQUFDLFNBQVMsR0EwR3REO2tCQTFHb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJUb0ltYWdlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICBmb250VUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBzdGF0aWMgZm9udDogYW55ID0gbnVsbDtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5mb250VUkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmZvbnQgPSB0aGlzLmZvbnRVSTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/nrKzkuIDkuKrlj4LmlbAgIOaVsOWtl++8jCDnrKzkuozkuKrlj4LmlbAgIOaVsOWtl+mXtOi3nSAg56ys5LiJ5Liq5Y+C5pWwIOWNoOS9jeWuveW6piAg56ys5Zub5Liq5Y+C5pWwIOebruagh+iKgueCuVxyXG4gICAgc3RhdGljIG51bWJlclRvSW1hZ2VOb2RlcyhudW1iZXIsIHdpZHRoLCBwb3NYLCBuYW1lLCB0YXJnZXROb2RlOiBjYy5Ob2RlLCBtaWRkbGU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG51bVN0ciA9IG51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgIGxldCBjaGEgPSAwO1xyXG4gICAgICAgIGlmIChudW1iZXIgPiA5OSkgY2hhID0gLXBvc1hcclxuICAgICAgICBlbHNlIGlmIChudW1iZXIgPCAxMCkgY2hhID0gcG9zWFxyXG4gICAgICAgIGlmICh0YXJnZXROb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRhcmdldE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KG51bVN0cltpXSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlID0gbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IHRoaXMuZm9udC5fc3ByaXRlRnJhbWVzW25hbWUgKyBkaWdpdCArIFwiXCJdO1xyXG4gICAgICAgICAgICAvLyDlsIboioLngrnmt7vliqDliLDnm67moIfoioLngrnkuItcclxuICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoICsgY2hhO1xyXG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtaWRkbGUpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Tm9kZS54ID0gdGFyZ2V0Tm9kZS54IC0gdGFyZ2V0Tm9kZS5jaGlsZHJlbi5sZW5ndGggKiAod2lkdGggLSAxNSkgLyAyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGdldFRpbWVNYXJnaW4obnVtYmVyLCB3aWR0aCwgbmFtZSwgdGFyZ2V0Tm9kZTogY2MuTm9kZSkge1xyXG4gICAgICAgIGxldCB0aW1lQXJyID0gW107XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IG51bWJlcjtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDliIZcclxuICAgICAgICBsZXQgbSA9IFwiXCIgKyBtaW47XHJcblxyXG4gICAgICAgIGlmIChtaW4gPCAxMCkgbSA9IFwiMFwiICsgbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG5cclxuICAgICAgICBpZiAoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcblxyXG4gICAgICAgIGxldCByZXN1bHQgPSBtICsgbWlhbztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdCA9IHBhcnNlSW50KHJlc3VsdFtpXSwgMTApO1xyXG4gICAgICAgICAgICB0aW1lQXJyLnB1c2goZGlnaXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldE5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldE5vZGUuY2hpbGRyZW5baV0uZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmZvbnQuX3Nwcml0ZUZyYW1lc1tuYW1lICsgdGltZUFycltpXSArIFwiXCJdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzcHJpdGUgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlnaXQgPSB0aW1lQXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICBzcHJpdGUuc3ByaXRlRnJhbWUgPSB0aGlzLmZvbnQuX3Nwcml0ZUZyYW1lc1tuYW1lICsgZGlnaXQgKyBcIlwiXTtcclxuICAgICAgICAgICAgICAgIC8vIOWwhuiKgueCuea3u+WKoOWIsOebruagh+iKgueCueS4i1xyXG4gICAgICAgICAgICAgICAgbm9kZS54ID0gaSAqIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgPiAxKSBub2RlLnggKz0gMzU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9IHRhcmdldE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyBjYWxjdWxhdGVBbmRDb252ZXJ0KG51bTE6IG51bWJlciwgbnVtMjogbnVtYmVyLCBvcGVyYXRvcjogJysnIHwgJy0nIHwgJyonIHwgJy8nLCBzcHJpdGVGcmFtZXM6IFNwcml0ZUZyYW1lW10pOiBOb2RlW10ge1xyXG4gICAgLy8gICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIC8vICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJysnOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSArIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgY2FzZSAnLSc6XHJcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQgPSBudW0xIC0gbnVtMjtcclxuICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgLy8gICAgICAgICBjYXNlICcqJzpcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9IG51bTEgKiBudW0yO1xyXG4gICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAvLyAgICAgICAgIGNhc2UgJy8nOlxyXG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID0gbnVtMSAvIG51bTI7XHJcbiAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgIC8vICAgICAgICAgZGVmYXVsdDpcclxuICAgIC8vICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign5LiN5pSv5oyB55qE6L+Q566X56ymJyk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyDlpITnkIbnu5PmnpzkuLrlsI/mlbDnmoTmg4XlhrXvvIzov5nph4znroDljZXlj5bmlbRcclxuICAgIC8vICAgICByZXN1bHQgPSBNYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMubnVtYmVyVG9JbWFnZU5vZGVzKHJlc3VsdCwgc3ByaXRlRnJhbWVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/shop/script/shop.js b/temp/quick-scripts/dst/assets/shop/script/shop.js
index 1301147..76ee275 100644
--- a/temp/quick-scripts/dst/assets/shop/script/shop.js
+++ b/temp/quick-scripts/dst/assets/shop/script/shop.js
@@ -44,10 +44,12 @@ var NewClass = /** @class */ (function (_super) {
_this.shop = null;
//商品列表
_this.itemList = null;
+ // onLoad () {}
+ //金币数量
+ _this.coin = null;
return _this;
// update (dt) {}
}
- // onLoad () {}
NewClass.prototype.start = function () {
this.openShop();
};
@@ -79,6 +81,7 @@ var NewClass = /** @class */ (function (_super) {
NumberToImage_1.default.numberToImageNodes(product.price / 100, 40, 25, "scoin_", title, false);
}
}
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
};
//关闭商店界面
NewClass.prototype.closeShop = function () {
@@ -91,6 +94,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "itemList", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "coin", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -109,4 +115,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUF1RDtBQUVqRCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFEQztRQXBERyxNQUFNO1FBRU4sVUFBSSxHQUFZLElBQUksQ0FBQztRQUNyQixNQUFNO1FBRU4sY0FBUSxHQUFZLElBQUksQ0FBQzs7UUE4Q3pCLGlCQUFpQjtJQUNyQixDQUFDO0lBOUNHLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRO0lBQ1IsMkJBQVEsR0FBUjtRQUNJLFNBQVM7UUFDVCxJQUFNLFFBQVEsR0FBRztZQUNiLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN6RSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ25FLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzNGLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1NBQ3hGLENBQUM7UUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBR0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN2RjtZQUNELElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRTtnQkFDbEIsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDeEY7U0FDSjtJQUNMLENBQUM7SUFHRCxRQUFRO0lBQ1IsNEJBQVMsR0FBVDtRQUNJLE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUEvQ0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzhDQUNPO0lBTlIsUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFENUI7SUFBRCxlQUFDO0NBckRELEFBcURDLENBckRxQyxFQUFFLENBQUMsU0FBUyxHQXFEakQ7a0JBckRvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpc3QgZnJvbSBcIi4uLy4uL1NjcmlwdC9tb2R1bGUvUmFua0xpc3QvTGlzdFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vLi4vU2NyaXB0L051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICAvL+WVhuW6l+eVjOmdolxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzaG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIC8v5ZWG5ZOB5YiX6KGoXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGl0ZW1MaXN0OiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMub3BlblNob3AoKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5ZWG5bqX55WM6Z2iXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDllYblk4HmlbDmja7mlbDnu4RcclxuICAgICAgICBjb25zdCBwcm9kdWN0cyA9IFtcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18xXCIsIG5hbWU6IFwi6YeR5biB5YyFMVwiLCBwcmljZTogNjAwLCB0aXRsZTogXCIzeDLlha3moaPph5HluIFcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzJcIiwgbmFtZTogXCLph5HluIHljIUyXCIsIHByaWNlOiAzNjAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzNcIiwgbmFtZTogXCLph5HluIHljIUzXCIsIHByaWNlOiA2ODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzRcIiwgbmFtZTogXCLph5HluIHljIU0XCIsIHByaWNlOiAxMjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja181XCIsIG5hbWU6IFwi6YeR5biB5YyFNVwiLCBwcmljZTogMzI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNlwiLCBuYW1lOiBcIumHkeW4geWMhTZcIiwgcHJpY2U6IDY0ODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwidW5saW1pdGVkX2hlYWx0aF9idW5kbGVfMVwiLCBuYW1lOiBcIuaXoOmZkOS9k+WKm+e7hOWQiOWMhTFcIiwgcHJpY2U6IDE4MDAsIHRpdGxlOiBcIjPkuKrmqKrniYjnpLzljIVcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwidW5saW1pdGVkX2hlYWx0aF9idW5kbGVfMlwiLCBuYW1lOiBcIuaXoOmZkOS9k+WKm+e7hOWQiOWMhTJcIiwgcHJpY2U6IDY2MDAsIHRpdGxlOiBcIlwiIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDggJiYgaSA8IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc3ByaXRlQ29tcCA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMF0uZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdO1xyXG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0ID0gcHJvZHVjdHNbaSAtIDFdO1xyXG5cclxuICAgICAgICAgICAgaWYgKHNwcml0ZUNvbXAgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ETzog5qC55o2uIHByb2R1Y3RfaWQg5oiWIG5hbWUg6K6+572uIHNwcml0ZUNvbXAuc3ByaXRlRnJhbWVcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIGlmIChwcmljZSAmJiBwcm9kdWN0KSB7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyhwcm9kdWN0LnByaWNlIC8gMTAwLCAyNSwgMjAsIFwiY29zdF9cIiwgcHJpY2UsIGZhbHNlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aXRsZSAmJiBwcm9kdWN0KSB7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyhwcm9kdWN0LnByaWNlIC8gMTAwLCA0MCwgMjUsIFwic2NvaW5fXCIsIHRpdGxlLCBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/lhbPpl63llYblupfnlYzpnaJcclxuICAgIGNsb3NlU2hvcCgpIHtcclxuICAgICAgICAvL+mUgOavgemihOWItuS9k1xyXG4gICAgICAgIHRoaXMuc2hvcC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUF1RDtBQUVqRCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXlEQztRQXhERyxNQUFNO1FBRU4sVUFBSSxHQUFZLElBQUksQ0FBQztRQUNyQixNQUFNO1FBRU4sY0FBUSxHQUFZLElBQUksQ0FBQztRQUN6QixlQUFlO1FBRWYsTUFBTTtRQUVOLFVBQUksR0FBWSxJQUFJLENBQUM7O1FBNkNyQixpQkFBaUI7SUFDckIsQ0FBQztJQTdDRyx3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRO0lBQ1IsMkJBQVEsR0FBUjtRQUNJLFNBQVM7UUFDVCxJQUFNLFFBQVEsR0FBRztZQUNiLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN6RSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ25FLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzNGLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1NBQ3hGLENBQUM7UUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBR0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN2RjtZQUNELElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRTtnQkFDbEIsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDeEY7U0FDSjtRQUNELHVCQUFhLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFHRCxRQUFRO0lBQ1IsNEJBQVMsR0FBVDtRQUNJLE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFuREQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzhDQUNPO0lBS3pCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFYSixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBeUQ1QjtJQUFELGVBQUM7Q0F6REQsQUF5REMsQ0F6RHFDLEVBQUUsQ0FBQyxTQUFTLEdBeURqRDtrQkF6RG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuLi8uLi9TY3JpcHQvTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ld0NsYXNzIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8v5ZWG5bqX55WM6Z2iXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHNob3A6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLy/llYblk4HliJfooahcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaXRlbUxpc3Q6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgLy/ph5HluIHmlbDph49cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgY29pbjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XHJcbiAgICB9XHJcbiAgICAvL+aJk+W8gOWVhuW6l+eVjOmdolxyXG4gICAgb3BlblNob3AoKSB7XHJcbiAgICAgICAgLy8g5ZWG5ZOB5pWw5o2u5pWw57uEXHJcbiAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18yXCIsIG5hbWU6IFwi6YeR5biB5YyFMlwiLCBwcmljZTogMzYwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18zXCIsIG5hbWU6IFwi6YeR5biB5YyFM1wiLCBwcmljZTogNjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNVwiLCBuYW1lOiBcIumHkeW4geWMhTVcIiwgcHJpY2U6IDMyODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzZcIiwgbmFtZTogXCLph5HluIHljIU2XCIsIHByaWNlOiA2NDgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzJcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUyXCIsIHByaWNlOiA2NjAwLCB0aXRsZTogXCJcIiB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZUNvbXAgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzBdLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMV07XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsyXTtcclxuICAgICAgICAgICAgY29uc3QgcHJvZHVjdCA9IHByb2R1Y3RzW2kgLSAxXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzcHJpdGVDb21wICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAocHJpY2UgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMocHJvZHVjdC5wcmljZSAvIDEwMCwgMjUsIDIwLCBcImNvc3RfXCIsIHByaWNlLCBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGl0bGUgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMocHJvZHVjdC5wcmljZSAvIDEwMCwgNDAsIDI1LCBcInNjb2luX1wiLCB0aXRsZSwgZmFsc2UpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxyXG4gICAgY2xvc2VTaG9wKCkge1xyXG4gICAgICAgIC8v6ZSA5q+B6aKE5Yi25L2TXHJcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/Map.js b/temp/quick-scripts/src/assets/Script/Map.js
index daccad8..4d1c67d 100644
--- a/temp/quick-scripts/src/assets/Script/Map.js
+++ b/temp/quick-scripts/src/assets/Script/Map.js
@@ -56,6 +56,7 @@ var MapConroler = /** @class */ (function (_super) {
_this.coinPop = null;
_this.timeLabel = null;
_this.levelLabel = null;
+ _this.coin = null;
_this.new_mode = 0;
_this.mapWidth = 0;
_this.mapHeight = 0;
@@ -144,11 +145,13 @@ var MapConroler = /** @class */ (function (_super) {
// this.node.getChildByName("Wall").zIndex = 10;
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
+ this.coin = this.node.parent.getChildByName("Top").getChildByName("coin");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
NumberToImage_1.default.getTimeMargin(this.timeNumber, 50, "time_", this.timeLabel);
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
// var timeTemp = cc.fx.GameTool.getTimeMargin(this.timeNumber);
// this.timeLabel.string = timeTemp.toString();
NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 50, 20, "level_", this.levelLabel, false);
diff --git a/temp/quick-scripts/src/assets/shop/script/shop.js b/temp/quick-scripts/src/assets/shop/script/shop.js
index e9b7baa..16bb039 100644
--- a/temp/quick-scripts/src/assets/shop/script/shop.js
+++ b/temp/quick-scripts/src/assets/shop/script/shop.js
@@ -33,10 +33,12 @@ var NewClass = /** @class */ (function (_super) {
_this.shop = null;
//商品列表
_this.itemList = null;
+ // onLoad () {}
+ //金币数量
+ _this.coin = null;
return _this;
// update (dt) {}
}
- // onLoad () {}
NewClass.prototype.start = function () {
this.openShop();
};
@@ -68,6 +70,7 @@ var NewClass = /** @class */ (function (_super) {
NumberToImage_1.default.numberToImageNodes(product.price / 100, 40, 25, "scoin_", title, false);
}
}
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true);
};
//关闭商店界面
NewClass.prototype.closeShop = function () {
@@ -80,6 +83,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "itemList", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "coin", void 0);
NewClass = __decorate([
ccclass
], NewClass);
diff --git a/图片资源/font/关卡内/time_0.png b/图片资源/font/关卡内/time_0.png
index 463784d..4f89107 100644
Binary files a/图片资源/font/关卡内/time_0.png and b/图片资源/font/关卡内/time_0.png differ
diff --git a/图片资源/font/关卡内/time_1.png b/图片资源/font/关卡内/time_1.png
index eb034ac..087904d 100644
Binary files a/图片资源/font/关卡内/time_1.png and b/图片资源/font/关卡内/time_1.png differ
diff --git a/图片资源/font/关卡内/time_10.png b/图片资源/font/关卡内/time_10.png
index c43c279..6a54724 100644
Binary files a/图片资源/font/关卡内/time_10.png and b/图片资源/font/关卡内/time_10.png differ
diff --git a/图片资源/font/关卡内/time_2.png b/图片资源/font/关卡内/time_2.png
index 56e444c..19dd936 100644
Binary files a/图片资源/font/关卡内/time_2.png and b/图片资源/font/关卡内/time_2.png differ
diff --git a/图片资源/font/关卡内/time_3.png b/图片资源/font/关卡内/time_3.png
index 63b43cd..07cb949 100644
Binary files a/图片资源/font/关卡内/time_3.png and b/图片资源/font/关卡内/time_3.png differ
diff --git a/图片资源/font/关卡内/time_4.png b/图片资源/font/关卡内/time_4.png
index 99da3d1..1fb78f3 100644
Binary files a/图片资源/font/关卡内/time_4.png and b/图片资源/font/关卡内/time_4.png differ
diff --git a/图片资源/font/关卡内/time_5.png b/图片资源/font/关卡内/time_5.png
index 354f15f..d73e55d 100644
Binary files a/图片资源/font/关卡内/time_5.png and b/图片资源/font/关卡内/time_5.png differ
diff --git a/图片资源/font/关卡内/time_6.png b/图片资源/font/关卡内/time_6.png
index c9503b9..a616961 100644
Binary files a/图片资源/font/关卡内/time_6.png and b/图片资源/font/关卡内/time_6.png differ
diff --git a/图片资源/font/关卡内/time_7.png b/图片资源/font/关卡内/time_7.png
index 55d10e4..91d221e 100644
Binary files a/图片资源/font/关卡内/time_7.png and b/图片资源/font/关卡内/time_7.png differ
diff --git a/图片资源/font/关卡内/time_8.png b/图片资源/font/关卡内/time_8.png
index dcba08d..df3d12a 100644
Binary files a/图片资源/font/关卡内/time_8.png and b/图片资源/font/关卡内/time_8.png differ
diff --git a/图片资源/font/关卡内/time_9.png b/图片资源/font/关卡内/time_9.png
index 8ac9b99..be3de57 100644
Binary files a/图片资源/font/关卡内/time_9.png and b/图片资源/font/关卡内/time_9.png differ