diff --git a/assets/Scene/GameScene.fire b/assets/Scene/GameScene.fire
index f5384ea..9499783 100644
--- a/assets/Scene/GameScene.fire
+++ b/assets/Scene/GameScene.fire
@@ -7220,7 +7220,7 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -421.43,
+ -390,
-90.338,
0,
0,
diff --git a/assets/Scene/HomeScene.fire b/assets/Scene/HomeScene.fire
index a097ba2..2148ed8 100644
--- a/assets/Scene/HomeScene.fire
+++ b/assets/Scene/HomeScene.fire
@@ -178,31 +178,31 @@
"__id__": 7
},
{
- "__id__": 123
+ "__id__": 128
},
{
- "__id__": 167
+ "__id__": 172
},
{
- "__id__": 185
+ "__id__": 190
},
{
- "__id__": 205
+ "__id__": 210
},
{
- "__id__": 258
+ "__id__": 263
}
],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 265
},
{
- "__id__": 261
+ "__id__": 266
},
{
- "__id__": 262
+ "__id__": 267
}
],
"_prefab": null,
@@ -378,16 +378,16 @@
"__id__": 80
},
{
- "__id__": 109
+ "__id__": 114
},
{
- "__id__": 114
+ "__id__": 119
}
],
"_active": true,
"_components": [
{
- "__id__": 122
+ "__id__": 127
}
],
"_prefab": null,
@@ -3852,22 +3852,28 @@
"__id__": 81
},
{
- "__id__": 83
+ "__id__": 85
},
{
- "__id__": 91
+ "__id__": 87
},
{
- "__id__": 99
+ "__id__": 95
+ },
+ {
+ "__id__": 103
}
],
"_active": false,
"_components": [
{
- "__id__": 107
+ "__id__": 111
},
{
- "__id__": 108
+ "__id__": 112
+ },
+ {
+ "__id__": 113
}
],
"_prefab": null,
@@ -3920,7 +3926,7 @@
},
{
"__type__": "cc.Node",
- "_name": "tiaodik",
+ "_name": "New Node",
"_objFlags": 0,
"_parent": {
"__id__": 80
@@ -3930,6 +3936,180 @@
"_components": [
{
"__id__": 82
+ },
+ {
+ "__id__": 83
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1080,
+ "height": 1920
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -417.054,
+ 259.387,
+ 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": "e8tNdSTsxI0oc8XZZW12JO"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "alignMode": 1,
+ "_target": null,
+ "_alignFlags": 45,
+ "_left": -463,
+ "_right": -463,
+ "_top": -661,
+ "_bottom": -661,
+ "_verticalCenter": 0,
+ "_horizontalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 1080,
+ "_originalHeight": 1920,
+ "_id": "41pHA/iYdFla4bJbJUEtrE"
+ },
+ {
+ "__type__": "cc.Button",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "_normalMaterial": null,
+ "_grayMaterial": null,
+ "duration": 0.1,
+ "zoomScale": 1.2,
+ "clickEvents": [
+ {
+ "__id__": 84
+ }
+ ],
+ "_N$interactable": true,
+ "_N$enableAutoGrayEffect": false,
+ "_N$transition": 0,
+ "transition": 0,
+ "_N$normalColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "_N$hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$disabledColor": {
+ "__type__": "cc.Color",
+ "r": 124,
+ "g": 124,
+ "b": 124,
+ "a": 255
+ },
+ "_N$normalSprite": null,
+ "_N$pressedSprite": null,
+ "pressedSprite": null,
+ "_N$hoverSprite": null,
+ "hoverSprite": null,
+ "_N$disabledSprite": null,
+ "_N$target": null,
+ "_id": "252ICggOxKkbSkMoonQTOU"
+ },
+ {
+ "__type__": "cc.ClickEvent",
+ "target": {
+ "__id__": 80
+ },
+ "component": "",
+ "_componentId": "19d952d5kVBrLSzAIGeElFK",
+ "handler": "closeUi",
+ "customEventData": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "tiaodik",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 80
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 86
}
],
"_prefab": null,
@@ -3985,7 +4165,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 81
+ "__id__": 85
},
"_enabled": true,
"_materials": [
@@ -3995,7 +4175,9 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
- "_spriteFrame": null,
+ "_spriteFrame": {
+ "__uuid__": "7253fc88-be8f-46c1-933b-0b730a63e20b"
+ },
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
@@ -4007,7 +4189,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "86L4gO+JlM/bf6mEXs44/n"
},
{
@@ -4018,20 +4202,20 @@
"__id__": 80
},
"_children": [
- {
- "__id__": 84
- },
- {
- "__id__": 86
- },
{
"__id__": 88
+ },
+ {
+ "__id__": 90
+ },
+ {
+ "__id__": 92
}
],
"_active": true,
"_components": [
{
- "__id__": 90
+ "__id__": 94
}
],
"_prefab": null,
@@ -4087,13 +4271,13 @@
"_name": "闊充箰00",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 85
+ "__id__": 89
}
],
"_prefab": null,
@@ -4149,7 +4333,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 84
+ "__id__": 88
},
"_enabled": true,
"_materials": [
@@ -4183,13 +4367,13 @@
"_name": "闊充箰01",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 87
+ "__id__": 91
}
],
"_prefab": null,
@@ -4245,7 +4429,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 86
+ "__id__": 90
},
"_enabled": true,
"_materials": [
@@ -4279,13 +4463,13 @@
"_name": "音乐字",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 89
+ "__id__": 93
}
],
"_prefab": null,
@@ -4341,7 +4525,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 88
+ "__id__": 92
},
"_enabled": true,
"_materials": [
@@ -4375,7 +4559,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 83
+ "__id__": 87
},
"_enabled": true,
"_normalMaterial": null,
@@ -4436,12 +4620,12 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 83
+ "__id__": 87
},
"_N$isChecked": false,
"toggleGroup": null,
"checkMark": {
- "__id__": 87
+ "__id__": 91
},
"checkEvents": [],
"_id": "c09/yHVMJDoam/VbhBXxcH"
@@ -4454,20 +4638,20 @@
"__id__": 80
},
"_children": [
- {
- "__id__": 92
- },
- {
- "__id__": 94
- },
{
"__id__": 96
+ },
+ {
+ "__id__": 98
+ },
+ {
+ "__id__": 100
}
],
"_active": true,
"_components": [
{
- "__id__": 98
+ "__id__": 102
}
],
"_prefab": null,
@@ -4523,13 +4707,13 @@
"_name": "闊虫晥00",
"_objFlags": 0,
"_parent": {
- "__id__": 91
+ "__id__": 95
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 93
+ "__id__": 97
}
],
"_prefab": null,
@@ -4585,7 +4769,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 92
+ "__id__": 96
},
"_enabled": true,
"_materials": [
@@ -4619,13 +4803,13 @@
"_name": "闊虫晥01",
"_objFlags": 0,
"_parent": {
- "__id__": 91
+ "__id__": 95
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 95
+ "__id__": 99
}
],
"_prefab": null,
@@ -4681,7 +4865,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 94
+ "__id__": 98
},
"_enabled": true,
"_materials": [
@@ -4715,13 +4899,13 @@
"_name": "音效字",
"_objFlags": 0,
"_parent": {
- "__id__": 91
+ "__id__": 95
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 97
+ "__id__": 101
}
],
"_prefab": null,
@@ -4777,7 +4961,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 96
+ "__id__": 100
},
"_enabled": true,
"_materials": [
@@ -4811,7 +4995,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 91
+ "__id__": 95
},
"_enabled": true,
"_normalMaterial": null,
@@ -4872,12 +5056,12 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 91
+ "__id__": 95
},
"_N$isChecked": false,
"toggleGroup": null,
"checkMark": {
- "__id__": 95
+ "__id__": 99
},
"checkEvents": [],
"_id": "b9cAW4AvdAXZdGsjzb8ZZf"
@@ -4890,20 +5074,20 @@
"__id__": 80
},
"_children": [
- {
- "__id__": 100
- },
- {
- "__id__": 102
- },
{
"__id__": 104
+ },
+ {
+ "__id__": 106
+ },
+ {
+ "__id__": 108
}
],
"_active": true,
"_components": [
{
- "__id__": 106
+ "__id__": 110
}
],
"_prefab": null,
@@ -4959,13 +5143,13 @@
"_name": "闇囧姩00",
"_objFlags": 0,
"_parent": {
- "__id__": 99
+ "__id__": 103
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 101
+ "__id__": 105
}
],
"_prefab": null,
@@ -5021,7 +5205,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 100
+ "__id__": 104
},
"_enabled": true,
"_materials": [
@@ -5055,13 +5239,13 @@
"_name": "闇囧姩01",
"_objFlags": 0,
"_parent": {
- "__id__": 99
+ "__id__": 103
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 103
+ "__id__": 107
}
],
"_prefab": null,
@@ -5117,7 +5301,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 102
+ "__id__": 106
},
"_enabled": true,
"_materials": [
@@ -5151,13 +5335,13 @@
"_name": "震动字",
"_objFlags": 0,
"_parent": {
- "__id__": 99
+ "__id__": 103
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 105
+ "__id__": 109
}
],
"_prefab": null,
@@ -5213,7 +5397,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 104
+ "__id__": 108
},
"_enabled": true,
"_materials": [
@@ -5247,7 +5431,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 99
+ "__id__": 103
},
"_enabled": true,
"_normalMaterial": null,
@@ -5308,12 +5492,12 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 99
+ "__id__": 103
},
"_N$isChecked": false,
"toggleGroup": null,
"checkMark": {
- "__id__": 103
+ "__id__": 107
},
"checkEvents": [],
"_id": "f9H3N/MqVI0ZJ6D1GMBA4u"
@@ -5369,6 +5553,25 @@
"playOnLoad": false,
"_id": "06zhlax2BIgq2BGFohNQeX"
},
+ {
+ "__type__": "19d952d5kVBrLSzAIGeElFK",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 80
+ },
+ "_enabled": true,
+ "music": {
+ "__id__": 87
+ },
+ "effect": {
+ "__id__": 95
+ },
+ "vibrate": {
+ "__id__": 103
+ },
+ "_id": "09T1CBxRNLYrp9d2cfApFS"
+ },
{
"__type__": "cc.Node",
"_name": "shezhiBtn",
@@ -5378,13 +5581,13 @@
},
"_children": [
{
- "__id__": 110
+ "__id__": 115
}
],
"_active": true,
"_components": [
{
- "__id__": 112
+ "__id__": 117
}
],
"_prefab": null,
@@ -5440,13 +5643,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 109
+ "__id__": 114
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 111
+ "__id__": 116
}
],
"_prefab": null,
@@ -5502,7 +5705,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 110
+ "__id__": 115
},
"_enabled": true,
"_materials": [
@@ -5536,7 +5739,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 109
+ "__id__": 114
},
"_enabled": true,
"_normalMaterial": null,
@@ -5545,7 +5748,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 113
+ "__id__": 118
}
],
"_N$interactable": true,
@@ -5601,7 +5804,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 109
+ "__id__": 114
},
"_id": "02bgX7BW9KmbZ6ke3vsVWy"
},
@@ -5612,7 +5815,7 @@
},
"component": "",
"_componentId": "1dc93b4fehOrpGgTkihBH4g",
- "handler": "openPause",
+ "handler": "openSet",
"customEventData": ""
},
{
@@ -5624,13 +5827,13 @@
},
"_children": [
{
- "__id__": 115
+ "__id__": 120
}
],
"_active": true,
"_components": [
{
- "__id__": 120
+ "__id__": 125
}
],
"_prefab": null,
@@ -5686,20 +5889,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
- "__id__": 114
+ "__id__": 119
},
"_children": [
{
- "__id__": 116
+ "__id__": 121
}
],
"_active": true,
"_components": [
{
- "__id__": 118
+ "__id__": 123
},
{
- "__id__": 119
+ "__id__": 124
}
],
"_prefab": null,
@@ -5755,13 +5958,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
- "__id__": 115
+ "__id__": 120
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 117
+ "__id__": 122
}
],
"_prefab": null,
@@ -5817,7 +6020,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 121
},
"_enabled": true,
"_materials": [
@@ -5850,7 +6053,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 115
+ "__id__": 120
},
"_enabled": true,
"_materials": [
@@ -5882,7 +6085,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 115
+ "__id__": 120
},
"_enabled": true,
"alignMode": 0,
@@ -5909,7 +6112,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 114
+ "__id__": 119
},
"_enabled": true,
"_normalMaterial": null,
@@ -5918,7 +6121,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 121
+ "__id__": 126
}
],
"_N$interactable": true,
@@ -5986,7 +6189,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
- "__id__": 115
+ "__id__": 120
},
"_id": "88UX+E3n9ImZvBg4tRwHFR"
},
@@ -6036,25 +6239,25 @@
},
"_children": [
{
- "__id__": 124
+ "__id__": 129
},
{
- "__id__": 128
+ "__id__": 133
},
{
- "__id__": 130
+ "__id__": 135
},
{
- "__id__": 158
+ "__id__": 163
},
{
- "__id__": 162
+ "__id__": 167
}
],
"_active": false,
"_components": [
{
- "__id__": 166
+ "__id__": 171
}
],
"_prefab": null,
@@ -6110,19 +6313,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 123
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 125
+ "__id__": 130
},
{
- "__id__": 126
+ "__id__": 131
},
{
- "__id__": 127
+ "__id__": 132
}
],
"_prefab": null,
@@ -6178,7 +6381,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 124
+ "__id__": 129
},
"_enabled": true,
"_materials": [
@@ -6210,7 +6413,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 124
+ "__id__": 129
},
"_enabled": true,
"alignMode": 1,
@@ -6237,7 +6440,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 124
+ "__id__": 129
},
"_enabled": true,
"_id": "dfDCcIpbVJQaLDWZH9iaPD"
@@ -6247,13 +6450,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 123
+ "__id__": 128
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 129
+ "__id__": 134
}
],
"_prefab": null,
@@ -6309,7 +6512,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 128
+ "__id__": 133
},
"_enabled": true,
"_materials": [
@@ -6339,47 +6542,47 @@
"_name": "rank",
"_objFlags": 0,
"_parent": {
- "__id__": 123
+ "__id__": 128
},
"_children": [
{
- "__id__": 131
+ "__id__": 136
},
{
- "__id__": 133
+ "__id__": 138
},
{
- "__id__": 135
+ "__id__": 140
},
{
- "__id__": 137
+ "__id__": 142
},
{
- "__id__": 139
+ "__id__": 144
},
{
- "__id__": 141
+ "__id__": 146
},
{
- "__id__": 143
+ "__id__": 148
},
{
- "__id__": 145
+ "__id__": 150
},
{
- "__id__": 147
+ "__id__": 152
},
{
- "__id__": 149
+ "__id__": 154
},
{
- "__id__": 151
+ "__id__": 156
}
],
"_active": true,
"_components": [
{
- "__id__": 157
+ "__id__": 162
}
],
"_prefab": null,
@@ -6435,13 +6638,13 @@
"_name": "paihang1_1_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 132
+ "__id__": 137
}
],
"_prefab": null,
@@ -6497,7 +6700,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 131
+ "__id__": 136
},
"_enabled": true,
"_materials": [
@@ -6527,13 +6730,13 @@
"_name": "paihang1_2_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 134
+ "__id__": 139
}
],
"_prefab": null,
@@ -6589,7 +6792,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 138
},
"_enabled": true,
"_materials": [
@@ -6619,13 +6822,13 @@
"_name": "paihang1_3_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 136
+ "__id__": 141
}
],
"_prefab": null,
@@ -6681,7 +6884,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 135
+ "__id__": 140
},
"_enabled": true,
"_materials": [
@@ -6711,13 +6914,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 138
+ "__id__": 143
}
],
"_prefab": null,
@@ -6773,7 +6976,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 137
+ "__id__": 142
},
"_enabled": true,
"_materials": [
@@ -6803,13 +7006,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 140
+ "__id__": 145
}
],
"_prefab": null,
@@ -6865,7 +7068,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 139
+ "__id__": 144
},
"_enabled": true,
"_materials": [
@@ -6895,13 +7098,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 142
+ "__id__": 147
}
],
"_prefab": null,
@@ -6957,7 +7160,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 141
+ "__id__": 146
},
"_enabled": true,
"_materials": [
@@ -6987,13 +7190,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 144
+ "__id__": 149
}
],
"_prefab": null,
@@ -7049,7 +7252,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 143
+ "__id__": 148
},
"_enabled": true,
"_materials": [
@@ -7081,13 +7284,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 146
+ "__id__": 151
}
],
"_prefab": null,
@@ -7143,7 +7346,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -7176,13 +7379,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 148
+ "__id__": 153
}
],
"_prefab": null,
@@ -7238,7 +7441,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 147
+ "__id__": 152
},
"_enabled": true,
"_materials": [
@@ -7271,13 +7474,13 @@
"_name": "shuzi3_6",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 150
+ "__id__": 155
}
],
"_prefab": null,
@@ -7333,7 +7536,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7363,20 +7566,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 130
+ "__id__": 135
},
"_children": [
{
- "__id__": 152
+ "__id__": 157
}
],
"_active": true,
"_components": [
{
- "__id__": 154
+ "__id__": 159
},
{
- "__id__": 155
+ "__id__": 160
}
],
"_prefab": null,
@@ -7432,13 +7635,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 151
+ "__id__": 156
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 153
+ "__id__": 158
}
],
"_prefab": null,
@@ -7494,7 +7697,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 152
+ "__id__": 157
},
"_enabled": true,
"_materials": [
@@ -7528,7 +7731,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 151
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7562,7 +7765,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 151
+ "__id__": 156
},
"_enabled": true,
"_normalMaterial": null,
@@ -7571,7 +7774,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 156
+ "__id__": 161
}
],
"_N$interactable": true,
@@ -7627,7 +7830,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 151
+ "__id__": 156
},
"_id": "0b4hiJfolDCqERI+qJ8NNt"
},
@@ -7644,7 +7847,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 130
+ "__id__": 135
},
"_enabled": true,
"_materials": [
@@ -7674,17 +7877,17 @@
"_name": "logo",
"_objFlags": 0,
"_parent": {
- "__id__": 123
+ "__id__": 128
},
"_children": [
{
- "__id__": 159
+ "__id__": 164
}
],
"_active": false,
"_components": [
{
- "__id__": 161
+ "__id__": 166
}
],
"_prefab": null,
@@ -7740,13 +7943,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 158
+ "__id__": 163
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 160
+ "__id__": 165
}
],
"_prefab": null,
@@ -7802,7 +8005,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 159
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7835,7 +8038,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 158
+ "__id__": 163
},
"_enabled": true,
"_materials": [
@@ -7869,16 +8072,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 123
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 163
+ "__id__": 168
},
{
- "__id__": 164
+ "__id__": 169
}
],
"_prefab": null,
@@ -7934,7 +8137,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 167
},
"_enabled": true,
"_materials": [
@@ -7968,7 +8171,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 167
},
"_enabled": true,
"_normalMaterial": null,
@@ -7977,7 +8180,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 165
+ "__id__": 170
}
],
"_N$interactable": true,
@@ -8033,7 +8236,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 162
+ "__id__": 167
},
"_id": "aeOKxuEtVBQ76OAxASWQGP"
},
@@ -8052,7 +8255,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 123
+ "__id__": 128
},
"_enabled": true,
"alignMode": 1,
@@ -8082,14 +8285,14 @@
"__id__": 4
},
"_children": [
- {
- "__id__": 168
- },
- {
- "__id__": 171
- },
{
"__id__": 173
+ },
+ {
+ "__id__": 176
+ },
+ {
+ "__id__": 178
}
],
"_active": false,
@@ -8147,16 +8350,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 172
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 169
+ "__id__": 174
},
{
- "__id__": 170
+ "__id__": 175
}
],
"_prefab": null,
@@ -8212,7 +8415,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -8244,7 +8447,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 173
},
"_enabled": true,
"_id": "6eAfAN7PxP8LBtlAPfR/Ia"
@@ -8254,13 +8457,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 172
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 172
+ "__id__": 177
}
],
"_prefab": null,
@@ -8316,7 +8519,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 171
+ "__id__": 176
},
"_enabled": true,
"_materials": [
@@ -8346,20 +8549,20 @@
"_name": "reward",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 172
},
"_children": [
{
- "__id__": 174
+ "__id__": 179
},
{
- "__id__": 178
+ "__id__": 183
}
],
"_active": true,
"_components": [
{
- "__id__": 184
+ "__id__": 189
}
],
"_prefab": null,
@@ -8415,16 +8618,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 173
+ "__id__": 178
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 180
},
{
- "__id__": 176
+ "__id__": 181
}
],
"_prefab": null,
@@ -8480,7 +8683,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8514,7 +8717,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8523,7 +8726,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 177
+ "__id__": 182
}
],
"_N$interactable": true,
@@ -8579,7 +8782,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 174
+ "__id__": 179
},
"_id": "8697ar7LREtafp+rIsxcSE"
},
@@ -8598,20 +8801,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 173
+ "__id__": 178
},
"_children": [
{
- "__id__": 179
+ "__id__": 184
}
],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 186
},
{
- "__id__": 182
+ "__id__": 187
}
],
"_prefab": null,
@@ -8667,13 +8870,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 178
+ "__id__": 183
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 180
+ "__id__": 185
}
],
"_prefab": null,
@@ -8729,7 +8932,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 184
},
"_enabled": true,
"_materials": [
@@ -8763,7 +8966,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 183
},
"_enabled": true,
"_materials": [
@@ -8797,7 +9000,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 178
+ "__id__": 183
},
"_enabled": true,
"_normalMaterial": null,
@@ -8806,7 +9009,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 183
+ "__id__": 188
}
],
"_N$interactable": true,
@@ -8862,7 +9065,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 178
+ "__id__": 183
},
"_id": "a99do5CqxGB7rnced8tB+I"
},
@@ -8879,7 +9082,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 173
+ "__id__": 178
},
"_enabled": true,
"_materials": [
@@ -8913,25 +9116,25 @@
},
"_children": [
{
- "__id__": 186
+ "__id__": 191
},
{
- "__id__": 190
+ "__id__": 195
},
{
- "__id__": 192
+ "__id__": 197
},
{
- "__id__": 194
+ "__id__": 199
},
{
- "__id__": 198
+ "__id__": 203
}
],
"_active": false,
"_components": [
{
- "__id__": 204
+ "__id__": 209
}
],
"_prefab": null,
@@ -8987,19 +9190,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 185
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 187
+ "__id__": 192
},
{
- "__id__": 188
+ "__id__": 193
},
{
- "__id__": 189
+ "__id__": 194
}
],
"_prefab": null,
@@ -9055,7 +9258,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 186
+ "__id__": 191
},
"_enabled": true,
"_materials": [
@@ -9087,7 +9290,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 186
+ "__id__": 191
},
"_enabled": true,
"alignMode": 1,
@@ -9114,7 +9317,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 186
+ "__id__": 191
},
"_enabled": true,
"_id": "d3WO2KgvBHxZSuuuiocs4j"
@@ -9124,13 +9327,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 185
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 191
+ "__id__": 196
}
],
"_prefab": null,
@@ -9186,7 +9389,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 190
+ "__id__": 195
},
"_enabled": true,
"_materials": [
@@ -9216,13 +9419,13 @@
"_name": "Stamina",
"_objFlags": 0,
"_parent": {
- "__id__": 185
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 193
+ "__id__": 198
}
],
"_prefab": null,
@@ -9278,7 +9481,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -9308,16 +9511,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 185
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 195
+ "__id__": 200
},
{
- "__id__": 196
+ "__id__": 201
}
],
"_prefab": null,
@@ -9373,7 +9576,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 194
+ "__id__": 199
},
"_enabled": true,
"_materials": [
@@ -9407,7 +9610,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 194
+ "__id__": 199
},
"_enabled": true,
"_normalMaterial": null,
@@ -9416,7 +9619,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 197
+ "__id__": 202
}
],
"_N$interactable": true,
@@ -9472,7 +9675,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 194
+ "__id__": 199
},
"_id": "4fx9FNHrVMm7QEtzYiJ4Ca"
},
@@ -9491,20 +9694,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 185
+ "__id__": 190
},
"_children": [
{
- "__id__": 199
+ "__id__": 204
}
],
"_active": true,
"_components": [
{
- "__id__": 201
+ "__id__": 206
},
{
- "__id__": 202
+ "__id__": 207
}
],
"_prefab": null,
@@ -9560,13 +9763,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 198
+ "__id__": 203
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 200
+ "__id__": 205
}
],
"_prefab": null,
@@ -9622,7 +9825,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 199
+ "__id__": 204
},
"_enabled": true,
"_materials": [
@@ -9656,7 +9859,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 198
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9690,7 +9893,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 198
+ "__id__": 203
},
"_enabled": true,
"_normalMaterial": null,
@@ -9699,7 +9902,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 203
+ "__id__": 208
}
],
"_N$interactable": true,
@@ -9755,7 +9958,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 198
+ "__id__": 203
},
"_id": "6f5W0gZq1NG4kBoigH1HP7"
},
@@ -9772,7 +9975,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9802,68 +10005,68 @@
"__id__": 4
},
"_children": [
- {
- "__id__": 206
- },
- {
- "__id__": 209
- },
{
"__id__": 211
},
{
- "__id__": 217
+ "__id__": 214
},
{
- "__id__": 219
+ "__id__": 216
},
{
- "__id__": 223
+ "__id__": 222
},
{
- "__id__": 225
+ "__id__": 224
},
{
- "__id__": 227
+ "__id__": 228
},
{
- "__id__": 229
+ "__id__": 230
},
{
- "__id__": 231
+ "__id__": 232
},
{
- "__id__": 233
+ "__id__": 234
},
{
- "__id__": 235
+ "__id__": 236
},
{
- "__id__": 239
+ "__id__": 238
},
{
- "__id__": 243
+ "__id__": 240
},
{
- "__id__": 247
+ "__id__": 244
},
{
- "__id__": 249
+ "__id__": 248
},
{
- "__id__": 251
+ "__id__": 252
},
{
- "__id__": 253
+ "__id__": 254
},
{
- "__id__": 255
+ "__id__": 256
+ },
+ {
+ "__id__": 258
+ },
+ {
+ "__id__": 260
}
],
"_active": false,
"_components": [
{
- "__id__": 257
+ "__id__": 262
}
],
"_prefab": null,
@@ -9919,16 +10122,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 207
+ "__id__": 212
},
{
- "__id__": 208
+ "__id__": 213
}
],
"_prefab": null,
@@ -9984,7 +10187,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 206
+ "__id__": 211
},
"_enabled": true,
"_materials": [
@@ -10016,7 +10219,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 206
+ "__id__": 211
},
"_enabled": true,
"_id": "22/vLI0+hBZrCrug3svOux"
@@ -10026,13 +10229,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 210
+ "__id__": 215
}
],
"_prefab": null,
@@ -10088,7 +10291,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -10120,20 +10323,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [
{
- "__id__": 212
+ "__id__": 217
}
],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 219
},
{
- "__id__": 215
+ "__id__": 220
}
],
"_prefab": null,
@@ -10189,13 +10392,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 213
+ "__id__": 218
}
],
"_prefab": null,
@@ -10251,7 +10454,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 212
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -10285,7 +10488,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 211
+ "__id__": 216
},
"_enabled": true,
"_materials": [
@@ -10319,7 +10522,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 211
+ "__id__": 216
},
"_enabled": true,
"_normalMaterial": null,
@@ -10328,7 +10531,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 216
+ "__id__": 221
}
],
"_N$interactable": true,
@@ -10384,7 +10587,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 211
+ "__id__": 216
},
"_id": "b8Y9x+dpZGKKCgiAzSbF2w"
},
@@ -10403,13 +10606,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 218
+ "__id__": 223
}
],
"_prefab": null,
@@ -10465,7 +10668,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 217
+ "__id__": 222
},
"_enabled": true,
"_materials": [
@@ -10499,16 +10702,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 220
+ "__id__": 225
},
{
- "__id__": 221
+ "__id__": 226
}
],
"_prefab": null,
@@ -10564,7 +10767,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 219
+ "__id__": 224
},
"_enabled": true,
"_materials": [
@@ -10598,7 +10801,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 219
+ "__id__": 224
},
"_enabled": true,
"_normalMaterial": null,
@@ -10607,7 +10810,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 222
+ "__id__": 227
}
],
"_N$interactable": true,
@@ -10663,7 +10866,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 219
+ "__id__": 224
},
"_id": "3fEch1YYZH6oMgUJ5+mat/"
},
@@ -10682,13 +10885,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 224
+ "__id__": 229
}
],
"_prefab": null,
@@ -10744,7 +10947,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 223
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10778,13 +10981,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 226
+ "__id__": 231
}
],
"_prefab": null,
@@ -10840,7 +11043,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 225
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10874,13 +11077,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 233
}
],
"_prefab": null,
@@ -10936,7 +11139,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10970,13 +11173,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 235
}
],
"_prefab": null,
@@ -11032,7 +11235,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -11066,13 +11269,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 237
}
],
"_prefab": null,
@@ -11128,7 +11331,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -11162,13 +11365,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 234
+ "__id__": 239
}
],
"_prefab": null,
@@ -11224,7 +11427,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -11258,16 +11461,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 236
+ "__id__": 241
},
{
- "__id__": 237
+ "__id__": 242
}
],
"_prefab": null,
@@ -11323,7 +11526,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 235
+ "__id__": 240
},
"_enabled": true,
"_materials": [
@@ -11357,7 +11560,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 235
+ "__id__": 240
},
"_enabled": true,
"_normalMaterial": null,
@@ -11366,7 +11569,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 238
+ "__id__": 243
}
],
"_N$interactable": true,
@@ -11422,14 +11625,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 235
+ "__id__": 240
},
"_id": "625dakXShD7bgpaU3SIzV2"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 205
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11441,16 +11644,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 240
+ "__id__": 245
},
{
- "__id__": 241
+ "__id__": 246
}
],
"_prefab": null,
@@ -11506,7 +11709,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 239
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11540,7 +11743,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 239
+ "__id__": 244
},
"_enabled": true,
"_normalMaterial": null,
@@ -11549,7 +11752,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 242
+ "__id__": 247
}
],
"_N$interactable": true,
@@ -11605,14 +11808,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 239
+ "__id__": 244
},
"_id": "72VsvwUtxAD6Hj+ox2n5Ez"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 205
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11624,16 +11827,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 249
},
{
- "__id__": 245
+ "__id__": 250
}
],
"_prefab": null,
@@ -11689,7 +11892,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11723,7 +11926,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 248
},
"_enabled": true,
"_normalMaterial": null,
@@ -11732,7 +11935,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 246
+ "__id__": 251
}
],
"_N$interactable": true,
@@ -11788,14 +11991,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 243
+ "__id__": 248
},
"_id": "efSi0dlVNIXJRT6hEV1IpJ"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 205
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11807,13 +12010,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 253
}
],
"_prefab": null,
@@ -11869,7 +12072,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 252
},
"_enabled": true,
"_materials": [
@@ -11903,13 +12106,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 255
}
],
"_prefab": null,
@@ -11965,7 +12168,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 254
},
"_enabled": true,
"_materials": [
@@ -11999,13 +12202,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 252
+ "__id__": 257
}
],
"_prefab": null,
@@ -12061,7 +12264,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 251
+ "__id__": 256
},
"_enabled": true,
"_materials": [
@@ -12095,13 +12298,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 254
+ "__id__": 259
}
],
"_prefab": null,
@@ -12157,7 +12360,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 253
+ "__id__": 258
},
"_enabled": true,
"_materials": [
@@ -12190,13 +12393,13 @@
"_name": "openID",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 256
+ "__id__": 261
}
],
"_prefab": null,
@@ -12252,7 +12455,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 255
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -12285,17 +12488,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 210
},
"_enabled": true,
"music": {
- "__id__": 247
+ "__id__": 252
},
"effect": {
- "__id__": 249
+ "__id__": 254
},
"vibrate": {
- "__id__": 251
+ "__id__": 256
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -12316,7 +12519,7 @@
"_active": false,
"_components": [
{
- "__id__": 259
+ "__id__": 264
}
],
"_prefab": null,
@@ -12372,7 +12575,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 258
+ "__id__": 263
},
"_enabled": true,
"_materials": [
@@ -12493,7 +12696,9 @@
"Stamina": {
"__id__": 28
},
- "setUi": null,
+ "setUi": {
+ "__id__": 80
+ },
"_id": "0dna+7W/NMp6RyIrSQLx5u"
}
]
\ No newline at end of file
diff --git a/assets/Script/Map.ts b/assets/Script/Map.ts
index d39f3f4..baed779 100644
--- a/assets/Script/Map.ts
+++ b/assets/Script/Map.ts
@@ -188,6 +188,7 @@ export default class MapConroler extends cc.Component {
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
this.timeNumber = cc.fx.GameConfig.LEVEL_INFO[0].time;
+ console.log("当前关卡时间", this.timeNumber);
this.count_Time = 0;
this.add_Time = 0;
@@ -195,7 +196,7 @@ export default class MapConroler extends cc.Component {
// 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)
-
+ console.log("当前关卡", cc.fx.GameConfig.GM_INFO.level + 1);
//this.startTimeCutDown();
this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];
diff --git a/assets/Script/Sdk/MiniGameSdk.ts b/assets/Script/Sdk/MiniGameSdk.ts
index a257e47..d282a67 100644
--- a/assets/Script/Sdk/MiniGameSdk.ts
+++ b/assets/Script/Sdk/MiniGameSdk.ts
@@ -1133,10 +1133,12 @@ export namespace MiniGameSdk {
}
static shushu_Login() {
- API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
- const result = "success";
- API.shushu_Track("login", result);
- API.shushu_SetSuperProperties();
+ if (typeof wx !== 'undefined' && wx !== null) {
+ API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
+ const result = "success";
+ API.shushu_Track("login", result);
+ API.shushu_SetSuperProperties();
+ }
}
static shushu_userSet(time) {
diff --git a/assets/Script/setUi.ts b/assets/Script/setUi.ts
new file mode 100644
index 0000000..723d9cd
--- /dev/null
+++ b/assets/Script/setUi.ts
@@ -0,0 +1,116 @@
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+
+
+const { ccclass, property } = cc._decorator;
+
+
+@ccclass
+export default class setUi extends cc.Component {
+ static _instance: any;
+ time: number = 0;
+
+ @property(cc.Node)
+ music: cc.Node = null;
+
+ @property(cc.Node)
+ effect: cc.Node = null;
+
+ @property(cc.Node)
+ vibrate: cc.Node = null;
+
+
+ // mapInfo: number[][] = [];
+
+ musicState: boolean = true;
+ effectState: boolean = true;
+ vibrateState: boolean = true;
+
+ onLoad() {
+
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ console.log("音乐状态", this.musicState);
+ console.log("音效状态", this.effectState);
+ console.log("震动状态", this.vibrateState);
+ this.syncToggleState();
+ }
+
+ start() {
+ }
+
+ init(time) {
+
+ }
+
+ clickMusic() {
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.playMusicGame();
+ }
+ }
+
+ setMusicConfig() {
+ let audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen, //音乐
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen, //音效
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen, //震动
+ }
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ }
+
+ clickEffect() {
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+
+ }
+ }
+
+ clickVibrate() {
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+
+ }
+ }
+ syncToggleState() {
+ this.music.getComponent(cc.Toggle).isChecked = !this.musicState;
+ this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;
+ this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;
+ }
+
+ //关闭ui
+ closeUi() {
+ this.node.active = false;
+ }
+
+ // update (dt) {}
+}
diff --git a/assets/Script/setUi.ts.meta b/assets/Script/setUi.ts.meta
new file mode 100644
index 0000000..8777381
--- /dev/null
+++ b/assets/Script/setUi.ts.meta
@@ -0,0 +1,10 @@
+{
+ "ver": "1.1.0",
+ "uuid": "19d95d9d-e645-41ac-b4b3-00819e12514a",
+ "importer": "typescript",
+ "isPlugin": false,
+ "loadPluginInWeb": true,
+ "loadPluginInNative": true,
+ "loadPluginInEditor": false,
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/assets/UI/UI/set/commonUi-0.plist b/assets/UI/UI/set/commonUi-0.plist
new file mode 100644
index 0000000..b36a99b
--- /dev/null
+++ b/assets/UI/UI/set/commonUi-0.plist
@@ -0,0 +1,1766 @@
+
+
+
+
+frames
+
+底板00.png
+
+frame
+{{0,0},{1080,113}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1080,113}}
+sourceSize
+{1080,113}
+
+底板00_1.png
+
+frame
+{{0,0},{1080,113}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1080,113}}
+sourceSize
+{1080,113}
+
+dikuang00.png
+
+frame
+{{0,114},{1056,169}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1056,169}}
+sourceSize
+{1056,169}
+
+dikuang00_1.png
+
+frame
+{{0,114},{1056,169}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1056,169}}
+sourceSize
+{1056,169}
+
+字03.png
+
+frame
+{{0,284},{766,56}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{766,56}}
+sourceSize
+{766,56}
+
+字03_1.png
+
+frame
+{{0,284},{766,56}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{766,56}}
+sourceSize
+{766,56}
+
+字08.png
+
+frame
+{{0,341},{692,140}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{692,140}}
+sourceSize
+{692,140}
+
+字08_1.png
+
+frame
+{{0,341},{692,140}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{692,140}}
+sourceSize
+{692,140}
+
+园底上发光.png
+
+frame
+{{0,482},{650,638}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{650,638}}
+sourceSize
+{650,638}
+
+园底上发光_1.png
+
+frame
+{{0,482},{650,638}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{650,638}}
+sourceSize
+{650,638}
+
+按钮00.png
+
+frame
+{{651,482},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+按钮00_1.png
+
+frame
+{{651,482},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+重试按钮.png
+
+frame
+{{826,284},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+门图.png
+
+frame
+{{1081,0},{615,93}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{615,93}}
+sourceSize
+{615,93}
+
+门图_1.png
+
+frame
+{{1081,0},{615,93}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{615,93}}
+sourceSize
+{615,93}
+
+tiaodik.png
+
+frame
+{{0,1121},{154,598}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,598}}
+sourceSize
+{154,598}
+
+tiaodik_1.png
+
+frame
+{{0,1121},{154,598}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,598}}
+sourceSize
+{154,598}
+
+字10.png
+
+frame
+{{1001,284},{582,55}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{582,55}}
+sourceSize
+{582,55}
+
+字10_1.png
+
+frame
+{{1001,284},{582,55}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{582,55}}
+sourceSize
+{582,55}
+
+进入关卡按钮.png
+
+frame
+{{1175,0},{520,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{520,198}}
+sourceSize
+{520,198}
+
+进入关卡按钮_1.png
+
+frame
+{{1175,0},{520,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{520,198}}
+sourceSize
+{520,198}
+
+圆底01.png
+
+frame
+{{0,1276},{516,516}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{516,516}}
+sourceSize
+{516,516}
+
+圆底01_1.png
+
+frame
+{{0,1276},{516,516}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{516,516}}
+sourceSize
+{516,516}
+
+继续按钮.png
+
+frame
+{{1175,521},{476,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{476,164}}
+sourceSize
+{476,164}
+
+继续按钮_1.png
+
+frame
+{{1175,521},{476,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{476,164}}
+sourceSize
+{476,164}
+
+返回主界面按钮.png
+
+frame
+{{1001,867},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+返回主界面按钮_1.png
+
+frame
+{{1001,867},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+放弃按钮.png
+
+frame
+{{826,921},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+放弃按钮_1.png
+
+frame
+{{826,921},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+关卡数字01.png
+
+frame
+{{517,1356},{419,54}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{419,54}}
+sourceSize
+{419,54}
+
+关卡数字01_1.png
+
+frame
+{{517,1356},{419,54}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{419,54}}
+sourceSize
+{419,54}
+
+字00.png
+
+frame
+{{572,1356},{412,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{412,65}}
+sourceSize
+{412,65}
+
+字00_1.png
+
+frame
+{{572,1356},{412,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{412,65}}
+sourceSize
+{412,65}
+
+数字小.png
+
+frame
+{{971,1302},{368,40}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{368,40}}
+sourceSize
+{368,40}
+
+数字小_1.png
+
+frame
+{{971,1302},{368,40}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{368,40}}
+sourceSize
+{368,40}
+
+字01.png
+
+frame
+{{971,1343},{363,57}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{363,57}}
+sourceSize
+{363,57}
+
+字01_1.png
+
+frame
+{{971,1343},{363,57}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{363,57}}
+sourceSize
+{363,57}
+
+数字02.png
+
+frame
+{{1335,1343},{359,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{359,38}}
+sourceSize
+{359,38}
+
+数字02_1.png
+
+frame
+{{1335,1343},{359,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{359,38}}
+sourceSize
+{359,38}
+
+字07.png
+
+frame
+{{638,1703},{348,66}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{348,66}}
+sourceSize
+{348,66}
+
+字07_1.png
+
+frame
+{{638,1703},{348,66}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{348,66}}
+sourceSize
+{348,66}
+
+心图标01.png
+
+frame
+{{638,1356},{340,276}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{340,276}}
+sourceSize
+{340,276}
+
+心图标01_1.png
+
+frame
+{{638,1356},{340,276}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{340,276}}
+sourceSize
+{340,276}
+
+字11.png
+
+frame
+{{987,1703},{322,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{322,64}}
+sourceSize
+{322,64}
+
+字11_1.png
+
+frame
+{{987,1703},{322,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{322,64}}
+sourceSize
+{322,64}
+
+数字03.png
+
+frame
+{{915,1356},{319,34}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{319,34}}
+sourceSize
+{319,34}
+
+数字03_1.png
+
+frame
+{{915,1356},{319,34}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{319,34}}
+sourceSize
+{319,34}
+
+锤子大.png
+
+frame
+{{1146,998},{303,316}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{303,316}}
+sourceSize
+{303,316}
+
+锤子大_1.png
+
+frame
+{{1146,998},{303,316}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{303,316}}
+sourceSize
+{303,316}
+
+震动tuzi.png
+
+frame
+{{1340,521},{314,117}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{314,117}}
+sourceSize
+{314,117}
+
+震动tuzi_1.png
+
+frame
+{{1340,521},{314,117}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{314,117}}
+sourceSize
+{314,117}
+
+ditu00.png
+
+frame
+{{1340,639},{312,62}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{312,62}}
+sourceSize
+{312,62}
+
+ditu00_1.png
+
+frame
+{{1340,639},{312,62}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{312,62}}
+sourceSize
+{312,62}
+
+音乐tuzi.png
+
+frame
+{{1340,702},{311,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,100}}
+sourceSize
+{311,100}
+
+音乐tuzi_1.png
+
+frame
+{{1340,702},{311,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,100}}
+sourceSize
+{311,100}
+
+音效tuzi.png
+
+frame
+{{1340,803},{311,116}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,116}}
+sourceSize
+{311,116}
+
+音效tuzi_1.png
+
+frame
+{{1340,803},{311,116}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,116}}
+sourceSize
+{311,116}
+
+五星棒大.png
+
+frame
+{{950,1401},{284,297}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{284,297}}
+sourceSize
+{284,297}
+
+五星棒大_1.png
+
+frame
+{{950,1401},{284,297}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{284,297}}
+sourceSize
+{284,297}
+
+冰冻时钟大.png
+
+frame
+{{1374,1302},{240,291}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{240,291}}
+sourceSize
+{240,291}
+
+冰冻时钟大_1.png
+
+frame
+{{1374,1302},{240,291}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{240,291}}
+sourceSize
+{240,291}
+
+字05.png
+
+frame
+{{1340,920},{289,72}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{289,72}}
+sourceSize
+{289,72}
+
+字05_1.png
+
+frame
+{{1340,920},{289,72}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{289,72}}
+sourceSize
+{289,72}
+
+闹钟图标00.png
+
+frame
+{{1374,1543},{235,284}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{235,284}}
+sourceSize
+{235,284}
+
+闹钟图标00_1.png
+
+frame
+{{1374,1543},{235,284}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{235,284}}
+sourceSize
+{235,284}
+
+字02.png
+
+frame
+{{517,1276},{283,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{283,64}}
+sourceSize
+{283,64}
+
+字02_1.png
+
+frame
+{{517,1276},{283,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{283,64}}
+sourceSize
+{283,64}
+
+字09.png
+
+frame
+{{1235,1401},{281,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,64}}
+sourceSize
+{281,64}
+
+字09_1.png
+
+frame
+{{1235,1401},{281,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,64}}
+sourceSize
+{281,64}
+
+字04.png
+
+frame
+{{1374,0},{281,71}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,71}}
+sourceSize
+{281,71}
+
+字04_1.png
+
+frame
+{{1374,0},{281,71}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,71}}
+sourceSize
+{281,71}
+
+锁关卡数字小.png
+
+frame
+{{1630,920},{269,37}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{269,37}}
+sourceSize
+{269,37}
+
+开按钮.png
+
+frame
+{{1374,72},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+开按钮_1.png
+
+frame
+{{1374,72},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+关按钮.png
+
+frame
+{{1374,177},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+第关字.png
+
+frame
+{{1639,72},{234,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{234,36}}
+sourceSize
+{234,36}
+
+第关字_1.png
+
+frame
+{{1639,72},{234,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{234,36}}
+sourceSize
+{234,36}
+
+每日奖励图标.png
+
+frame
+{{1374,307},{199,215}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{199,215}}
+sourceSize
+{199,215}
+
+头像底图.png
+
+frame
+{{1668,307},{188,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{188,198}}
+sourceSize
+{188,198}
+
+头像底图_1.png
+
+frame
+{{1668,307},{188,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{188,198}}
+sourceSize
+{188,198}
+
+设置图标.png
+
+frame
+{{599,1121},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+设置图标_1.png
+
+frame
+{{599,1121},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+排行榜图标.png
+
+frame
+{{1463,993},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+排行榜图标_1.png
+
+frame
+{{1463,993},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+锁按钮.png
+
+frame
+{{1676,0},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+锁按钮_1.png
+
+frame
+{{1676,0},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+带锁.png
+
+frame
+{{1668,496},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+带锁_1.png
+
+frame
+{{1668,496},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+空道具底框.png
+
+frame
+{{1668,651},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+暂停按钮.png
+
+frame
+{{1668,806},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+退出按钮.png
+
+frame
+{{1676,155},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+退出按钮_1.png
+
+frame
+{{1676,155},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+重置按钮.png
+
+frame
+{{1668,961},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+重置按钮_1.png
+
+frame
+{{1668,961},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+暂停字.png
+
+frame
+{{1590,307},{150,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{150,65}}
+sourceSize
+{150,65}
+
+暂停字_1.png
+
+frame
+{{1590,307},{150,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{150,65}}
+sourceSize
+{150,65}
+
+锤子小.png
+
+frame
+{{693,341},{124,129}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{124,129}}
+sourceSize
+{124,129}
+
+锤子小_1.png
+
+frame
+{{693,341},{124,129}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{124,129}}
+sourceSize
+{124,129}
+
+冰冻时钟小.png
+
+frame
+{{1463,1190},{106,127}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{106,127}}
+sourceSize
+{106,127}
+
+冰冻时钟小_1.png
+
+frame
+{{1463,1190},{106,127}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{106,127}}
+sourceSize
+{106,127}
+
+音乐01.png
+
+frame
+{{1057,616},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐01_1.png
+
+frame
+{{1057,616},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效00.png
+
+frame
+{{1057,739},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效00_1.png
+
+frame
+{{1057,739},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效01.png
+
+frame
+{{1668,1106},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效01_1.png
+
+frame
+{{1668,1106},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动00.png
+
+frame
+{{1666,1223},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动00_1.png
+
+frame
+{{1666,1223},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐00.png
+
+frame
+{{1666,1340},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐00_1.png
+
+frame
+{{1666,1340},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动01.png
+
+frame
+{{1666,1457},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动01_1.png
+
+frame
+{{1666,1457},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+五星棒小.png
+
+frame
+{{1659,1574},{113,118}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{113,118}}
+sourceSize
+{113,118}
+
+五星棒小_1.png
+
+frame
+{{1659,1574},{113,118}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{113,118}}
+sourceSize
+{113,118}
+
+锁上字.png
+
+frame
+{{1833,961},{109,32}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{109,32}}
+sourceSize
+{109,32}
+
+锁上字_1.png
+
+frame
+{{1833,961},{109,32}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{109,32}}
+sourceSize
+{109,32}
+
+小钟图标.png
+
+frame
+{{1659,1688},{79,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{79,100}}
+sourceSize
+{79,100}
+
+小钟图标_1.png
+
+frame
+{{1659,1688},{79,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{79,100}}
+sourceSize
+{79,100}
+
+心图标.png
+
+frame
+{{1778,1574},{92,88}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{92,88}}
+sourceSize
+{92,88}
+
+心图标_1.png
+
+frame
+{{1778,1574},{92,88}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{92,88}}
+sourceSize
+{92,88}
+
+加按钮.png
+
+frame
+{{1789,1223},{76,82}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{76,82}}
+sourceSize
+{76,82}
+
+加按钮_1.png
+
+frame
+{{1789,1223},{76,82}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{76,82}}
+sourceSize
+{76,82}
+
+震动字.png
+
+frame
+{{1591,1190},{74,39}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{74,39}}
+sourceSize
+{74,39}
+
+震动字_1.png
+
+frame
+{{1591,1190},{74,39}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{74,39}}
+sourceSize
+{74,39}
+
+音效字.png
+
+frame
+{{1591,1230},{73,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{73,38}}
+sourceSize
+{73,38}
+
+音效字_1.png
+
+frame
+{{1591,1230},{73,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{73,38}}
+sourceSize
+{73,38}
+
+音乐字.png
+
+frame
+{{1791,1106},{72,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,38}}
+sourceSize
+{72,38}
+
+音乐字_1.png
+
+frame
+{{1791,1106},{72,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,38}}
+sourceSize
+{72,38}
+
+已满字.png
+
+frame
+{{1791,1145},{72,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,36}}
+sourceSize
+{72,36}
+
+已满字_1.png
+
+frame
+{{1791,1145},{72,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,36}}
+sourceSize
+{72,36}
+
+弹出框关闭按钮.png
+
+frame
+{{1789,1306},{65,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{65,64}}
+sourceSize
+{65,64}
+
+弹出框关闭按钮_1.png
+
+frame
+{{1789,1306},{65,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{65,64}}
+sourceSize
+{65,64}
+
+弹出小框.png
+
+frame
+{{1174,616},{-313,-95}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{-313,-95}}
+sourceSize
+{-313,-95}
+
+弹出小框_1.png
+
+frame
+{{1174,616},{-313,-95}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{-313,-95}}
+sourceSize
+{-313,-95}
+
+
+metadata
+
+format
+2
+pixelFormat
+RGBA8888
+premultiplyAlpha
+
+realTextureFileName
+commonUi-0.png
+textureFileName
+commonUi-0.png
+size
+{1866,1792}
+
+
+
diff --git a/assets/UI/UI/set/commonUi-0.plist.meta b/assets/UI/UI/set/commonUi-0.plist.meta
new file mode 100644
index 0000000..4a7100b
--- /dev/null
+++ b/assets/UI/UI/set/commonUi-0.plist.meta
@@ -0,0 +1,3095 @@
+{
+ "ver": "1.2.6",
+ "uuid": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "importer": "asset",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "size": {
+ "width": 1866,
+ "height": 1792
+ },
+ "type": "Texture Packer",
+ "subMetas": {
+ "底板00.png": {
+ "ver": "1.0.6",
+ "uuid": "b805a15e-9ae8-42f5-96e7-d17966806b11",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1080,
+ "height": 113,
+ "rawWidth": 1080,
+ "rawHeight": 113,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "底板00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d229cc47-8fde-407c-8a0a-986e6a7db207",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1080,
+ "height": 113,
+ "rawWidth": 1080,
+ "rawHeight": 113,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "dikuang00.png": {
+ "ver": "1.0.6",
+ "uuid": "2c6f95ed-6d6d-4701-b84a-21611c5a06eb",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 114,
+ "width": 1056,
+ "height": 169,
+ "rawWidth": 1056,
+ "rawHeight": 169,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "dikuang00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "504647c0-4bb4-4edd-b02d-5a20a94e12d5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 114,
+ "width": 1056,
+ "height": 169,
+ "rawWidth": 1056,
+ "rawHeight": 169,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字03.png": {
+ "ver": "1.0.6",
+ "uuid": "93bd4730-60db-4373-85f3-31319264dfe8",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 284,
+ "width": 766,
+ "height": 56,
+ "rawWidth": 766,
+ "rawHeight": 56,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字03_1.png": {
+ "ver": "1.0.6",
+ "uuid": "a1fb2f86-4cae-43ef-a0f2-c51314cf5f88",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 284,
+ "width": 766,
+ "height": 56,
+ "rawWidth": 766,
+ "rawHeight": 56,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字08.png": {
+ "ver": "1.0.6",
+ "uuid": "0ac0870c-5ce8-4701-9dee-cde7f199e65d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 341,
+ "width": 692,
+ "height": 140,
+ "rawWidth": 692,
+ "rawHeight": 140,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字08_1.png": {
+ "ver": "1.0.6",
+ "uuid": "fb464ead-bb30-4e08-83e0-8e689a06a849",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 341,
+ "width": 692,
+ "height": 140,
+ "rawWidth": 692,
+ "rawHeight": 140,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "园底上发光.png": {
+ "ver": "1.0.6",
+ "uuid": "9c320ec0-85b1-45cc-ad32-be7b17fbfb76",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 482,
+ "width": 650,
+ "height": 638,
+ "rawWidth": 650,
+ "rawHeight": 638,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "园底上发光_1.png": {
+ "ver": "1.0.6",
+ "uuid": "19b26463-f899-4e89-a5c2-cc97bdf5247b",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 482,
+ "width": 650,
+ "height": 638,
+ "rawWidth": 650,
+ "rawHeight": 638,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "按钮00.png": {
+ "ver": "1.0.6",
+ "uuid": "3a923142-3750-4390-bb5f-f642ffa563e3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 651,
+ "trimY": 482,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "按钮00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "b9eda2af-71ff-494d-8914-ec65eadd1aaf",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 651,
+ "trimY": 482,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重试按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "8d554be7-4923-4539-986e-0f26f8c1ef33",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 284,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "门图.png": {
+ "ver": "1.0.6",
+ "uuid": "75abc382-3760-477c-850a-15dab855dcfa",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1081,
+ "trimY": 0,
+ "width": 615,
+ "height": 93,
+ "rawWidth": 615,
+ "rawHeight": 93,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "门图_1.png": {
+ "ver": "1.0.6",
+ "uuid": "32da3ed8-e488-4ee4-a2b5-9f8d856188d1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1081,
+ "trimY": 0,
+ "width": 615,
+ "height": 93,
+ "rawWidth": 615,
+ "rawHeight": 93,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "tiaodik.png": {
+ "ver": "1.0.6",
+ "uuid": "7253fc88-be8f-46c1-933b-0b730a63e20b",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1121,
+ "width": 154,
+ "height": 598,
+ "rawWidth": 154,
+ "rawHeight": 598,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "tiaodik_1.png": {
+ "ver": "1.0.6",
+ "uuid": "38691690-4f54-4034-9b99-d9720dbba35a",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1121,
+ "width": 154,
+ "height": 598,
+ "rawWidth": 154,
+ "rawHeight": 598,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字10.png": {
+ "ver": "1.0.6",
+ "uuid": "bb39499a-feb7-4eab-bbf3-46ac003c3f9a",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 284,
+ "width": 582,
+ "height": 55,
+ "rawWidth": 582,
+ "rawHeight": 55,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字10_1.png": {
+ "ver": "1.0.6",
+ "uuid": "47f47555-9e12-4a89-9caf-853c3958b409",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 284,
+ "width": 582,
+ "height": 55,
+ "rawWidth": 582,
+ "rawHeight": 55,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "进入关卡按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "f37d06c1-f7b0-4795-baa7-178fde594ebb",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 0,
+ "width": 520,
+ "height": 198,
+ "rawWidth": 520,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "进入关卡按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "57dbc606-d1de-4b3b-be2e-cfde135d67e2",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 0,
+ "width": 520,
+ "height": 198,
+ "rawWidth": 520,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "圆底01.png": {
+ "ver": "1.0.6",
+ "uuid": "cd139bc7-45e1-4ae7-9f45-0df7959c1acf",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1276,
+ "width": 516,
+ "height": 516,
+ "rawWidth": 516,
+ "rawHeight": 516,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "圆底01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "30f6b96c-aa95-400f-8021-19dd72d5f0f6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1276,
+ "width": 516,
+ "height": 516,
+ "rawWidth": 516,
+ "rawHeight": 516,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "继续按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "1874d98e-d824-4728-8920-4bd26d58cca3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 521,
+ "width": 476,
+ "height": 164,
+ "rawWidth": 476,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "继续按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "f04ef342-a164-45cd-9518-bc29549d3ec6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 521,
+ "width": 476,
+ "height": 164,
+ "rawWidth": 476,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "返回主界面按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "3f086564-1703-4059-b4ae-14a64b816796",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 867,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "返回主界面按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "23e682eb-41eb-41b3-8142-19fef70bbb1e",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 867,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "放弃按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "1a2321f2-df33-4038-adde-c23574d37196",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 921,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "放弃按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "f2ba433f-c9a0-4fdf-aec0-554824ad093a",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 921,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关卡数字01.png": {
+ "ver": "1.0.6",
+ "uuid": "ea2f7320-1e7c-42a9-a5ad-5a2652ce6202",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1356,
+ "width": 419,
+ "height": 54,
+ "rawWidth": 419,
+ "rawHeight": 54,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关卡数字01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "6c090df3-7b95-4560-9ebb-5360c75f7cf8",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1356,
+ "width": 419,
+ "height": 54,
+ "rawWidth": 419,
+ "rawHeight": 54,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字00.png": {
+ "ver": "1.0.6",
+ "uuid": "b9e660da-3e10-4c1f-af72-45fbf377aafd",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 572,
+ "trimY": 1356,
+ "width": 412,
+ "height": 65,
+ "rawWidth": 412,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "5696b755-64e0-46ff-962f-6fcadd7dd3d5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 572,
+ "trimY": 1356,
+ "width": 412,
+ "height": 65,
+ "rawWidth": 412,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字小.png": {
+ "ver": "1.0.6",
+ "uuid": "faa786a0-c837-4c24-8fcb-fd92090b7b5b",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1302,
+ "width": 368,
+ "height": 40,
+ "rawWidth": 368,
+ "rawHeight": 40,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "a015f272-ef06-472d-9ed0-51df191c80b7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1302,
+ "width": 368,
+ "height": 40,
+ "rawWidth": 368,
+ "rawHeight": 40,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字01.png": {
+ "ver": "1.0.6",
+ "uuid": "54ded0b7-c64c-468c-abfa-1d5b85cc9b9f",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1343,
+ "width": 363,
+ "height": 57,
+ "rawWidth": 363,
+ "rawHeight": 57,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "e3c8057d-feeb-4082-9e5d-3dd19199d230",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1343,
+ "width": 363,
+ "height": 57,
+ "rawWidth": 363,
+ "rawHeight": 57,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字02.png": {
+ "ver": "1.0.6",
+ "uuid": "4c3f9fb1-3057-4aaf-8e6e-a0e8626ab5f7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1335,
+ "trimY": 1343,
+ "width": 359,
+ "height": 38,
+ "rawWidth": 359,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字02_1.png": {
+ "ver": "1.0.6",
+ "uuid": "46e3843a-0a3e-4a70-8658-83259b9ad67c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1335,
+ "trimY": 1343,
+ "width": 359,
+ "height": 38,
+ "rawWidth": 359,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字07.png": {
+ "ver": "1.0.6",
+ "uuid": "0af874ae-102c-433e-9f65-3a0249719010",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1703,
+ "width": 348,
+ "height": 66,
+ "rawWidth": 348,
+ "rawHeight": 66,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字07_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ccfde84e-efcc-439a-8301-54c0bd11a7e8",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1703,
+ "width": 348,
+ "height": 66,
+ "rawWidth": 348,
+ "rawHeight": 66,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标01.png": {
+ "ver": "1.0.6",
+ "uuid": "f071c7d7-0c90-4153-95fc-ac0b14403538",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1356,
+ "width": 340,
+ "height": 276,
+ "rawWidth": 340,
+ "rawHeight": 276,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "5cbb7099-0ac0-42e6-a788-39178eaf6607",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1356,
+ "width": 340,
+ "height": 276,
+ "rawWidth": 340,
+ "rawHeight": 276,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字11.png": {
+ "ver": "1.0.6",
+ "uuid": "7c6c2281-72d1-4217-81e1-77b9c86910a1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 987,
+ "trimY": 1703,
+ "width": 322,
+ "height": 64,
+ "rawWidth": 322,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字11_1.png": {
+ "ver": "1.0.6",
+ "uuid": "5e8fa3c3-fbf0-426e-83a2-0dd8d9d926ed",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 987,
+ "trimY": 1703,
+ "width": 322,
+ "height": 64,
+ "rawWidth": 322,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字03.png": {
+ "ver": "1.0.6",
+ "uuid": "8bc7338d-8134-4b6b-bee0-6e714308e5b6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 915,
+ "trimY": 1356,
+ "width": 319,
+ "height": 34,
+ "rawWidth": 319,
+ "rawHeight": 34,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字03_1.png": {
+ "ver": "1.0.6",
+ "uuid": "67952f97-79a4-4a3c-a14a-8a588c61eb6b",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 915,
+ "trimY": 1356,
+ "width": 319,
+ "height": 34,
+ "rawWidth": 319,
+ "rawHeight": 34,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子大.png": {
+ "ver": "1.0.6",
+ "uuid": "4e722158-05c5-4834-83de-d719f7cf1749",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1146,
+ "trimY": 998,
+ "width": 303,
+ "height": 316,
+ "rawWidth": 303,
+ "rawHeight": 316,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "0f61fe2e-562f-4ee4-b7b8-1943ddc65303",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1146,
+ "trimY": 998,
+ "width": 303,
+ "height": 316,
+ "rawWidth": 303,
+ "rawHeight": 316,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "5ccbd7b2-837d-4ff6-a2fd-f4bc7335037b",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 521,
+ "width": 314,
+ "height": 117,
+ "rawWidth": 314,
+ "rawHeight": 117,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "16b678fa-fda9-4626-8f00-01bed6771b18",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 521,
+ "width": 314,
+ "height": 117,
+ "rawWidth": 314,
+ "rawHeight": 117,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "ditu00.png": {
+ "ver": "1.0.6",
+ "uuid": "01c52e25-2b5d-4a2d-bcee-60913a9b83e6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 639,
+ "width": 312,
+ "height": 62,
+ "rawWidth": 312,
+ "rawHeight": 62,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "ditu00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "59800a22-36b4-4f4c-a6fa-c663d14acc2e",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 639,
+ "width": 312,
+ "height": 62,
+ "rawWidth": 312,
+ "rawHeight": 62,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "5fe46c32-e783-41e6-9a84-50c19003b188",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 702,
+ "width": 311,
+ "height": 100,
+ "rawWidth": 311,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "97a6b663-88e0-4b9b-878b-c0c612e14a5c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 702,
+ "width": 311,
+ "height": 100,
+ "rawWidth": 311,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "9e7374d1-86e6-4b34-aac0-5995743b4b33",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 803,
+ "width": 311,
+ "height": 116,
+ "rawWidth": 311,
+ "rawHeight": 116,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c089d57e-d036-423a-ac1b-55cac40e7691",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 803,
+ "width": 311,
+ "height": 116,
+ "rawWidth": 311,
+ "rawHeight": 116,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒大.png": {
+ "ver": "1.0.6",
+ "uuid": "e7a8382c-c44b-4866-947e-b066a6076bcb",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 950,
+ "trimY": 1401,
+ "width": 284,
+ "height": 297,
+ "rawWidth": 284,
+ "rawHeight": 297,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "fd3fe304-5907-4cc0-9eb5-e0c3032479f5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 950,
+ "trimY": 1401,
+ "width": 284,
+ "height": 297,
+ "rawWidth": 284,
+ "rawHeight": 297,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟大.png": {
+ "ver": "1.0.6",
+ "uuid": "e0440b96-7c7b-482b-8694-231ffe70bdfd",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1302,
+ "width": 240,
+ "height": 291,
+ "rawWidth": 240,
+ "rawHeight": 291,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "7a0d6aa9-2980-4985-9036-9a4a425603be",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1302,
+ "width": 240,
+ "height": 291,
+ "rawWidth": 240,
+ "rawHeight": 291,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字05.png": {
+ "ver": "1.0.6",
+ "uuid": "036994a9-0dc2-493c-8a5b-5f9dc95e6c76",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 920,
+ "width": 289,
+ "height": 72,
+ "rawWidth": 289,
+ "rawHeight": 72,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字05_1.png": {
+ "ver": "1.0.6",
+ "uuid": "222678a4-a7e0-45e2-b02b-d7a292a62285",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 920,
+ "width": 289,
+ "height": 72,
+ "rawWidth": 289,
+ "rawHeight": 72,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "闹钟图标00.png": {
+ "ver": "1.0.6",
+ "uuid": "62e56e7a-ac0b-477d-a226-a80b3bf7a5fd",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1543,
+ "width": 235,
+ "height": 284,
+ "rawWidth": 235,
+ "rawHeight": 284,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "闹钟图标00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "17edcc16-e0cc-4729-b696-5b6221598ff8",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1543,
+ "width": 235,
+ "height": 284,
+ "rawWidth": 235,
+ "rawHeight": 284,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字02.png": {
+ "ver": "1.0.6",
+ "uuid": "d8902812-2210-4ce7-aecf-e93c1aba806d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1276,
+ "width": 283,
+ "height": 64,
+ "rawWidth": 283,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字02_1.png": {
+ "ver": "1.0.6",
+ "uuid": "55943a12-6929-4956-a6cd-20ac058b1c49",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1276,
+ "width": 283,
+ "height": 64,
+ "rawWidth": 283,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字09.png": {
+ "ver": "1.0.6",
+ "uuid": "5b40d22b-faa1-4d5e-9e71-9dd032552e79",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1235,
+ "trimY": 1401,
+ "width": 281,
+ "height": 64,
+ "rawWidth": 281,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字09_1.png": {
+ "ver": "1.0.6",
+ "uuid": "a82c351b-9b93-45d0-b3f8-8aebe0f0cbae",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1235,
+ "trimY": 1401,
+ "width": 281,
+ "height": 64,
+ "rawWidth": 281,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字04.png": {
+ "ver": "1.0.6",
+ "uuid": "9eff1bc5-32de-45b9-b78b-2842b03e5ac6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 0,
+ "width": 281,
+ "height": 71,
+ "rawWidth": 281,
+ "rawHeight": 71,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字04_1.png": {
+ "ver": "1.0.6",
+ "uuid": "3fe5b349-71bd-4746-9331-763bc0935b74",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 0,
+ "width": 281,
+ "height": 71,
+ "rawWidth": 281,
+ "rawHeight": 71,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁关卡数字小.png": {
+ "ver": "1.0.6",
+ "uuid": "1f4d1b0e-aa19-43f1-b131-709124791670",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1630,
+ "trimY": 920,
+ "width": 269,
+ "height": 37,
+ "rawWidth": 269,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "开按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "0afb16e8-c329-4191-a892-cca6e29336ec",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 72,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "开按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "fe46a9e9-ce92-428e-b6b1-080831ec5270",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 72,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "3768d142-08e0-4adc-be9f-df163c9f19a4",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 177,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "第关字.png": {
+ "ver": "1.0.6",
+ "uuid": "21c98909-45c0-4733-aa79-d55bc77f8052",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1639,
+ "trimY": 72,
+ "width": 234,
+ "height": 36,
+ "rawWidth": 234,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "第关字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c176a193-7e7f-48d3-9012-ae53132138dc",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1639,
+ "trimY": 72,
+ "width": 234,
+ "height": 36,
+ "rawWidth": 234,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "每日奖励图标.png": {
+ "ver": "1.0.6",
+ "uuid": "cf33e06c-01c7-49bb-8894-039f67ee6910",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 307,
+ "width": 199,
+ "height": 215,
+ "rawWidth": 199,
+ "rawHeight": 215,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "头像底图.png": {
+ "ver": "1.0.6",
+ "uuid": "95765141-8917-41cb-93ec-f541ba8f41e1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 307,
+ "width": 188,
+ "height": 198,
+ "rawWidth": 188,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "头像底图_1.png": {
+ "ver": "1.0.6",
+ "uuid": "dbca32c8-89c2-44f0-b11d-0a03d7f456b5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 307,
+ "width": 188,
+ "height": 198,
+ "rawWidth": 188,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "设置图标.png": {
+ "ver": "1.0.6",
+ "uuid": "88aa2afb-82cc-433d-93a1-853869f7c024",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 599,
+ "trimY": 1121,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "设置图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "780efb23-d368-46f0-9417-9dfb439fc1f9",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 599,
+ "trimY": 1121,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "排行榜图标.png": {
+ "ver": "1.0.6",
+ "uuid": "c6cb1ba1-3842-4022-ae8a-eb350e1893b9",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 993,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "排行榜图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "fd34d22f-84fa-4234-80ce-87baaf7fcf18",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 993,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "db32aa47-4cb5-4999-ac31-ce962b95948d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 0,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "4ada45d8-3f1d-4277-8821-11adc27cb3a1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 0,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "带锁.png": {
+ "ver": "1.0.6",
+ "uuid": "54ffd922-bb43-419a-9489-dd532a53131c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 496,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "带锁_1.png": {
+ "ver": "1.0.6",
+ "uuid": "dd4fe9fa-a953-4faa-add4-50734e0496e3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 496,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "空道具底框.png": {
+ "ver": "1.0.6",
+ "uuid": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 651,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "b408ff41-fd70-476e-a1e9-8a578e26e034",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 806,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "退出按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "3447e7f6-81b2-4bd4-809f-340093f9b1c4",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 155,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "退出按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d9d33bf8-3421-42b0-b44a-53f2ba5b8089",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 155,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重置按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "3fea5ec4-866f-422f-b340-9e39f711330c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 961,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重置按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c2ae6df9-8799-4348-a317-1d06ec5f4531",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 961,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停字.png": {
+ "ver": "1.0.6",
+ "uuid": "a70bfb36-1517-42e0-bd50-48bc9bbfe574",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1590,
+ "trimY": 307,
+ "width": 150,
+ "height": 65,
+ "rawWidth": 150,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "6509ef26-690b-4c43-a803-81b1d9b43c0c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1590,
+ "trimY": 307,
+ "width": 150,
+ "height": 65,
+ "rawWidth": 150,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子小.png": {
+ "ver": "1.0.6",
+ "uuid": "330e6f4d-b16c-4cf2-9791-e10d7a7b5166",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 693,
+ "trimY": 341,
+ "width": 124,
+ "height": 129,
+ "rawWidth": 124,
+ "rawHeight": 129,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ebf6c070-e0ec-4318-a816-9eff6bf88809",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 693,
+ "trimY": 341,
+ "width": 124,
+ "height": 129,
+ "rawWidth": 124,
+ "rawHeight": 129,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟小.png": {
+ "ver": "1.0.6",
+ "uuid": "c0b0148b-e769-4674-8f71-b3dd828675d8",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 1190,
+ "width": 106,
+ "height": 127,
+ "rawWidth": 106,
+ "rawHeight": 127,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "e82b5210-67e9-4105-b39e-e2105422b9a3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 1190,
+ "width": 106,
+ "height": 127,
+ "rawWidth": 106,
+ "rawHeight": 127,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐01.png": {
+ "ver": "1.0.6",
+ "uuid": "694fb9cc-9eba-4bc4-ae86-d586e34da96e",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 616,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "548a7c0c-6423-4800-8e4a-dfea3ce0999d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 616,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效00.png": {
+ "ver": "1.0.6",
+ "uuid": "69822a33-016b-48a4-a4eb-d42755666efc",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 739,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ec89a40c-c092-4e92-b898-c8a9048b7b0e",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 739,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效01.png": {
+ "ver": "1.0.6",
+ "uuid": "55afd81e-884b-4160-9e4b-6f9d4ca97554",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 1106,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "f8251620-36d0-4ee4-9be1-5ddd3ffe5e7e",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 1106,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动00.png": {
+ "ver": "1.0.6",
+ "uuid": "39026068-bd1b-4c1f-9a92-28b67312a93d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1223,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "35a64972-8946-4c78-8db9-d869da9c6838",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1223,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐00.png": {
+ "ver": "1.0.6",
+ "uuid": "d9d890d7-401a-4ccd-b8fc-be3439203d65",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1340,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "848b221b-3658-4df3-9cb6-bf37fa1a945f",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1340,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动01.png": {
+ "ver": "1.0.6",
+ "uuid": "d64ec358-d205-4605-8d70-4a9b60c4fe31",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1457,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "2d594cf6-926d-4b3a-968e-e830dba99ccd",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1457,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒小.png": {
+ "ver": "1.0.6",
+ "uuid": "1eb403a3-afe5-427d-b626-31b0479127ee",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1574,
+ "width": 113,
+ "height": 118,
+ "rawWidth": 113,
+ "rawHeight": 118,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "2ba6206f-a68c-48c4-b91b-41f435367121",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1574,
+ "width": 113,
+ "height": 118,
+ "rawWidth": 113,
+ "rawHeight": 118,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁上字.png": {
+ "ver": "1.0.6",
+ "uuid": "98bc5c77-90dd-4b3d-b548-c305927ec884",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1833,
+ "trimY": 961,
+ "width": 109,
+ "height": 32,
+ "rawWidth": 109,
+ "rawHeight": 32,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁上字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "836148ca-227d-46cd-829d-4f31bcf8a650",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1833,
+ "trimY": 961,
+ "width": 109,
+ "height": 32,
+ "rawWidth": 109,
+ "rawHeight": 32,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "小钟图标.png": {
+ "ver": "1.0.6",
+ "uuid": "0cc5c474-3ac0-421f-92a7-fd42837dda98",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1688,
+ "width": 79,
+ "height": 100,
+ "rawWidth": 79,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "小钟图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "e54e9ac3-4cdc-4afa-bcc5-3e76a71de364",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1688,
+ "width": 79,
+ "height": 100,
+ "rawWidth": 79,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标.png": {
+ "ver": "1.0.6",
+ "uuid": "4509ff1b-1b70-4fa2-bbd2-78bb00a8d577",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1778,
+ "trimY": 1574,
+ "width": 92,
+ "height": 88,
+ "rawWidth": 92,
+ "rawHeight": 88,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "7c332a0d-9d45-4af5-95c8-7d5260655cae",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1778,
+ "trimY": 1574,
+ "width": 92,
+ "height": 88,
+ "rawWidth": 92,
+ "rawHeight": 88,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "加按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "c5ba0cab-fc46-4c97-89ec-a4cb557d63e9",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1223,
+ "width": 76,
+ "height": 82,
+ "rawWidth": 76,
+ "rawHeight": 82,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "加按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "14120fba-2d29-4ca3-a9f5-3154657e3ab3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1223,
+ "width": 76,
+ "height": 82,
+ "rawWidth": 76,
+ "rawHeight": 82,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动字.png": {
+ "ver": "1.0.6",
+ "uuid": "c40825bb-b96a-4b65-8966-4e8a81f2d44a",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1190,
+ "width": 74,
+ "height": 39,
+ "rawWidth": 74,
+ "rawHeight": 39,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d960b9d5-b68d-4593-8e61-11fbee0ee441",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1190,
+ "width": 74,
+ "height": 39,
+ "rawWidth": 74,
+ "rawHeight": 39,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效字.png": {
+ "ver": "1.0.6",
+ "uuid": "2a0977c4-0886-4e75-aee9-25002bdcb297",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1230,
+ "width": 73,
+ "height": 38,
+ "rawWidth": 73,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c653aded-8dc8-40f0-8af5-0b71c9efeed7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1230,
+ "width": 73,
+ "height": 38,
+ "rawWidth": 73,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐字.png": {
+ "ver": "1.0.6",
+ "uuid": "2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1106,
+ "width": 72,
+ "height": 38,
+ "rawWidth": 72,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "4ff1f4e5-1e4f-40ab-9500-2edbbe66bea7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1106,
+ "width": 72,
+ "height": 38,
+ "rawWidth": 72,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "已满字.png": {
+ "ver": "1.0.6",
+ "uuid": "2a3d6cb9-85e3-4e5f-bd62-f7ecd3f9c2c1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1145,
+ "width": 72,
+ "height": 36,
+ "rawWidth": 72,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "已满字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "b3d43798-badf-4605-a46f-3f8e6d006ff7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1145,
+ "width": 72,
+ "height": 36,
+ "rawWidth": 72,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出框关闭按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "251b2233-690e-4ca4-8ce9-c5f8bdf2e6a3",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1306,
+ "width": 65,
+ "height": 64,
+ "rawWidth": 65,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出框关闭按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c2be84c9-771c-425d-8185-655f4b592512",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1306,
+ "width": 65,
+ "height": 64,
+ "rawWidth": 65,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出小框.png": {
+ "ver": "1.0.6",
+ "uuid": "abc44372-ed53-4665-aba8-c701dbc22e45",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1174,
+ "trimY": 616,
+ "width": -313,
+ "height": -95,
+ "rawWidth": -313,
+ "rawHeight": -95,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出小框_1.png": {
+ "ver": "1.0.6",
+ "uuid": "11a9778e-0913-47b6-8deb-252c15a5b071",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1174,
+ "trimY": 616,
+ "width": -313,
+ "height": -95,
+ "rawWidth": -313,
+ "rawHeight": -95,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/UI/UI/set/commonUi-0.png b/assets/UI/UI/set/commonUi-0.png
new file mode 100644
index 0000000..ad03e1a
Binary files /dev/null and b/assets/UI/UI/set/commonUi-0.png differ
diff --git a/assets/UI/UI/set/commonUi-0.png.meta b/assets/UI/UI/set/commonUi-0.png.meta
new file mode 100644
index 0000000..3ec319e
--- /dev/null
+++ b/assets/UI/UI/set/commonUi-0.png.meta
@@ -0,0 +1,15 @@
+{
+ "ver": "2.3.7",
+ "uuid": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "importer": "texture",
+ "type": "raw",
+ "wrapMode": "clamp",
+ "filterMode": "bilinear",
+ "premultiplyAlpha": false,
+ "genMipmaps": false,
+ "packable": true,
+ "width": 1866,
+ "height": 1792,
+ "platformSettings": {},
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/assets/UI/UI/set/texture_atlas-0.plist b/assets/UI/UI/set/texture_atlas-0.plist
new file mode 100644
index 0000000..4852ade
--- /dev/null
+++ b/assets/UI/UI/set/texture_atlas-0.plist
@@ -0,0 +1,1766 @@
+
+
+
+
+frames
+
+底板00.png
+
+frame
+{{0,0},{1080,113}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1080,113}}
+sourceSize
+{1080,113}
+
+底板00_1.png
+
+frame
+{{0,0},{1080,113}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1080,113}}
+sourceSize
+{1080,113}
+
+dikuang00.png
+
+frame
+{{0,114},{1056,169}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1056,169}}
+sourceSize
+{1056,169}
+
+dikuang00_1.png
+
+frame
+{{0,114},{1056,169}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{1056,169}}
+sourceSize
+{1056,169}
+
+字03.png
+
+frame
+{{0,284},{766,56}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{766,56}}
+sourceSize
+{766,56}
+
+字03_1.png
+
+frame
+{{0,284},{766,56}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{766,56}}
+sourceSize
+{766,56}
+
+字08.png
+
+frame
+{{0,341},{692,140}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{692,140}}
+sourceSize
+{692,140}
+
+字08_1.png
+
+frame
+{{0,341},{692,140}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{692,140}}
+sourceSize
+{692,140}
+
+园底上发光.png
+
+frame
+{{0,482},{650,638}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{650,638}}
+sourceSize
+{650,638}
+
+园底上发光_1.png
+
+frame
+{{0,482},{650,638}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{650,638}}
+sourceSize
+{650,638}
+
+按钮00.png
+
+frame
+{{651,482},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+按钮00_1.png
+
+frame
+{{651,482},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+重试按钮.png
+
+frame
+{{826,284},{636,174}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{636,174}}
+sourceSize
+{636,174}
+
+门图.png
+
+frame
+{{1081,0},{615,93}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{615,93}}
+sourceSize
+{615,93}
+
+门图_1.png
+
+frame
+{{1081,0},{615,93}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{615,93}}
+sourceSize
+{615,93}
+
+tiaodik.png
+
+frame
+{{0,1121},{154,598}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,598}}
+sourceSize
+{154,598}
+
+tiaodik_1.png
+
+frame
+{{0,1121},{154,598}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,598}}
+sourceSize
+{154,598}
+
+字10.png
+
+frame
+{{1001,284},{582,55}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{582,55}}
+sourceSize
+{582,55}
+
+字10_1.png
+
+frame
+{{1001,284},{582,55}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{582,55}}
+sourceSize
+{582,55}
+
+进入关卡按钮.png
+
+frame
+{{1175,0},{520,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{520,198}}
+sourceSize
+{520,198}
+
+进入关卡按钮_1.png
+
+frame
+{{1175,0},{520,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{520,198}}
+sourceSize
+{520,198}
+
+圆底01.png
+
+frame
+{{0,1276},{516,516}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{516,516}}
+sourceSize
+{516,516}
+
+圆底01_1.png
+
+frame
+{{0,1276},{516,516}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{516,516}}
+sourceSize
+{516,516}
+
+继续按钮.png
+
+frame
+{{1175,521},{476,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{476,164}}
+sourceSize
+{476,164}
+
+继续按钮_1.png
+
+frame
+{{1175,521},{476,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{476,164}}
+sourceSize
+{476,164}
+
+返回主界面按钮.png
+
+frame
+{{1001,867},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+返回主界面按钮_1.png
+
+frame
+{{1001,867},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+放弃按钮.png
+
+frame
+{{826,921},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+放弃按钮_1.png
+
+frame
+{{826,921},{434,144}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{434,144}}
+sourceSize
+{434,144}
+
+关卡数字01.png
+
+frame
+{{517,1356},{419,54}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{419,54}}
+sourceSize
+{419,54}
+
+关卡数字01_1.png
+
+frame
+{{517,1356},{419,54}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{419,54}}
+sourceSize
+{419,54}
+
+字00.png
+
+frame
+{{572,1356},{412,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{412,65}}
+sourceSize
+{412,65}
+
+字00_1.png
+
+frame
+{{572,1356},{412,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{412,65}}
+sourceSize
+{412,65}
+
+数字小.png
+
+frame
+{{971,1302},{368,40}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{368,40}}
+sourceSize
+{368,40}
+
+数字小_1.png
+
+frame
+{{971,1302},{368,40}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{368,40}}
+sourceSize
+{368,40}
+
+字01.png
+
+frame
+{{971,1343},{363,57}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{363,57}}
+sourceSize
+{363,57}
+
+字01_1.png
+
+frame
+{{971,1343},{363,57}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{363,57}}
+sourceSize
+{363,57}
+
+数字02.png
+
+frame
+{{1335,1343},{359,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{359,38}}
+sourceSize
+{359,38}
+
+数字02_1.png
+
+frame
+{{1335,1343},{359,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{359,38}}
+sourceSize
+{359,38}
+
+字07.png
+
+frame
+{{638,1703},{348,66}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{348,66}}
+sourceSize
+{348,66}
+
+字07_1.png
+
+frame
+{{638,1703},{348,66}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{348,66}}
+sourceSize
+{348,66}
+
+心图标01.png
+
+frame
+{{638,1356},{340,276}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{340,276}}
+sourceSize
+{340,276}
+
+心图标01_1.png
+
+frame
+{{638,1356},{340,276}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{340,276}}
+sourceSize
+{340,276}
+
+字11.png
+
+frame
+{{987,1703},{322,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{322,64}}
+sourceSize
+{322,64}
+
+字11_1.png
+
+frame
+{{987,1703},{322,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{322,64}}
+sourceSize
+{322,64}
+
+数字03.png
+
+frame
+{{915,1356},{319,34}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{319,34}}
+sourceSize
+{319,34}
+
+数字03_1.png
+
+frame
+{{915,1356},{319,34}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{319,34}}
+sourceSize
+{319,34}
+
+锤子大.png
+
+frame
+{{1146,998},{303,316}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{303,316}}
+sourceSize
+{303,316}
+
+锤子大_1.png
+
+frame
+{{1146,998},{303,316}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{303,316}}
+sourceSize
+{303,316}
+
+震动tuzi.png
+
+frame
+{{1340,521},{314,117}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{314,117}}
+sourceSize
+{314,117}
+
+震动tuzi_1.png
+
+frame
+{{1340,521},{314,117}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{314,117}}
+sourceSize
+{314,117}
+
+ditu00.png
+
+frame
+{{1340,639},{312,62}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{312,62}}
+sourceSize
+{312,62}
+
+ditu00_1.png
+
+frame
+{{1340,639},{312,62}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{312,62}}
+sourceSize
+{312,62}
+
+音乐tuzi.png
+
+frame
+{{1340,702},{311,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,100}}
+sourceSize
+{311,100}
+
+音乐tuzi_1.png
+
+frame
+{{1340,702},{311,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,100}}
+sourceSize
+{311,100}
+
+音效tuzi.png
+
+frame
+{{1340,803},{311,116}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,116}}
+sourceSize
+{311,116}
+
+音效tuzi_1.png
+
+frame
+{{1340,803},{311,116}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{311,116}}
+sourceSize
+{311,116}
+
+五星棒大.png
+
+frame
+{{950,1401},{284,297}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{284,297}}
+sourceSize
+{284,297}
+
+五星棒大_1.png
+
+frame
+{{950,1401},{284,297}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{284,297}}
+sourceSize
+{284,297}
+
+冰冻时钟大.png
+
+frame
+{{1374,1302},{240,291}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{240,291}}
+sourceSize
+{240,291}
+
+冰冻时钟大_1.png
+
+frame
+{{1374,1302},{240,291}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{240,291}}
+sourceSize
+{240,291}
+
+字05.png
+
+frame
+{{1340,920},{289,72}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{289,72}}
+sourceSize
+{289,72}
+
+字05_1.png
+
+frame
+{{1340,920},{289,72}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{289,72}}
+sourceSize
+{289,72}
+
+闹钟图标00.png
+
+frame
+{{1374,1543},{235,284}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{235,284}}
+sourceSize
+{235,284}
+
+闹钟图标00_1.png
+
+frame
+{{1374,1543},{235,284}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{235,284}}
+sourceSize
+{235,284}
+
+字02.png
+
+frame
+{{517,1276},{283,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{283,64}}
+sourceSize
+{283,64}
+
+字02_1.png
+
+frame
+{{517,1276},{283,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{283,64}}
+sourceSize
+{283,64}
+
+字09.png
+
+frame
+{{1235,1401},{281,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,64}}
+sourceSize
+{281,64}
+
+字09_1.png
+
+frame
+{{1235,1401},{281,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,64}}
+sourceSize
+{281,64}
+
+字04.png
+
+frame
+{{1374,0},{281,71}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,71}}
+sourceSize
+{281,71}
+
+字04_1.png
+
+frame
+{{1374,0},{281,71}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{281,71}}
+sourceSize
+{281,71}
+
+锁关卡数字小.png
+
+frame
+{{1630,920},{269,37}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{269,37}}
+sourceSize
+{269,37}
+
+开按钮.png
+
+frame
+{{1374,72},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+开按钮_1.png
+
+frame
+{{1374,72},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+关按钮.png
+
+frame
+{{1374,177},{264,104}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{264,104}}
+sourceSize
+{264,104}
+
+第关字.png
+
+frame
+{{1639,72},{234,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{234,36}}
+sourceSize
+{234,36}
+
+第关字_1.png
+
+frame
+{{1639,72},{234,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{234,36}}
+sourceSize
+{234,36}
+
+每日奖励图标.png
+
+frame
+{{1374,307},{199,215}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{199,215}}
+sourceSize
+{199,215}
+
+头像底图.png
+
+frame
+{{1668,307},{188,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{188,198}}
+sourceSize
+{188,198}
+
+头像底图_1.png
+
+frame
+{{1668,307},{188,198}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{188,198}}
+sourceSize
+{188,198}
+
+设置图标.png
+
+frame
+{{599,1121},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+设置图标_1.png
+
+frame
+{{599,1121},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+排行榜图标.png
+
+frame
+{{1463,993},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+排行榜图标_1.png
+
+frame
+{{1463,993},{154,173}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,173}}
+sourceSize
+{154,173}
+
+锁按钮.png
+
+frame
+{{1676,0},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+锁按钮_1.png
+
+frame
+{{1676,0},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+带锁.png
+
+frame
+{{1668,496},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+带锁_1.png
+
+frame
+{{1668,496},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+空道具底框.png
+
+frame
+{{1668,651},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+暂停按钮.png
+
+frame
+{{1668,806},{154,172}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{154,172}}
+sourceSize
+{154,172}
+
+退出按钮.png
+
+frame
+{{1676,155},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+退出按钮_1.png
+
+frame
+{{1676,155},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+重置按钮.png
+
+frame
+{{1668,961},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+重置按钮_1.png
+
+frame
+{{1668,961},{144,164}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{144,164}}
+sourceSize
+{144,164}
+
+暂停字.png
+
+frame
+{{1590,307},{150,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{150,65}}
+sourceSize
+{150,65}
+
+暂停字_1.png
+
+frame
+{{1590,307},{150,65}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{150,65}}
+sourceSize
+{150,65}
+
+锤子小.png
+
+frame
+{{693,341},{124,129}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{124,129}}
+sourceSize
+{124,129}
+
+锤子小_1.png
+
+frame
+{{693,341},{124,129}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{124,129}}
+sourceSize
+{124,129}
+
+冰冻时钟小.png
+
+frame
+{{1463,1190},{106,127}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{106,127}}
+sourceSize
+{106,127}
+
+冰冻时钟小_1.png
+
+frame
+{{1463,1190},{106,127}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{106,127}}
+sourceSize
+{106,127}
+
+音乐01.png
+
+frame
+{{1057,616},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐01_1.png
+
+frame
+{{1057,616},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效00.png
+
+frame
+{{1057,739},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效00_1.png
+
+frame
+{{1057,739},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效01.png
+
+frame
+{{1668,1106},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音效01_1.png
+
+frame
+{{1668,1106},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动00.png
+
+frame
+{{1666,1223},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动00_1.png
+
+frame
+{{1666,1223},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐00.png
+
+frame
+{{1666,1340},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+音乐00_1.png
+
+frame
+{{1666,1340},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动01.png
+
+frame
+{{1666,1457},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+震动01_1.png
+
+frame
+{{1666,1457},{116,122}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{116,122}}
+sourceSize
+{116,122}
+
+五星棒小.png
+
+frame
+{{1659,1574},{113,118}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{113,118}}
+sourceSize
+{113,118}
+
+五星棒小_1.png
+
+frame
+{{1659,1574},{113,118}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{113,118}}
+sourceSize
+{113,118}
+
+锁上字.png
+
+frame
+{{1833,961},{109,32}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{109,32}}
+sourceSize
+{109,32}
+
+锁上字_1.png
+
+frame
+{{1833,961},{109,32}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{109,32}}
+sourceSize
+{109,32}
+
+小钟图标.png
+
+frame
+{{1659,1688},{79,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{79,100}}
+sourceSize
+{79,100}
+
+小钟图标_1.png
+
+frame
+{{1659,1688},{79,100}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{79,100}}
+sourceSize
+{79,100}
+
+心图标.png
+
+frame
+{{1778,1574},{92,88}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{92,88}}
+sourceSize
+{92,88}
+
+心图标_1.png
+
+frame
+{{1778,1574},{92,88}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{92,88}}
+sourceSize
+{92,88}
+
+加按钮.png
+
+frame
+{{1789,1223},{76,82}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{76,82}}
+sourceSize
+{76,82}
+
+加按钮_1.png
+
+frame
+{{1789,1223},{76,82}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{76,82}}
+sourceSize
+{76,82}
+
+震动字.png
+
+frame
+{{1591,1190},{74,39}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{74,39}}
+sourceSize
+{74,39}
+
+震动字_1.png
+
+frame
+{{1591,1190},{74,39}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{74,39}}
+sourceSize
+{74,39}
+
+音效字.png
+
+frame
+{{1591,1230},{73,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{73,38}}
+sourceSize
+{73,38}
+
+音效字_1.png
+
+frame
+{{1591,1230},{73,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{73,38}}
+sourceSize
+{73,38}
+
+音乐字.png
+
+frame
+{{1791,1106},{72,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,38}}
+sourceSize
+{72,38}
+
+音乐字_1.png
+
+frame
+{{1791,1106},{72,38}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,38}}
+sourceSize
+{72,38}
+
+已满字.png
+
+frame
+{{1791,1145},{72,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,36}}
+sourceSize
+{72,36}
+
+已满字_1.png
+
+frame
+{{1791,1145},{72,36}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{72,36}}
+sourceSize
+{72,36}
+
+弹出框关闭按钮.png
+
+frame
+{{1789,1306},{65,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{65,64}}
+sourceSize
+{65,64}
+
+弹出框关闭按钮_1.png
+
+frame
+{{1789,1306},{65,64}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{65,64}}
+sourceSize
+{65,64}
+
+弹出小框.png
+
+frame
+{{1174,616},{-313,-95}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{-313,-95}}
+sourceSize
+{-313,-95}
+
+弹出小框_1.png
+
+frame
+{{1174,616},{-313,-95}}
+offset
+{0,0}
+rotated
+
+sourceColorRect
+{{0,0},{-313,-95}}
+sourceSize
+{-313,-95}
+
+
+metadata
+
+format
+2
+pixelFormat
+RGBA8888
+premultiplyAlpha
+
+realTextureFileName
+texture_atlas-0.png
+textureFileName
+texture_atlas-0.png
+size
+{1866,1792}
+
+
+
diff --git a/assets/UI/UI/set/texture_atlas-0.plist.meta b/assets/UI/UI/set/texture_atlas-0.plist.meta
new file mode 100644
index 0000000..133c1ab
--- /dev/null
+++ b/assets/UI/UI/set/texture_atlas-0.plist.meta
@@ -0,0 +1,2960 @@
+{
+ "ver": "1.2.6",
+ "uuid": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "importer": "asset",
+ "size": {
+ "width": 1866,
+ "height": 1792
+ },
+ "type": "Texture Packer",
+ "subMetas": {
+ "底板00.png": {
+ "ver": "1.0.6",
+ "uuid": "4d3b6389-4079-4627-8561-cb2f899bb7e4",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1080,
+ "height": 113,
+ "rawWidth": 1080,
+ "rawHeight": 113,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "底板00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "1d62a42b-bac7-4650-b104-cd2d06726a5f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1080,
+ "height": 113,
+ "rawWidth": 1080,
+ "rawHeight": 113,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "dikuang00.png": {
+ "ver": "1.0.6",
+ "uuid": "8bf1142f-1ab1-47e9-acf1-b6b8888a696e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 114,
+ "width": 1056,
+ "height": 169,
+ "rawWidth": 1056,
+ "rawHeight": 169,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "dikuang00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "71894f8f-9a53-4e7b-a34d-2e1bdbd36915",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 114,
+ "width": 1056,
+ "height": 169,
+ "rawWidth": 1056,
+ "rawHeight": 169,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字03.png": {
+ "ver": "1.0.6",
+ "uuid": "d5e07eb0-5349-45d4-a493-b85eeb3bc068",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 284,
+ "width": 766,
+ "height": 56,
+ "rawWidth": 766,
+ "rawHeight": 56,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字03_1.png": {
+ "ver": "1.0.6",
+ "uuid": "a1c4b17c-19ef-4df2-8cd8-9bf525089cbe",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 284,
+ "width": 766,
+ "height": 56,
+ "rawWidth": 766,
+ "rawHeight": 56,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字08.png": {
+ "ver": "1.0.6",
+ "uuid": "6db0f2c4-ec42-4a81-9239-bf0aad1e076a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 341,
+ "width": 692,
+ "height": 140,
+ "rawWidth": 692,
+ "rawHeight": 140,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字08_1.png": {
+ "ver": "1.0.6",
+ "uuid": "0661d038-9d89-40c6-9b66-bddcd33b0aea",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 341,
+ "width": 692,
+ "height": 140,
+ "rawWidth": 692,
+ "rawHeight": 140,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "园底上发光.png": {
+ "ver": "1.0.6",
+ "uuid": "1c320cfc-927e-4914-9b26-a7e72329f689",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 482,
+ "width": 650,
+ "height": 638,
+ "rawWidth": 650,
+ "rawHeight": 638,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "园底上发光_1.png": {
+ "ver": "1.0.6",
+ "uuid": "efcff880-3b08-4582-a534-8b07046a3c11",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 482,
+ "width": 650,
+ "height": 638,
+ "rawWidth": 650,
+ "rawHeight": 638,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "按钮00.png": {
+ "ver": "1.0.6",
+ "uuid": "d305e34e-3d73-4cdc-9927-d418ca741c4a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 651,
+ "trimY": 482,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "按钮00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "3cf8c3a8-e38c-4038-8231-24f57009b658",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 651,
+ "trimY": 482,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重试按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "43141c9a-9d79-4fd9-a649-bae4f77d9e0e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 284,
+ "width": 636,
+ "height": 174,
+ "rawWidth": 636,
+ "rawHeight": 174,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "门图.png": {
+ "ver": "1.0.6",
+ "uuid": "32b9646c-8d48-436a-ba18-a23e046b7885",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1081,
+ "trimY": 0,
+ "width": 615,
+ "height": 93,
+ "rawWidth": 615,
+ "rawHeight": 93,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "门图_1.png": {
+ "ver": "1.0.6",
+ "uuid": "13509d15-5bd8-49eb-a45a-18ba84bdf238",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1081,
+ "trimY": 0,
+ "width": 615,
+ "height": 93,
+ "rawWidth": 615,
+ "rawHeight": 93,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "tiaodik.png": {
+ "ver": "1.0.6",
+ "uuid": "085499d6-322c-4d5d-931b-cbd3fb60a879",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1121,
+ "width": 154,
+ "height": 598,
+ "rawWidth": 154,
+ "rawHeight": 598,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "tiaodik_1.png": {
+ "ver": "1.0.6",
+ "uuid": "02e66b2c-7d73-4d15-9cdb-e13adfe74468",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1121,
+ "width": 154,
+ "height": 598,
+ "rawWidth": 154,
+ "rawHeight": 598,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字10.png": {
+ "ver": "1.0.6",
+ "uuid": "b22f387f-2cd1-444a-bf38-99ac9f0cce63",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 284,
+ "width": 582,
+ "height": 55,
+ "rawWidth": 582,
+ "rawHeight": 55,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字10_1.png": {
+ "ver": "1.0.6",
+ "uuid": "2814cb8b-adc1-4d46-a7cb-48665bebf9bc",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 284,
+ "width": 582,
+ "height": 55,
+ "rawWidth": 582,
+ "rawHeight": 55,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "进入关卡按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "2e666e6c-64b1-4289-a6d6-ae76945a7e74",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 0,
+ "width": 520,
+ "height": 198,
+ "rawWidth": 520,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "进入关卡按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "4fc2af6e-7e80-4f51-9bf2-4604b550bd73",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 0,
+ "width": 520,
+ "height": 198,
+ "rawWidth": 520,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "圆底01.png": {
+ "ver": "1.0.6",
+ "uuid": "5d4c0cb0-5029-4d54-a5ed-1e7235c10888",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1276,
+ "width": 516,
+ "height": 516,
+ "rawWidth": 516,
+ "rawHeight": 516,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "圆底01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "38664387-f748-470d-a652-5090c56c26c0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1276,
+ "width": 516,
+ "height": 516,
+ "rawWidth": 516,
+ "rawHeight": 516,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "继续按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "48acea19-9c97-4a72-9d85-05db28300d5d",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 521,
+ "width": 476,
+ "height": 164,
+ "rawWidth": 476,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "继续按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "1f276159-e912-4d49-84ba-58a42da0ebf6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1175,
+ "trimY": 521,
+ "width": 476,
+ "height": 164,
+ "rawWidth": 476,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "返回主界面按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "86db2d74-622c-4804-bb00-7bdc5f81091e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 867,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "返回主界面按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "322ae6c1-f061-4d9c-877d-c3df43680c6c",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1001,
+ "trimY": 867,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "放弃按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "98f3ae5d-a527-4859-807e-0a0cbb52f527",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 921,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "放弃按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "89f75db3-6cd8-4cb8-a0ba-71a0787faec9",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 826,
+ "trimY": 921,
+ "width": 434,
+ "height": 144,
+ "rawWidth": 434,
+ "rawHeight": 144,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关卡数字01.png": {
+ "ver": "1.0.6",
+ "uuid": "c7eb958c-10a4-4469-b8a3-29f6504ec4a1",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1356,
+ "width": 419,
+ "height": 54,
+ "rawWidth": 419,
+ "rawHeight": 54,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关卡数字01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "eb20f0ab-6210-4122-9ac7-5f15da67d5b0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1356,
+ "width": 419,
+ "height": 54,
+ "rawWidth": 419,
+ "rawHeight": 54,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字00.png": {
+ "ver": "1.0.6",
+ "uuid": "eb08a13e-140f-424d-b1e9-4331e08f4db1",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 572,
+ "trimY": 1356,
+ "width": 412,
+ "height": 65,
+ "rawWidth": 412,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "58456b97-7133-4be1-99bf-1db8f33e5633",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 572,
+ "trimY": 1356,
+ "width": 412,
+ "height": 65,
+ "rawWidth": 412,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字小.png": {
+ "ver": "1.0.6",
+ "uuid": "4429a4d8-236a-4c1e-b4b3-9fdac7a2997a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1302,
+ "width": 368,
+ "height": 40,
+ "rawWidth": 368,
+ "rawHeight": 40,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ece749fa-630b-4bc7-a427-ad987bea3fb6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1302,
+ "width": 368,
+ "height": 40,
+ "rawWidth": 368,
+ "rawHeight": 40,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字01.png": {
+ "ver": "1.0.6",
+ "uuid": "e9f7146c-7094-4f89-95d4-6224e84575ad",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1343,
+ "width": 363,
+ "height": 57,
+ "rawWidth": 363,
+ "rawHeight": 57,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "bcf8c3ee-33e2-4e42-bfd1-189ce7e1b524",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 971,
+ "trimY": 1343,
+ "width": 363,
+ "height": 57,
+ "rawWidth": 363,
+ "rawHeight": 57,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字02.png": {
+ "ver": "1.0.6",
+ "uuid": "a19be097-17fa-4047-8efb-7f6906cf0c4c",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1335,
+ "trimY": 1343,
+ "width": 359,
+ "height": 38,
+ "rawWidth": 359,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字02_1.png": {
+ "ver": "1.0.6",
+ "uuid": "52acb1f8-2d30-495b-aa22-1044c20358f6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1335,
+ "trimY": 1343,
+ "width": 359,
+ "height": 38,
+ "rawWidth": 359,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字07.png": {
+ "ver": "1.0.6",
+ "uuid": "0ed82742-547c-42f6-8f19-42f0fd9018a2",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1703,
+ "width": 348,
+ "height": 66,
+ "rawWidth": 348,
+ "rawHeight": 66,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字07_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ed84bd52-af96-476e-b8a7-b36e08b3b777",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1703,
+ "width": 348,
+ "height": 66,
+ "rawWidth": 348,
+ "rawHeight": 66,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标01.png": {
+ "ver": "1.0.6",
+ "uuid": "1a665cc2-9f50-4245-9cc8-e8456a8dd8bb",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1356,
+ "width": 340,
+ "height": 276,
+ "rawWidth": 340,
+ "rawHeight": 276,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "cacea0ff-785e-44f7-a5e2-6c36f7723740",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 638,
+ "trimY": 1356,
+ "width": 340,
+ "height": 276,
+ "rawWidth": 340,
+ "rawHeight": 276,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字11.png": {
+ "ver": "1.0.6",
+ "uuid": "c3349370-d9db-4e12-85a6-1d394ce16b0f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 987,
+ "trimY": 1703,
+ "width": 322,
+ "height": 64,
+ "rawWidth": 322,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字11_1.png": {
+ "ver": "1.0.6",
+ "uuid": "551d0eef-7c06-4ba9-b95d-666c900c878a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 987,
+ "trimY": 1703,
+ "width": 322,
+ "height": 64,
+ "rawWidth": 322,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字03.png": {
+ "ver": "1.0.6",
+ "uuid": "4255617b-34d3-4f61-bd7f-69c4064b782f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 915,
+ "trimY": 1356,
+ "width": 319,
+ "height": 34,
+ "rawWidth": 319,
+ "rawHeight": 34,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "数字03_1.png": {
+ "ver": "1.0.6",
+ "uuid": "4bc17d5c-38c1-4ca5-8689-ca7f8193c920",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 915,
+ "trimY": 1356,
+ "width": 319,
+ "height": 34,
+ "rawWidth": 319,
+ "rawHeight": 34,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子大.png": {
+ "ver": "1.0.6",
+ "uuid": "b8480b77-33bb-4830-bb26-f9f16e2222f6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1146,
+ "trimY": 998,
+ "width": 303,
+ "height": 316,
+ "rawWidth": 303,
+ "rawHeight": 316,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d74245de-0aee-4038-899e-79522392a77f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1146,
+ "trimY": 998,
+ "width": 303,
+ "height": 316,
+ "rawWidth": 303,
+ "rawHeight": 316,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "598432ac-b818-463b-a9cf-e6270501308d",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 521,
+ "width": 314,
+ "height": 117,
+ "rawWidth": 314,
+ "rawHeight": 117,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d16de6dc-7bca-4d55-9c20-26df6b3cccd3",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 521,
+ "width": 314,
+ "height": 117,
+ "rawWidth": 314,
+ "rawHeight": 117,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "ditu00.png": {
+ "ver": "1.0.6",
+ "uuid": "cf87ab28-5a4f-42bc-948b-89a0f0125078",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 639,
+ "width": 312,
+ "height": 62,
+ "rawWidth": 312,
+ "rawHeight": 62,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "ditu00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "bc8d81cc-7ef9-4a8c-b240-ad92be5582eb",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 639,
+ "width": 312,
+ "height": 62,
+ "rawWidth": 312,
+ "rawHeight": 62,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "32d1a14c-7d5e-40f4-a4f2-bf842d16e688",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 702,
+ "width": 311,
+ "height": 100,
+ "rawWidth": 311,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "0067bef8-35b3-4e41-9d45-ffb39b74450e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 702,
+ "width": 311,
+ "height": 100,
+ "rawWidth": 311,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效tuzi.png": {
+ "ver": "1.0.6",
+ "uuid": "88a2751c-1ed7-4f37-b358-e9b29126cdaa",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 803,
+ "width": 311,
+ "height": 116,
+ "rawWidth": 311,
+ "rawHeight": 116,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效tuzi_1.png": {
+ "ver": "1.0.6",
+ "uuid": "190be0d8-fe40-46bd-958c-7b55a3e36013",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 803,
+ "width": 311,
+ "height": 116,
+ "rawWidth": 311,
+ "rawHeight": 116,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒大.png": {
+ "ver": "1.0.6",
+ "uuid": "d9b9110b-81ea-4f4b-9139-ca836f79ddca",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 950,
+ "trimY": 1401,
+ "width": 284,
+ "height": 297,
+ "rawWidth": 284,
+ "rawHeight": 297,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "146b6e6d-9258-4ed8-90fd-da234876d414",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 950,
+ "trimY": 1401,
+ "width": 284,
+ "height": 297,
+ "rawWidth": 284,
+ "rawHeight": 297,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟大.png": {
+ "ver": "1.0.6",
+ "uuid": "5b4b9be3-30db-411c-aa4c-7be4c18fb6c0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1302,
+ "width": 240,
+ "height": 291,
+ "rawWidth": 240,
+ "rawHeight": 291,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟大_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ba903c53-7bd7-4cfb-8943-0bb99f3870e2",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1302,
+ "width": 240,
+ "height": 291,
+ "rawWidth": 240,
+ "rawHeight": 291,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字05.png": {
+ "ver": "1.0.6",
+ "uuid": "65bec656-a8fc-4fc3-ad4d-98e76f9c9531",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 920,
+ "width": 289,
+ "height": 72,
+ "rawWidth": 289,
+ "rawHeight": 72,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字05_1.png": {
+ "ver": "1.0.6",
+ "uuid": "b351934c-cadf-489e-96b9-a2d1fefd41e8",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1340,
+ "trimY": 920,
+ "width": 289,
+ "height": 72,
+ "rawWidth": 289,
+ "rawHeight": 72,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "闹钟图标00.png": {
+ "ver": "1.0.6",
+ "uuid": "2ccededa-25d9-459b-b4cc-180f71680e58",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1543,
+ "width": 235,
+ "height": 284,
+ "rawWidth": 235,
+ "rawHeight": 284,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "闹钟图标00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "74589c72-e4ec-4f8c-8d71-2794415efb20",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 1543,
+ "width": 235,
+ "height": 284,
+ "rawWidth": 235,
+ "rawHeight": 284,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字02.png": {
+ "ver": "1.0.6",
+ "uuid": "7bcb2d5f-3aaa-45f6-b357-2b139ad4495c",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1276,
+ "width": 283,
+ "height": 64,
+ "rawWidth": 283,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字02_1.png": {
+ "ver": "1.0.6",
+ "uuid": "eae6e5e0-a6c7-460c-8976-dee23d9c91e1",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 517,
+ "trimY": 1276,
+ "width": 283,
+ "height": 64,
+ "rawWidth": 283,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字09.png": {
+ "ver": "1.0.6",
+ "uuid": "b0c0c709-56f5-48df-9c1b-a6f8f8fc0d82",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1235,
+ "trimY": 1401,
+ "width": 281,
+ "height": 64,
+ "rawWidth": 281,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字09_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ca101545-05e4-42bb-bfb3-7bacceebf314",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1235,
+ "trimY": 1401,
+ "width": 281,
+ "height": 64,
+ "rawWidth": 281,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字04.png": {
+ "ver": "1.0.6",
+ "uuid": "50fee89c-cf58-43c7-9a25-37d5a2cd2fe4",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 0,
+ "width": 281,
+ "height": 71,
+ "rawWidth": 281,
+ "rawHeight": 71,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "字04_1.png": {
+ "ver": "1.0.6",
+ "uuid": "18969cec-52d4-45e0-87a0-761ade9fe680",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 0,
+ "width": 281,
+ "height": 71,
+ "rawWidth": 281,
+ "rawHeight": 71,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁关卡数字小.png": {
+ "ver": "1.0.6",
+ "uuid": "c9c415da-50ca-4791-9024-f70a7b35f267",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1630,
+ "trimY": 920,
+ "width": 269,
+ "height": 37,
+ "rawWidth": 269,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "开按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "d39a6aec-5fac-4bd6-a038-21381df5a7c9",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 72,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "开按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "082415c2-6a08-41dc-a7a4-c9f5a28f45de",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 72,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "关按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "da40bc65-a336-4890-94c3-f57f38def65a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 177,
+ "width": 264,
+ "height": 104,
+ "rawWidth": 264,
+ "rawHeight": 104,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "第关字.png": {
+ "ver": "1.0.6",
+ "uuid": "399bdc91-3a6a-46b1-82eb-fbd55d6cb973",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1639,
+ "trimY": 72,
+ "width": 234,
+ "height": 36,
+ "rawWidth": 234,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "第关字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "16bd254e-2424-4135-985c-1eb20499d3d4",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1639,
+ "trimY": 72,
+ "width": 234,
+ "height": 36,
+ "rawWidth": 234,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "每日奖励图标.png": {
+ "ver": "1.0.6",
+ "uuid": "33c46527-8045-48ce-889f-e8afe935ddd7",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1374,
+ "trimY": 307,
+ "width": 199,
+ "height": 215,
+ "rawWidth": 199,
+ "rawHeight": 215,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "头像底图.png": {
+ "ver": "1.0.6",
+ "uuid": "28d1f867-0c60-4108-b244-7737d4644aa0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 307,
+ "width": 188,
+ "height": 198,
+ "rawWidth": 188,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "头像底图_1.png": {
+ "ver": "1.0.6",
+ "uuid": "41932ad3-a24c-4e10-9df8-218b53475b97",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 307,
+ "width": 188,
+ "height": 198,
+ "rawWidth": 188,
+ "rawHeight": 198,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "设置图标.png": {
+ "ver": "1.0.6",
+ "uuid": "950e310d-fd4b-4f10-be38-64184406631f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 599,
+ "trimY": 1121,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "设置图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "99530de1-73c8-493d-8c30-726384fcc7a2",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 599,
+ "trimY": 1121,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "排行榜图标.png": {
+ "ver": "1.0.6",
+ "uuid": "3e5c08d5-254d-4b98-bbc0-4a1094bd3712",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 993,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "排行榜图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "413c9c3b-bd4d-4fd6-b084-2061753cf599",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 993,
+ "width": 154,
+ "height": 173,
+ "rawWidth": 154,
+ "rawHeight": 173,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "9dcd36e6-5066-4dde-8fea-9b668c8e758a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 0,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "aa7ae01e-65ed-4f9a-b6a2-5bf0a90d0060",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 0,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "带锁.png": {
+ "ver": "1.0.6",
+ "uuid": "1626e32a-ce24-483c-a5e1-9b038f54039e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 496,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "带锁_1.png": {
+ "ver": "1.0.6",
+ "uuid": "3790638a-0781-459f-b50e-fc26002e12ab",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 496,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "空道具底框.png": {
+ "ver": "1.0.6",
+ "uuid": "40259de3-11f6-485c-8d4b-366146c29772",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 651,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "11b54394-fa53-4278-b46e-98a19c82198a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 806,
+ "width": 154,
+ "height": 172,
+ "rawWidth": 154,
+ "rawHeight": 172,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "退出按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "7bd098fe-fb82-4e70-9863-637bfd3bcda0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 155,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "退出按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "96731285-bdb3-4b01-946e-cea5ed2c94fb",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1676,
+ "trimY": 155,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重置按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "a58942d2-99f5-4cd0-82b2-2dabc0eb10ed",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 961,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "重置按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "c80bd083-798f-4680-b404-26ba79fd0abb",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 961,
+ "width": 144,
+ "height": 164,
+ "rawWidth": 144,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停字.png": {
+ "ver": "1.0.6",
+ "uuid": "e895de15-b238-409a-b822-dd1e1eafc35f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1590,
+ "trimY": 307,
+ "width": 150,
+ "height": 65,
+ "rawWidth": 150,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "暂停字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "400f9538-f55a-4420-a47b-91452e9b3a82",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1590,
+ "trimY": 307,
+ "width": 150,
+ "height": 65,
+ "rawWidth": 150,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子小.png": {
+ "ver": "1.0.6",
+ "uuid": "7dbce5ec-ee46-4ab3-a99d-654bbb914ff2",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 693,
+ "trimY": 341,
+ "width": 124,
+ "height": 129,
+ "rawWidth": 124,
+ "rawHeight": 129,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锤子小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "1d48621b-cc04-49f9-a618-5f4dc896960a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 693,
+ "trimY": 341,
+ "width": 124,
+ "height": 129,
+ "rawWidth": 124,
+ "rawHeight": 129,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟小.png": {
+ "ver": "1.0.6",
+ "uuid": "e63a7d56-7503-4e82-99c0-76ef51164b8d",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 1190,
+ "width": 106,
+ "height": 127,
+ "rawWidth": 106,
+ "rawHeight": 127,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "冰冻时钟小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "923cf59a-aba8-4569-9922-c3b14c92068c",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1463,
+ "trimY": 1190,
+ "width": 106,
+ "height": 127,
+ "rawWidth": 106,
+ "rawHeight": 127,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐01.png": {
+ "ver": "1.0.6",
+ "uuid": "01ceb0e9-9252-49db-a831-f0c1d808849f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 616,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "788b15b4-1813-47f1-8ed6-537103a30d3a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 616,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效00.png": {
+ "ver": "1.0.6",
+ "uuid": "3d70d35e-3b09-432d-a7cc-87fd904d8a42",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 739,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "539d05dd-7893-411d-bc4b-7a15921e60ba",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1057,
+ "trimY": 739,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效01.png": {
+ "ver": "1.0.6",
+ "uuid": "8badfde4-6e76-4af1-b84b-536983a4c6b6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 1106,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "65a95ace-2ed0-4da4-8902-79f5130b159b",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1668,
+ "trimY": 1106,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动00.png": {
+ "ver": "1.0.6",
+ "uuid": "2f4368dd-b62d-4dae-90e8-6c1a0ccba85a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1223,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "68cbe5df-799e-4c0e-9daf-e70de404495a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1223,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐00.png": {
+ "ver": "1.0.6",
+ "uuid": "412a92ab-a1de-4f88-b447-a363a9d8bd99",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1340,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐00_1.png": {
+ "ver": "1.0.6",
+ "uuid": "215fb691-669a-45cc-9a64-b119c772a8e8",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1340,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动01.png": {
+ "ver": "1.0.6",
+ "uuid": "9ab7589a-80da-4212-92d5-548620d4f606",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1457,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动01_1.png": {
+ "ver": "1.0.6",
+ "uuid": "d4545a5d-5761-47bb-95c8-9e2bce13ab11",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1666,
+ "trimY": 1457,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒小.png": {
+ "ver": "1.0.6",
+ "uuid": "2b92a3b8-a03c-4f03-b4c4-d1246ce976d7",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1574,
+ "width": 113,
+ "height": 118,
+ "rawWidth": 113,
+ "rawHeight": 118,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "五星棒小_1.png": {
+ "ver": "1.0.6",
+ "uuid": "7930fa23-3ece-47de-94b2-3c461f185931",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1574,
+ "width": 113,
+ "height": 118,
+ "rawWidth": 113,
+ "rawHeight": 118,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁上字.png": {
+ "ver": "1.0.6",
+ "uuid": "7d119e53-888a-41fe-8a53-c9d2d85472be",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1833,
+ "trimY": 961,
+ "width": 109,
+ "height": 32,
+ "rawWidth": 109,
+ "rawHeight": 32,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "锁上字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "109965fd-702a-461f-bfd6-53643e7f2428",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1833,
+ "trimY": 961,
+ "width": 109,
+ "height": 32,
+ "rawWidth": 109,
+ "rawHeight": 32,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "小钟图标.png": {
+ "ver": "1.0.6",
+ "uuid": "6d484a21-0a8b-411f-a8d0-3c663c8b5d3f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1688,
+ "width": 79,
+ "height": 100,
+ "rawWidth": 79,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "小钟图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "4b8c2f67-5331-4c24-91fd-51f35d0088b3",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1659,
+ "trimY": 1688,
+ "width": 79,
+ "height": 100,
+ "rawWidth": 79,
+ "rawHeight": 100,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标.png": {
+ "ver": "1.0.6",
+ "uuid": "a29c08f9-6c7a-4282-8880-dc49e9a920bb",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1778,
+ "trimY": 1574,
+ "width": 92,
+ "height": 88,
+ "rawWidth": 92,
+ "rawHeight": 88,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "心图标_1.png": {
+ "ver": "1.0.6",
+ "uuid": "8a7b5f72-aed9-4acd-ab0b-809785c3a7c4",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1778,
+ "trimY": 1574,
+ "width": 92,
+ "height": 88,
+ "rawWidth": 92,
+ "rawHeight": 88,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "加按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "43cacadd-23e9-4858-bb3f-bf5914054a0e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1223,
+ "width": 76,
+ "height": 82,
+ "rawWidth": 76,
+ "rawHeight": 82,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "加按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "55240a28-e9ee-49ea-992f-62325200dbb1",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1223,
+ "width": 76,
+ "height": 82,
+ "rawWidth": 76,
+ "rawHeight": 82,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动字.png": {
+ "ver": "1.0.6",
+ "uuid": "4654fc78-d060-4cf0-8eeb-8dd4b0c329e0",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1190,
+ "width": 74,
+ "height": 39,
+ "rawWidth": 74,
+ "rawHeight": 39,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "震动字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "b287b22b-0927-4dd3-a642-c5969da5ecb8",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1190,
+ "width": 74,
+ "height": 39,
+ "rawWidth": 74,
+ "rawHeight": 39,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效字.png": {
+ "ver": "1.0.6",
+ "uuid": "91b22884-5946-4275-a019-5d9c92fa513d",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1230,
+ "width": 73,
+ "height": 38,
+ "rawWidth": 73,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音效字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ecc6a80f-3415-456c-81ea-df56a2b63168",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1591,
+ "trimY": 1230,
+ "width": 73,
+ "height": 38,
+ "rawWidth": 73,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐字.png": {
+ "ver": "1.0.6",
+ "uuid": "b61c5973-a297-4a59-b3dd-e65a26b1b7d6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1106,
+ "width": 72,
+ "height": 38,
+ "rawWidth": 72,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "音乐字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ffedc654-f966-41f1-9b06-1adde965784e",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1106,
+ "width": 72,
+ "height": 38,
+ "rawWidth": 72,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "已满字.png": {
+ "ver": "1.0.6",
+ "uuid": "6f1bbc06-e201-4cde-8959-ee6e6e6b114f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1145,
+ "width": 72,
+ "height": 36,
+ "rawWidth": 72,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "已满字_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ed740af5-aeab-4eb7-befa-90375429d98f",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1791,
+ "trimY": 1145,
+ "width": 72,
+ "height": 36,
+ "rawWidth": 72,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出框关闭按钮.png": {
+ "ver": "1.0.6",
+ "uuid": "5b38334a-d39a-4ae1-8360-7e8e8a6ddd1a",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1306,
+ "width": 65,
+ "height": 64,
+ "rawWidth": 65,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出框关闭按钮_1.png": {
+ "ver": "1.0.6",
+ "uuid": "ed8cfedc-0d93-41ad-96c3-52e5d0ae6008",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1789,
+ "trimY": 1306,
+ "width": 65,
+ "height": 64,
+ "rawWidth": 65,
+ "rawHeight": 64,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出小框.png": {
+ "ver": "1.0.6",
+ "uuid": "095b3b98-e5ba-4f81-8458-a836cb4608f6",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1174,
+ "trimY": 616,
+ "width": -313,
+ "height": -95,
+ "rawWidth": -313,
+ "rawHeight": -95,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "弹出小框_1.png": {
+ "ver": "1.0.6",
+ "uuid": "43931090-b629-404e-88bf-84fe31102af8",
+ "importer": "sprite-frame",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1174,
+ "trimY": 616,
+ "width": -313,
+ "height": -95,
+ "rawWidth": -313,
+ "rawHeight": -95,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/UI/UI/案例.jpg b/assets/UI/UI/案例.jpg
new file mode 100644
index 0000000..d8ef00f
Binary files /dev/null and b/assets/UI/UI/案例.jpg differ
diff --git a/assets/UI/UI/set/tiaodik.png.meta b/assets/UI/UI/案例.jpg.meta
similarity index 64%
rename from assets/UI/UI/set/tiaodik.png.meta
rename to assets/UI/UI/案例.jpg.meta
index 5e26337..0515234 100644
--- a/assets/UI/UI/set/tiaodik.png.meta
+++ b/assets/UI/UI/案例.jpg.meta
@@ -1,6 +1,6 @@
{
"ver": "2.3.7",
- "uuid": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc",
+ "uuid": "de563d8c-eee2-42f8-bbbb-47b6149eed20",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
@@ -8,15 +8,15 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
- "width": 154,
- "height": 598,
+ "width": 1080,
+ "height": 2340,
"platformSettings": {},
"subMetas": {
- "tiaodik": {
+ "案例": {
"ver": "1.0.6",
- "uuid": "abe182b3-b936-4f20-ba7c-8d2456d35c89",
+ "uuid": "39358efa-d18b-425f-b6ee-4b63813bccea",
"importer": "sprite-frame",
- "rawTextureUuid": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc",
+ "rawTextureUuid": "de563d8c-eee2-42f8-bbbb-47b6149eed20",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
@@ -24,10 +24,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
- "width": 154,
- "height": 598,
- "rawWidth": 154,
- "rawHeight": 598,
+ "width": 1080,
+ "height": 2340,
+ "rawWidth": 1080,
+ "rawHeight": 2340,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
diff --git a/assets/shop/img/btn1.png b/assets/shop/img/btn1.png
deleted file mode 100644
index a25cd54..0000000
Binary files a/assets/shop/img/btn1.png and /dev/null differ
diff --git a/assets/shop/img/btn1.png.meta b/assets/shop/img/btn1.png.meta
deleted file mode 100644
index aa541b7..0000000
--- a/assets/shop/img/btn1.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "ea09c71c-5b5d-4b24-9b62-d93b291d93c2",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 99,
- "height": 531,
- "platformSettings": {},
- "subMetas": {
- "btn1": {
- "ver": "1.0.6",
- "uuid": "45958bbb-14ca-46de-8371-3da25ccfb808",
- "importer": "sprite-frame",
- "rawTextureUuid": "ea09c71c-5b5d-4b24-9b62-d93b291d93c2",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 99,
- "height": 531,
- "rawWidth": 99,
- "rawHeight": 531,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins1.png b/assets/shop/img/coins1.png
deleted file mode 100644
index 3c19e7e..0000000
Binary files a/assets/shop/img/coins1.png and /dev/null differ
diff --git a/assets/shop/img/coins2.png b/assets/shop/img/coins2.png
deleted file mode 100644
index a43b2a7..0000000
Binary files a/assets/shop/img/coins2.png and /dev/null differ
diff --git a/assets/shop/img/coins2.png.meta b/assets/shop/img/coins2.png.meta
deleted file mode 100644
index 6a56fe6..0000000
--- a/assets/shop/img/coins2.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 163,
- "height": 151,
- "platformSettings": {},
- "subMetas": {
- "coins2": {
- "ver": "1.0.6",
- "uuid": "d0050bfc-d0b9-4848-807e-cbacf0c4a253",
- "importer": "sprite-frame",
- "rawTextureUuid": "5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 163,
- "height": 151,
- "rawWidth": 163,
- "rawHeight": 151,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins3.png b/assets/shop/img/coins3.png
deleted file mode 100644
index 0a935db..0000000
Binary files a/assets/shop/img/coins3.png and /dev/null differ
diff --git a/assets/shop/img/coins4.png b/assets/shop/img/coins4.png
deleted file mode 100644
index bc364b0..0000000
Binary files a/assets/shop/img/coins4.png and /dev/null differ
diff --git a/assets/shop/img/coins4.png.meta b/assets/shop/img/coins4.png.meta
deleted file mode 100644
index 4eed1be..0000000
--- a/assets/shop/img/coins4.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "14a00731-8325-4675-8abd-da6b581a7266",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 171,
- "height": 191,
- "platformSettings": {},
- "subMetas": {
- "coins4": {
- "ver": "1.0.6",
- "uuid": "9b9d9148-3213-4a92-a6a3-37e7606d73df",
- "importer": "sprite-frame",
- "rawTextureUuid": "14a00731-8325-4675-8abd-da6b581a7266",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 171,
- "height": 191,
- "rawWidth": 171,
- "rawHeight": 191,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins5.png b/assets/shop/img/coins5.png
deleted file mode 100644
index 426d0a1..0000000
Binary files a/assets/shop/img/coins5.png and /dev/null differ
diff --git a/assets/shop/img/coins5.png.meta b/assets/shop/img/coins5.png.meta
deleted file mode 100644
index 24223d2..0000000
--- a/assets/shop/img/coins5.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "270ef871-ac9d-4ba7-91d1-7d7624c3aed9",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 231,
- "height": 169,
- "platformSettings": {},
- "subMetas": {
- "coins5": {
- "ver": "1.0.6",
- "uuid": "7afab640-c900-437d-bf03-4d10d3c5b91e",
- "importer": "sprite-frame",
- "rawTextureUuid": "270ef871-ac9d-4ba7-91d1-7d7624c3aed9",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 231,
- "height": 169,
- "rawWidth": 231,
- "rawHeight": 169,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins6.png b/assets/shop/img/coins6.png
deleted file mode 100644
index f626cb3..0000000
Binary files a/assets/shop/img/coins6.png and /dev/null differ
diff --git a/assets/shop/img/coins6.png.meta b/assets/shop/img/coins6.png.meta
deleted file mode 100644
index 462257d..0000000
--- a/assets/shop/img/coins6.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "30543705-d10e-4279-a2fb-d2225b570bb4",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 240,
- "height": 182,
- "platformSettings": {},
- "subMetas": {
- "coins6": {
- "ver": "1.0.6",
- "uuid": "d59eec63-4069-4240-8862-3a5dec033980",
- "importer": "sprite-frame",
- "rawTextureUuid": "30543705-d10e-4279-a2fb-d2225b570bb4",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 240,
- "height": 182,
- "rawWidth": 240,
- "rawHeight": 182,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins7.png b/assets/shop/img/coins7.png
deleted file mode 100644
index b04612e..0000000
Binary files a/assets/shop/img/coins7.png and /dev/null differ
diff --git a/assets/shop/img/coins7.png.meta b/assets/shop/img/coins7.png.meta
deleted file mode 100644
index f4a9b42..0000000
--- a/assets/shop/img/coins7.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "96c15f9c-935e-4e9d-b5c0-f95e5d429f5c",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 185,
- "height": 206,
- "platformSettings": {},
- "subMetas": {
- "coins7": {
- "ver": "1.0.6",
- "uuid": "cc4ed551-4143-40db-a3b6-d2c09a978701",
- "importer": "sprite-frame",
- "rawTextureUuid": "96c15f9c-935e-4e9d-b5c0-f95e5d429f5c",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 185,
- "height": 206,
- "rawWidth": 185,
- "rawHeight": 206,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins8.png b/assets/shop/img/coins8.png
deleted file mode 100644
index 66d9469..0000000
Binary files a/assets/shop/img/coins8.png and /dev/null differ
diff --git a/assets/shop/img/coins8.png.meta b/assets/shop/img/coins8.png.meta
deleted file mode 100644
index 56f9ca1..0000000
--- a/assets/shop/img/coins8.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "4dbc349a-8dbd-4753-8e82-378b916ea36b",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 213,
- "height": 195,
- "platformSettings": {},
- "subMetas": {
- "coins8": {
- "ver": "1.0.6",
- "uuid": "a1f844fe-88a2-4ea6-a719-ad1ea3d9302a",
- "importer": "sprite-frame",
- "rawTextureUuid": "4dbc349a-8dbd-4753-8e82-378b916ea36b",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 213,
- "height": 195,
- "rawWidth": 213,
- "rawHeight": 195,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_di.png b/assets/shop/img/coins_di.png
deleted file mode 100644
index 39e3c41..0000000
Binary files a/assets/shop/img/coins_di.png and /dev/null differ
diff --git a/assets/shop/img/coins_di.png.meta b/assets/shop/img/coins_di.png.meta
deleted file mode 100644
index 171be70..0000000
--- a/assets/shop/img/coins_di.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "1e3dbd9c-6c1c-420b-9320-e27f3195e6d0",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 327,
- "height": 454,
- "platformSettings": {},
- "subMetas": {
- "coins_di": {
- "ver": "1.0.6",
- "uuid": "c4ffe50c-173b-4bff-9661-3573003616ca",
- "importer": "sprite-frame",
- "rawTextureUuid": "1e3dbd9c-6c1c-420b-9320-e27f3195e6d0",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 327,
- "height": 454,
- "rawWidth": 327,
- "rawHeight": 454,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz0.png b/assets/shop/img/coins_sz0.png
deleted file mode 100644
index 5981565..0000000
Binary files a/assets/shop/img/coins_sz0.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz0.png.meta b/assets/shop/img/coins_sz0.png.meta
deleted file mode 100644
index 38ad87f..0000000
--- a/assets/shop/img/coins_sz0.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "0734a70a-118d-4d9d-9a9f-9a61c11641d2",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 47,
- "height": 49,
- "platformSettings": {},
- "subMetas": {
- "coins_sz0": {
- "ver": "1.0.6",
- "uuid": "9e677504-e0a3-481d-9b9f-c02de8347b7e",
- "importer": "sprite-frame",
- "rawTextureUuid": "0734a70a-118d-4d9d-9a9f-9a61c11641d2",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 47,
- "height": 49,
- "rawWidth": 47,
- "rawHeight": 49,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz1.png b/assets/shop/img/coins_sz1.png
deleted file mode 100644
index d47dadf..0000000
Binary files a/assets/shop/img/coins_sz1.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz1.png.meta b/assets/shop/img/coins_sz1.png.meta
deleted file mode 100644
index 6c8a5e8..0000000
--- a/assets/shop/img/coins_sz1.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "58481a2a-4229-43d2-bd30-69e4f09cfe4b",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 23,
- "height": 51,
- "platformSettings": {},
- "subMetas": {
- "coins_sz1": {
- "ver": "1.0.6",
- "uuid": "292f0765-53d0-4c3b-8220-35bf2bc17034",
- "importer": "sprite-frame",
- "rawTextureUuid": "58481a2a-4229-43d2-bd30-69e4f09cfe4b",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 23,
- "height": 51,
- "rawWidth": 23,
- "rawHeight": 51,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz10.png b/assets/shop/img/coins_sz10.png
deleted file mode 100644
index c6edb7a..0000000
Binary files a/assets/shop/img/coins_sz10.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz10.png.meta b/assets/shop/img/coins_sz10.png.meta
deleted file mode 100644
index 2903221..0000000
--- a/assets/shop/img/coins_sz10.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "6c076da3-bb21-4e43-9e7e-d88b44bd01f4",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 19,
- "height": 23,
- "platformSettings": {},
- "subMetas": {
- "coins_sz10": {
- "ver": "1.0.6",
- "uuid": "6fe20747-a786-4f14-9f08-82415430bfa8",
- "importer": "sprite-frame",
- "rawTextureUuid": "6c076da3-bb21-4e43-9e7e-d88b44bd01f4",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 19,
- "height": 23,
- "rawWidth": 19,
- "rawHeight": 23,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz11.png b/assets/shop/img/coins_sz11.png
deleted file mode 100644
index 38f9e27..0000000
Binary files a/assets/shop/img/coins_sz11.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz11.png.meta b/assets/shop/img/coins_sz11.png.meta
deleted file mode 100644
index d4e0d81..0000000
--- a/assets/shop/img/coins_sz11.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "852ff94f-f07c-447b-93fa-a9adcb1a069b",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 39,
- "height": 47,
- "platformSettings": {},
- "subMetas": {
- "coins_sz11": {
- "ver": "1.0.6",
- "uuid": "d2daf530-25b4-4c2c-99bc-bfd1b7745219",
- "importer": "sprite-frame",
- "rawTextureUuid": "852ff94f-f07c-447b-93fa-a9adcb1a069b",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 39,
- "height": 47,
- "rawWidth": 39,
- "rawHeight": 47,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz12.png b/assets/shop/img/coins_sz12.png
deleted file mode 100644
index d24a2c4..0000000
Binary files a/assets/shop/img/coins_sz12.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz12.png.meta b/assets/shop/img/coins_sz12.png.meta
deleted file mode 100644
index 1e1721f..0000000
--- a/assets/shop/img/coins_sz12.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "6112faa1-3935-48de-a5a8-3369a63cead8",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 64,
- "height": 65,
- "platformSettings": {},
- "subMetas": {
- "coins_sz12": {
- "ver": "1.0.6",
- "uuid": "2952f12c-0d8c-490a-8fc0-62704a384180",
- "importer": "sprite-frame",
- "rawTextureUuid": "6112faa1-3935-48de-a5a8-3369a63cead8",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 64,
- "height": 65,
- "rawWidth": 64,
- "rawHeight": 65,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz13.png b/assets/shop/img/coins_sz13.png
deleted file mode 100644
index 317f64a..0000000
Binary files a/assets/shop/img/coins_sz13.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz13.png.meta b/assets/shop/img/coins_sz13.png.meta
deleted file mode 100644
index 7c53705..0000000
--- a/assets/shop/img/coins_sz13.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 67,
- "height": 69,
- "platformSettings": {},
- "subMetas": {
- "coins_sz13": {
- "ver": "1.0.6",
- "uuid": "e500caa6-8465-4a14-9eb8-75bc09a5462a",
- "importer": "sprite-frame",
- "rawTextureUuid": "efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 67,
- "height": 69,
- "rawWidth": 67,
- "rawHeight": 69,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz2.png b/assets/shop/img/coins_sz2.png
deleted file mode 100644
index 4241233..0000000
Binary files a/assets/shop/img/coins_sz2.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz2.png.meta b/assets/shop/img/coins_sz2.png.meta
deleted file mode 100644
index 905e073..0000000
--- a/assets/shop/img/coins_sz2.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "1217c0be-cc7e-41be-b105-7c26baf444ff",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 44,
- "height": 50,
- "platformSettings": {},
- "subMetas": {
- "coins_sz2": {
- "ver": "1.0.6",
- "uuid": "b3ba5b71-7bdb-4a06-8c79-54b3e60d190d",
- "importer": "sprite-frame",
- "rawTextureUuid": "1217c0be-cc7e-41be-b105-7c26baf444ff",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 44,
- "height": 50,
- "rawWidth": 44,
- "rawHeight": 50,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz3.png b/assets/shop/img/coins_sz3.png
deleted file mode 100644
index 351d18d..0000000
Binary files a/assets/shop/img/coins_sz3.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz3.png.meta b/assets/shop/img/coins_sz3.png.meta
deleted file mode 100644
index 95cef57..0000000
--- a/assets/shop/img/coins_sz3.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "e9077dbb-d18e-45d5-aae4-9f46b103ed05",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 44,
- "height": 61,
- "platformSettings": {},
- "subMetas": {
- "coins_sz3": {
- "ver": "1.0.6",
- "uuid": "c9bbe275-ebab-49b9-95e9-b6169ef4fe06",
- "importer": "sprite-frame",
- "rawTextureUuid": "e9077dbb-d18e-45d5-aae4-9f46b103ed05",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 44,
- "height": 61,
- "rawWidth": 44,
- "rawHeight": 61,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz4.png b/assets/shop/img/coins_sz4.png
deleted file mode 100644
index d34fb47..0000000
Binary files a/assets/shop/img/coins_sz4.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz4.png.meta b/assets/shop/img/coins_sz4.png.meta
deleted file mode 100644
index 7f5f874..0000000
--- a/assets/shop/img/coins_sz4.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "76467e5a-9a87-4d17-afae-777d7ff638a1",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 44,
- "height": 63,
- "platformSettings": {},
- "subMetas": {
- "coins_sz4": {
- "ver": "1.0.6",
- "uuid": "443993eb-6346-401e-94a4-f898f6ab86af",
- "importer": "sprite-frame",
- "rawTextureUuid": "76467e5a-9a87-4d17-afae-777d7ff638a1",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 44,
- "height": 63,
- "rawWidth": 44,
- "rawHeight": 63,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz5.png b/assets/shop/img/coins_sz5.png
deleted file mode 100644
index 7c5cadb..0000000
Binary files a/assets/shop/img/coins_sz5.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz5.png.meta b/assets/shop/img/coins_sz5.png.meta
deleted file mode 100644
index 4169eb9..0000000
--- a/assets/shop/img/coins_sz5.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "774d1aad-d081-44e1-9d68-9a3fd767aba3",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 42,
- "height": 60,
- "platformSettings": {},
- "subMetas": {
- "coins_sz5": {
- "ver": "1.0.6",
- "uuid": "ab144d76-17a8-43f2-a8da-3767e4f801fe",
- "importer": "sprite-frame",
- "rawTextureUuid": "774d1aad-d081-44e1-9d68-9a3fd767aba3",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 42,
- "height": 60,
- "rawWidth": 42,
- "rawHeight": 60,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz6.png b/assets/shop/img/coins_sz6.png
deleted file mode 100644
index b677f49..0000000
Binary files a/assets/shop/img/coins_sz6.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz6.png.meta b/assets/shop/img/coins_sz6.png.meta
deleted file mode 100644
index dcbc23c..0000000
--- a/assets/shop/img/coins_sz6.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "08a0b3cf-1219-46ba-8171-206dfe24151b",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 44,
- "height": 60,
- "platformSettings": {},
- "subMetas": {
- "coins_sz6": {
- "ver": "1.0.6",
- "uuid": "f6eaa69d-1533-4a6f-a7b5-9daf1d3ced4e",
- "importer": "sprite-frame",
- "rawTextureUuid": "08a0b3cf-1219-46ba-8171-206dfe24151b",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 44,
- "height": 60,
- "rawWidth": 44,
- "rawHeight": 60,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz7.png b/assets/shop/img/coins_sz7.png
deleted file mode 100644
index 8d3e496..0000000
Binary files a/assets/shop/img/coins_sz7.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz7.png.meta b/assets/shop/img/coins_sz7.png.meta
deleted file mode 100644
index b91029f..0000000
--- a/assets/shop/img/coins_sz7.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "47d4dd52-9152-4724-ab77-4e9d15e14c2e",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 42,
- "height": 59,
- "platformSettings": {},
- "subMetas": {
- "coins_sz7": {
- "ver": "1.0.6",
- "uuid": "88efa2bb-2d4d-49c9-ae8b-cf4c3154cfbe",
- "importer": "sprite-frame",
- "rawTextureUuid": "47d4dd52-9152-4724-ab77-4e9d15e14c2e",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 42,
- "height": 59,
- "rawWidth": 42,
- "rawHeight": 59,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz8.png b/assets/shop/img/coins_sz8.png
deleted file mode 100644
index 0c7caaa..0000000
Binary files a/assets/shop/img/coins_sz8.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz8.png.meta b/assets/shop/img/coins_sz8.png.meta
deleted file mode 100644
index 4d6a2f6..0000000
--- a/assets/shop/img/coins_sz8.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "74db3129-e7a8-4b0b-baf9-e271bdfab9ba",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 44,
- "height": 63,
- "platformSettings": {},
- "subMetas": {
- "coins_sz8": {
- "ver": "1.0.6",
- "uuid": "fd18d6ff-5af2-4edf-a197-040823eb5855",
- "importer": "sprite-frame",
- "rawTextureUuid": "74db3129-e7a8-4b0b-baf9-e271bdfab9ba",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 44,
- "height": 63,
- "rawWidth": 44,
- "rawHeight": 63,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/coins_sz9.png b/assets/shop/img/coins_sz9.png
deleted file mode 100644
index 496289d..0000000
Binary files a/assets/shop/img/coins_sz9.png and /dev/null differ
diff --git a/assets/shop/img/coins_sz9.png.meta b/assets/shop/img/coins_sz9.png.meta
deleted file mode 100644
index 19da666..0000000
--- a/assets/shop/img/coins_sz9.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "3b8e0a01-7634-402d-a8d2-349fbbc809f6",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 43,
- "height": 61,
- "platformSettings": {},
- "subMetas": {
- "coins_sz9": {
- "ver": "1.0.6",
- "uuid": "c512f489-2fcc-429d-8d24-51a7b9f52b2b",
- "importer": "sprite-frame",
- "rawTextureUuid": "3b8e0a01-7634-402d-a8d2-349fbbc809f6",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 43,
- "height": 61,
- "rawWidth": 43,
- "rawHeight": 61,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_0.png b/assets/shop/img/cost_0.png
deleted file mode 100644
index 59c9405..0000000
Binary files a/assets/shop/img/cost_0.png and /dev/null differ
diff --git a/assets/shop/img/cost_0.png.meta b/assets/shop/img/cost_0.png.meta
deleted file mode 100644
index 4027f7f..0000000
--- a/assets/shop/img/cost_0.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "12c63ed2-bf61-4b5b-8d37-781d02f4386c",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 30,
- "height": 38,
- "platformSettings": {},
- "subMetas": {
- "cost_0": {
- "ver": "1.0.6",
- "uuid": "b024605a-48a6-437b-aa90-9daca75bc6d0",
- "importer": "sprite-frame",
- "rawTextureUuid": "12c63ed2-bf61-4b5b-8d37-781d02f4386c",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 30,
- "height": 38,
- "rawWidth": 30,
- "rawHeight": 38,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_1.png b/assets/shop/img/cost_1.png
deleted file mode 100644
index d712449..0000000
Binary files a/assets/shop/img/cost_1.png and /dev/null differ
diff --git a/assets/shop/img/cost_1.png.meta b/assets/shop/img/cost_1.png.meta
deleted file mode 100644
index 2c2d932..0000000
--- a/assets/shop/img/cost_1.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 16,
- "height": 36,
- "platformSettings": {},
- "subMetas": {
- "cost_1": {
- "ver": "1.0.6",
- "uuid": "8e065543-ec06-474c-af70-702fef926644",
- "importer": "sprite-frame",
- "rawTextureUuid": "b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 16,
- "height": 36,
- "rawWidth": 16,
- "rawHeight": 36,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_10.png b/assets/shop/img/cost_10.png
deleted file mode 100644
index 00e8143..0000000
Binary files a/assets/shop/img/cost_10.png and /dev/null differ
diff --git a/assets/shop/img/cost_10.png.meta b/assets/shop/img/cost_10.png.meta
deleted file mode 100644
index 9b908c9..0000000
--- a/assets/shop/img/cost_10.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "76a01e2d-248a-494c-a56c-c14e4f26a3b0",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 9,
- "height": 10,
- "platformSettings": {},
- "subMetas": {
- "cost_10": {
- "ver": "1.0.6",
- "uuid": "57b54d9a-f5da-4b63-ab6b-c5f53ec4a0b7",
- "importer": "sprite-frame",
- "rawTextureUuid": "76a01e2d-248a-494c-a56c-c14e4f26a3b0",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 9,
- "height": 10,
- "rawWidth": 9,
- "rawHeight": 10,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_11.png b/assets/shop/img/cost_11.png
deleted file mode 100644
index d7aefbe..0000000
Binary files a/assets/shop/img/cost_11.png and /dev/null differ
diff --git a/assets/shop/img/cost_11.png.meta b/assets/shop/img/cost_11.png.meta
deleted file mode 100644
index 8307380..0000000
--- a/assets/shop/img/cost_11.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "1019c0e2-cc2c-4dde-93e4-86b676bc69cd",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 33,
- "height": 33,
- "platformSettings": {},
- "subMetas": {
- "cost_11": {
- "ver": "1.0.6",
- "uuid": "84079931-0966-46a2-956e-a0951ca34b32",
- "importer": "sprite-frame",
- "rawTextureUuid": "1019c0e2-cc2c-4dde-93e4-86b676bc69cd",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 33,
- "height": 33,
- "rawWidth": 33,
- "rawHeight": 33,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_2.png b/assets/shop/img/cost_2.png
deleted file mode 100644
index a7ae2e1..0000000
Binary files a/assets/shop/img/cost_2.png and /dev/null differ
diff --git a/assets/shop/img/cost_2.png.meta b/assets/shop/img/cost_2.png.meta
deleted file mode 100644
index 8ec6dbc..0000000
--- a/assets/shop/img/cost_2.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "227db116-a70e-4157-b553-bfe8d6d18a6a",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 25,
- "height": 37,
- "platformSettings": {},
- "subMetas": {
- "cost_2": {
- "ver": "1.0.6",
- "uuid": "629ee23a-5227-4422-86d7-cddfb32e1d2a",
- "importer": "sprite-frame",
- "rawTextureUuid": "227db116-a70e-4157-b553-bfe8d6d18a6a",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 25,
- "height": 37,
- "rawWidth": 25,
- "rawHeight": 37,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_3.png b/assets/shop/img/cost_3.png
deleted file mode 100644
index b1c7af3..0000000
Binary files a/assets/shop/img/cost_3.png and /dev/null differ
diff --git a/assets/shop/img/cost_3.png.meta b/assets/shop/img/cost_3.png.meta
deleted file mode 100644
index 7ded352..0000000
--- a/assets/shop/img/cost_3.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "db683201-2fb0-4753-bf65-3ae7ef314627",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 23,
- "height": 37,
- "platformSettings": {},
- "subMetas": {
- "cost_3": {
- "ver": "1.0.6",
- "uuid": "74c44682-bd60-4ab9-ba74-d1a6de9c80d7",
- "importer": "sprite-frame",
- "rawTextureUuid": "db683201-2fb0-4753-bf65-3ae7ef314627",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 23,
- "height": 37,
- "rawWidth": 23,
- "rawHeight": 37,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_4.png b/assets/shop/img/cost_4.png
deleted file mode 100644
index ece80cc..0000000
Binary files a/assets/shop/img/cost_4.png and /dev/null differ
diff --git a/assets/shop/img/cost_4.png.meta b/assets/shop/img/cost_4.png.meta
deleted file mode 100644
index 48f1cf2..0000000
--- a/assets/shop/img/cost_4.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "f1cd9c7b-a0b7-41fc-94c2-db60d6a51281",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 28,
- "height": 37,
- "platformSettings": {},
- "subMetas": {
- "cost_4": {
- "ver": "1.0.6",
- "uuid": "b7e6594c-63af-4309-87ee-b9f1476a9d4b",
- "importer": "sprite-frame",
- "rawTextureUuid": "f1cd9c7b-a0b7-41fc-94c2-db60d6a51281",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 28,
- "height": 37,
- "rawWidth": 28,
- "rawHeight": 37,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_5.png b/assets/shop/img/cost_5.png
deleted file mode 100644
index a1c5280..0000000
Binary files a/assets/shop/img/cost_5.png and /dev/null differ
diff --git a/assets/shop/img/cost_5.png.meta b/assets/shop/img/cost_5.png.meta
deleted file mode 100644
index d3079a8..0000000
--- a/assets/shop/img/cost_5.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "9ffc3971-f097-4de5-b88a-2e5e6d78104a",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 25,
- "height": 36,
- "platformSettings": {},
- "subMetas": {
- "cost_5": {
- "ver": "1.0.6",
- "uuid": "f0d924c0-19bb-45cd-b55c-f3c9451f0f55",
- "importer": "sprite-frame",
- "rawTextureUuid": "9ffc3971-f097-4de5-b88a-2e5e6d78104a",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 25,
- "height": 36,
- "rawWidth": 25,
- "rawHeight": 36,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_6.png b/assets/shop/img/cost_6.png
deleted file mode 100644
index c01d5b6..0000000
Binary files a/assets/shop/img/cost_6.png and /dev/null differ
diff --git a/assets/shop/img/cost_6.png.meta b/assets/shop/img/cost_6.png.meta
deleted file mode 100644
index 820869c..0000000
--- a/assets/shop/img/cost_6.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "c8b66182-996c-4377-8d0a-024d8b17e581",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 26,
- "height": 38,
- "platformSettings": {},
- "subMetas": {
- "cost_6": {
- "ver": "1.0.6",
- "uuid": "5d07235b-2f5d-48b7-996f-96c720a1b95d",
- "importer": "sprite-frame",
- "rawTextureUuid": "c8b66182-996c-4377-8d0a-024d8b17e581",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 26,
- "height": 38,
- "rawWidth": 26,
- "rawHeight": 38,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_7.png b/assets/shop/img/cost_7.png
deleted file mode 100644
index 2a77bff..0000000
Binary files a/assets/shop/img/cost_7.png and /dev/null differ
diff --git a/assets/shop/img/cost_7.png.meta b/assets/shop/img/cost_7.png.meta
deleted file mode 100644
index ae44264..0000000
--- a/assets/shop/img/cost_7.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "f0c1b219-0608-4a6c-aef0-59fc9db4955e",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 29,
- "height": 37,
- "platformSettings": {},
- "subMetas": {
- "cost_7": {
- "ver": "1.0.6",
- "uuid": "5e41d88b-082f-4943-868a-ed7dbe069b38",
- "importer": "sprite-frame",
- "rawTextureUuid": "f0c1b219-0608-4a6c-aef0-59fc9db4955e",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 29,
- "height": 37,
- "rawWidth": 29,
- "rawHeight": 37,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_8.png b/assets/shop/img/cost_8.png
deleted file mode 100644
index 6ebffa8..0000000
Binary files a/assets/shop/img/cost_8.png and /dev/null differ
diff --git a/assets/shop/img/cost_8.png.meta b/assets/shop/img/cost_8.png.meta
deleted file mode 100644
index ce60160..0000000
--- a/assets/shop/img/cost_8.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "c6022e1d-b8c5-498b-a3c1-740387f6d647",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 26,
- "height": 38,
- "platformSettings": {},
- "subMetas": {
- "cost_8": {
- "ver": "1.0.6",
- "uuid": "66dc5e3b-049f-4fe0-a915-588ff847477c",
- "importer": "sprite-frame",
- "rawTextureUuid": "c6022e1d-b8c5-498b-a3c1-740387f6d647",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 26,
- "height": 38,
- "rawWidth": 26,
- "rawHeight": 38,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_9.png b/assets/shop/img/cost_9.png
deleted file mode 100644
index 96e404b..0000000
Binary files a/assets/shop/img/cost_9.png and /dev/null differ
diff --git a/assets/shop/img/cost_9.png.meta b/assets/shop/img/cost_9.png.meta
deleted file mode 100644
index 8f62d69..0000000
--- a/assets/shop/img/cost_9.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "621ae85f-f4e4-48a1-9e97-1cdfd769677d",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 27,
- "height": 39,
- "platformSettings": {},
- "subMetas": {
- "cost_9": {
- "ver": "1.0.6",
- "uuid": "058187b7-47d9-4c89-a131-e700f642ebf9",
- "importer": "sprite-frame",
- "rawTextureUuid": "621ae85f-f4e4-48a1-9e97-1cdfd769677d",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 27,
- "height": 39,
- "rawWidth": 27,
- "rawHeight": 39,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/cost_yuan.png b/assets/shop/img/cost_yuan.png
deleted file mode 100644
index cc90262..0000000
Binary files a/assets/shop/img/cost_yuan.png and /dev/null differ
diff --git a/assets/shop/img/cost_yuan.png.meta b/assets/shop/img/cost_yuan.png.meta
deleted file mode 100644
index ccdbd43..0000000
--- a/assets/shop/img/cost_yuan.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "6b7f9211-7903-45b4-b2e2-d388ba17e935",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 46,
- "height": 43,
- "platformSettings": {},
- "subMetas": {
- "cost_yuan": {
- "ver": "1.0.6",
- "uuid": "cb33205e-e96b-4d22-bd92-4b201b1247de",
- "importer": "sprite-frame",
- "rawTextureUuid": "6b7f9211-7903-45b4-b2e2-d388ba17e935",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 46,
- "height": 43,
- "rawWidth": 46,
- "rawHeight": 43,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/shop_1.png b/assets/shop/img/shop_1.png
index 39bff91..9e08e0c 100644
Binary files a/assets/shop/img/shop_1.png and b/assets/shop/img/shop_1.png differ
diff --git a/assets/shop/img/shop_1.png.meta b/assets/shop/img/shop_1.png.meta
index b8c7b8e..513ee39 100644
--- a/assets/shop/img/shop_1.png.meta
+++ b/assets/shop/img/shop_1.png.meta
@@ -1,6 +1,6 @@
{
"ver": "2.3.7",
- "uuid": "1742fc3d-1b8c-4003-9979-8f29dadd7520",
+ "uuid": "0fb4aec7-ce6d-40d7-949d-563c8710f75c",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
@@ -14,9 +14,9 @@
"subMetas": {
"shop_1": {
"ver": "1.0.6",
- "uuid": "e03c6d2e-80b8-4f9b-abab-5f18bcdd71b8",
+ "uuid": "11bc6aa1-f82e-42c0-8581-7cc70ba6cde0",
"importer": "sprite-frame",
- "rawTextureUuid": "1742fc3d-1b8c-4003-9979-8f29dadd7520",
+ "rawTextureUuid": "0fb4aec7-ce6d-40d7-949d-563c8710f75c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
diff --git a/assets/shop/img/shuzi.plist b/assets/shop/img/shuzi.plist
new file mode 100644
index 0000000..db638ad
--- /dev/null
+++ b/assets/shop/img/shuzi.plist
@@ -0,0 +1,431 @@
+
+
+
+
+ frames
+
+ coins_sz0.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {47,49}
+ spriteSourceSize
+ {47,49}
+ textureRect
+ {{72,68},{47,49}}
+ textureRotated
+
+
+ coins_sz1.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,51}
+ spriteSourceSize
+ {23,51}
+ textureRect
+ {{1,72},{23,51}}
+ textureRotated
+
+
+ coins_sz10.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {19,23}
+ spriteSourceSize
+ {19,23}
+ textureRect
+ {{319,42},{19,23}}
+ textureRotated
+
+
+ coins_sz11.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {39,47}
+ spriteSourceSize
+ {39,47}
+ textureRect
+ {{121,68},{39,47}}
+ textureRotated
+
+
+ coins_sz12.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,65}
+ spriteSourceSize
+ {64,65}
+ textureRect
+ {{70,1},{64,65}}
+ textureRotated
+
+
+ coins_sz13.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {67,69}
+ spriteSourceSize
+ {67,69}
+ textureRect
+ {{1,1},{67,69}}
+ textureRotated
+
+
+ coins_sz2.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,50}
+ spriteSourceSize
+ {44,50}
+ textureRect
+ {{26,72},{44,50}}
+ textureRotated
+
+
+ coins_sz3.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,61}
+ spriteSourceSize
+ {44,61}
+ textureRect
+ {{207,66},{44,61}}
+ textureRotated
+
+
+ coins_sz4.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,63}
+ spriteSourceSize
+ {44,63}
+ textureRect
+ {{136,1},{44,63}}
+ textureRotated
+
+
+ coins_sz5.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {42,60}
+ spriteSourceSize
+ {42,60}
+ textureRect
+ {{314,63},{42,60}}
+ textureRotated
+
+
+ coins_sz6.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,60}
+ spriteSourceSize
+ {44,60}
+ textureRect
+ {{273,1},{44,60}}
+ textureRotated
+
+
+ coins_sz7.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {42,59}
+ spriteSourceSize
+ {42,59}
+ textureRect
+ {{270,64},{42,59}}
+ textureRotated
+
+
+ coins_sz8.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,63}
+ spriteSourceSize
+ {44,63}
+ textureRect
+ {{182,1},{44,63}}
+ textureRotated
+
+
+ coins_sz9.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,61}
+ spriteSourceSize
+ {43,61}
+ textureRect
+ {{228,1},{43,61}}
+ textureRotated
+
+
+ cost_0.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {30,38}
+ spriteSourceSize
+ {30,38}
+ textureRect
+ {{348,1},{30,38}}
+ textureRotated
+
+
+ cost_1.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {16,36}
+ spriteSourceSize
+ {16,36}
+ textureRect
+ {{344,42},{16,36}}
+ textureRotated
+
+
+ cost_10.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {9,10}
+ spriteSourceSize
+ {9,10}
+ textureRect
+ {{162,114},{9,10}}
+ textureRotated
+
+
+ cost_11.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,33}
+ spriteSourceSize
+ {33,33}
+ textureRect
+ {{415,87},{33,33}}
+ textureRotated
+
+
+ cost_2.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {25,37}
+ spriteSourceSize
+ {25,37}
+ textureRect
+ {{388,80},{25,37}}
+ textureRotated
+
+
+ cost_3.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,37}
+ spriteSourceSize
+ {23,37}
+ textureRect
+ {{382,41},{23,37}}
+ textureRotated
+
+
+ cost_4.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {28,37}
+ spriteSourceSize
+ {28,37}
+ textureRect
+ {{358,80},{28,37}}
+ textureRotated
+
+
+ cost_5.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {25,36}
+ spriteSourceSize
+ {25,36}
+ textureRect
+ {{415,60},{25,36}}
+ textureRotated
+
+
+ cost_6.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,38}
+ spriteSourceSize
+ {26,38}
+ textureRect
+ {{380,1},{26,38}}
+ textureRotated
+
+
+ cost_7.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {29,37}
+ spriteSourceSize
+ {29,37}
+ textureRect
+ {{408,29},{29,37}}
+ textureRotated
+
+
+ cost_8.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,38}
+ spriteSourceSize
+ {26,38}
+ textureRect
+ {{408,1},{26,38}}
+ textureRotated
+
+
+ cost_9.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {27,39}
+ spriteSourceSize
+ {27,39}
+ textureRect
+ {{319,1},{27,39}}
+ textureRotated
+
+
+ cost_yuan.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,43}
+ spriteSourceSize
+ {46,43}
+ textureRect
+ {{162,66},{46,43}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ pixelFormat
+ RGBA8888
+ premultiplyAlpha
+
+ realTextureFileName
+ shuzi.png
+ size
+ {452,124}
+ smartupdate
+ $TexturePacker:SmartUpdate:8c3cfc1457784699e71137301f770832:95b2536c4bbcfe6d3258b23f832effb5:8dfcd9ca55e684c31f5e6d4475a4bd24$
+ textureFileName
+ shuzi.png
+
+
+
diff --git a/assets/shop/img/shuzi.plist.meta b/assets/shop/img/shuzi.plist.meta
new file mode 100644
index 0000000..66fe2f2
--- /dev/null
+++ b/assets/shop/img/shuzi.plist.meta
@@ -0,0 +1,634 @@
+{
+ "ver": "1.2.6",
+ "uuid": "569f5a4d-beff-465f-be16-fc3bcf467850",
+ "importer": "asset",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "size": {
+ "width": 452,
+ "height": 124
+ },
+ "type": "Texture Packer",
+ "subMetas": {
+ "coins_sz0.png": {
+ "ver": "1.0.6",
+ "uuid": "f7cd0a40-56e7-4d44-ae0f-c0b8336cd9a0",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 72,
+ "trimY": 68,
+ "width": 47,
+ "height": 49,
+ "rawWidth": 47,
+ "rawHeight": 49,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz1.png": {
+ "ver": "1.0.6",
+ "uuid": "5a89f992-acc9-4739-8233-c57b5db0a123",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1,
+ "trimY": 72,
+ "width": 23,
+ "height": 51,
+ "rawWidth": 23,
+ "rawHeight": 51,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz10.png": {
+ "ver": "1.0.6",
+ "uuid": "49628cf9-eb96-41b2-a2c9-13168b9b03c1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 319,
+ "trimY": 42,
+ "width": 19,
+ "height": 23,
+ "rawWidth": 19,
+ "rawHeight": 23,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz11.png": {
+ "ver": "1.0.6",
+ "uuid": "86abe80b-15ed-4c52-892e-7ced36bbbea5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 121,
+ "trimY": 68,
+ "width": 39,
+ "height": 47,
+ "rawWidth": 39,
+ "rawHeight": 47,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz12.png": {
+ "ver": "1.0.6",
+ "uuid": "a69c275d-feb7-4eb6-aa11-104d24cf2da0",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 70,
+ "trimY": 1,
+ "width": 64,
+ "height": 65,
+ "rawWidth": 64,
+ "rawHeight": 65,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz13.png": {
+ "ver": "1.0.6",
+ "uuid": "d5ac310b-0de6-4b85-9854-eceb6dbf39f5",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 1,
+ "trimY": 1,
+ "width": 67,
+ "height": 69,
+ "rawWidth": 67,
+ "rawHeight": 69,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz2.png": {
+ "ver": "1.0.6",
+ "uuid": "3109fbd4-cfef-48a7-ac0f-56fb5fe101c7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 26,
+ "trimY": 72,
+ "width": 44,
+ "height": 50,
+ "rawWidth": 44,
+ "rawHeight": 50,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz3.png": {
+ "ver": "1.0.6",
+ "uuid": "bfe1bfb2-6b06-4ed2-a183-a20bd676ff2c",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 207,
+ "trimY": 66,
+ "width": 44,
+ "height": 61,
+ "rawWidth": 44,
+ "rawHeight": 61,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz4.png": {
+ "ver": "1.0.6",
+ "uuid": "4869026f-04ec-47b5-85f7-02ee2a1865d9",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 136,
+ "trimY": 1,
+ "width": 44,
+ "height": 63,
+ "rawWidth": 44,
+ "rawHeight": 63,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz5.png": {
+ "ver": "1.0.6",
+ "uuid": "993d5de7-a09c-4c74-9d31-7abbe35d2ae1",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 314,
+ "trimY": 63,
+ "width": 42,
+ "height": 60,
+ "rawWidth": 42,
+ "rawHeight": 60,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz6.png": {
+ "ver": "1.0.6",
+ "uuid": "cc957ffd-6fe4-4f67-80cb-ebf8a1d5d11d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 273,
+ "trimY": 1,
+ "width": 44,
+ "height": 60,
+ "rawWidth": 44,
+ "rawHeight": 60,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz7.png": {
+ "ver": "1.0.6",
+ "uuid": "2f5b7b7c-5329-4e26-bc0d-869df502b262",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 270,
+ "trimY": 64,
+ "width": 42,
+ "height": 59,
+ "rawWidth": 42,
+ "rawHeight": 59,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz8.png": {
+ "ver": "1.0.6",
+ "uuid": "ae8eff19-6ef0-46cc-88ba-5cc74fbd7e19",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 182,
+ "trimY": 1,
+ "width": 44,
+ "height": 63,
+ "rawWidth": 44,
+ "rawHeight": 63,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "coins_sz9.png": {
+ "ver": "1.0.6",
+ "uuid": "9f12c901-afef-41f1-8111-c7f7c4ec860f",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 228,
+ "trimY": 1,
+ "width": 43,
+ "height": 61,
+ "rawWidth": 43,
+ "rawHeight": 61,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_0.png": {
+ "ver": "1.0.6",
+ "uuid": "eda6def7-3f41-4e71-b328-27b858a8f167",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 348,
+ "trimY": 1,
+ "width": 30,
+ "height": 38,
+ "rawWidth": 30,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_1.png": {
+ "ver": "1.0.6",
+ "uuid": "3ae58373-6b26-4cad-9373-d00a87902b60",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 344,
+ "trimY": 42,
+ "width": 16,
+ "height": 36,
+ "rawWidth": 16,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_10.png": {
+ "ver": "1.0.6",
+ "uuid": "646c3b71-e143-4d0f-94e6-534c77123f6d",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 162,
+ "trimY": 114,
+ "width": 9,
+ "height": 10,
+ "rawWidth": 9,
+ "rawHeight": 10,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_11.png": {
+ "ver": "1.0.6",
+ "uuid": "c5b62989-f18e-41f8-a950-68be1c4be79a",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 415,
+ "trimY": 87,
+ "width": 33,
+ "height": 33,
+ "rawWidth": 33,
+ "rawHeight": 33,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_2.png": {
+ "ver": "1.0.6",
+ "uuid": "1ced933d-f1a4-404f-893e-46a0e0a8b47f",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 388,
+ "trimY": 80,
+ "width": 25,
+ "height": 37,
+ "rawWidth": 25,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_3.png": {
+ "ver": "1.0.6",
+ "uuid": "0474e049-57c0-451a-ba18-17d624cb4aef",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 382,
+ "trimY": 41,
+ "width": 23,
+ "height": 37,
+ "rawWidth": 23,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_4.png": {
+ "ver": "1.0.6",
+ "uuid": "2934e269-db62-4cd7-9c0c-c4c9358cfaa6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 358,
+ "trimY": 80,
+ "width": 28,
+ "height": 37,
+ "rawWidth": 28,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_5.png": {
+ "ver": "1.0.6",
+ "uuid": "c27b90ef-5231-40ff-9c47-380561e1cc77",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 415,
+ "trimY": 60,
+ "width": 25,
+ "height": 36,
+ "rawWidth": 25,
+ "rawHeight": 36,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_6.png": {
+ "ver": "1.0.6",
+ "uuid": "30b3ef49-bd7e-47a6-84b2-da05678348a6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 380,
+ "trimY": 1,
+ "width": 26,
+ "height": 38,
+ "rawWidth": 26,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_7.png": {
+ "ver": "1.0.6",
+ "uuid": "478f346f-7aa8-4f88-bb46-877d0e27e9f6",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 408,
+ "trimY": 29,
+ "width": 29,
+ "height": 37,
+ "rawWidth": 29,
+ "rawHeight": 37,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_8.png": {
+ "ver": "1.0.6",
+ "uuid": "3ad60e42-8744-4068-b7dd-24ef792c21fe",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 408,
+ "trimY": 1,
+ "width": 26,
+ "height": 38,
+ "rawWidth": 26,
+ "rawHeight": 38,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_9.png": {
+ "ver": "1.0.6",
+ "uuid": "5b7e89b0-02ab-4c9b-814d-15978168c9e7",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 319,
+ "trimY": 1,
+ "width": 27,
+ "height": 39,
+ "rawWidth": 27,
+ "rawHeight": 39,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "cost_yuan.png": {
+ "ver": "1.0.6",
+ "uuid": "8becca83-dce4-46e0-8d90-a3d85c978728",
+ "importer": "sprite-frame",
+ "rawTextureUuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 162,
+ "trimY": 66,
+ "width": 46,
+ "height": 43,
+ "rawWidth": 46,
+ "rawHeight": 43,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/shop/img/shuzi.png b/assets/shop/img/shuzi.png
new file mode 100644
index 0000000..1637a99
Binary files /dev/null and b/assets/shop/img/shuzi.png differ
diff --git a/assets/shop/img/shuzi.png.meta b/assets/shop/img/shuzi.png.meta
new file mode 100644
index 0000000..dca0357
--- /dev/null
+++ b/assets/shop/img/shuzi.png.meta
@@ -0,0 +1,15 @@
+{
+ "ver": "2.3.7",
+ "uuid": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "importer": "texture",
+ "type": "raw",
+ "wrapMode": "clamp",
+ "filterMode": "bilinear",
+ "premultiplyAlpha": false,
+ "genMipmaps": false,
+ "packable": true,
+ "width": 452,
+ "height": 124,
+ "platformSettings": {},
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/assets/shop/img/tx.png b/assets/shop/img/tx.png
deleted file mode 100644
index 0524b7f..0000000
Binary files a/assets/shop/img/tx.png and /dev/null differ
diff --git a/assets/shop/img/tx.png.meta b/assets/shop/img/tx.png.meta
deleted file mode 100644
index 9eace6b..0000000
--- a/assets/shop/img/tx.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "a7020897-1d42-416a-ab6f-b99429684626",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 188,
- "height": 207,
- "platformSettings": {},
- "subMetas": {
- "tx": {
- "ver": "1.0.6",
- "uuid": "b8df47eb-4775-44ce-b2fc-5b694bcaaf2f",
- "importer": "sprite-frame",
- "rawTextureUuid": "a7020897-1d42-416a-ab6f-b99429684626",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 188,
- "height": 207,
- "rawWidth": 188,
- "rawHeight": 207,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/txt1.png b/assets/shop/img/txt1.png
deleted file mode 100644
index 1d716da..0000000
Binary files a/assets/shop/img/txt1.png and /dev/null differ
diff --git a/assets/shop/img/txt1.png.meta b/assets/shop/img/txt1.png.meta
deleted file mode 100644
index 72e8ba5..0000000
--- a/assets/shop/img/txt1.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "d824166e-71a9-461c-bd7d-2be020ff85b7",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 907,
- "height": 62,
- "platformSettings": {},
- "subMetas": {
- "txt1": {
- "ver": "1.0.6",
- "uuid": "546a566e-6902-431f-a072-b3d00fe9f788",
- "importer": "sprite-frame",
- "rawTextureUuid": "d824166e-71a9-461c-bd7d-2be020ff85b7",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 907,
- "height": 62,
- "rawWidth": 907,
- "rawHeight": 62,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/img/txt2.png b/assets/shop/img/txt2.png
deleted file mode 100644
index 1dcde44..0000000
Binary files a/assets/shop/img/txt2.png and /dev/null differ
diff --git a/assets/shop/img/txt2.png.meta b/assets/shop/img/txt2.png.meta
deleted file mode 100644
index 14e4f56..0000000
--- a/assets/shop/img/txt2.png.meta
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "ver": "2.3.7",
- "uuid": "06097023-184a-44ab-be97-104b5b23de45",
- "importer": "texture",
- "type": "sprite",
- "wrapMode": "clamp",
- "filterMode": "bilinear",
- "premultiplyAlpha": false,
- "genMipmaps": false,
- "packable": true,
- "width": 907,
- "height": 63,
- "platformSettings": {},
- "subMetas": {
- "txt2": {
- "ver": "1.0.6",
- "uuid": "5cfee8ac-c734-44b4-9098-08a82de9f636",
- "importer": "sprite-frame",
- "rawTextureUuid": "06097023-184a-44ab-be97-104b5b23de45",
- "trimType": "auto",
- "trimThreshold": 1,
- "rotated": false,
- "offsetX": 0,
- "offsetY": 0,
- "trimX": 0,
- "trimY": 0,
- "width": 907,
- "height": 63,
- "rawWidth": 907,
- "rawHeight": 63,
- "borderTop": 0,
- "borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
- "subMetas": {}
- }
- }
-}
\ No newline at end of file
diff --git a/assets/shop/prefab/shop.prefab b/assets/shop/prefab/shop.prefab
index 047b1fa..36ae3fb 100644
--- a/assets/shop/prefab/shop.prefab
+++ b/assets/shop/prefab/shop.prefab
@@ -543,7 +543,9 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
- "_spriteFrame": null,
+ "_spriteFrame": {
+ "__uuid__": "11bc6aa1-f82e-42c0-8581-7cc70ba6cde0"
+ },
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
diff --git a/library/imports/00/0067bef8-35b3-4e41-9d45-ffb39b74450e.json b/library/imports/00/0067bef8-35b3-4e41-9d45-ffb39b74450e.json
new file mode 100644
index 0000000..346f48d
--- /dev/null
+++ b/library/imports/00/0067bef8-35b3-4e41-9d45-ffb39b74450e.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐tuzi_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 702,
+ 311,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/01/01c52e25-2b5d-4a2d-bcee-60913a9b83e6.json b/library/imports/01/01c52e25-2b5d-4a2d-bcee-60913a9b83e6.json
new file mode 100644
index 0000000..43b4d29
--- /dev/null
+++ b/library/imports/01/01c52e25-2b5d-4a2d-bcee-60913a9b83e6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "ditu00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 639,
+ 312,
+ 62
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 312,
+ 62
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json b/library/imports/01/01ceb0e9-9252-49db-a831-f0c1d808849f.json
similarity index 67%
rename from library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json
rename to library/imports/01/01ceb0e9-9252-49db-a831-f0c1d808849f.json
index 3732a72..a781302 100644
--- a/library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json
+++ b/library/imports/01/01ceb0e9-9252-49db-a831-f0c1d808849f.json
@@ -1,12 +1,11 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "闇囧姩00",
- "texture": "306b721d-bd6d-4dc2-9c7e-0d42021be3b3",
- "atlas": "",
+ "name": "音乐01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1057,
+ 616,
116,
122
],
diff --git a/library/imports/02/02e66b2c-7d73-4d15-9cdb-e13adfe74468.json b/library/imports/02/02e66b2c-7d73-4d15-9cdb-e13adfe74468.json
new file mode 100644
index 0000000..bcfdd44
--- /dev/null
+++ b/library/imports/02/02e66b2c-7d73-4d15-9cdb-e13adfe74468.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "tiaodik_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 1121,
+ 154,
+ 598
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 598
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/03/036994a9-0dc2-493c-8a5b-5f9dc95e6c76.json b/library/imports/03/036994a9-0dc2-493c-8a5b-5f9dc95e6c76.json
new file mode 100644
index 0000000..bc28f2e
--- /dev/null
+++ b/library/imports/03/036994a9-0dc2-493c-8a5b-5f9dc95e6c76.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字05",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 920,
+ 289,
+ 72
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 289,
+ 72
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/74/74c44682-bd60-4ab9-ba74-d1a6de9c80d7.json b/library/imports/04/0474e049-57c0-451a-ba18-17d624cb4aef.json
similarity index 66%
rename from library/imports/74/74c44682-bd60-4ab9-ba74-d1a6de9c80d7.json
rename to library/imports/04/0474e049-57c0-451a-ba18-17d624cb4aef.json
index 2d29397..ff3a71e 100644
--- a/library/imports/74/74c44682-bd60-4ab9-ba74-d1a6de9c80d7.json
+++ b/library/imports/04/0474e049-57c0-451a-ba18-17d624cb4aef.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_3",
- "texture": "db683201-2fb0-4753-bf65-3ae7ef314627",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 382,
+ 41,
23,
37
],
diff --git a/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png b/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png
deleted file mode 100644
index 9c71eaa..0000000
Binary files a/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png and /dev/null differ
diff --git a/library/imports/06/0661d038-9d89-40c6-9b66-bddcd33b0aea.json b/library/imports/06/0661d038-9d89-40c6-9b66-bddcd33b0aea.json
new file mode 100644
index 0000000..9f08cad
--- /dev/null
+++ b/library/imports/06/0661d038-9d89-40c6-9b66-bddcd33b0aea.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字08_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 341,
+ 692,
+ 140
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 692,
+ 140
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/08/082415c2-6a08-41dc-a7a4-c9f5a28f45de.json b/library/imports/08/082415c2-6a08-41dc-a7a4-c9f5a28f45de.json
new file mode 100644
index 0000000..cecbec5
--- /dev/null
+++ b/library/imports/08/082415c2-6a08-41dc-a7a4-c9f5a28f45de.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "开按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 72,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json b/library/imports/08/085499d6-322c-4d5d-931b-cbd3fb60a879.json
similarity index 76%
rename from library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json
rename to library/imports/08/085499d6-322c-4d5d-931b-cbd3fb60a879.json
index 538f2d7..bb8d552 100644
--- a/library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json
+++ b/library/imports/08/085499d6-322c-4d5d-931b-cbd3fb60a879.json
@@ -2,11 +2,10 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "tiaodik",
- "texture": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc",
- "atlas": "",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
0,
- 0,
+ 1121,
154,
598
],
@@ -18,6 +17,7 @@
154,
598
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/09/095b3b98-e5ba-4f81-8458-a836cb4608f6.json b/library/imports/09/095b3b98-e5ba-4f81-8458-a836cb4608f6.json
new file mode 100644
index 0000000..b66b3ec
--- /dev/null
+++ b/library/imports/09/095b3b98-e5ba-4f81-8458-a836cb4608f6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出小框",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1174,
+ 616,
+ -313,
+ -95
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ -313,
+ -95
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0a/0ac0870c-5ce8-4701-9dee-cde7f199e65d.json b/library/imports/0a/0ac0870c-5ce8-4701-9dee-cde7f199e65d.json
new file mode 100644
index 0000000..be7b1da
--- /dev/null
+++ b/library/imports/0a/0ac0870c-5ce8-4701-9dee-cde7f199e65d.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字08",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 341,
+ 692,
+ 140
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 692,
+ 140
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0a/0af874ae-102c-433e-9f65-3a0249719010.json b/library/imports/0a/0af874ae-102c-433e-9f65-3a0249719010.json
new file mode 100644
index 0000000..b87bfbe
--- /dev/null
+++ b/library/imports/0a/0af874ae-102c-433e-9f65-3a0249719010.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字07",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 638,
+ 1703,
+ 348,
+ 66
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 348,
+ 66
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0a/0afb16e8-c329-4191-a892-cca6e29336ec.json b/library/imports/0a/0afb16e8-c329-4191-a892-cca6e29336ec.json
new file mode 100644
index 0000000..91134ef
--- /dev/null
+++ b/library/imports/0a/0afb16e8-c329-4191-a892-cca6e29336ec.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "开按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 72,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0c/0cc5c474-3ac0-421f-92a7-fd42837dda98.json b/library/imports/0c/0cc5c474-3ac0-421f-92a7-fd42837dda98.json
new file mode 100644
index 0000000..7b60473
--- /dev/null
+++ b/library/imports/0c/0cc5c474-3ac0-421f-92a7-fd42837dda98.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "小钟图标",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1659,
+ 1688,
+ 79,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 79,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0e/0ed82742-547c-42f6-8f19-42f0fd9018a2.json b/library/imports/0e/0ed82742-547c-42f6-8f19-42f0fd9018a2.json
new file mode 100644
index 0000000..315b417
--- /dev/null
+++ b/library/imports/0e/0ed82742-547c-42f6-8f19-42f0fd9018a2.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字07",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 638,
+ 1703,
+ 348,
+ 66
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 348,
+ 66
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/0f/0f61fe2e-562f-4ee4-b7b8-1943ddc65303.json b/library/imports/0f/0f61fe2e-562f-4ee4-b7b8-1943ddc65303.json
new file mode 100644
index 0000000..4c8350f
--- /dev/null
+++ b/library/imports/0f/0f61fe2e-562f-4ee4-b7b8-1943ddc65303.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子大_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1146,
+ 998,
+ 303,
+ 316
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 303,
+ 316
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.json b/library/imports/0f/0fb4aec7-ce6d-40d7-949d-563c8710f75c.json
similarity index 100%
rename from library/imports/06/06097023-184a-44ab-be97-104b5b23de45.json
rename to library/imports/0f/0fb4aec7-ce6d-40d7-949d-563c8710f75c.json
diff --git a/library/imports/58/58c32817-0174-4337-a981-3e35167eb35c.png b/library/imports/0f/0fb4aec7-ce6d-40d7-949d-563c8710f75c.png
similarity index 100%
rename from library/imports/58/58c32817-0174-4337-a981-3e35167eb35c.png
rename to library/imports/0f/0fb4aec7-ce6d-40d7-949d-563c8710f75c.png
diff --git a/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json b/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/10/109965fd-702a-461f-bfd6-53643e7f2428.json b/library/imports/10/109965fd-702a-461f-bfd6-53643e7f2428.json
new file mode 100644
index 0000000..55e5715
--- /dev/null
+++ b/library/imports/10/109965fd-702a-461f-bfd6-53643e7f2428.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁上字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1833,
+ 961,
+ 109,
+ 32
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 109,
+ 32
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/11/11a9778e-0913-47b6-8deb-252c15a5b071.json b/library/imports/11/11a9778e-0913-47b6-8deb-252c15a5b071.json
new file mode 100644
index 0000000..12cf9b7
--- /dev/null
+++ b/library/imports/11/11a9778e-0913-47b6-8deb-252c15a5b071.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出小框_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1174,
+ 616,
+ -313,
+ -95
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ -313,
+ -95
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/11/11b54394-fa53-4278-b46e-98a19c82198a.json b/library/imports/11/11b54394-fa53-4278-b46e-98a19c82198a.json
new file mode 100644
index 0000000..25ab7db
--- /dev/null
+++ b/library/imports/11/11b54394-fa53-4278-b46e-98a19c82198a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 806,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f1/f174e2e2-2556-4acb-8ccd-97f3bed5b91d.json b/library/imports/11/11bc6aa1-f82e-42c0-8581-7cc70ba6cde0.json
similarity index 84%
rename from library/imports/f1/f174e2e2-2556-4acb-8ccd-97f3bed5b91d.json
rename to library/imports/11/11bc6aa1-f82e-42c0-8581-7cc70ba6cde0.json
index b1208f2..398f9f5 100644
--- a/library/imports/f1/f174e2e2-2556-4acb-8ccd-97f3bed5b91d.json
+++ b/library/imports/11/11bc6aa1-f82e-42c0-8581-7cc70ba6cde0.json
@@ -2,7 +2,7 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "shop_1",
- "texture": "58c32817-0174-4337-a981-3e35167eb35c",
+ "texture": "0fb4aec7-ce6d-40d7-949d-563c8710f75c",
"atlas": "",
"rect": [
0,
diff --git a/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json b/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json b/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/13/13509d15-5bd8-49eb-a45a-18ba84bdf238.json b/library/imports/13/13509d15-5bd8-49eb-a45a-18ba84bdf238.json
new file mode 100644
index 0000000..836e027
--- /dev/null
+++ b/library/imports/13/13509d15-5bd8-49eb-a45a-18ba84bdf238.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "门图_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1081,
+ 0,
+ 615,
+ 93
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 615,
+ 93
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/14/14120fba-2d29-4ca3-a9f5-3154657e3ab3.json b/library/imports/14/14120fba-2d29-4ca3-a9f5-3154657e3ab3.json
new file mode 100644
index 0000000..41f8c9c
--- /dev/null
+++ b/library/imports/14/14120fba-2d29-4ca3-a9f5-3154657e3ab3.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "加按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1789,
+ 1223,
+ 76,
+ 82
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 76,
+ 82
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/14/146b6e6d-9258-4ed8-90fd-da234876d414.json b/library/imports/14/146b6e6d-9258-4ed8-90fd-da234876d414.json
new file mode 100644
index 0000000..91afb7a
--- /dev/null
+++ b/library/imports/14/146b6e6d-9258-4ed8-90fd-da234876d414.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒大_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 950,
+ 1401,
+ 284,
+ 297
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 284,
+ 297
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.json b/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.png b/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.png
deleted file mode 100644
index c9a6a59..0000000
Binary files a/library/imports/14/14a00731-8325-4675-8abd-da6b581a7266.png and /dev/null differ
diff --git a/library/imports/16/1626e32a-ce24-483c-a5e1-9b038f54039e.json b/library/imports/16/1626e32a-ce24-483c-a5e1-9b038f54039e.json
new file mode 100644
index 0000000..891d41b
--- /dev/null
+++ b/library/imports/16/1626e32a-ce24-483c-a5e1-9b038f54039e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "带锁",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 496,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/16/16b678fa-fda9-4626-8f00-01bed6771b18.json b/library/imports/16/16b678fa-fda9-4626-8f00-01bed6771b18.json
new file mode 100644
index 0000000..43948a4
--- /dev/null
+++ b/library/imports/16/16b678fa-fda9-4626-8f00-01bed6771b18.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动tuzi_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 521,
+ 314,
+ 117
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 314,
+ 117
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/16/16bd254e-2424-4135-985c-1eb20499d3d4.json b/library/imports/16/16bd254e-2424-4135-985c-1eb20499d3d4.json
new file mode 100644
index 0000000..2ed1c18
--- /dev/null
+++ b/library/imports/16/16bd254e-2424-4135-985c-1eb20499d3d4.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "第关字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1639,
+ 72,
+ 234,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 234,
+ 36
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/17/17edcc16-e0cc-4729-b696-5b6221598ff8.json b/library/imports/17/17edcc16-e0cc-4729-b696-5b6221598ff8.json
new file mode 100644
index 0000000..2571b03
--- /dev/null
+++ b/library/imports/17/17edcc16-e0cc-4729-b696-5b6221598ff8.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "闹钟图标00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 1543,
+ 235,
+ 284
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 235,
+ 284
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/18/1874d98e-d824-4728-8920-4bd26d58cca3.json b/library/imports/18/1874d98e-d824-4728-8920-4bd26d58cca3.json
new file mode 100644
index 0000000..33c0ec3
--- /dev/null
+++ b/library/imports/18/1874d98e-d824-4728-8920-4bd26d58cca3.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "继续按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1175,
+ 521,
+ 476,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 476,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/18/18969cec-52d4-45e0-87a0-761ade9fe680.json b/library/imports/18/18969cec-52d4-45e0-87a0-761ade9fe680.json
new file mode 100644
index 0000000..65876ff
--- /dev/null
+++ b/library/imports/18/18969cec-52d4-45e0-87a0-761ade9fe680.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字04_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 0,
+ 281,
+ 71
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 71
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/19/190be0d8-fe40-46bd-958c-7b55a3e36013.json b/library/imports/19/190be0d8-fe40-46bd-958c-7b55a3e36013.json
new file mode 100644
index 0000000..dda7b39
--- /dev/null
+++ b/library/imports/19/190be0d8-fe40-46bd-958c-7b55a3e36013.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效tuzi_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 803,
+ 311,
+ 116
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 116
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/19/19b26463-f899-4e89-a5c2-cc97bdf5247b.json b/library/imports/19/19b26463-f899-4e89-a5c2-cc97bdf5247b.json
new file mode 100644
index 0000000..29b561b
--- /dev/null
+++ b/library/imports/19/19b26463-f899-4e89-a5c2-cc97bdf5247b.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "园底上发光_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 482,
+ 650,
+ 638
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 650,
+ 638
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js b/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js
new file mode 100644
index 0000000..79ae736
--- /dev/null
+++ b/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js
@@ -0,0 +1,132 @@
+"use strict";
+cc._RF.push(module, '19d952d5kVBrLSzAIGeElFK', 'setUi');
+// Script/setUi.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var setUi = /** @class */ (function (_super) {
+ __extends(setUi, _super);
+ function setUi() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 0;
+ _this.music = null;
+ _this.effect = null;
+ _this.vibrate = null;
+ // mapInfo: number[][] = [];
+ _this.musicState = true;
+ _this.effectState = true;
+ _this.vibrateState = true;
+ return _this;
+ // update (dt) {}
+ }
+ setUi.prototype.onLoad = function () {
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ console.log("音乐状态", this.musicState);
+ console.log("音效状态", this.effectState);
+ console.log("震动状态", this.vibrateState);
+ this.syncToggleState();
+ };
+ setUi.prototype.start = function () {
+ };
+ setUi.prototype.init = function (time) {
+ };
+ setUi.prototype.clickMusic = function () {
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.playMusicGame();
+ }
+ };
+ setUi.prototype.setMusicConfig = function () {
+ var audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
+ };
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ };
+ setUi.prototype.clickEffect = function () {
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.clickVibrate = function () {
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.syncToggleState = function () {
+ this.music.getComponent(cc.Toggle).isChecked = !this.musicState;
+ this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;
+ this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;
+ };
+ //关闭ui
+ setUi.prototype.closeUi = function () {
+ this.node.active = false;
+ };
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "music", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "effect", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "vibrate", void 0);
+ setUi = __decorate([
+ ccclass
+ ], setUi);
+ return setUi;
+}(cc.Component));
+exports.default = setUi;
+
+cc._RF.pop();
\ No newline at end of file
diff --git a/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js.map b/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js.map
new file mode 100644
index 0000000..ff137f5
--- /dev/null
+++ b/library/imports/19/19d95d9d-e645-41ac-b4b3-00819e12514a.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["assets\\Script\\setUi.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\n\nconst { ccclass, property } = cc._decorator;\n\n\n@ccclass\nexport default class setUi extends cc.Component {\n static _instance: any;\n time: number = 0;\n\n @property(cc.Node)\n music: cc.Node = null;\n\n @property(cc.Node)\n effect: cc.Node = null;\n\n @property(cc.Node)\n vibrate: cc.Node = null;\n\n\n // mapInfo: number[][] = [];\n\n musicState: boolean = true;\n effectState: boolean = true;\n vibrateState: boolean = true;\n\n onLoad() {\n\n this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;\n this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;\n this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;\n console.log(\"音乐状态\", this.musicState);\n console.log(\"音效状态\", this.effectState);\n console.log(\"震动状态\", this.vibrateState);\n this.syncToggleState();\n }\n\n start() {\n }\n\n init(time) {\n\n }\n\n clickMusic() {\n if (this.musicState) {\n this.musicState = false;\n cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;\n\n this.setMusicConfig();\n cc.fx.AudioManager._instance.stopMusic();\n }\n else {\n this.musicState = true;\n cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;\n this.setMusicConfig();\n cc.fx.AudioManager._instance.playMusicGame();\n }\n }\n\n setMusicConfig() {\n let audioInfo = {\n \"musicOpen\": cc.fx.GameConfig.GM_INFO.musicOpen, //音乐\n \"effectOpen\": cc.fx.GameConfig.GM_INFO.effectOpen, //音效\n \"vibrateOpen\": cc.fx.GameConfig.GM_INFO.vibrateOpen, //震动\n }\n cc.fx.StorageMessage.setStorage(\"music\", audioInfo);\n }\n\n clickEffect() {\n if (this.effectState) {\n this.effectState = false;\n cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;\n this.setMusicConfig();\n }\n else {\n this.effectState = true;\n cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;\n this.setMusicConfig();\n\n }\n }\n\n clickVibrate() {\n if (this.vibrateState) {\n this.vibrateState = false;\n cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;\n this.setMusicConfig();\n\n }\n else {\n this.vibrateState = true;\n cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;\n this.setMusicConfig();\n\n }\n }\n syncToggleState() {\n this.music.getComponent(cc.Toggle).isChecked = !this.musicState;\n this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;\n this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;\n }\n\n //关闭ui\n closeUi() {\n this.node.active = false;\n }\n\n // update (dt) {}\n}\n"]}
\ No newline at end of file
diff --git a/library/imports/1a/1a2321f2-df33-4038-adde-c23574d37196.json b/library/imports/1a/1a2321f2-df33-4038-adde-c23574d37196.json
new file mode 100644
index 0000000..4b4168d
--- /dev/null
+++ b/library/imports/1a/1a2321f2-df33-4038-adde-c23574d37196.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "放弃按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 826,
+ 921,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/1a/1a665cc2-9f50-4245-9cc8-e8456a8dd8bb.json b/library/imports/1a/1a665cc2-9f50-4245-9cc8-e8456a8dd8bb.json
new file mode 100644
index 0000000..75e8b0e
--- /dev/null
+++ b/library/imports/1a/1a665cc2-9f50-4245-9cc8-e8456a8dd8bb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 638,
+ 1356,
+ 340,
+ 276
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 340,
+ 276
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.json b/library/imports/1b/1b0e3a45-c168-4de9-b34e-9f9fa9d30fef.json
similarity index 100%
rename from library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.json
rename to library/imports/1b/1b0e3a45-c168-4de9-b34e-9f9fa9d30fef.json
diff --git a/library/imports/1b/1b0e3a45-c168-4de9-b34e-9f9fa9d30fef.png b/library/imports/1b/1b0e3a45-c168-4de9-b34e-9f9fa9d30fef.png
new file mode 100644
index 0000000..1637a99
Binary files /dev/null and b/library/imports/1b/1b0e3a45-c168-4de9-b34e-9f9fa9d30fef.png differ
diff --git a/library/imports/1c/1c320cfc-927e-4914-9b26-a7e72329f689.json b/library/imports/1c/1c320cfc-927e-4914-9b26-a7e72329f689.json
new file mode 100644
index 0000000..de8c382
--- /dev/null
+++ b/library/imports/1c/1c320cfc-927e-4914-9b26-a7e72329f689.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "园底上发光",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 482,
+ 650,
+ 638
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 650,
+ 638
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.json b/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.png b/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.png
deleted file mode 100644
index 6c5b8d6..0000000
Binary files a/library/imports/1c/1c56a793-7cd3-412f-a040-8a754a2f4d41.png and /dev/null differ
diff --git a/library/imports/62/629ee23a-5227-4422-86d7-cddfb32e1d2a.json b/library/imports/1c/1ced933d-f1a4-404f-893e-46a0e0a8b47f.json
similarity index 66%
rename from library/imports/62/629ee23a-5227-4422-86d7-cddfb32e1d2a.json
rename to library/imports/1c/1ced933d-f1a4-404f-893e-46a0e0a8b47f.json
index b48493d..9281dac 100644
--- a/library/imports/62/629ee23a-5227-4422-86d7-cddfb32e1d2a.json
+++ b/library/imports/1c/1ced933d-f1a4-404f-893e-46a0e0a8b47f.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_2",
- "texture": "227db116-a70e-4157-b553-bfe8d6d18a6a",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 388,
+ 80,
25,
37
],
diff --git a/library/imports/1d/1d48621b-cc04-49f9-a618-5f4dc896960a.json b/library/imports/1d/1d48621b-cc04-49f9-a618-5f4dc896960a.json
new file mode 100644
index 0000000..a375274
--- /dev/null
+++ b/library/imports/1d/1d48621b-cc04-49f9-a618-5f4dc896960a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子小_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 693,
+ 341,
+ 124,
+ 129
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 124,
+ 129
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/45/45958bbb-14ca-46de-8371-3da25ccfb808.json b/library/imports/1d/1d62a42b-bac7-4650-b104-cd2d06726a5f.json
similarity index 62%
rename from library/imports/45/45958bbb-14ca-46de-8371-3da25ccfb808.json
rename to library/imports/1d/1d62a42b-bac7-4650-b104-cd2d06726a5f.json
index aa82e44..27227d7 100644
--- a/library/imports/45/45958bbb-14ca-46de-8371-3da25ccfb808.json
+++ b/library/imports/1d/1d62a42b-bac7-4650-b104-cd2d06726a5f.json
@@ -1,22 +1,21 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "btn1",
- "texture": "ea09c71c-5b5d-4b24-9b62-d93b291d93c2",
- "atlas": "",
+ "name": "底板00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
0,
0,
- 99,
- 531
+ 1080,
+ 113
],
"offset": [
0,
0
],
"originalSize": [
- 99,
- 531
+ 1080,
+ 113
],
"capInsets": [
0,
diff --git a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js
index 7a1b8cc..33eaba2 100644
--- a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js
+++ b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js
@@ -46,6 +46,8 @@ var NewClass = /** @class */ (function (_super) {
_this.level = null;
_this.coin = null;
_this.Stamina = null;
+ _this.lastPauseClickTime = 0; // 用于记录上次点击的时间戳
+ _this.setUi = null;
return _this;
// update (dt) {}
}
@@ -257,6 +259,27 @@ var NewClass = /** @class */ (function (_super) {
cc.fx.AudioManager._instance.playEffect("anniu_little", null);
this.node.getChildByName("Pause").active = false;
};
+ NewClass.prototype.openSet = function () {
+ var now = Date.now();
+ if (now - this.lastPauseClickTime < 300) {
+ // 0.3秒内禁止再次点击
+ return;
+ }
+ this.lastPauseClickTime = now;
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
+ cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ if (!this.setUi.active) {
+ // 第一次点击,打开并播放动画
+ this.setUi.active = true;
+ this.setUi.getComponent(cc.Animation).play();
+ }
+ else {
+ // 再次点击,关闭节点
+ this.setUi.active = false;
+ }
+ };
NewClass.prototype.closeReward = function () {
this.node.getChildByName("Reward").active = false;
};
@@ -290,6 +313,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "Stamina", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "setUi", void 0);
NewClass = __decorate([
ccclass
], NewClass);
diff --git a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js.map b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js.map
index 7acb276..66bad52 100644
--- a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js.map
+++ b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\JiaZai.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 NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\nimport { LQCollideSystem } from \"./lq_collide_system/lq_collide_system\";\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 node1: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node2: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node3: cc.Node = null;\r\n\r\n\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n @property(cc.EditBox)\r\n custom: cc.EditBox = null;\r\n\r\n\r\n\r\n @property(cc.Node)\r\n level: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n coin: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n Stamina: cc.Node = null;\r\n scheduleCallback: any;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n LQCollideSystem.is_enable = true;\r\n // console.log(\"加载关卡配置2\");\r\n // window.initMgr();\r\n GameManager._instance.Block_Color = this.Block_Color;\r\n if (cc.fx.GameConfig.GM_INFO.first) {\r\n console.log(\"————————准备注册事件\", cc.fx.GameConfig.GM_INFO.openid);\r\n if (cc.fx.GameConfig.GM_INFO.openid != \"\") {\r\n console.log(\"————————发送注册事件\");\r\n cc.fx.GameTool.shushu_Track(\"register\");\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.first = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }, 1000);\r\n\r\n }\r\n }\r\n\r\n start() {\r\n // console.log(\"已经进入Home界面\");\r\n // console.log(\"金币\",cc.fx.GameConfig.GM_INFO.coin);\r\n // console.log(\"关卡\",cc.fx.GameConfig.GM_INFO.level+1);\r\n\r\n cc.fx.GameTool.getHealth(null);\r\n // cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n setTimeout(() => {\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, \"big_\", this.level, false);\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n this.setHealthInfo();\r\n }, 0);\r\n if (cc.fx.GameConfig.GM_INFO.gameState) {\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n setTimeout(() => {\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\" && !cc.fx.GameConfig.GM_INFO.first) {\r\n // 动画播放结束后执行的逻辑\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n }, 500);\r\n }\r\n else {\r\n if (!cc.fx.GameConfig.GM_INFO.first)\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n\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 (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\r\n cc.fx.GameTool.setUserHealth(1, (data) => {\r\n cc.fx.GameTool.getHealth(null);\r\n this.setHealthInfo();\r\n })\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.min_Time -= 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\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 setHealthInfo() {\r\n if (cc.fx.GameConfig.GM_INFO.hp == 5) {\r\n this.Stamina.getChildByName(\"man\").active = true;\r\n this.Stamina.getChildByName(\"health\").active = false;\r\n this.Stamina.getChildByName(\"time\").active = false;\r\n }\r\n else {\r\n this.Stamina.getChildByName(\"man\").active = false;\r\n this.Stamina.getChildByName(\"health\").active = true;\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, \"coin_\", this.Stamina.getChildByName(\"health\"), false);\r\n this.Stamina.getChildByName(\"time\").active = true;\r\n if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {\r\n let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = time;\r\n this.startTimeCutDown();\r\n }\r\n }\r\n }\r\n\r\n\r\n startGame() {\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.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\")._touch) {\r\n this.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\").setTouch(false);\r\n // if(this.custom.string != \"\"){\r\n // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;\r\n // // cc.fx.StorageMessage.setStorage(\"level\",cc.fx.GameConfig.GM_INFO.level.toString()); \r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n // }\r\n // else{\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);\r\n // }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeRank() {\r\n this.node.getChildByName(\"Rank\").active = false;\r\n }\r\n\r\n openRank() {\r\n this.node.getChildByName(\"Rank\").active = true;\r\n }\r\n\r\n openReward() {\r\n this.node.getChildByName(\"Reward\").active = true;\r\n }\r\n\r\n clickShop() {\r\n // 假设已经获取到了 userId 和 productId\r\n const userId = cc.fx.GameConfig.GM_INFO.openid;\r\n const productId = '1';\r\n console.log(\"即将创建createorder\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: \"createOrder\",\r\n data: {\r\n \"userId\": userId,\r\n \"productId\": productId,\r\n },\r\n success: (res) => {\r\n // 取得云函数返回的订单信息\r\n console.log(\"createOrder结果:\", res.result);\r\n const payment = res.result.paymentResult.payment;\r\n console.log(\"payment:\", payment);\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n wx.requestPayment({\r\n // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间\r\n timeStamp: payment.timeStamp,\r\n // 随机字符串,长度为32个字符以下\r\n nonceStr: payment.nonceStr,\r\n // 统一下单接口返回的 prepay_id 参数值\r\n package: payment.package,\r\n // 签名算法,暂支持 MD5、HMAC-SHA256\r\n signType: payment.signType || 'MD5',\r\n // 支付签名\r\n paySign: payment.paySign,\r\n success(res) {\r\n /* 成功回调 */\r\n console.log(\"支付成功\", res);\r\n },\r\n fail(res) {\r\n /* 失败回调 */\r\n console.log(\"支付失败\", res);\r\n },\r\n complete(res) {\r\n console.log(\"支付完成\", res);\r\n }\r\n });\r\n },\r\n });\r\n }\r\n\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n console.log(cc.fx.GameConfig.GM_INFO);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n console.log(cc.fx.GameConfig.GM_INFO.openid);\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n this.node.getChildByName(\"Pause\").active = true;\r\n this.node.getChildByName(\"Pause\").getChildByName(\"openID\").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n\r\n }\r\n\r\n closeReward() {\r\n this.node.getChildByName(\"Reward\").active = false;\r\n }\r\n\r\n openStamina() {\r\n this.node.getChildByName(\"Stamina\").active = true;\r\n }\r\n\r\n closeStamina() {\r\n this.node.getChildByName(\"Stamina\").active = false;\r\n }\r\n\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\JiaZai.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 NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\nimport { LQCollideSystem } from \"./lq_collide_system/lq_collide_system\";\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 node1: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node2: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node3: cc.Node = null;\r\n\r\n\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n @property(cc.EditBox)\r\n custom: cc.EditBox = null;\r\n\r\n\r\n\r\n @property(cc.Node)\r\n level: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n coin: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n Stamina: cc.Node = null;\r\n scheduleCallback: any;\r\n private lastPauseClickTime: number = 0; // 用于记录上次点击的时间戳\r\n\r\n @property(cc.Node)\r\n setUi: cc.Node = null;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n LQCollideSystem.is_enable = true;\r\n // console.log(\"加载关卡配置2\");\r\n // window.initMgr();\r\n GameManager._instance.Block_Color = this.Block_Color;\r\n if (cc.fx.GameConfig.GM_INFO.first) {\r\n console.log(\"————————准备注册事件\", cc.fx.GameConfig.GM_INFO.openid);\r\n if (cc.fx.GameConfig.GM_INFO.openid != \"\") {\r\n console.log(\"————————发送注册事件\");\r\n cc.fx.GameTool.shushu_Track(\"register\");\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.first = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }, 1000);\r\n\r\n }\r\n }\r\n\r\n start() {\r\n // console.log(\"已经进入Home界面\");\r\n // console.log(\"金币\",cc.fx.GameConfig.GM_INFO.coin);\r\n // console.log(\"关卡\",cc.fx.GameConfig.GM_INFO.level+1);\r\n\r\n cc.fx.GameTool.getHealth(null);\r\n // cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n setTimeout(() => {\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, \"big_\", this.level, false);\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n this.setHealthInfo();\r\n }, 0);\r\n if (cc.fx.GameConfig.GM_INFO.gameState) {\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n setTimeout(() => {\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\" && !cc.fx.GameConfig.GM_INFO.first) {\r\n // 动画播放结束后执行的逻辑\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n }, 500);\r\n }\r\n else {\r\n if (!cc.fx.GameConfig.GM_INFO.first)\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n\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 (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\r\n cc.fx.GameTool.setUserHealth(1, (data) => {\r\n cc.fx.GameTool.getHealth(null);\r\n this.setHealthInfo();\r\n })\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.min_Time -= 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\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 setHealthInfo() {\r\n if (cc.fx.GameConfig.GM_INFO.hp == 5) {\r\n this.Stamina.getChildByName(\"man\").active = true;\r\n this.Stamina.getChildByName(\"health\").active = false;\r\n this.Stamina.getChildByName(\"time\").active = false;\r\n }\r\n else {\r\n this.Stamina.getChildByName(\"man\").active = false;\r\n this.Stamina.getChildByName(\"health\").active = true;\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, \"coin_\", this.Stamina.getChildByName(\"health\"), false);\r\n this.Stamina.getChildByName(\"time\").active = true;\r\n if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {\r\n let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = time;\r\n this.startTimeCutDown();\r\n }\r\n }\r\n }\r\n\r\n\r\n startGame() {\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.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\")._touch) {\r\n this.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\").setTouch(false);\r\n // if(this.custom.string != \"\"){\r\n // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;\r\n // // cc.fx.StorageMessage.setStorage(\"level\",cc.fx.GameConfig.GM_INFO.level.toString()); \r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n // }\r\n // else{\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);\r\n // }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeRank() {\r\n this.node.getChildByName(\"Rank\").active = false;\r\n }\r\n\r\n openRank() {\r\n this.node.getChildByName(\"Rank\").active = true;\r\n }\r\n\r\n openReward() {\r\n this.node.getChildByName(\"Reward\").active = true;\r\n }\r\n\r\n clickShop() {\r\n // 假设已经获取到了 userId 和 productId\r\n const userId = cc.fx.GameConfig.GM_INFO.openid;\r\n const productId = '1';\r\n console.log(\"即将创建createorder\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: \"createOrder\",\r\n data: {\r\n \"userId\": userId,\r\n \"productId\": productId,\r\n },\r\n success: (res) => {\r\n // 取得云函数返回的订单信息\r\n console.log(\"createOrder结果:\", res.result);\r\n const payment = res.result.paymentResult.payment;\r\n console.log(\"payment:\", payment);\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n wx.requestPayment({\r\n // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间\r\n timeStamp: payment.timeStamp,\r\n // 随机字符串,长度为32个字符以下\r\n nonceStr: payment.nonceStr,\r\n // 统一下单接口返回的 prepay_id 参数值\r\n package: payment.package,\r\n // 签名算法,暂支持 MD5、HMAC-SHA256\r\n signType: payment.signType || 'MD5',\r\n // 支付签名\r\n paySign: payment.paySign,\r\n success(res) {\r\n /* 成功回调 */\r\n console.log(\"支付成功\", res);\r\n },\r\n fail(res) {\r\n /* 失败回调 */\r\n console.log(\"支付失败\", res);\r\n },\r\n complete(res) {\r\n console.log(\"支付完成\", res);\r\n }\r\n });\r\n },\r\n });\r\n }\r\n\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n console.log(cc.fx.GameConfig.GM_INFO);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n console.log(cc.fx.GameConfig.GM_INFO.openid);\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n this.node.getChildByName(\"Pause\").active = true;\r\n this.node.getChildByName(\"Pause\").getChildByName(\"openID\").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n\r\n }\r\n\r\n openSet() {\r\n const now = Date.now();\r\n if (now - this.lastPauseClickTime < 300) {\r\n // 0.3秒内禁止再次点击\r\n return;\r\n }\r\n this.lastPauseClickTime = now;\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n if (!this.setUi.active) {\r\n // 第一次点击,打开并播放动画\r\n this.setUi.active = true;\r\n this.setUi.getComponent(cc.Animation).play();\r\n } else {\r\n // 再次点击,关闭节点\r\n this.setUi.active = false;\r\n }\r\n }\r\n\r\n closeReward() {\r\n this.node.getChildByName(\"Reward\").active = false;\r\n }\r\n\r\n openStamina() {\r\n this.node.getChildByName(\"Stamina\").active = true;\r\n }\r\n\r\n closeStamina() {\r\n this.node.getChildByName(\"Stamina\").active = false;\r\n }\r\n\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
diff --git a/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.json b/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.png b/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.png
deleted file mode 100644
index e297f01..0000000
Binary files a/library/imports/1e/1e3dbd9c-6c1c-420b-9320-e27f3195e6d0.png and /dev/null differ
diff --git a/library/imports/1e/1eb403a3-afe5-427d-b626-31b0479127ee.json b/library/imports/1e/1eb403a3-afe5-427d-b626-31b0479127ee.json
new file mode 100644
index 0000000..387a71b
--- /dev/null
+++ b/library/imports/1e/1eb403a3-afe5-427d-b626-31b0479127ee.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒小",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1659,
+ 1574,
+ 113,
+ 118
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 113,
+ 118
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/1f/1f276159-e912-4d49-84ba-58a42da0ebf6.json b/library/imports/1f/1f276159-e912-4d49-84ba-58a42da0ebf6.json
new file mode 100644
index 0000000..af3086d
--- /dev/null
+++ b/library/imports/1f/1f276159-e912-4d49-84ba-58a42da0ebf6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "继续按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1175,
+ 521,
+ 476,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 476,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/1f/1f4d1b0e-aa19-43f1-b131-709124791670.json b/library/imports/1f/1f4d1b0e-aa19-43f1-b131-709124791670.json
new file mode 100644
index 0000000..6ff67b1
--- /dev/null
+++ b/library/imports/1f/1f4d1b0e-aa19-43f1-b131-709124791670.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁关卡数字小",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1630,
+ 920,
+ 269,
+ 37
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 269,
+ 37
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/21/215fb691-669a-45cc-9a64-b119c772a8e8.json b/library/imports/21/215fb691-669a-45cc-9a64-b119c772a8e8.json
new file mode 100644
index 0000000..4f5a4eb
--- /dev/null
+++ b/library/imports/21/215fb691-669a-45cc-9a64-b119c772a8e8.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1340,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/21/21c98909-45c0-4733-aa79-d55bc77f8052.json b/library/imports/21/21c98909-45c0-4733-aa79-d55bc77f8052.json
new file mode 100644
index 0000000..65b20c4
--- /dev/null
+++ b/library/imports/21/21c98909-45c0-4733-aa79-d55bc77f8052.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "第关字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1639,
+ 72,
+ 234,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 234,
+ 36
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/22/222678a4-a7e0-45e2-b02b-d7a292a62285.json b/library/imports/22/222678a4-a7e0-45e2-b02b-d7a292a62285.json
new file mode 100644
index 0000000..c0764d9
--- /dev/null
+++ b/library/imports/22/222678a4-a7e0-45e2-b02b-d7a292a62285.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字05_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 920,
+ 289,
+ 72
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 289,
+ 72
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
index bc7e672..daccad8 100644
--- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
+++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js
@@ -145,12 +145,14 @@ var MapConroler = /** @class */ (function (_super) {
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
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);
// 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);
+ console.log("当前关卡", cc.fx.GameConfig.GM_INFO.level + 1);
//this.startTimeCutDown();
this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];
this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];
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 37fdef4..f478b8a 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\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\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\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
diff --git a/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.json b/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/23/23e682eb-41eb-41b3-8142-19fef70bbb1e.json b/library/imports/23/23e682eb-41eb-41b3-8142-19fef70bbb1e.json
new file mode 100644
index 0000000..f4a5f71
--- /dev/null
+++ b/library/imports/23/23e682eb-41eb-41b3-8142-19fef70bbb1e.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "返回主界面按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1001,
+ 867,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/25/251b2233-690e-4ca4-8ce9-c5f8bdf2e6a3.json b/library/imports/25/251b2233-690e-4ca4-8ce9-c5f8bdf2e6a3.json
new file mode 100644
index 0000000..97ae2bc
--- /dev/null
+++ b/library/imports/25/251b2233-690e-4ca4-8ce9-c5f8bdf2e6a3.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出框关闭按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1789,
+ 1306,
+ 65,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 65,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.json b/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.png b/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.png
deleted file mode 100644
index e33b0d6..0000000
Binary files a/library/imports/27/270ef871-ac9d-4ba7-91d1-7d7624c3aed9.png and /dev/null differ
diff --git a/library/imports/28/2814cb8b-adc1-4d46-a7cb-48665bebf9bc.json b/library/imports/28/2814cb8b-adc1-4d46-a7cb-48665bebf9bc.json
new file mode 100644
index 0000000..29c4c3f
--- /dev/null
+++ b/library/imports/28/2814cb8b-adc1-4d46-a7cb-48665bebf9bc.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字10_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1001,
+ 284,
+ 582,
+ 55
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 582,
+ 55
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b8/b8df47eb-4775-44ce-b2fc-5b694bcaaf2f.json b/library/imports/28/28d1f867-0c60-4108-b244-7737d4644aa0.json
similarity index 61%
rename from library/imports/b8/b8df47eb-4775-44ce-b2fc-5b694bcaaf2f.json
rename to library/imports/28/28d1f867-0c60-4108-b244-7737d4644aa0.json
index 725494c..7d081d1 100644
--- a/library/imports/b8/b8df47eb-4775-44ce-b2fc-5b694bcaaf2f.json
+++ b/library/imports/28/28d1f867-0c60-4108-b244-7737d4644aa0.json
@@ -1,14 +1,13 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "tx",
- "texture": "a7020897-1d42-416a-ab6f-b99429684626",
- "atlas": "",
+ "name": "头像底图",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1668,
+ 307,
188,
- 207
+ 198
],
"offset": [
0,
@@ -16,8 +15,9 @@
],
"originalSize": [
188,
- 207
+ 198
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/b7/b7e6594c-63af-4309-87ee-b9f1476a9d4b.json b/library/imports/29/2934e269-db62-4cd7-9c0c-c4c9358cfaa6.json
similarity index 66%
rename from library/imports/b7/b7e6594c-63af-4309-87ee-b9f1476a9d4b.json
rename to library/imports/29/2934e269-db62-4cd7-9c0c-c4c9358cfaa6.json
index e2843eb..b6c342a 100644
--- a/library/imports/b7/b7e6594c-63af-4309-87ee-b9f1476a9d4b.json
+++ b/library/imports/29/2934e269-db62-4cd7-9c0c-c4c9358cfaa6.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_4",
- "texture": "f1cd9c7b-a0b7-41fc-94c2-db60d6a51281",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 358,
+ 80,
28,
37
],
diff --git a/library/imports/2a/2a0977c4-0886-4e75-aee9-25002bdcb297.json b/library/imports/2a/2a0977c4-0886-4e75-aee9-25002bdcb297.json
new file mode 100644
index 0000000..bcf1a71
--- /dev/null
+++ b/library/imports/2a/2a0977c4-0886-4e75-aee9-25002bdcb297.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1591,
+ 1230,
+ 73,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 73,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2a/2a3d6cb9-85e3-4e5f-bd62-f7ecd3f9c2c1.json b/library/imports/2a/2a3d6cb9-85e3-4e5f-bd62-f7ecd3f9c2c1.json
new file mode 100644
index 0000000..3e5bbe6
--- /dev/null
+++ b/library/imports/2a/2a3d6cb9-85e3-4e5f-bd62-f7ecd3f9c2c1.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "已满字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1791,
+ 1145,
+ 72,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 36
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2b/2b92a3b8-a03c-4f03-b4c4-d1246ce976d7.json b/library/imports/2b/2b92a3b8-a03c-4f03-b4c4-d1246ce976d7.json
new file mode 100644
index 0000000..da1c15b
--- /dev/null
+++ b/library/imports/2b/2b92a3b8-a03c-4f03-b4c4-d1246ce976d7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒小",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1659,
+ 1574,
+ 113,
+ 118
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 113,
+ 118
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2b/2ba6206f-a68c-48c4-b91b-41f435367121.json b/library/imports/2b/2ba6206f-a68c-48c4-b91b-41f435367121.json
new file mode 100644
index 0000000..7d206fd
--- /dev/null
+++ b/library/imports/2b/2ba6206f-a68c-48c4-b91b-41f435367121.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒小_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1659,
+ 1574,
+ 113,
+ 118
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 113,
+ 118
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2c/2c6f95ed-6d6d-4701-b84a-21611c5a06eb.json b/library/imports/2c/2c6f95ed-6d6d-4701-b84a-21611c5a06eb.json
new file mode 100644
index 0000000..c136ea3
--- /dev/null
+++ b/library/imports/2c/2c6f95ed-6d6d-4701-b84a-21611c5a06eb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "dikuang00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 114,
+ 1056,
+ 169
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1056,
+ 169
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2c/2ccededa-25d9-459b-b4cc-180f71680e58.json b/library/imports/2c/2ccededa-25d9-459b-b4cc-180f71680e58.json
new file mode 100644
index 0000000..f55e5cc
--- /dev/null
+++ b/library/imports/2c/2ccededa-25d9-459b-b4cc-180f71680e58.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "闹钟图标00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 1543,
+ 235,
+ 284
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 235,
+ 284
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2d/2d594cf6-926d-4b3a-968e-e830dba99ccd.json b/library/imports/2d/2d594cf6-926d-4b3a-968e-e830dba99ccd.json
new file mode 100644
index 0000000..7cee8d7
--- /dev/null
+++ b/library/imports/2d/2d594cf6-926d-4b3a-968e-e830dba99ccd.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1457,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2e/2e666e6c-64b1-4289-a6d6-ae76945a7e74.json b/library/imports/2e/2e666e6c-64b1-4289-a6d6-ae76945a7e74.json
new file mode 100644
index 0000000..57187a4
--- /dev/null
+++ b/library/imports/2e/2e666e6c-64b1-4289-a6d6-ae76945a7e74.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "进入关卡按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1175,
+ 0,
+ 520,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 520,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2e/2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92.json b/library/imports/2e/2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92.json
new file mode 100644
index 0000000..23db61e
--- /dev/null
+++ b/library/imports/2e/2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1791,
+ 1106,
+ 72,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/2f/2f4368dd-b62d-4dae-90e8-6c1a0ccba85a.json b/library/imports/2f/2f4368dd-b62d-4dae-90e8-6c1a0ccba85a.json
new file mode 100644
index 0000000..63e4427
--- /dev/null
+++ b/library/imports/2f/2f4368dd-b62d-4dae-90e8-6c1a0ccba85a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1223,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/88/88efa2bb-2d4d-49c9-ae8b-cf4c3154cfbe.json b/library/imports/2f/2f5b7b7c-5329-4e26-bc0d-869df502b262.json
similarity index 67%
rename from library/imports/88/88efa2bb-2d4d-49c9-ae8b-cf4c3154cfbe.json
rename to library/imports/2f/2f5b7b7c-5329-4e26-bc0d-869df502b262.json
index 175b13f..725e434 100644
--- a/library/imports/88/88efa2bb-2d4d-49c9-ae8b-cf4c3154cfbe.json
+++ b/library/imports/2f/2f5b7b7c-5329-4e26-bc0d-869df502b262.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz7",
- "texture": "47d4dd52-9152-4724-ab77-4e9d15e14c2e",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 270,
+ 64,
42,
59
],
diff --git a/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.json b/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.png b/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.png
deleted file mode 100644
index 657c86c..0000000
Binary files a/library/imports/30/30543705-d10e-4279-a2fb-d2225b570bb4.png and /dev/null differ
diff --git a/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json b/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.png b/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.png
deleted file mode 100644
index db24d6d..0000000
Binary files a/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.png and /dev/null differ
diff --git a/library/imports/5d/5d07235b-2f5d-48b7-996f-96c720a1b95d.json b/library/imports/30/30b3ef49-bd7e-47a6-84b2-da05678348a6.json
similarity index 67%
rename from library/imports/5d/5d07235b-2f5d-48b7-996f-96c720a1b95d.json
rename to library/imports/30/30b3ef49-bd7e-47a6-84b2-da05678348a6.json
index 7dcf2c2..c900561 100644
--- a/library/imports/5d/5d07235b-2f5d-48b7-996f-96c720a1b95d.json
+++ b/library/imports/30/30b3ef49-bd7e-47a6-84b2-da05678348a6.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_6",
- "texture": "c8b66182-996c-4377-8d0a-024d8b17e581",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 380,
+ 1,
26,
38
],
diff --git a/library/imports/30/30f6b96c-aa95-400f-8021-19dd72d5f0f6.json b/library/imports/30/30f6b96c-aa95-400f-8021-19dd72d5f0f6.json
new file mode 100644
index 0000000..e9018b6
--- /dev/null
+++ b/library/imports/30/30f6b96c-aa95-400f-8021-19dd72d5f0f6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "圆底01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 1276,
+ 516,
+ 516
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 516,
+ 516
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b3/b3ba5b71-7bdb-4a06-8c79-54b3e60d190d.json b/library/imports/31/3109fbd4-cfef-48a7-ac0f-56fb5fe101c7.json
similarity index 67%
rename from library/imports/b3/b3ba5b71-7bdb-4a06-8c79-54b3e60d190d.json
rename to library/imports/31/3109fbd4-cfef-48a7-ac0f-56fb5fe101c7.json
index e7e1bfa..9e4269d 100644
--- a/library/imports/b3/b3ba5b71-7bdb-4a06-8c79-54b3e60d190d.json
+++ b/library/imports/31/3109fbd4-cfef-48a7-ac0f-56fb5fe101c7.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz2",
- "texture": "1217c0be-cc7e-41be-b105-7c26baf444ff",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 26,
+ 72,
44,
50
],
diff --git a/library/imports/32/322ae6c1-f061-4d9c-877d-c3df43680c6c.json b/library/imports/32/322ae6c1-f061-4d9c-877d-c3df43680c6c.json
new file mode 100644
index 0000000..ee113b5
--- /dev/null
+++ b/library/imports/32/322ae6c1-f061-4d9c-877d-c3df43680c6c.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "返回主界面按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1001,
+ 867,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/11/1191b1ec-7ce1-42dd-9f3f-6f47cd855b13.json b/library/imports/32/32b9646c-8d48-436a-ba18-a23e046b7885.json
similarity index 59%
rename from library/imports/11/1191b1ec-7ce1-42dd-9f3f-6f47cd855b13.json
rename to library/imports/32/32b9646c-8d48-436a-ba18-a23e046b7885.json
index 4a85141..7f95a4b 100644
--- a/library/imports/11/1191b1ec-7ce1-42dd-9f3f-6f47cd855b13.json
+++ b/library/imports/32/32b9646c-8d48-436a-ba18-a23e046b7885.json
@@ -1,23 +1,23 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "coins3",
- "texture": "49148440-dbc5-4936-b168-ac7707f80098",
- "atlas": "",
+ "name": "门图",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
+ 1081,
0,
- 0,
- 189,
- 165
+ 615,
+ 93
],
"offset": [
0,
0
],
"originalSize": [
- 189,
- 165
+ 615,
+ 93
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/32/32d1a14c-7d5e-40f4-a4f2-bf842d16e688.json b/library/imports/32/32d1a14c-7d5e-40f4-a4f2-bf842d16e688.json
new file mode 100644
index 0000000..57225ba
--- /dev/null
+++ b/library/imports/32/32d1a14c-7d5e-40f4-a4f2-bf842d16e688.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐tuzi",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 702,
+ 311,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/32/32da3ed8-e488-4ee4-a2b5-9f8d856188d1.json b/library/imports/32/32da3ed8-e488-4ee4-a2b5-9f8d856188d1.json
new file mode 100644
index 0000000..f1ca528
--- /dev/null
+++ b/library/imports/32/32da3ed8-e488-4ee4-a2b5-9f8d856188d1.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "门图_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1081,
+ 0,
+ 615,
+ 93
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 615,
+ 93
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/33/330e6f4d-b16c-4cf2-9791-e10d7a7b5166.json b/library/imports/33/330e6f4d-b16c-4cf2-9791-e10d7a7b5166.json
new file mode 100644
index 0000000..c635610
--- /dev/null
+++ b/library/imports/33/330e6f4d-b16c-4cf2-9791-e10d7a7b5166.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子小",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 693,
+ 341,
+ 124,
+ 129
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 124,
+ 129
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/33/33c46527-8045-48ce-889f-e8afe935ddd7.json b/library/imports/33/33c46527-8045-48ce-889f-e8afe935ddd7.json
new file mode 100644
index 0000000..2538b44
--- /dev/null
+++ b/library/imports/33/33c46527-8045-48ce-889f-e8afe935ddd7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "每日奖励图标",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 307,
+ 199,
+ 215
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 199,
+ 215
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/34/3447e7f6-81b2-4bd4-809f-340093f9b1c4.json b/library/imports/34/3447e7f6-81b2-4bd4-809f-340093f9b1c4.json
new file mode 100644
index 0000000..97426a2
--- /dev/null
+++ b/library/imports/34/3447e7f6-81b2-4bd4-809f-340093f9b1c4.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "退出按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1676,
+ 155,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/35/35a64972-8946-4c78-8db9-d869da9c6838.json b/library/imports/35/35a64972-8946-4c78-8db9-d869da9c6838.json
new file mode 100644
index 0000000..143794b
--- /dev/null
+++ b/library/imports/35/35a64972-8946-4c78-8db9-d869da9c6838.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1223,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/37/373b1886-4974-4bc1-97c8-1a87410cf7fe.json b/library/imports/37/373b1886-4974-4bc1-97c8-1a87410cf7fe.json
new file mode 100644
index 0000000..4da468e
--- /dev/null
+++ b/library/imports/37/373b1886-4974-4bc1-97c8-1a87410cf7fe.json
@@ -0,0 +1,410 @@
+{
+ "__type__": "cc.SpriteAtlas",
+ "_name": "commonUi-0.plist",
+ "_objFlags": 0,
+ "_native": "",
+ "_spriteFrames": {
+ "底板00": {
+ "__uuid__": "b805a15e-9ae8-42f5-96e7-d17966806b11"
+ },
+ "底板00_1": {
+ "__uuid__": "d229cc47-8fde-407c-8a0a-986e6a7db207"
+ },
+ "dikuang00": {
+ "__uuid__": "2c6f95ed-6d6d-4701-b84a-21611c5a06eb"
+ },
+ "dikuang00_1": {
+ "__uuid__": "504647c0-4bb4-4edd-b02d-5a20a94e12d5"
+ },
+ "字03": {
+ "__uuid__": "93bd4730-60db-4373-85f3-31319264dfe8"
+ },
+ "字03_1": {
+ "__uuid__": "a1fb2f86-4cae-43ef-a0f2-c51314cf5f88"
+ },
+ "字08": {
+ "__uuid__": "0ac0870c-5ce8-4701-9dee-cde7f199e65d"
+ },
+ "字08_1": {
+ "__uuid__": "fb464ead-bb30-4e08-83e0-8e689a06a849"
+ },
+ "园底上发光": {
+ "__uuid__": "9c320ec0-85b1-45cc-ad32-be7b17fbfb76"
+ },
+ "园底上发光_1": {
+ "__uuid__": "19b26463-f899-4e89-a5c2-cc97bdf5247b"
+ },
+ "按钮00": {
+ "__uuid__": "3a923142-3750-4390-bb5f-f642ffa563e3"
+ },
+ "按钮00_1": {
+ "__uuid__": "b9eda2af-71ff-494d-8914-ec65eadd1aaf"
+ },
+ "重试按钮": {
+ "__uuid__": "8d554be7-4923-4539-986e-0f26f8c1ef33"
+ },
+ "门图": {
+ "__uuid__": "75abc382-3760-477c-850a-15dab855dcfa"
+ },
+ "门图_1": {
+ "__uuid__": "32da3ed8-e488-4ee4-a2b5-9f8d856188d1"
+ },
+ "tiaodik": {
+ "__uuid__": "7253fc88-be8f-46c1-933b-0b730a63e20b"
+ },
+ "tiaodik_1": {
+ "__uuid__": "38691690-4f54-4034-9b99-d9720dbba35a"
+ },
+ "字10": {
+ "__uuid__": "bb39499a-feb7-4eab-bbf3-46ac003c3f9a"
+ },
+ "字10_1": {
+ "__uuid__": "47f47555-9e12-4a89-9caf-853c3958b409"
+ },
+ "进入关卡按钮": {
+ "__uuid__": "f37d06c1-f7b0-4795-baa7-178fde594ebb"
+ },
+ "进入关卡按钮_1": {
+ "__uuid__": "57dbc606-d1de-4b3b-be2e-cfde135d67e2"
+ },
+ "圆底01": {
+ "__uuid__": "cd139bc7-45e1-4ae7-9f45-0df7959c1acf"
+ },
+ "圆底01_1": {
+ "__uuid__": "30f6b96c-aa95-400f-8021-19dd72d5f0f6"
+ },
+ "继续按钮": {
+ "__uuid__": "1874d98e-d824-4728-8920-4bd26d58cca3"
+ },
+ "继续按钮_1": {
+ "__uuid__": "f04ef342-a164-45cd-9518-bc29549d3ec6"
+ },
+ "返回主界面按钮": {
+ "__uuid__": "3f086564-1703-4059-b4ae-14a64b816796"
+ },
+ "返回主界面按钮_1": {
+ "__uuid__": "23e682eb-41eb-41b3-8142-19fef70bbb1e"
+ },
+ "放弃按钮": {
+ "__uuid__": "1a2321f2-df33-4038-adde-c23574d37196"
+ },
+ "放弃按钮_1": {
+ "__uuid__": "f2ba433f-c9a0-4fdf-aec0-554824ad093a"
+ },
+ "关卡数字01": {
+ "__uuid__": "ea2f7320-1e7c-42a9-a5ad-5a2652ce6202"
+ },
+ "关卡数字01_1": {
+ "__uuid__": "6c090df3-7b95-4560-9ebb-5360c75f7cf8"
+ },
+ "字00": {
+ "__uuid__": "b9e660da-3e10-4c1f-af72-45fbf377aafd"
+ },
+ "字00_1": {
+ "__uuid__": "5696b755-64e0-46ff-962f-6fcadd7dd3d5"
+ },
+ "数字小": {
+ "__uuid__": "faa786a0-c837-4c24-8fcb-fd92090b7b5b"
+ },
+ "数字小_1": {
+ "__uuid__": "a015f272-ef06-472d-9ed0-51df191c80b7"
+ },
+ "字01": {
+ "__uuid__": "54ded0b7-c64c-468c-abfa-1d5b85cc9b9f"
+ },
+ "字01_1": {
+ "__uuid__": "e3c8057d-feeb-4082-9e5d-3dd19199d230"
+ },
+ "数字02": {
+ "__uuid__": "4c3f9fb1-3057-4aaf-8e6e-a0e8626ab5f7"
+ },
+ "数字02_1": {
+ "__uuid__": "46e3843a-0a3e-4a70-8658-83259b9ad67c"
+ },
+ "字07": {
+ "__uuid__": "0af874ae-102c-433e-9f65-3a0249719010"
+ },
+ "字07_1": {
+ "__uuid__": "ccfde84e-efcc-439a-8301-54c0bd11a7e8"
+ },
+ "心图标01": {
+ "__uuid__": "f071c7d7-0c90-4153-95fc-ac0b14403538"
+ },
+ "心图标01_1": {
+ "__uuid__": "5cbb7099-0ac0-42e6-a788-39178eaf6607"
+ },
+ "字11": {
+ "__uuid__": "7c6c2281-72d1-4217-81e1-77b9c86910a1"
+ },
+ "字11_1": {
+ "__uuid__": "5e8fa3c3-fbf0-426e-83a2-0dd8d9d926ed"
+ },
+ "数字03": {
+ "__uuid__": "8bc7338d-8134-4b6b-bee0-6e714308e5b6"
+ },
+ "数字03_1": {
+ "__uuid__": "67952f97-79a4-4a3c-a14a-8a588c61eb6b"
+ },
+ "锤子大": {
+ "__uuid__": "4e722158-05c5-4834-83de-d719f7cf1749"
+ },
+ "锤子大_1": {
+ "__uuid__": "0f61fe2e-562f-4ee4-b7b8-1943ddc65303"
+ },
+ "震动tuzi": {
+ "__uuid__": "5ccbd7b2-837d-4ff6-a2fd-f4bc7335037b"
+ },
+ "震动tuzi_1": {
+ "__uuid__": "16b678fa-fda9-4626-8f00-01bed6771b18"
+ },
+ "ditu00": {
+ "__uuid__": "01c52e25-2b5d-4a2d-bcee-60913a9b83e6"
+ },
+ "ditu00_1": {
+ "__uuid__": "59800a22-36b4-4f4c-a6fa-c663d14acc2e"
+ },
+ "音乐tuzi": {
+ "__uuid__": "5fe46c32-e783-41e6-9a84-50c19003b188"
+ },
+ "音乐tuzi_1": {
+ "__uuid__": "97a6b663-88e0-4b9b-878b-c0c612e14a5c"
+ },
+ "音效tuzi": {
+ "__uuid__": "9e7374d1-86e6-4b34-aac0-5995743b4b33"
+ },
+ "音效tuzi_1": {
+ "__uuid__": "c089d57e-d036-423a-ac1b-55cac40e7691"
+ },
+ "五星棒大": {
+ "__uuid__": "e7a8382c-c44b-4866-947e-b066a6076bcb"
+ },
+ "五星棒大_1": {
+ "__uuid__": "fd3fe304-5907-4cc0-9eb5-e0c3032479f5"
+ },
+ "冰冻时钟大": {
+ "__uuid__": "e0440b96-7c7b-482b-8694-231ffe70bdfd"
+ },
+ "冰冻时钟大_1": {
+ "__uuid__": "7a0d6aa9-2980-4985-9036-9a4a425603be"
+ },
+ "字05": {
+ "__uuid__": "036994a9-0dc2-493c-8a5b-5f9dc95e6c76"
+ },
+ "字05_1": {
+ "__uuid__": "222678a4-a7e0-45e2-b02b-d7a292a62285"
+ },
+ "闹钟图标00": {
+ "__uuid__": "62e56e7a-ac0b-477d-a226-a80b3bf7a5fd"
+ },
+ "闹钟图标00_1": {
+ "__uuid__": "17edcc16-e0cc-4729-b696-5b6221598ff8"
+ },
+ "字02": {
+ "__uuid__": "d8902812-2210-4ce7-aecf-e93c1aba806d"
+ },
+ "字02_1": {
+ "__uuid__": "55943a12-6929-4956-a6cd-20ac058b1c49"
+ },
+ "字09": {
+ "__uuid__": "5b40d22b-faa1-4d5e-9e71-9dd032552e79"
+ },
+ "字09_1": {
+ "__uuid__": "a82c351b-9b93-45d0-b3f8-8aebe0f0cbae"
+ },
+ "字04": {
+ "__uuid__": "9eff1bc5-32de-45b9-b78b-2842b03e5ac6"
+ },
+ "字04_1": {
+ "__uuid__": "3fe5b349-71bd-4746-9331-763bc0935b74"
+ },
+ "锁关卡数字小": {
+ "__uuid__": "1f4d1b0e-aa19-43f1-b131-709124791670"
+ },
+ "开按钮": {
+ "__uuid__": "0afb16e8-c329-4191-a892-cca6e29336ec"
+ },
+ "开按钮_1": {
+ "__uuid__": "fe46a9e9-ce92-428e-b6b1-080831ec5270"
+ },
+ "关按钮": {
+ "__uuid__": "3768d142-08e0-4adc-be9f-df163c9f19a4"
+ },
+ "第关字": {
+ "__uuid__": "21c98909-45c0-4733-aa79-d55bc77f8052"
+ },
+ "第关字_1": {
+ "__uuid__": "c176a193-7e7f-48d3-9012-ae53132138dc"
+ },
+ "每日奖励图标": {
+ "__uuid__": "cf33e06c-01c7-49bb-8894-039f67ee6910"
+ },
+ "头像底图": {
+ "__uuid__": "95765141-8917-41cb-93ec-f541ba8f41e1"
+ },
+ "头像底图_1": {
+ "__uuid__": "dbca32c8-89c2-44f0-b11d-0a03d7f456b5"
+ },
+ "设置图标": {
+ "__uuid__": "88aa2afb-82cc-433d-93a1-853869f7c024"
+ },
+ "设置图标_1": {
+ "__uuid__": "780efb23-d368-46f0-9417-9dfb439fc1f9"
+ },
+ "排行榜图标": {
+ "__uuid__": "c6cb1ba1-3842-4022-ae8a-eb350e1893b9"
+ },
+ "排行榜图标_1": {
+ "__uuid__": "fd34d22f-84fa-4234-80ce-87baaf7fcf18"
+ },
+ "锁按钮": {
+ "__uuid__": "db32aa47-4cb5-4999-ac31-ce962b95948d"
+ },
+ "锁按钮_1": {
+ "__uuid__": "4ada45d8-3f1d-4277-8821-11adc27cb3a1"
+ },
+ "带锁": {
+ "__uuid__": "54ffd922-bb43-419a-9489-dd532a53131c"
+ },
+ "带锁_1": {
+ "__uuid__": "dd4fe9fa-a953-4faa-add4-50734e0496e3"
+ },
+ "空道具底框": {
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
+ },
+ "暂停按钮": {
+ "__uuid__": "b408ff41-fd70-476e-a1e9-8a578e26e034"
+ },
+ "退出按钮": {
+ "__uuid__": "3447e7f6-81b2-4bd4-809f-340093f9b1c4"
+ },
+ "退出按钮_1": {
+ "__uuid__": "d9d33bf8-3421-42b0-b44a-53f2ba5b8089"
+ },
+ "重置按钮": {
+ "__uuid__": "3fea5ec4-866f-422f-b340-9e39f711330c"
+ },
+ "重置按钮_1": {
+ "__uuid__": "c2ae6df9-8799-4348-a317-1d06ec5f4531"
+ },
+ "暂停字": {
+ "__uuid__": "a70bfb36-1517-42e0-bd50-48bc9bbfe574"
+ },
+ "暂停字_1": {
+ "__uuid__": "6509ef26-690b-4c43-a803-81b1d9b43c0c"
+ },
+ "锤子小": {
+ "__uuid__": "330e6f4d-b16c-4cf2-9791-e10d7a7b5166"
+ },
+ "锤子小_1": {
+ "__uuid__": "ebf6c070-e0ec-4318-a816-9eff6bf88809"
+ },
+ "冰冻时钟小": {
+ "__uuid__": "c0b0148b-e769-4674-8f71-b3dd828675d8"
+ },
+ "冰冻时钟小_1": {
+ "__uuid__": "e82b5210-67e9-4105-b39e-e2105422b9a3"
+ },
+ "音乐01": {
+ "__uuid__": "694fb9cc-9eba-4bc4-ae86-d586e34da96e"
+ },
+ "音乐01_1": {
+ "__uuid__": "548a7c0c-6423-4800-8e4a-dfea3ce0999d"
+ },
+ "音效00": {
+ "__uuid__": "69822a33-016b-48a4-a4eb-d42755666efc"
+ },
+ "音效00_1": {
+ "__uuid__": "ec89a40c-c092-4e92-b898-c8a9048b7b0e"
+ },
+ "音效01": {
+ "__uuid__": "55afd81e-884b-4160-9e4b-6f9d4ca97554"
+ },
+ "音效01_1": {
+ "__uuid__": "f8251620-36d0-4ee4-9be1-5ddd3ffe5e7e"
+ },
+ "震动00": {
+ "__uuid__": "39026068-bd1b-4c1f-9a92-28b67312a93d"
+ },
+ "震动00_1": {
+ "__uuid__": "35a64972-8946-4c78-8db9-d869da9c6838"
+ },
+ "音乐00": {
+ "__uuid__": "d9d890d7-401a-4ccd-b8fc-be3439203d65"
+ },
+ "音乐00_1": {
+ "__uuid__": "848b221b-3658-4df3-9cb6-bf37fa1a945f"
+ },
+ "震动01": {
+ "__uuid__": "d64ec358-d205-4605-8d70-4a9b60c4fe31"
+ },
+ "震动01_1": {
+ "__uuid__": "2d594cf6-926d-4b3a-968e-e830dba99ccd"
+ },
+ "五星棒小": {
+ "__uuid__": "1eb403a3-afe5-427d-b626-31b0479127ee"
+ },
+ "五星棒小_1": {
+ "__uuid__": "2ba6206f-a68c-48c4-b91b-41f435367121"
+ },
+ "锁上字": {
+ "__uuid__": "98bc5c77-90dd-4b3d-b548-c305927ec884"
+ },
+ "锁上字_1": {
+ "__uuid__": "836148ca-227d-46cd-829d-4f31bcf8a650"
+ },
+ "小钟图标": {
+ "__uuid__": "0cc5c474-3ac0-421f-92a7-fd42837dda98"
+ },
+ "小钟图标_1": {
+ "__uuid__": "e54e9ac3-4cdc-4afa-bcc5-3e76a71de364"
+ },
+ "心图标": {
+ "__uuid__": "4509ff1b-1b70-4fa2-bbd2-78bb00a8d577"
+ },
+ "心图标_1": {
+ "__uuid__": "7c332a0d-9d45-4af5-95c8-7d5260655cae"
+ },
+ "加按钮": {
+ "__uuid__": "c5ba0cab-fc46-4c97-89ec-a4cb557d63e9"
+ },
+ "加按钮_1": {
+ "__uuid__": "14120fba-2d29-4ca3-a9f5-3154657e3ab3"
+ },
+ "震动字": {
+ "__uuid__": "c40825bb-b96a-4b65-8966-4e8a81f2d44a"
+ },
+ "震动字_1": {
+ "__uuid__": "d960b9d5-b68d-4593-8e61-11fbee0ee441"
+ },
+ "音效字": {
+ "__uuid__": "2a0977c4-0886-4e75-aee9-25002bdcb297"
+ },
+ "音效字_1": {
+ "__uuid__": "c653aded-8dc8-40f0-8af5-0b71c9efeed7"
+ },
+ "音乐字": {
+ "__uuid__": "2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92"
+ },
+ "音乐字_1": {
+ "__uuid__": "4ff1f4e5-1e4f-40ab-9500-2edbbe66bea7"
+ },
+ "已满字": {
+ "__uuid__": "2a3d6cb9-85e3-4e5f-bd62-f7ecd3f9c2c1"
+ },
+ "已满字_1": {
+ "__uuid__": "b3d43798-badf-4605-a46f-3f8e6d006ff7"
+ },
+ "弹出框关闭按钮": {
+ "__uuid__": "251b2233-690e-4ca4-8ce9-c5f8bdf2e6a3"
+ },
+ "弹出框关闭按钮_1": {
+ "__uuid__": "c2be84c9-771c-425d-8185-655f4b592512"
+ },
+ "弹出小框": {
+ "__uuid__": "abc44372-ed53-4665-aba8-c701dbc22e45"
+ },
+ "弹出小框_1": {
+ "__uuid__": "11a9778e-0913-47b6-8deb-252c15a5b071"
+ }
+ }
+}
\ No newline at end of file
diff --git a/library/imports/37/3768d142-08e0-4adc-be9f-df163c9f19a4.json b/library/imports/37/3768d142-08e0-4adc-be9f-df163c9f19a4.json
new file mode 100644
index 0000000..a4d9fa1
--- /dev/null
+++ b/library/imports/37/3768d142-08e0-4adc-be9f-df163c9f19a4.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 177,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/37/3790638a-0781-459f-b50e-fc26002e12ab.json b/library/imports/37/3790638a-0781-459f-b50e-fc26002e12ab.json
new file mode 100644
index 0000000..cb68e5d
--- /dev/null
+++ b/library/imports/37/3790638a-0781-459f-b50e-fc26002e12ab.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "带锁_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 496,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/38/38664387-f748-470d-a652-5090c56c26c0.json b/library/imports/38/38664387-f748-470d-a652-5090c56c26c0.json
new file mode 100644
index 0000000..db837d8
--- /dev/null
+++ b/library/imports/38/38664387-f748-470d-a652-5090c56c26c0.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "圆底01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 1276,
+ 516,
+ 516
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 516,
+ 516
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/38/38691690-4f54-4034-9b99-d9720dbba35a.json b/library/imports/38/38691690-4f54-4034-9b99-d9720dbba35a.json
new file mode 100644
index 0000000..17faf9e
--- /dev/null
+++ b/library/imports/38/38691690-4f54-4034-9b99-d9720dbba35a.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "tiaodik_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 1121,
+ 154,
+ 598
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 598
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/39/39026068-bd1b-4c1f-9a92-28b67312a93d.json b/library/imports/39/39026068-bd1b-4c1f-9a92-28b67312a93d.json
new file mode 100644
index 0000000..d9b24ec
--- /dev/null
+++ b/library/imports/39/39026068-bd1b-4c1f-9a92-28b67312a93d.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1223,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/39/39358efa-d18b-425f-b6ee-4b63813bccea.json b/library/imports/39/39358efa-d18b-425f-b6ee-4b63813bccea.json
new file mode 100644
index 0000000..db15bfc
--- /dev/null
+++ b/library/imports/39/39358efa-d18b-425f-b6ee-4b63813bccea.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "案例",
+ "texture": "de563d8c-eee2-42f8-bbbb-47b6149eed20",
+ "atlas": "",
+ "rect": [
+ 0,
+ 0,
+ 1080,
+ 2340
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1080,
+ 2340
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ab/abd65429-c263-4d3a-84f3-1c26b1433094.jpg b/library/imports/39/39980b3f-ffc1-450f-90bc-4861aa8c81fb.jpg
similarity index 100%
rename from library/imports/ab/abd65429-c263-4d3a-84f3-1c26b1433094.jpg
rename to library/imports/39/39980b3f-ffc1-450f-90bc-4861aa8c81fb.jpg
diff --git a/library/imports/ab/abd65429-c263-4d3a-84f3-1c26b1433094.json b/library/imports/39/39980b3f-ffc1-450f-90bc-4861aa8c81fb.json
similarity index 100%
rename from library/imports/ab/abd65429-c263-4d3a-84f3-1c26b1433094.json
rename to library/imports/39/39980b3f-ffc1-450f-90bc-4861aa8c81fb.json
diff --git a/library/imports/39/399bdc91-3a6a-46b1-82eb-fbd55d6cb973.json b/library/imports/39/399bdc91-3a6a-46b1-82eb-fbd55d6cb973.json
new file mode 100644
index 0000000..d042dee
--- /dev/null
+++ b/library/imports/39/399bdc91-3a6a-46b1-82eb-fbd55d6cb973.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "第关字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1639,
+ 72,
+ 234,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 234,
+ 36
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/3a/3a923142-3750-4390-bb5f-f642ffa563e3.json b/library/imports/3a/3a923142-3750-4390-bb5f-f642ffa563e3.json
new file mode 100644
index 0000000..b1bbe91
--- /dev/null
+++ b/library/imports/3a/3a923142-3750-4390-bb5f-f642ffa563e3.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "按钮00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 651,
+ 482,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/66/66dc5e3b-049f-4fe0-a915-588ff847477c.json b/library/imports/3a/3ad60e42-8744-4068-b7dd-24ef792c21fe.json
similarity index 64%
rename from library/imports/66/66dc5e3b-049f-4fe0-a915-588ff847477c.json
rename to library/imports/3a/3ad60e42-8744-4068-b7dd-24ef792c21fe.json
index a3e9ba4..7d5c31b 100644
--- a/library/imports/66/66dc5e3b-049f-4fe0-a915-588ff847477c.json
+++ b/library/imports/3a/3ad60e42-8744-4068-b7dd-24ef792c21fe.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_8",
- "texture": "c6022e1d-b8c5-498b-a3c1-740387f6d647",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 408,
+ 1,
26,
38
],
@@ -18,6 +18,7 @@
26,
38
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8e/8e065543-ec06-474c-af70-702fef926644.json b/library/imports/3a/3ae58373-6b26-4cad-9373-d00a87902b60.json
similarity index 63%
rename from library/imports/8e/8e065543-ec06-474c-af70-702fef926644.json
rename to library/imports/3a/3ae58373-6b26-4cad-9373-d00a87902b60.json
index 218caa9..2b813b7 100644
--- a/library/imports/8e/8e065543-ec06-474c-af70-702fef926644.json
+++ b/library/imports/3a/3ae58373-6b26-4cad-9373-d00a87902b60.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_1",
- "texture": "b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 344,
+ 42,
16,
36
],
@@ -18,6 +18,7 @@
16,
36
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/3b/3b77f169-3a59-4cc5-a0f3-26cdd64ca754.json b/library/imports/3b/3b77f169-3a59-4cc5-a0f3-26cdd64ca754.json
new file mode 100644
index 0000000..8c2edcf
--- /dev/null
+++ b/library/imports/3b/3b77f169-3a59-4cc5-a0f3-26cdd64ca754.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "空道具底框",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 651,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json b/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/3c/3cf8c3a8-e38c-4038-8231-24f57009b658.json b/library/imports/3c/3cf8c3a8-e38c-4038-8231-24f57009b658.json
new file mode 100644
index 0000000..0877b60
--- /dev/null
+++ b/library/imports/3c/3cf8c3a8-e38c-4038-8231-24f57009b658.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "按钮00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 651,
+ 482,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/34/341042f4-0224-41f0-a6a3-91e723dbdce1.json b/library/imports/3d/3d70d35e-3b09-432d-a7cc-87fd904d8a42.json
similarity index 67%
rename from library/imports/34/341042f4-0224-41f0-a6a3-91e723dbdce1.json
rename to library/imports/3d/3d70d35e-3b09-432d-a7cc-87fd904d8a42.json
index 5c43976..cf0233b 100644
--- a/library/imports/34/341042f4-0224-41f0-a6a3-91e723dbdce1.json
+++ b/library/imports/3d/3d70d35e-3b09-432d-a7cc-87fd904d8a42.json
@@ -1,12 +1,11 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "闊充箰00",
- "texture": "964de756-e8ea-44b4-9371-ea2af234714a",
- "atlas": "",
+ "name": "音效00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1057,
+ 739,
116,
122
],
diff --git a/library/imports/3e/3e5c08d5-254d-4b98-bbc0-4a1094bd3712.json b/library/imports/3e/3e5c08d5-254d-4b98-bbc0-4a1094bd3712.json
new file mode 100644
index 0000000..2143e04
--- /dev/null
+++ b/library/imports/3e/3e5c08d5-254d-4b98-bbc0-4a1094bd3712.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "排行榜图标",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1463,
+ 993,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/3f/3f086564-1703-4059-b4ae-14a64b816796.json b/library/imports/3f/3f086564-1703-4059-b4ae-14a64b816796.json
new file mode 100644
index 0000000..0cc8683
--- /dev/null
+++ b/library/imports/3f/3f086564-1703-4059-b4ae-14a64b816796.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "返回主界面按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1001,
+ 867,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/3f/3fe5b349-71bd-4746-9331-763bc0935b74.json b/library/imports/3f/3fe5b349-71bd-4746-9331-763bc0935b74.json
new file mode 100644
index 0000000..e6cd475
--- /dev/null
+++ b/library/imports/3f/3fe5b349-71bd-4746-9331-763bc0935b74.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字04_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 0,
+ 281,
+ 71
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 71
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/3f/3fea5ec4-866f-422f-b340-9e39f711330c.json b/library/imports/3f/3fea5ec4-866f-422f-b340-9e39f711330c.json
new file mode 100644
index 0000000..70a34ab
--- /dev/null
+++ b/library/imports/3f/3fea5ec4-866f-422f-b340-9e39f711330c.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重置按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 961,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/40/400f9538-f55a-4420-a47b-91452e9b3a82.json b/library/imports/40/400f9538-f55a-4420-a47b-91452e9b3a82.json
new file mode 100644
index 0000000..5e81fd5
--- /dev/null
+++ b/library/imports/40/400f9538-f55a-4420-a47b-91452e9b3a82.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1590,
+ 307,
+ 150,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 150,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/40/40259de3-11f6-485c-8d4b-366146c29772.json b/library/imports/40/40259de3-11f6-485c-8d4b-366146c29772.json
new file mode 100644
index 0000000..4a65696
--- /dev/null
+++ b/library/imports/40/40259de3-11f6-485c-8d4b-366146c29772.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "空道具底框",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 651,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/41/412a92ab-a1de-4f88-b447-a363a9d8bd99.json b/library/imports/41/412a92ab-a1de-4f88-b447-a363a9d8bd99.json
new file mode 100644
index 0000000..fd12c44
--- /dev/null
+++ b/library/imports/41/412a92ab-a1de-4f88-b447-a363a9d8bd99.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1340,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/41/413c9c3b-bd4d-4fd6-b084-2061753cf599.json b/library/imports/41/413c9c3b-bd4d-4fd6-b084-2061753cf599.json
new file mode 100644
index 0000000..276e2a8
--- /dev/null
+++ b/library/imports/41/413c9c3b-bd4d-4fd6-b084-2061753cf599.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "排行榜图标_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1463,
+ 993,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/41/41932ad3-a24c-4e10-9df8-218b53475b97.json b/library/imports/41/41932ad3-a24c-4e10-9df8-218b53475b97.json
new file mode 100644
index 0000000..d292086
--- /dev/null
+++ b/library/imports/41/41932ad3-a24c-4e10-9df8-218b53475b97.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "头像底图_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 307,
+ 188,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 188,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/42/4255617b-34d3-4f61-bd7f-69c4064b782f.json b/library/imports/42/4255617b-34d3-4f61-bd7f-69c4064b782f.json
new file mode 100644
index 0000000..f96373d
--- /dev/null
+++ b/library/imports/42/4255617b-34d3-4f61-bd7f-69c4064b782f.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字03",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 915,
+ 1356,
+ 319,
+ 34
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 319,
+ 34
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/43/43141c9a-9d79-4fd9-a649-bae4f77d9e0e.json b/library/imports/43/43141c9a-9d79-4fd9-a649-bae4f77d9e0e.json
new file mode 100644
index 0000000..a22e7ce
--- /dev/null
+++ b/library/imports/43/43141c9a-9d79-4fd9-a649-bae4f77d9e0e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重试按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 826,
+ 284,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/43/43931090-b629-404e-88bf-84fe31102af8.json b/library/imports/43/43931090-b629-404e-88bf-84fe31102af8.json
new file mode 100644
index 0000000..ea40a84
--- /dev/null
+++ b/library/imports/43/43931090-b629-404e-88bf-84fe31102af8.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出小框_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1174,
+ 616,
+ -313,
+ -95
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ -313,
+ -95
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/43/43cacadd-23e9-4858-bb3f-bf5914054a0e.json b/library/imports/43/43cacadd-23e9-4858-bb3f-bf5914054a0e.json
new file mode 100644
index 0000000..3c74d87
--- /dev/null
+++ b/library/imports/43/43cacadd-23e9-4858-bb3f-bf5914054a0e.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "加按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1789,
+ 1223,
+ 76,
+ 82
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 76,
+ 82
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/44/4429a4d8-236a-4c1e-b4b3-9fdac7a2997a.json b/library/imports/44/4429a4d8-236a-4c1e-b4b3-9fdac7a2997a.json
new file mode 100644
index 0000000..ff30ecc
--- /dev/null
+++ b/library/imports/44/4429a4d8-236a-4c1e-b4b3-9fdac7a2997a.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字小",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 971,
+ 1302,
+ 368,
+ 40
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 368,
+ 40
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/45/4509ff1b-1b70-4fa2-bbd2-78bb00a8d577.json b/library/imports/45/4509ff1b-1b70-4fa2-bbd2-78bb00a8d577.json
new file mode 100644
index 0000000..9b1c80e
--- /dev/null
+++ b/library/imports/45/4509ff1b-1b70-4fa2-bbd2-78bb00a8d577.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1778,
+ 1574,
+ 92,
+ 88
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 92,
+ 88
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/46/4654fc78-d060-4cf0-8eeb-8dd4b0c329e0.json b/library/imports/46/4654fc78-d060-4cf0-8eeb-8dd4b0c329e0.json
new file mode 100644
index 0000000..422d2bf
--- /dev/null
+++ b/library/imports/46/4654fc78-d060-4cf0-8eeb-8dd4b0c329e0.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1591,
+ 1190,
+ 74,
+ 39
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 74,
+ 39
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/46/46e3843a-0a3e-4a70-8658-83259b9ad67c.json b/library/imports/46/46e3843a-0a3e-4a70-8658-83259b9ad67c.json
new file mode 100644
index 0000000..c1dcf86
--- /dev/null
+++ b/library/imports/46/46e3843a-0a3e-4a70-8658-83259b9ad67c.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字02_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1335,
+ 1343,
+ 359,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 359,
+ 38
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5e/5e41d88b-082f-4943-868a-ed7dbe069b38.json b/library/imports/47/478f346f-7aa8-4f88-bb46-877d0e27e9f6.json
similarity index 63%
rename from library/imports/5e/5e41d88b-082f-4943-868a-ed7dbe069b38.json
rename to library/imports/47/478f346f-7aa8-4f88-bb46-877d0e27e9f6.json
index f58ec7a..bff3010 100644
--- a/library/imports/5e/5e41d88b-082f-4943-868a-ed7dbe069b38.json
+++ b/library/imports/47/478f346f-7aa8-4f88-bb46-877d0e27e9f6.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_7",
- "texture": "f0c1b219-0608-4a6c-aef0-59fc9db4955e",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 408,
+ 29,
29,
37
],
@@ -18,6 +18,7 @@
29,
37
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json b/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/47/47f47555-9e12-4a89-9caf-853c3958b409.json b/library/imports/47/47f47555-9e12-4a89-9caf-853c3958b409.json
new file mode 100644
index 0000000..ef145f7
--- /dev/null
+++ b/library/imports/47/47f47555-9e12-4a89-9caf-853c3958b409.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字10_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1001,
+ 284,
+ 582,
+ 55
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 582,
+ 55
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/44/443993eb-6346-401e-94a4-f898f6ab86af.json b/library/imports/48/4869026f-04ec-47b5-85f7-02ee2a1865d9.json
similarity index 67%
rename from library/imports/44/443993eb-6346-401e-94a4-f898f6ab86af.json
rename to library/imports/48/4869026f-04ec-47b5-85f7-02ee2a1865d9.json
index 9fb4560..0547bb6 100644
--- a/library/imports/44/443993eb-6346-401e-94a4-f898f6ab86af.json
+++ b/library/imports/48/4869026f-04ec-47b5-85f7-02ee2a1865d9.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz4",
- "texture": "76467e5a-9a87-4d17-afae-777d7ff638a1",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 136,
+ 1,
44,
63
],
diff --git a/library/imports/48/48acea19-9c97-4a72-9d85-05db28300d5d.json b/library/imports/48/48acea19-9c97-4a72-9d85-05db28300d5d.json
new file mode 100644
index 0000000..70a87ba
--- /dev/null
+++ b/library/imports/48/48acea19-9c97-4a72-9d85-05db28300d5d.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "继续按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1175,
+ 521,
+ 476,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 476,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.json b/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.png b/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.png
deleted file mode 100644
index d5f95c5..0000000
Binary files a/library/imports/49/49148440-dbc5-4936-b168-ac7707f80098.png and /dev/null differ
diff --git a/library/imports/6f/6fe20747-a786-4f14-9f08-82415430bfa8.json b/library/imports/49/49628cf9-eb96-41b2-a2c9-13168b9b03c1.json
similarity index 64%
rename from library/imports/6f/6fe20747-a786-4f14-9f08-82415430bfa8.json
rename to library/imports/49/49628cf9-eb96-41b2-a2c9-13168b9b03c1.json
index c9b957a..d6271ce 100644
--- a/library/imports/6f/6fe20747-a786-4f14-9f08-82415430bfa8.json
+++ b/library/imports/49/49628cf9-eb96-41b2-a2c9-13168b9b03c1.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz10",
- "texture": "6c076da3-bb21-4e43-9e7e-d88b44bd01f4",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 319,
+ 42,
19,
23
],
@@ -18,6 +18,7 @@
19,
23
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/4a/4ada45d8-3f1d-4277-8821-11adc27cb3a1.json b/library/imports/4a/4ada45d8-3f1d-4277-8821-11adc27cb3a1.json
new file mode 100644
index 0000000..1d36694
--- /dev/null
+++ b/library/imports/4a/4ada45d8-3f1d-4277-8821-11adc27cb3a1.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1676,
+ 0,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4b/4b8c2f67-5331-4c24-91fd-51f35d0088b3.json b/library/imports/4b/4b8c2f67-5331-4c24-91fd-51f35d0088b3.json
new file mode 100644
index 0000000..a48e0fd
--- /dev/null
+++ b/library/imports/4b/4b8c2f67-5331-4c24-91fd-51f35d0088b3.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "小钟图标_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1659,
+ 1688,
+ 79,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 79,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4b/4bc17d5c-38c1-4ca5-8689-ca7f8193c920.json b/library/imports/4b/4bc17d5c-38c1-4ca5-8689-ca7f8193c920.json
new file mode 100644
index 0000000..76cfd02
--- /dev/null
+++ b/library/imports/4b/4bc17d5c-38c1-4ca5-8689-ca7f8193c920.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字03_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 915,
+ 1356,
+ 319,
+ 34
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 319,
+ 34
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4c/4c3f9fb1-3057-4aaf-8e6e-a0e8626ab5f7.json b/library/imports/4c/4c3f9fb1-3057-4aaf-8e6e-a0e8626ab5f7.json
new file mode 100644
index 0000000..dd47ed2
--- /dev/null
+++ b/library/imports/4c/4c3f9fb1-3057-4aaf-8e6e-a0e8626ab5f7.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字02",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1335,
+ 1343,
+ 359,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 359,
+ 38
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4d/4d3b6389-4079-4627-8561-cb2f899bb7e4.json b/library/imports/4d/4d3b6389-4079-4627-8561-cb2f899bb7e4.json
new file mode 100644
index 0000000..98f0776
--- /dev/null
+++ b/library/imports/4d/4d3b6389-4079-4627-8561-cb2f899bb7e4.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "底板00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 0,
+ 1080,
+ 113
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1080,
+ 113
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.json b/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.png b/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.png
deleted file mode 100644
index cc13b9e..0000000
Binary files a/library/imports/4d/4dbc349a-8dbd-4753-8e82-378b916ea36b.png and /dev/null differ
diff --git a/library/imports/4e/4e722158-05c5-4834-83de-d719f7cf1749.json b/library/imports/4e/4e722158-05c5-4834-83de-d719f7cf1749.json
new file mode 100644
index 0000000..680b4cb
--- /dev/null
+++ b/library/imports/4e/4e722158-05c5-4834-83de-d719f7cf1749.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子大",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1146,
+ 998,
+ 303,
+ 316
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 303,
+ 316
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
index c08d709..2852b37 100644
--- a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
+++ b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json
@@ -76,28 +76,28 @@
"__id__": 5
},
{
- "__id__": 74
+ "__id__": 76
},
{
- "__id__": 350
+ "__id__": 360
},
{
- "__id__": 400
+ "__id__": 410
}
],
"_active": true,
"_components": [
{
- "__id__": 403
+ "__id__": 413
},
{
- "__id__": 404
+ "__id__": 414
},
{
- "__id__": 405
+ "__id__": 415
},
{
- "__id__": 406
+ "__id__": 416
}
],
"_prefab": null,
@@ -261,22 +261,22 @@
"__id__": 9
},
{
- "__id__": 163
+ "__id__": 173
},
{
- "__id__": 184
+ "__id__": 194
},
{
- "__id__": 204
+ "__id__": 214
},
{
- "__id__": 76
+ "__id__": 78
}
],
"_active": true,
"_components": [
{
- "__id__": 349
+ "__id__": 359
}
],
"_prefab": null,
@@ -466,19 +466,19 @@
"__id__": 13
},
{
- "__id__": 138
+ "__id__": 140
},
{
"__id__": 20
},
{
- "__id__": 159
+ "__id__": 169
}
],
"_active": true,
"_components": [
{
- "__id__": 162
+ "__id__": 172
}
],
"_prefab": null,
@@ -957,34 +957,34 @@
"__id__": 18
},
"destroyBtn": {
- "__id__": 27
+ "__id__": 29
},
"magicBtn": {
- "__id__": 36
+ "__id__": 38
},
"mask": {
- "__id__": 74
+ "__id__": 76
},
"iceLabel": {
- "__id__": 70
+ "__id__": 72
},
"hammerLabel": {
- "__id__": 25
+ "__id__": 27
},
"magicLabel": {
- "__id__": 34
+ "__id__": 36
},
"magicMask": {
- "__id__": 55
+ "__id__": 57
},
"hammerMask": {
- "__id__": 52
+ "__id__": 54
},
"freezeMask": {
- "__id__": 49
+ "__id__": 51
},
"coinPop": {
- "__id__": 76
+ "__id__": 78
},
"_id": "1e+NpmfM1ClafoWSY4VNW+"
},
@@ -1002,7 +1002,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 73
+ "__id__": 75
}
],
"_N$interactable": true,
@@ -1071,22 +1071,22 @@
},
"_children": [
{
- "__id__": 67
+ "__id__": 69
},
{
- "__id__": 69
+ "__id__": 71
}
],
"_active": true,
"_components": [
{
- "__id__": 71
+ "__id__": 73
},
{
"__id__": 18
},
{
- "__id__": 72
+ "__id__": 74
}
],
"_prefab": null,
@@ -1100,8 +1100,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1112,8 +1112,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -280,
- 142.663,
+ 116.277,
+ 100.136,
0,
0,
0,
@@ -1145,38 +1145,41 @@
"__id__": 9
},
"_children": [
- {
- "__id__": 19
- },
{
"__id__": 21
},
{
- "__id__": 30
+ "__id__": 19
},
{
- "__id__": 39
+ "__id__": 23
},
{
- "__id__": 45
+ "__id__": 32
},
{
- "__id__": 49
+ "__id__": 41
},
{
- "__id__": 52
+ "__id__": 47
},
{
- "__id__": 55
+ "__id__": 51
},
{
- "__id__": 58
+ "__id__": 54
+ },
+ {
+ "__id__": 57
+ },
+ {
+ "__id__": 60
}
],
"_active": true,
"_components": [
{
- "__id__": 66
+ "__id__": 68
}
],
"_prefab": null,
@@ -1229,29 +1232,16 @@
},
{
"__type__": "cc.Node",
- "_name": "destroyBtn",
+ "_name": "底板00_1",
"_objFlags": 0,
"_parent": {
"__id__": 20
},
- "_children": [
- {
- "__id__": 22
- },
- {
- "__id__": 24
- }
- ],
+ "_children": [],
"_active": true,
"_components": [
{
- "__id__": 26
- },
- {
- "__id__": 27
- },
- {
- "__id__": 29
+ "__id__": 22
}
],
"_prefab": null,
@@ -1265,8 +1255,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 1080,
+ "height": 113
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1277,8 +1267,117 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -80,
- 142.663,
+ 0,
+ 45.697,
+ 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": "d13GbSvV9OPJBUKUlhuTex"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 21
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "d229cc47-8fde-407c-8a0a-986e6a7db207"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "d0b1izjvVCgamoGah1Jaft"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "destroyBtn",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 20
+ },
+ "_children": [
+ {
+ "__id__": 24
+ },
+ {
+ "__id__": 26
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 28
+ },
+ {
+ "__id__": 29
+ },
+ {
+ "__id__": 31
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 154,
+ "height": 172
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -112.862,
+ 104.002,
0,
0,
0,
@@ -1307,13 +1406,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 21
+ "__id__": 23
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 23
+ "__id__": 25
}
],
"_prefab": null,
@@ -1327,8 +1426,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 97,
- "height": 109
+ "width": 124,
+ "height": 129
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1339,8 +1438,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 0,
- 0,
+ -9.665,
+ 15.464,
0,
0,
0,
@@ -1369,7 +1468,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 22
+ "__id__": 24
},
"_enabled": true,
"_materials": [
@@ -1380,7 +1479,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "fbfecad6-2e70-43a0-bf64-d3a59335362e"
+ "__uuid__": "330e6f4d-b16c-4cf2-9791-e10d7a7b5166"
},
"_type": 0,
"_sizeMode": 1,
@@ -1394,7 +1493,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "44zciXhM9By7FOyycM/dKY"
},
@@ -1403,13 +1502,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 21
+ "__id__": 23
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 25
+ "__id__": 27
}
],
"_prefab": null,
@@ -1465,7 +1564,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 24
+ "__id__": 26
},
"_enabled": true,
"_materials": [
@@ -1498,7 +1597,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_materials": [
@@ -1509,7 +1608,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -1523,7 +1622,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "4fpgZvoWZKwbhWiIRUbZgZ"
},
@@ -1532,7 +1631,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_normalMaterial": null,
@@ -1541,7 +1640,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 28
+ "__id__": 30
}
],
"_N$interactable": true,
@@ -1597,7 +1696,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 21
+ "__id__": 23
},
"_id": "37kLzoX/5ETIkOp2zQsq9p"
},
@@ -1616,7 +1715,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_id": "dekCrxpChCv7UV5uQ+seyc"
@@ -1630,22 +1729,22 @@
},
"_children": [
{
- "__id__": 31
+ "__id__": 33
},
{
- "__id__": 33
+ "__id__": 35
}
],
"_active": true,
"_components": [
{
- "__id__": 35
- },
- {
- "__id__": 36
+ "__id__": 37
},
{
"__id__": 38
+ },
+ {
+ "__id__": 40
}
],
"_prefab": null,
@@ -1659,8 +1758,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1671,8 +1770,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 120,
- 142.663,
+ 346.167,
+ 78.872,
0,
0,
0,
@@ -1701,13 +1800,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 30
+ "__id__": 32
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 32
+ "__id__": 34
}
],
"_prefab": null,
@@ -1721,8 +1820,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 93,
- "height": 109
+ "width": 113,
+ "height": 118
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1763,7 +1862,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 31
+ "__id__": 33
},
"_enabled": true,
"_materials": [
@@ -1774,7 +1873,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "d84b80a7-d4bf-44f4-a85e-6e347f54482a"
+ "__uuid__": "2ba6206f-a68c-48c4-b91b-41f435367121"
},
"_type": 0,
"_sizeMode": 1,
@@ -1788,7 +1887,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "0c4DaC9ZZHSLXDHJAIQc+O"
},
@@ -1797,13 +1896,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 30
+ "__id__": 32
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 34
+ "__id__": 36
}
],
"_prefab": null,
@@ -1859,7 +1958,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 33
+ "__id__": 35
},
"_enabled": true,
"_materials": [
@@ -1892,7 +1991,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_materials": [
@@ -1903,7 +2002,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -1917,7 +2016,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "647u+bW4NOQZKdQAAA2N82"
},
@@ -1926,7 +2025,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_normalMaterial": null,
@@ -1935,7 +2034,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 37
+ "__id__": 39
}
],
"_N$interactable": true,
@@ -1991,7 +2090,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 30
+ "__id__": 32
},
"_id": "13iXPcjuVGtZpauFnVUGQE"
},
@@ -2010,7 +2109,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_id": "d3aD0owzFH74KOQ39ei+jJ"
@@ -2024,16 +2123,16 @@
},
"_children": [
{
- "__id__": 40
+ "__id__": 42
}
],
"_active": true,
"_components": [
{
- "__id__": 42
+ "__id__": 44
},
{
- "__id__": 44
+ "__id__": 46
}
],
"_prefab": null,
@@ -2059,8 +2158,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 320,
- 142,
+ -344.139,
+ 86.196,
0,
0,
0,
@@ -2089,13 +2188,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 39
+ "__id__": 41
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 41
+ "__id__": 43
}
],
"_prefab": null,
@@ -2109,8 +2208,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 155,
- "height": 155
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -2151,7 +2250,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 40
+ "__id__": 42
},
"_enabled": true,
"_materials": [
@@ -2162,7 +2261,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "3643a167-546c-4acb-a522-f8fd1eab0ee4"
+ "__uuid__": "b408ff41-fd70-476e-a1e9-8a578e26e034"
},
"_type": 0,
"_sizeMode": 1,
@@ -2176,7 +2275,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "66p8eNtFFEn6LRcLCWRnW/"
},
@@ -2185,7 +2284,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 39
+ "__id__": 41
},
"_enabled": true,
"_normalMaterial": null,
@@ -2194,7 +2293,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 43
+ "__id__": 45
}
],
"_N$interactable": true,
@@ -2250,7 +2349,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 39
+ "__id__": 41
},
"_id": "87c+8sV8FH+5mMTIXYBbll"
},
@@ -2269,7 +2368,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 39
+ "__id__": 41
},
"_enabled": true,
"_id": "ae2rpYpEJBsK26v76aVmm/"
@@ -2285,10 +2384,10 @@
"_active": false,
"_components": [
{
- "__id__": 46
+ "__id__": 48
},
{
- "__id__": 47
+ "__id__": 49
}
],
"_prefab": null,
@@ -2344,7 +2443,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 45
+ "__id__": 47
},
"_enabled": true,
"_materials": [
@@ -2374,7 +2473,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 45
+ "__id__": 47
},
"_enabled": true,
"_normalMaterial": null,
@@ -2383,7 +2482,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 48
+ "__id__": 50
}
],
"_N$interactable": true,
@@ -2439,7 +2538,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 45
+ "__id__": 47
},
"_id": "3dlpZtk6BJQ40ey82SCcay"
},
@@ -2464,10 +2563,10 @@
"_active": false,
"_components": [
{
- "__id__": 50
+ "__id__": 52
},
{
- "__id__": 51
+ "__id__": 53
}
],
"_prefab": null,
@@ -2523,7 +2622,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 49
+ "__id__": 51
},
"_enabled": true,
"_materials": [
@@ -2557,7 +2656,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 49
+ "__id__": 51
},
"_enabled": true,
"_id": "63gNCerwZExo+YLuxgFmqU"
@@ -2573,10 +2672,10 @@
"_active": false,
"_components": [
{
- "__id__": 53
+ "__id__": 55
},
{
- "__id__": 54
+ "__id__": 56
}
],
"_prefab": null,
@@ -2632,7 +2731,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 52
+ "__id__": 54
},
"_enabled": true,
"_materials": [
@@ -2666,7 +2765,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 52
+ "__id__": 54
},
"_enabled": true,
"_id": "38p//kTl1IxZ+3LfA8cdcJ"
@@ -2682,10 +2781,10 @@
"_active": false,
"_components": [
{
- "__id__": 56
+ "__id__": 58
},
{
- "__id__": 57
+ "__id__": 59
}
],
"_prefab": null,
@@ -2741,7 +2840,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 55
+ "__id__": 57
},
"_enabled": true,
"_materials": [
@@ -2775,7 +2874,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 55
+ "__id__": 57
},
"_enabled": true,
"_id": "e8zuQH36BBZaL/1k13rbss"
@@ -2789,13 +2888,13 @@
},
"_children": [
{
- "__id__": 59
+ "__id__": 61
}
],
"_active": true,
"_components": [
{
- "__id__": 64
+ "__id__": 66
}
],
"_prefab": null,
@@ -2851,20 +2950,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
- "__id__": 58
+ "__id__": 60
},
"_children": [
{
- "__id__": 60
+ "__id__": 62
}
],
"_active": true,
"_components": [
{
- "__id__": 62
+ "__id__": 64
},
{
- "__id__": 63
+ "__id__": 65
}
],
"_prefab": null,
@@ -2920,13 +3019,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
- "__id__": 59
+ "__id__": 61
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 61
+ "__id__": 63
}
],
"_prefab": null,
@@ -2982,7 +3081,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 60
+ "__id__": 62
},
"_enabled": true,
"_materials": [
@@ -3015,7 +3114,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 59
+ "__id__": 61
},
"_enabled": true,
"_materials": [
@@ -3047,7 +3146,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 59
+ "__id__": 61
},
"_enabled": true,
"alignMode": 0,
@@ -3074,7 +3173,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 58
+ "__id__": 60
},
"_enabled": true,
"_normalMaterial": null,
@@ -3083,7 +3182,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 65
+ "__id__": 67
}
],
"_N$interactable": true,
@@ -3151,7 +3250,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
- "__id__": 59
+ "__id__": 61
},
"_id": "111w+INMtEeL+/wHpeYLTf"
},
@@ -3203,7 +3302,7 @@
"_active": true,
"_components": [
{
- "__id__": 68
+ "__id__": 70
}
],
"_prefab": null,
@@ -3217,8 +3316,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 98,
- "height": 109
+ "width": 106,
+ "height": 127
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -3230,7 +3329,7 @@
"ctor": "Float64Array",
"array": [
0,
- 0,
+ 3.866,
0,
0,
0,
@@ -3259,7 +3358,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 67
+ "__id__": 69
},
"_enabled": true,
"_materials": [
@@ -3270,7 +3369,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0c83acfe-399d-4375-8e85-db76234268f6"
+ "__uuid__": "c0b0148b-e769-4674-8f71-b3dd828675d8"
},
"_type": 0,
"_sizeMode": 1,
@@ -3284,7 +3383,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "59Pk6HFEZIiKfGvnH+qPLO"
},
@@ -3296,10 +3395,10 @@
"__id__": 19
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 70
+ "__id__": 72
}
],
"_prefab": null,
@@ -3355,7 +3454,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 69
+ "__id__": 71
},
"_enabled": true,
"_materials": [
@@ -3399,7 +3498,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -3413,7 +3512,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "df3kV4XrtNHYvyWu+Nwmo9"
},
@@ -3448,7 +3547,7 @@
"_active": false,
"_components": [
{
- "__id__": 75
+ "__id__": 77
}
],
"_prefab": null,
@@ -3504,7 +3603,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 74
+ "__id__": 76
},
"_enabled": true,
"_materials": [
@@ -3540,10 +3639,7 @@
},
"_children": [
{
- "__id__": 77
- },
- {
- "__id__": 81
+ "__id__": 79
},
{
"__id__": 83
@@ -3558,22 +3654,25 @@
"__id__": 89
},
{
- "__id__": 98
+ "__id__": 91
},
{
- "__id__": 107
+ "__id__": 100
},
{
- "__id__": 116
+ "__id__": 109
},
{
- "__id__": 133
+ "__id__": 118
+ },
+ {
+ "__id__": 135
}
],
"_active": false,
"_components": [
{
- "__id__": 137
+ "__id__": 139
}
],
"_prefab": null,
@@ -3629,19 +3728,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 78
- },
- {
- "__id__": 79
- },
{
"__id__": 80
+ },
+ {
+ "__id__": 81
+ },
+ {
+ "__id__": 82
}
],
"_prefab": null,
@@ -3697,7 +3796,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"_materials": [
@@ -3729,7 +3828,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"alignMode": 1,
@@ -3756,7 +3855,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"_id": "7ck1YZHrVNgK0sTsx/E/46"
@@ -3766,13 +3865,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 82
+ "__id__": 84
}
],
"_prefab": null,
@@ -3828,7 +3927,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 81
+ "__id__": 83
},
"_enabled": true,
"_materials": [
@@ -3860,13 +3959,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 84
+ "__id__": 86
}
],
"_prefab": null,
@@ -3922,7 +4021,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 83
+ "__id__": 85
},
"_enabled": true,
"_materials": [
@@ -3956,13 +4055,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 86
+ "__id__": 88
}
],
"_prefab": null,
@@ -4018,7 +4117,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 85
+ "__id__": 87
},
"_enabled": true,
"_materials": [
@@ -4052,13 +4151,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 88
+ "__id__": 90
}
],
"_prefab": null,
@@ -4114,7 +4213,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 87
+ "__id__": 89
},
"_enabled": true,
"_materials": [
@@ -4146,12 +4245,9 @@
"_name": "freeze",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 90
- },
{
"__id__": 92
},
@@ -4160,6 +4256,9 @@
},
{
"__id__": 96
+ },
+ {
+ "__id__": 98
}
],
"_active": false,
@@ -4217,13 +4316,13 @@
"_name": "freeze_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 91
+ "__id__": 93
}
],
"_prefab": null,
@@ -4279,7 +4378,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 90
+ "__id__": 92
},
"_enabled": true,
"_materials": [
@@ -4313,13 +4412,13 @@
"_name": "freeze_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 93
+ "__id__": 95
}
],
"_prefab": null,
@@ -4375,7 +4474,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 92
+ "__id__": 94
},
"_enabled": true,
"_materials": [
@@ -4409,13 +4508,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 95
+ "__id__": 97
}
],
"_prefab": null,
@@ -4471,7 +4570,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 94
+ "__id__": 96
},
"_enabled": true,
"_materials": [
@@ -4505,13 +4604,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 97
+ "__id__": 99
}
],
"_prefab": null,
@@ -4567,7 +4666,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 96
+ "__id__": 98
},
"_enabled": true,
"_materials": [
@@ -4601,12 +4700,9 @@
"_name": "hammer",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 99
- },
{
"__id__": 101
},
@@ -4615,6 +4711,9 @@
},
{
"__id__": 105
+ },
+ {
+ "__id__": 107
}
],
"_active": false,
@@ -4672,13 +4771,13 @@
"_name": "hammer_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 100
+ "__id__": 102
}
],
"_prefab": null,
@@ -4734,7 +4833,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 99
+ "__id__": 101
},
"_enabled": true,
"_materials": [
@@ -4768,13 +4867,13 @@
"_name": "hammer_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 102
+ "__id__": 104
}
],
"_prefab": null,
@@ -4830,7 +4929,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 101
+ "__id__": 103
},
"_enabled": true,
"_materials": [
@@ -4864,13 +4963,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 104
+ "__id__": 106
}
],
"_prefab": null,
@@ -4926,7 +5025,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 103
+ "__id__": 105
},
"_enabled": true,
"_materials": [
@@ -4960,13 +5059,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 106
+ "__id__": 108
}
],
"_prefab": null,
@@ -5022,7 +5121,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 105
+ "__id__": 107
},
"_enabled": true,
"_materials": [
@@ -5056,12 +5155,9 @@
"_name": "magic",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 108
- },
{
"__id__": 110
},
@@ -5070,6 +5166,9 @@
},
{
"__id__": 114
+ },
+ {
+ "__id__": 116
}
],
"_active": false,
@@ -5127,13 +5226,13 @@
"_name": "magic_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 109
+ "__id__": 111
}
],
"_prefab": null,
@@ -5189,7 +5288,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 108
+ "__id__": 110
},
"_enabled": true,
"_materials": [
@@ -5223,13 +5322,13 @@
"_name": "magic_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 111
+ "__id__": 113
}
],
"_prefab": null,
@@ -5285,7 +5384,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 110
+ "__id__": 112
},
"_enabled": true,
"_materials": [
@@ -5319,13 +5418,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 113
+ "__id__": 115
}
],
"_prefab": null,
@@ -5381,7 +5480,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 112
+ "__id__": 114
},
"_enabled": true,
"_materials": [
@@ -5415,13 +5514,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 115
+ "__id__": 117
}
],
"_prefab": null,
@@ -5477,7 +5576,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 114
+ "__id__": 116
},
"_enabled": true,
"_materials": [
@@ -5511,12 +5610,9 @@
"_name": "buy_Btn",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 117
- },
{
"__id__": 119
},
@@ -5531,18 +5627,21 @@
},
{
"__id__": 127
+ },
+ {
+ "__id__": 129
}
],
"_active": true,
"_components": [
{
- "__id__": 129
- },
- {
- "__id__": 130
+ "__id__": 131
},
{
"__id__": 132
+ },
+ {
+ "__id__": 134
}
],
"_prefab": null,
@@ -5598,13 +5697,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 118
+ "__id__": 120
}
],
"_prefab": null,
@@ -5660,7 +5759,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 117
+ "__id__": 119
},
"_enabled": true,
"_materials": [
@@ -5694,13 +5793,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 120
+ "__id__": 122
}
],
"_prefab": null,
@@ -5756,7 +5855,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 119
+ "__id__": 121
},
"_enabled": true,
"_materials": [
@@ -5790,13 +5889,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 122
+ "__id__": 124
}
],
"_prefab": null,
@@ -5852,7 +5951,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 121
+ "__id__": 123
},
"_enabled": true,
"_materials": [
@@ -5886,13 +5985,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 124
+ "__id__": 126
}
],
"_prefab": null,
@@ -5948,7 +6047,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 123
+ "__id__": 125
},
"_enabled": true,
"_materials": [
@@ -5982,13 +6081,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 126
+ "__id__": 128
}
],
"_prefab": null,
@@ -6044,7 +6143,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 125
+ "__id__": 127
},
"_enabled": true,
"_materials": [
@@ -6078,13 +6177,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 128
+ "__id__": 130
}
],
"_prefab": null,
@@ -6140,7 +6239,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 127
+ "__id__": 129
},
"_enabled": true,
"_materials": [
@@ -6174,7 +6273,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_materials": [
@@ -6208,7 +6307,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_normalMaterial": null,
@@ -6217,7 +6316,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 131
+ "__id__": 133
}
],
"_N$interactable": true,
@@ -6273,7 +6372,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 116
+ "__id__": 118
},
"_id": "3dIBlmgnFLIKI+Rx3mWLiH"
},
@@ -6292,7 +6391,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_id": "f9YC9UOyxPc4DLFd+bNIec"
@@ -6302,16 +6401,16 @@
"_name": "close",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 134
+ "__id__": 136
},
{
- "__id__": 135
+ "__id__": 137
}
],
"_prefab": null,
@@ -6367,7 +6466,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 135
},
"_enabled": true,
"_materials": [
@@ -6401,7 +6500,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 135
},
"_enabled": true,
"_normalMaterial": null,
@@ -6410,7 +6509,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 136
+ "__id__": 138
}
],
"_N$interactable": true,
@@ -6466,7 +6565,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 133
+ "__id__": 135
},
"_id": "e2r0BmMa5MrIsk8JJmyNf3"
},
@@ -6485,7 +6584,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 76
+ "__id__": 78
},
"_enabled": true,
"alignMode": 1,
@@ -6515,9 +6614,6 @@
"__id__": 9
},
"_children": [
- {
- "__id__": 139
- },
{
"__id__": 141
},
@@ -6530,23 +6626,38 @@
{
"__id__": 147
},
- {
- "__id__": 148
- },
{
"__id__": 149
},
{
"__id__": 151
},
+ {
+ "__id__": 152
+ },
{
"__id__": 153
+ },
+ {
+ "__id__": 155
+ },
+ {
+ "__id__": 157
+ },
+ {
+ "__id__": 159
+ },
+ {
+ "__id__": 161
+ },
+ {
+ "__id__": 163
}
],
"_active": true,
"_components": [
{
- "__id__": 158
+ "__id__": 168
}
],
"_prefab": null,
@@ -6602,13 +6713,13 @@
"_name": "topBg",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 140
+ "__id__": 142
}
],
"_prefab": null,
@@ -6622,8 +6733,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 1058,
- "height": 266
+ "width": 1056,
+ "height": 169
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -6635,7 +6746,7 @@
"ctor": "Float64Array",
"array": [
0,
- -157.461,
+ -78.562,
0,
0,
0,
@@ -6664,7 +6775,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 139
+ "__id__": 141
},
"_enabled": true,
"_materials": [
@@ -6675,7 +6786,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "4ff0e468-4bdc-47b9-a3fc-c3999a1a62dc"
+ "__uuid__": "504647c0-4bb4-4edd-b02d-5a20a94e12d5"
},
"_type": 0,
"_sizeMode": 1,
@@ -6689,7 +6800,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "493kRumnpEfqIUNxgxZDsz"
},
@@ -6698,13 +6809,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 142
+ "__id__": 144
}
],
"_prefab": null,
@@ -6731,7 +6842,7 @@
"ctor": "Float64Array",
"array": [
48.363,
- -66.999,
+ -39.709,
0,
0,
0,
@@ -6760,7 +6871,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 141
+ "__id__": 143
},
"_enabled": true,
"_materials": [
@@ -6794,13 +6905,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 144
+ "__id__": 146
}
],
"_prefab": null,
@@ -6826,15 +6937,15 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -393.758,
- -120.524,
+ -378.213,
+ -32.38,
0,
0,
0,
0,
1,
- 1,
- 1,
+ 0.4,
+ 0.4,
1
]
},
@@ -6856,7 +6967,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 143
+ "__id__": 145
},
"_enabled": true,
"_materials": [
@@ -6887,16 +6998,112 @@
},
{
"__type__": "cc.Node",
- "_name": "New Sprite",
+ "_name": "小钟图标_1",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 146
+ "__id__": 148
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 79,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -179.234,
+ -45.185,
+ 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": "208soSmsZDPpggTM1mGJkD"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 147
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "e54e9ac3-4cdc-4afa-bcc5-3e76a71de364"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "cepyUebbNJsZhk/CwUtfZG"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "New Sprite",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 150
}
],
"_prefab": null,
@@ -6922,8 +7129,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 47.735,
- -178.828,
+ -4.385,
+ -56.3,
0,
0,
0,
@@ -6952,7 +7159,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 149
},
"_enabled": true,
"_materials": [
@@ -6986,7 +7193,7 @@
"_name": "level",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
@@ -7014,8 +7221,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -421.43,
- -202.999,
+ -390,
+ -90.338,
0,
0,
0,
@@ -7044,7 +7251,7 @@
"_name": "time",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
@@ -7072,8 +7279,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -47,
- -175.073,
+ -103.331,
+ -54.197,
0,
0,
0,
@@ -7097,18 +7304,306 @@
"groupIndex": 0,
"_id": "40UpDXAxJJPKv8JLFp8zwJ"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "ditu00",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 154
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 312,
+ "height": 62
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 338.889,
+ -55.728,
+ 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": "a0NhyFR6JMYrrafDAcT+mG"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 153
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "01c52e25-2b5d-4a2d-bcee-60913a9b83e6"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "baGP59Fc9Ki6dTjlXk/XAp"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "coins",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 156
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 70,
+ "height": 71
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 212.37,
+ -54.222,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1.2,
+ 1.2,
+ 1
+ ]
+ },
+ "_eulerAngles": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_skewX": 0,
+ "_skewY": 0,
+ "_is3DNode": false,
+ "_groupIndex": 0,
+ "groupIndex": 0,
+ "_id": "a8JH7FzwlLgLoubW/zwwzN"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 155
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "239f5193-a287-40ec-8887-5108d59b569c"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ },
+ "_id": "d5Ga1SVtFCHpW+F/d+M2Dx"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "加按钮_1",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 158
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 76,
+ "height": 82
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 466.913,
+ -58.741,
+ 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": "f1isnnRLZEfodXxw30geH/"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 157
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "14120fba-2d29-4ca3-a9f5-3154657e3ab3"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "b15b5gJJRFxpH/6bNeH1b0"
+ },
{
"__type__": "cc.Node",
"_name": "Ice",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 150
+ "__id__": 160
}
],
"_prefab": null,
@@ -7164,7 +7659,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 159
},
"_enabled": true,
"_materials": [
@@ -7196,13 +7691,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 152
+ "__id__": 162
}
],
"_prefab": null,
@@ -7258,7 +7753,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 151
+ "__id__": 161
},
"_enabled": true,
"_materials": [
@@ -7291,17 +7786,17 @@
"_name": "returnBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [
{
- "__id__": 154
+ "__id__": 164
}
],
"_active": false,
"_components": [
{
- "__id__": 156
+ "__id__": 166
}
],
"_prefab": null,
@@ -7357,13 +7852,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 153
+ "__id__": 163
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 155
+ "__id__": 165
}
],
"_prefab": null,
@@ -7419,7 +7914,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 154
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7453,7 +7948,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 163
},
"_enabled": true,
"_normalMaterial": null,
@@ -7462,7 +7957,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 157
+ "__id__": 167
}
],
"_N$interactable": true,
@@ -7518,7 +8013,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 153
+ "__id__": 163
},
"_id": "34Z6b/IgpOtKrGQXG1ECg6"
},
@@ -7537,7 +8032,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 138
+ "__id__": 140
},
"_enabled": true,
"alignMode": 1,
@@ -7570,10 +8065,10 @@
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 170
},
{
- "__id__": 161
+ "__id__": 171
}
],
"_prefab": null,
@@ -7629,7 +8124,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 159
+ "__id__": 169
},
"_enabled": true,
"_materials": [
@@ -7661,7 +8156,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 159
+ "__id__": 169
},
"_enabled": true,
"alignMode": 1,
@@ -7718,32 +8213,32 @@
"__id__": 5
},
"_children": [
- {
- "__id__": 164
- },
- {
- "__id__": 168
- },
- {
- "__id__": 170
- },
- {
- "__id__": 172
- },
{
"__id__": 174
},
+ {
+ "__id__": 178
+ },
{
"__id__": 180
+ },
+ {
+ "__id__": 182
+ },
+ {
+ "__id__": 184
+ },
+ {
+ "__id__": 190
}
],
"_active": false,
"_components": [
{
- "__id__": 182
+ "__id__": 192
},
{
- "__id__": 183
+ "__id__": 193
}
],
"_prefab": null,
@@ -7799,19 +8294,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 165
+ "__id__": 175
},
{
- "__id__": 166
+ "__id__": 176
},
{
- "__id__": 167
+ "__id__": 177
}
],
"_prefab": null,
@@ -7867,7 +8362,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"_materials": [
@@ -7899,7 +8394,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"alignMode": 1,
@@ -7926,7 +8421,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"_id": "1e62ukhsJObKLFucCNzfwm"
@@ -7936,13 +8431,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 169
+ "__id__": 179
}
],
"_prefab": null,
@@ -7998,7 +8493,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 178
},
"_enabled": true,
"_materials": [
@@ -8030,13 +8525,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 171
+ "__id__": 181
}
],
"_prefab": null,
@@ -8092,7 +8587,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 170
+ "__id__": 180
},
"_enabled": true,
"_materials": [
@@ -8124,13 +8619,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 173
+ "__id__": 183
}
],
"_prefab": null,
@@ -8186,7 +8681,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 182
},
"_enabled": true,
"_materials": [
@@ -8216,20 +8711,20 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [
{
- "__id__": 175
+ "__id__": 185
}
],
"_active": true,
"_components": [
{
- "__id__": 177
+ "__id__": 187
},
{
- "__id__": 178
+ "__id__": 188
}
],
"_prefab": null,
@@ -8285,13 +8780,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 174
+ "__id__": 184
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 176
+ "__id__": 186
}
],
"_prefab": null,
@@ -8347,7 +8842,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 175
+ "__id__": 185
},
"_enabled": true,
"_materials": [
@@ -8379,7 +8874,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 184
},
"_enabled": true,
"_materials": [
@@ -8411,7 +8906,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 184
},
"_enabled": true,
"_normalMaterial": null,
@@ -8420,7 +8915,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 179
+ "__id__": 189
}
],
"_N$interactable": true,
@@ -8476,14 +8971,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 174
+ "__id__": 184
},
"_id": "2bhrCpcRxImqyWzBaIVVCd"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 163
+ "__id__": 173
},
"component": "",
"_componentId": "7fe14dRFQZKSKKAoEn4S7OU",
@@ -8495,13 +8990,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 191
}
],
"_prefab": null,
@@ -8557,7 +9052,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 190
},
"_enabled": true,
"_materials": [
@@ -8589,7 +9084,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 173
},
"_enabled": true,
"alignMode": 1,
@@ -8616,7 +9111,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 173
},
"_enabled": true,
"label": null,
@@ -8632,22 +9127,22 @@
},
"_children": [
{
- "__id__": 185
+ "__id__": 195
},
{
- "__id__": 189
+ "__id__": 199
},
{
- "__id__": 191
+ "__id__": 201
},
{
- "__id__": 197
+ "__id__": 207
}
],
"_active": false,
"_components": [
{
- "__id__": 203
+ "__id__": 213
}
],
"_prefab": null,
@@ -8703,19 +9198,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 186
+ "__id__": 196
},
{
- "__id__": 187
+ "__id__": 197
},
{
- "__id__": 188
+ "__id__": 198
}
],
"_prefab": null,
@@ -8771,7 +9266,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"_materials": [
@@ -8803,7 +9298,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"alignMode": 1,
@@ -8830,7 +9325,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"_id": "7aMdyhm41AyqFZMnIAtTUY"
@@ -8840,13 +9335,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 190
+ "__id__": 200
}
],
"_prefab": null,
@@ -8902,7 +9397,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 199
},
"_enabled": true,
"_materials": [
@@ -8934,20 +9429,20 @@
"_name": "nextBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [
{
- "__id__": 192
+ "__id__": 202
}
],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 204
},
{
- "__id__": 195
+ "__id__": 205
}
],
"_prefab": null,
@@ -9003,13 +9498,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 191
+ "__id__": 201
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 193
+ "__id__": 203
}
],
"_prefab": null,
@@ -9065,7 +9560,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 202
},
"_enabled": true,
"_materials": [
@@ -9099,7 +9594,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 191
+ "__id__": 201
},
"_enabled": true,
"_materials": [
@@ -9131,7 +9626,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 191
+ "__id__": 201
},
"_enabled": true,
"_normalMaterial": null,
@@ -9140,7 +9635,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 196
+ "__id__": 206
}
],
"_N$interactable": true,
@@ -9196,7 +9691,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 191
+ "__id__": 201
},
"_id": "02dmnqIIhNA7gNoxAqWnCT"
},
@@ -9215,20 +9710,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [
{
- "__id__": 198
+ "__id__": 208
}
],
"_active": true,
"_components": [
{
- "__id__": 200
+ "__id__": 210
},
{
- "__id__": 201
+ "__id__": 211
}
],
"_prefab": null,
@@ -9284,13 +9779,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 197
+ "__id__": 207
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 199
+ "__id__": 209
}
],
"_prefab": null,
@@ -9346,7 +9841,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 198
+ "__id__": 208
},
"_enabled": true,
"_materials": [
@@ -9380,7 +9875,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 197
+ "__id__": 207
},
"_enabled": true,
"_materials": [
@@ -9412,7 +9907,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 197
+ "__id__": 207
},
"_enabled": true,
"_normalMaterial": null,
@@ -9421,7 +9916,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 202
+ "__id__": 212
}
],
"_N$interactable": true,
@@ -9477,7 +9972,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 197
+ "__id__": 207
},
"_id": "340osYA4tCpJlhedNAxg8f"
},
@@ -9496,7 +9991,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 194
},
"_enabled": true,
"alignMode": 1,
@@ -9527,28 +10022,28 @@
},
"_children": [
{
- "__id__": 205
+ "__id__": 215
},
{
- "__id__": 209
+ "__id__": 219
},
{
- "__id__": 211
+ "__id__": 221
},
{
- "__id__": 283
+ "__id__": 293
},
{
- "__id__": 304
+ "__id__": 314
},
{
- "__id__": 327
+ "__id__": 337
}
],
"_active": false,
"_components": [
{
- "__id__": 348
+ "__id__": 358
}
],
"_prefab": null,
@@ -9604,19 +10099,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 206
+ "__id__": 216
},
{
- "__id__": 207
+ "__id__": 217
},
{
- "__id__": 208
+ "__id__": 218
}
],
"_prefab": null,
@@ -9672,7 +10167,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"_materials": [
@@ -9704,7 +10199,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"alignMode": 1,
@@ -9731,7 +10226,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"_id": "c22Pk+4yZHHaEcGiym9WxK"
@@ -9741,13 +10236,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 210
+ "__id__": 220
}
],
"_prefab": null,
@@ -9803,7 +10298,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 219
},
"_enabled": true,
"_materials": [
@@ -9835,32 +10330,32 @@
"_name": "Time",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
- {
- "__id__": 212
- },
- {
- "__id__": 214
- },
- {
- "__id__": 216
- },
- {
- "__id__": 218
- },
- {
- "__id__": 220
- },
{
"__id__": 222
},
{
- "__id__": 238
+ "__id__": 224
},
{
- "__id__": 277
+ "__id__": 226
+ },
+ {
+ "__id__": 228
+ },
+ {
+ "__id__": 230
+ },
+ {
+ "__id__": 232
+ },
+ {
+ "__id__": 248
+ },
+ {
+ "__id__": 287
}
],
"_active": true,
@@ -9918,13 +10413,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 213
+ "__id__": 223
}
],
"_prefab": null,
@@ -9980,7 +10475,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 212
+ "__id__": 222
},
"_enabled": true,
"_materials": [
@@ -10014,13 +10509,13 @@
"_name": "result_Label1",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 215
+ "__id__": 225
}
],
"_prefab": null,
@@ -10076,7 +10571,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 214
+ "__id__": 224
},
"_enabled": true,
"_materials": [
@@ -10110,13 +10605,13 @@
"_name": "time_show",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 217
+ "__id__": 227
}
],
"_prefab": null,
@@ -10172,7 +10667,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 216
+ "__id__": 226
},
"_enabled": true,
"_materials": [
@@ -10206,13 +10701,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 219
+ "__id__": 229
}
],
"_prefab": null,
@@ -10268,7 +10763,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 218
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10301,13 +10796,13 @@
"_name": "time_hide",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 221
+ "__id__": 231
}
],
"_prefab": null,
@@ -10363,7 +10858,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 220
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10397,35 +10892,35 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
- {
- "__id__": 223
- },
- {
- "__id__": 225
- },
- {
- "__id__": 227
- },
- {
- "__id__": 229
- },
- {
- "__id__": 231
- },
{
"__id__": 233
+ },
+ {
+ "__id__": 235
+ },
+ {
+ "__id__": 237
+ },
+ {
+ "__id__": 239
+ },
+ {
+ "__id__": 241
+ },
+ {
+ "__id__": 243
}
],
"_active": false,
"_components": [
{
- "__id__": 235
+ "__id__": 245
},
{
- "__id__": 236
+ "__id__": 246
}
],
"_prefab": null,
@@ -10481,13 +10976,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 224
+ "__id__": 234
}
],
"_prefab": null,
@@ -10543,7 +11038,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 223
+ "__id__": 233
},
"_enabled": true,
"_materials": [
@@ -10577,13 +11072,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 226
+ "__id__": 236
}
],
"_prefab": null,
@@ -10639,7 +11134,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 225
+ "__id__": 235
},
"_enabled": true,
"_materials": [
@@ -10673,13 +11168,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 238
}
],
"_prefab": null,
@@ -10735,7 +11230,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 237
},
"_enabled": true,
"_materials": [
@@ -10769,13 +11264,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 230
+ "__id__": 240
}
],
"_prefab": null,
@@ -10831,7 +11326,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 239
},
"_enabled": true,
"_materials": [
@@ -10865,13 +11360,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 242
}
],
"_prefab": null,
@@ -10927,7 +11422,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 241
},
"_enabled": true,
"_materials": [
@@ -10961,13 +11456,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 234
+ "__id__": 244
}
],
"_prefab": null,
@@ -11023,7 +11518,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 243
},
"_enabled": true,
"_materials": [
@@ -11057,7 +11552,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -11091,7 +11586,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 232
},
"_enabled": true,
"_normalMaterial": null,
@@ -11100,7 +11595,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 237
+ "__id__": 247
}
],
"_N$interactable": true,
@@ -11156,7 +11651,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 222
+ "__id__": 232
},
"_id": "f26wyaXk1ODqKTicGneesK"
},
@@ -11173,41 +11668,41 @@
"_name": "buyBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
{
- "__id__": 239
+ "__id__": 249
},
{
- "__id__": 241
+ "__id__": 251
},
{
- "__id__": 243
+ "__id__": 253
},
{
- "__id__": 245
+ "__id__": 255
},
{
- "__id__": 247
+ "__id__": 257
},
{
- "__id__": 254
+ "__id__": 264
},
{
- "__id__": 263
+ "__id__": 273
},
{
- "__id__": 272
+ "__id__": 282
}
],
"_active": true,
"_components": [
{
- "__id__": 274
+ "__id__": 284
},
{
- "__id__": 275
+ "__id__": 285
}
],
"_prefab": null,
@@ -11263,13 +11758,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 240
+ "__id__": 250
}
],
"_prefab": null,
@@ -11325,7 +11820,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 239
+ "__id__": 249
},
"_enabled": true,
"_materials": [
@@ -11359,13 +11854,13 @@
"_name": "coins_+",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 242
+ "__id__": 252
}
],
"_prefab": null,
@@ -11421,7 +11916,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 241
+ "__id__": 251
},
"_enabled": true,
"_materials": [
@@ -11455,13 +11950,13 @@
"_name": "coins2",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 254
}
],
"_prefab": null,
@@ -11517,7 +12012,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 253
},
"_enabled": true,
"_materials": [
@@ -11551,13 +12046,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 256
}
],
"_prefab": null,
@@ -11613,7 +12108,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 255
},
"_enabled": true,
"_materials": [
@@ -11647,17 +12142,17 @@
"_name": "coin1",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 248
+ "__id__": 258
},
{
- "__id__": 250
+ "__id__": 260
},
{
- "__id__": 252
+ "__id__": 262
}
],
"_active": false,
@@ -11715,13 +12210,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 249
+ "__id__": 259
}
],
"_prefab": null,
@@ -11777,7 +12272,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 248
+ "__id__": 258
},
"_enabled": true,
"_materials": [
@@ -11811,13 +12306,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 251
+ "__id__": 261
}
],
"_prefab": null,
@@ -11873,7 +12368,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 250
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -11907,13 +12402,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 253
+ "__id__": 263
}
],
"_prefab": null,
@@ -11969,7 +12464,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 262
},
"_enabled": true,
"_materials": [
@@ -12003,20 +12498,20 @@
"_name": "coin2",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 255
+ "__id__": 265
},
{
- "__id__": 257
+ "__id__": 267
},
{
- "__id__": 259
+ "__id__": 269
},
{
- "__id__": 261
+ "__id__": 271
}
],
"_active": false,
@@ -12074,13 +12569,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 256
+ "__id__": 266
}
],
"_prefab": null,
@@ -12136,7 +12631,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 255
+ "__id__": 265
},
"_enabled": true,
"_materials": [
@@ -12170,13 +12665,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 258
+ "__id__": 268
}
],
"_prefab": null,
@@ -12232,7 +12727,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 257
+ "__id__": 267
},
"_enabled": true,
"_materials": [
@@ -12266,13 +12761,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 270
}
],
"_prefab": null,
@@ -12328,7 +12823,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 259
+ "__id__": 269
},
"_enabled": true,
"_materials": [
@@ -12362,13 +12857,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 262
+ "__id__": 272
}
],
"_prefab": null,
@@ -12424,7 +12919,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 261
+ "__id__": 271
},
"_enabled": true,
"_materials": [
@@ -12458,20 +12953,20 @@
"_name": "coin3",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 264
+ "__id__": 274
},
{
- "__id__": 266
+ "__id__": 276
},
{
- "__id__": 268
+ "__id__": 278
},
{
- "__id__": 270
+ "__id__": 280
}
],
"_active": false,
@@ -12529,13 +13024,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 265
+ "__id__": 275
}
],
"_prefab": null,
@@ -12591,7 +13086,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 264
+ "__id__": 274
},
"_enabled": true,
"_materials": [
@@ -12625,13 +13120,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 267
+ "__id__": 277
}
],
"_prefab": null,
@@ -12687,7 +13182,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 266
+ "__id__": 276
},
"_enabled": true,
"_materials": [
@@ -12721,13 +13216,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 269
+ "__id__": 279
}
],
"_prefab": null,
@@ -12783,7 +13278,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 268
+ "__id__": 278
},
"_enabled": true,
"_materials": [
@@ -12817,13 +13312,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 271
+ "__id__": 281
}
],
"_prefab": null,
@@ -12879,7 +13374,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 270
+ "__id__": 280
},
"_enabled": true,
"_materials": [
@@ -12913,13 +13408,13 @@
"_name": "coins",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 273
+ "__id__": 283
}
],
"_prefab": null,
@@ -12975,7 +13470,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 272
+ "__id__": 282
},
"_enabled": true,
"_materials": [
@@ -13009,7 +13504,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 238
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -13041,7 +13536,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 238
+ "__id__": 248
},
"_enabled": true,
"_normalMaterial": null,
@@ -13050,7 +13545,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 276
+ "__id__": 286
}
],
"_N$interactable": true,
@@ -13106,7 +13601,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 238
+ "__id__": 248
},
"_id": "d9X6reFQ5ElIF/oEEoTwvB"
},
@@ -13125,20 +13620,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
{
- "__id__": 278
+ "__id__": 288
}
],
"_active": true,
"_components": [
{
- "__id__": 280
+ "__id__": 290
},
{
- "__id__": 281
+ "__id__": 291
}
],
"_prefab": null,
@@ -13194,13 +13689,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 277
+ "__id__": 287
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 279
+ "__id__": 289
}
],
"_prefab": null,
@@ -13256,7 +13751,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 278
+ "__id__": 288
},
"_enabled": true,
"_materials": [
@@ -13290,7 +13785,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 277
+ "__id__": 287
},
"_enabled": true,
"_materials": [
@@ -13322,7 +13817,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 277
+ "__id__": 287
},
"_enabled": true,
"_normalMaterial": null,
@@ -13331,7 +13826,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 282
+ "__id__": 292
}
],
"_N$interactable": true,
@@ -13387,7 +13882,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 277
+ "__id__": 287
},
"_id": "48mz2WOYxOmpmmNFGfPFpu"
},
@@ -13406,23 +13901,23 @@
"_name": "Boom",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 284
- },
- {
- "__id__": 286
- },
- {
- "__id__": 288
+ "__id__": 294
},
{
"__id__": 296
},
{
- "__id__": 302
+ "__id__": 298
+ },
+ {
+ "__id__": 306
+ },
+ {
+ "__id__": 312
}
],
"_active": false,
@@ -13480,13 +13975,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 285
+ "__id__": 295
}
],
"_prefab": null,
@@ -13542,7 +14037,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 284
+ "__id__": 294
},
"_enabled": true,
"_materials": [
@@ -13576,13 +14071,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 287
+ "__id__": 297
}
],
"_prefab": null,
@@ -13638,7 +14133,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 286
+ "__id__": 296
},
"_enabled": true,
"_materials": [
@@ -13672,23 +14167,23 @@
"_name": "boomBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [
{
- "__id__": 289
+ "__id__": 299
},
{
- "__id__": 291
+ "__id__": 301
}
],
"_active": false,
"_components": [
{
- "__id__": 293
+ "__id__": 303
},
{
- "__id__": 294
+ "__id__": 304
}
],
"_prefab": null,
@@ -13744,13 +14239,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 288
+ "__id__": 298
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 290
+ "__id__": 300
}
],
"_prefab": null,
@@ -13806,7 +14301,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 289
+ "__id__": 299
},
"_enabled": true,
"_materials": [
@@ -13840,13 +14335,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 288
+ "__id__": 298
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 292
+ "__id__": 302
}
],
"_prefab": null,
@@ -13902,7 +14397,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 291
+ "__id__": 301
},
"_enabled": true,
"_materials": [
@@ -13936,7 +14431,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 298
},
"_enabled": true,
"_materials": [
@@ -13970,7 +14465,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 298
},
"_enabled": true,
"_normalMaterial": null,
@@ -13979,7 +14474,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 295
+ "__id__": 305
}
],
"_N$interactable": true,
@@ -14035,7 +14530,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 288
+ "__id__": 298
},
"_id": "fdZzVHD4hNAIg80rQMiVrL"
},
@@ -14052,20 +14547,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [
{
- "__id__": 297
+ "__id__": 307
}
],
"_active": true,
"_components": [
{
- "__id__": 299
+ "__id__": 309
},
{
- "__id__": 300
+ "__id__": 310
}
],
"_prefab": null,
@@ -14121,13 +14616,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 296
+ "__id__": 306
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 298
+ "__id__": 308
}
],
"_prefab": null,
@@ -14183,7 +14678,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 297
+ "__id__": 307
},
"_enabled": true,
"_materials": [
@@ -14217,7 +14712,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 296
+ "__id__": 306
},
"_enabled": true,
"_materials": [
@@ -14249,7 +14744,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 296
+ "__id__": 306
},
"_enabled": true,
"_normalMaterial": null,
@@ -14258,7 +14753,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 301
+ "__id__": 311
}
],
"_N$interactable": true,
@@ -14314,7 +14809,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 296
+ "__id__": 306
},
"_id": "55yv+R8WZJC6lx8Nc3Ql1k"
},
@@ -14333,13 +14828,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 303
+ "__id__": 313
}
],
"_prefab": null,
@@ -14395,7 +14890,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 302
+ "__id__": 312
},
"_enabled": true,
"_materials": [
@@ -14429,20 +14924,20 @@
"_name": "Lock",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 305
+ "__id__": 315
},
{
- "__id__": 307
+ "__id__": 317
},
{
- "__id__": 309
+ "__id__": 319
},
{
- "__id__": 311
+ "__id__": 321
}
],
"_active": false,
@@ -14500,13 +14995,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 306
+ "__id__": 316
}
],
"_prefab": null,
@@ -14562,7 +15057,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 305
+ "__id__": 315
},
"_enabled": true,
"_materials": [
@@ -14596,13 +15091,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 308
+ "__id__": 318
}
],
"_prefab": null,
@@ -14658,7 +15153,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 307
+ "__id__": 317
},
"_enabled": true,
"_materials": [
@@ -14691,13 +15186,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 310
+ "__id__": 320
}
],
"_prefab": null,
@@ -14753,7 +15248,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 309
+ "__id__": 319
},
"_enabled": false,
"_materials": [
@@ -14787,35 +15282,35 @@
"_name": "lockBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [
- {
- "__id__": 312
- },
- {
- "__id__": 314
- },
- {
- "__id__": 316
- },
- {
- "__id__": 318
- },
- {
- "__id__": 320
- },
{
"__id__": 322
+ },
+ {
+ "__id__": 324
+ },
+ {
+ "__id__": 326
+ },
+ {
+ "__id__": 328
+ },
+ {
+ "__id__": 330
+ },
+ {
+ "__id__": 332
}
],
"_active": true,
"_components": [
{
- "__id__": 324
+ "__id__": 334
},
{
- "__id__": 325
+ "__id__": 335
}
],
"_prefab": null,
@@ -14871,13 +15366,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 313
+ "__id__": 323
}
],
"_prefab": null,
@@ -14933,7 +15428,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 312
+ "__id__": 322
},
"_enabled": true,
"_materials": [
@@ -14967,13 +15462,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 315
+ "__id__": 325
}
],
"_prefab": null,
@@ -15029,7 +15524,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 314
+ "__id__": 324
},
"_enabled": true,
"_materials": [
@@ -15063,13 +15558,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 317
+ "__id__": 327
}
],
"_prefab": null,
@@ -15125,7 +15620,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 316
+ "__id__": 326
},
"_enabled": true,
"_materials": [
@@ -15159,13 +15654,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 319
+ "__id__": 329
}
],
"_prefab": null,
@@ -15221,7 +15716,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 318
+ "__id__": 328
},
"_enabled": true,
"_materials": [
@@ -15255,13 +15750,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 321
+ "__id__": 331
}
],
"_prefab": null,
@@ -15317,7 +15812,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 320
+ "__id__": 330
},
"_enabled": true,
"_materials": [
@@ -15351,13 +15846,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 323
+ "__id__": 333
}
],
"_prefab": null,
@@ -15413,7 +15908,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 322
+ "__id__": 332
},
"_enabled": true,
"_materials": [
@@ -15447,7 +15942,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 321
},
"_enabled": true,
"_materials": [
@@ -15481,7 +15976,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 321
},
"_enabled": true,
"_normalMaterial": null,
@@ -15490,7 +15985,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 326
+ "__id__": 336
}
],
"_N$interactable": true,
@@ -15546,7 +16041,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 311
+ "__id__": 321
},
"_id": "655dVf4UVDOrfIwT5AEPmn"
},
@@ -15563,23 +16058,23 @@
"_name": "Health",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 328
- },
- {
- "__id__": 330
- },
- {
- "__id__": 336
+ "__id__": 338
},
{
"__id__": 340
},
{
"__id__": 346
+ },
+ {
+ "__id__": 350
+ },
+ {
+ "__id__": 356
}
],
"_active": false,
@@ -15637,13 +16132,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 329
+ "__id__": 339
}
],
"_prefab": null,
@@ -15699,7 +16194,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 328
+ "__id__": 338
},
"_enabled": true,
"_materials": [
@@ -15733,20 +16228,20 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [
{
- "__id__": 331
+ "__id__": 341
},
{
- "__id__": 333
+ "__id__": 343
}
],
"_active": true,
"_components": [
{
- "__id__": 335
+ "__id__": 345
}
],
"_prefab": null,
@@ -15802,13 +16297,13 @@
"_name": "hp_-",
"_objFlags": 0,
"_parent": {
- "__id__": 330
+ "__id__": 340
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 332
+ "__id__": 342
}
],
"_prefab": null,
@@ -15864,7 +16359,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 331
+ "__id__": 341
},
"_enabled": true,
"_materials": [
@@ -15898,13 +16393,13 @@
"_name": "hp_1",
"_objFlags": 0,
"_parent": {
- "__id__": 330
+ "__id__": 340
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 334
+ "__id__": 344
}
],
"_prefab": null,
@@ -15960,7 +16455,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 333
+ "__id__": 343
},
"_enabled": true,
"_materials": [
@@ -15994,7 +16489,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 330
+ "__id__": 340
},
"_enabled": true,
"_materials": [
@@ -16028,16 +16523,16 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 337
+ "__id__": 347
},
{
- "__id__": 338
+ "__id__": 348
}
],
"_prefab": null,
@@ -16093,7 +16588,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 336
+ "__id__": 346
},
"_enabled": true,
"_materials": [
@@ -16127,7 +16622,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 336
+ "__id__": 346
},
"_enabled": true,
"_normalMaterial": null,
@@ -16136,7 +16631,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 339
+ "__id__": 349
}
],
"_N$interactable": true,
@@ -16192,7 +16687,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 336
+ "__id__": 346
},
"_id": "e6+nQbfBJDk5i7aunx3eFh"
},
@@ -16211,20 +16706,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [
{
- "__id__": 341
+ "__id__": 351
}
],
"_active": true,
"_components": [
{
- "__id__": 343
+ "__id__": 353
},
{
- "__id__": 344
+ "__id__": 354
}
],
"_prefab": null,
@@ -16280,13 +16775,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 340
+ "__id__": 350
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 342
+ "__id__": 352
}
],
"_prefab": null,
@@ -16342,7 +16837,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 341
+ "__id__": 351
},
"_enabled": true,
"_materials": [
@@ -16376,7 +16871,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 350
},
"_enabled": true,
"_materials": [
@@ -16408,7 +16903,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 350
},
"_enabled": true,
"_normalMaterial": null,
@@ -16417,7 +16912,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 345
+ "__id__": 355
}
],
"_N$interactable": true,
@@ -16473,7 +16968,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 340
+ "__id__": 350
},
"_id": "bbSZLwLOdIJJ624BuB24QD"
},
@@ -16492,13 +16987,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 347
+ "__id__": 357
}
],
"_prefab": null,
@@ -16554,7 +17049,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 346
+ "__id__": 356
},
"_enabled": true,
"_materials": [
@@ -16588,7 +17083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 204
+ "__id__": 214
},
"_enabled": true,
"alignMode": 1,
@@ -16646,25 +17141,13 @@
},
"_children": [
{
- "__id__": 351
+ "__id__": 361
},
{
- "__id__": 354
+ "__id__": 364
},
{
- "__id__": 356
- },
- {
- "__id__": 363
- },
- {
- "__id__": 365
- },
- {
- "__id__": 369
- },
- {
- "__id__": 371
+ "__id__": 366
},
{
"__id__": 373
@@ -16672,35 +17155,47 @@
{
"__id__": 375
},
- {
- "__id__": 377
- },
{
"__id__": 379
},
{
"__id__": 381
},
+ {
+ "__id__": 383
+ },
{
"__id__": 385
},
+ {
+ "__id__": 387
+ },
{
"__id__": 389
},
{
- "__id__": 393
+ "__id__": 391
},
{
"__id__": 395
},
{
- "__id__": 397
+ "__id__": 399
+ },
+ {
+ "__id__": 403
+ },
+ {
+ "__id__": 405
+ },
+ {
+ "__id__": 407
}
],
"_active": false,
"_components": [
{
- "__id__": 399
+ "__id__": 409
}
],
"_prefab": null,
@@ -16756,16 +17251,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 352
+ "__id__": 362
},
{
- "__id__": 353
+ "__id__": 363
}
],
"_prefab": null,
@@ -16821,7 +17316,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 351
+ "__id__": 361
},
"_enabled": true,
"_materials": [
@@ -16853,7 +17348,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 351
+ "__id__": 361
},
"_enabled": true,
"_id": "081I6vq85Jwqkph7MYgiJK"
@@ -16863,13 +17358,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 355
+ "__id__": 365
}
],
"_prefab": null,
@@ -16925,7 +17420,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 354
+ "__id__": 364
},
"_enabled": true,
"_materials": [
@@ -16957,23 +17452,23 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [
{
- "__id__": 357
+ "__id__": 367
}
],
"_active": true,
"_components": [
{
- "__id__": 359
+ "__id__": 369
},
{
- "__id__": 360
+ "__id__": 370
},
{
- "__id__": 362
+ "__id__": 372
}
],
"_prefab": null,
@@ -17029,13 +17524,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 356
+ "__id__": 366
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 358
+ "__id__": 368
}
],
"_prefab": null,
@@ -17091,7 +17586,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 357
+ "__id__": 367
},
"_enabled": true,
"_materials": [
@@ -17125,7 +17620,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_materials": [
@@ -17159,7 +17654,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_normalMaterial": null,
@@ -17168,7 +17663,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 361
+ "__id__": 371
}
],
"_N$interactable": true,
@@ -17224,7 +17719,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 356
+ "__id__": 366
},
"_id": "10Gq5GdVNFoaGKYCbUkdh0"
},
@@ -17243,7 +17738,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_id": "48L+wrOmdFHpjlTvLGv0eT"
@@ -17253,13 +17748,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 364
+ "__id__": 374
}
],
"_prefab": null,
@@ -17315,7 +17810,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 363
+ "__id__": 373
},
"_enabled": true,
"_materials": [
@@ -17349,16 +17844,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 366
+ "__id__": 376
},
{
- "__id__": 367
+ "__id__": 377
}
],
"_prefab": null,
@@ -17414,7 +17909,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 365
+ "__id__": 375
},
"_enabled": true,
"_materials": [
@@ -17448,7 +17943,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 365
+ "__id__": 375
},
"_enabled": true,
"_normalMaterial": null,
@@ -17457,7 +17952,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 368
+ "__id__": 378
}
],
"_N$interactable": true,
@@ -17513,7 +18008,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 365
+ "__id__": 375
},
"_id": "9cyVET3cdKsYjhCs6UcCZp"
},
@@ -17532,13 +18027,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 370
+ "__id__": 380
}
],
"_prefab": null,
@@ -17594,7 +18089,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 379
},
"_enabled": true,
"_materials": [
@@ -17628,13 +18123,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 372
+ "__id__": 382
}
],
"_prefab": null,
@@ -17690,7 +18185,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 371
+ "__id__": 381
},
"_enabled": true,
"_materials": [
@@ -17724,13 +18219,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 374
+ "__id__": 384
}
],
"_prefab": null,
@@ -17786,7 +18281,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 373
+ "__id__": 383
},
"_enabled": true,
"_materials": [
@@ -17820,13 +18315,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 376
+ "__id__": 386
}
],
"_prefab": null,
@@ -17882,7 +18377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 375
+ "__id__": 385
},
"_enabled": true,
"_materials": [
@@ -17916,13 +18411,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 378
+ "__id__": 388
}
],
"_prefab": null,
@@ -17978,7 +18473,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 377
+ "__id__": 387
},
"_enabled": true,
"_materials": [
@@ -18012,13 +18507,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 380
+ "__id__": 390
}
],
"_prefab": null,
@@ -18074,7 +18569,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 379
+ "__id__": 389
},
"_enabled": true,
"_materials": [
@@ -18108,16 +18603,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 382
+ "__id__": 392
},
{
- "__id__": 383
+ "__id__": 393
}
],
"_prefab": null,
@@ -18173,7 +18668,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 391
},
"_enabled": true,
"_materials": [
@@ -18207,7 +18702,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 391
},
"_enabled": true,
"_normalMaterial": null,
@@ -18216,7 +18711,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 384
+ "__id__": 394
}
],
"_N$interactable": true,
@@ -18272,14 +18767,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 381
+ "__id__": 391
},
"_id": "f5jlj3QZFNUoLmIDeOTDNk"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18291,16 +18786,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 386
+ "__id__": 396
},
{
- "__id__": 387
+ "__id__": 397
}
],
"_prefab": null,
@@ -18356,7 +18851,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 395
},
"_enabled": true,
"_materials": [
@@ -18390,7 +18885,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 395
},
"_enabled": true,
"_normalMaterial": null,
@@ -18399,7 +18894,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 388
+ "__id__": 398
}
],
"_N$interactable": true,
@@ -18455,14 +18950,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 385
+ "__id__": 395
},
"_id": "f7PV5tqLpANY2mQ5mNiG8G"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18474,16 +18969,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 390
+ "__id__": 400
},
{
- "__id__": 391
+ "__id__": 401
}
],
"_prefab": null,
@@ -18539,7 +19034,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 399
},
"_enabled": true,
"_materials": [
@@ -18573,7 +19068,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 399
},
"_enabled": true,
"_normalMaterial": null,
@@ -18582,7 +19077,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 392
+ "__id__": 402
}
],
"_N$interactable": true,
@@ -18638,14 +19133,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 389
+ "__id__": 399
},
"_id": "f9Y6q5sbpGXrDTpVBgbvWY"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18657,13 +19152,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 394
+ "__id__": 404
}
],
"_prefab": null,
@@ -18719,7 +19214,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 403
},
"_enabled": true,
"_materials": [
@@ -18753,13 +19248,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 396
+ "__id__": 406
}
],
"_prefab": null,
@@ -18815,7 +19310,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 395
+ "__id__": 405
},
"_enabled": true,
"_materials": [
@@ -18849,13 +19344,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 398
+ "__id__": 408
}
],
"_prefab": null,
@@ -18911,7 +19406,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 397
+ "__id__": 407
},
"_enabled": true,
"_materials": [
@@ -18945,17 +19440,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 350
+ "__id__": 360
},
"_enabled": true,
"music": {
- "__id__": 393
+ "__id__": 403
},
"effect": {
- "__id__": 395
+ "__id__": 405
},
"vibrate": {
- "__id__": 397
+ "__id__": 407
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -18976,10 +19471,10 @@
"_active": false,
"_components": [
{
- "__id__": 401
+ "__id__": 411
},
{
- "__id__": 402
+ "__id__": 412
}
],
"_prefab": null,
@@ -19035,7 +19530,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 400
+ "__id__": 410
},
"_enabled": true,
"_materials": [
@@ -19077,7 +19572,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 400
+ "__id__": 410
},
"_enabled": false,
"_id": "00qpMLeBFNhYRX9r3QZvyP"
@@ -19140,13 +19635,13 @@
"__id__": 19
},
"hammer": {
- "__id__": 21
+ "__id__": 23
},
"magic_wand": {
- "__id__": 30
+ "__id__": 32
},
"pause": {
- "__id__": 39
+ "__id__": 41
},
"Block_Array": [],
"Wall_Prefab": [],
diff --git a/library/imports/4f/4fc2af6e-7e80-4f51-9bf2-4604b550bd73.json b/library/imports/4f/4fc2af6e-7e80-4f51-9bf2-4604b550bd73.json
new file mode 100644
index 0000000..dbb2be3
--- /dev/null
+++ b/library/imports/4f/4fc2af6e-7e80-4f51-9bf2-4604b550bd73.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "进入关卡按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1175,
+ 0,
+ 520,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 520,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/4f/4ff1f4e5-1e4f-40ab-9500-2edbbe66bea7.json b/library/imports/4f/4ff1f4e5-1e4f-40ab-9500-2edbbe66bea7.json
new file mode 100644
index 0000000..76258cb
--- /dev/null
+++ b/library/imports/4f/4ff1f4e5-1e4f-40ab-9500-2edbbe66bea7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1791,
+ 1106,
+ 72,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/50/504647c0-4bb4-4edd-b02d-5a20a94e12d5.json b/library/imports/50/504647c0-4bb4-4edd-b02d-5a20a94e12d5.json
new file mode 100644
index 0000000..d01dd55
--- /dev/null
+++ b/library/imports/50/504647c0-4bb4-4edd-b02d-5a20a94e12d5.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "dikuang00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 114,
+ 1056,
+ 169
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1056,
+ 169
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/50/50fee89c-cf58-43c7-9a25-37d5a2cd2fe4.json b/library/imports/50/50fee89c-cf58-43c7-9a25-37d5a2cd2fe4.json
new file mode 100644
index 0000000..96b8e38
--- /dev/null
+++ b/library/imports/50/50fee89c-cf58-43c7-9a25-37d5a2cd2fe4.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字04",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 0,
+ 281,
+ 71
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 71
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/52/52acb1f8-2d30-495b-aa22-1044c20358f6.json b/library/imports/52/52acb1f8-2d30-495b-aa22-1044c20358f6.json
new file mode 100644
index 0000000..93cda47
--- /dev/null
+++ b/library/imports/52/52acb1f8-2d30-495b-aa22-1044c20358f6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字02_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1335,
+ 1343,
+ 359,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 359,
+ 38
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/6f/6f871c8f-5b0f-4063-a6f6-290947cc7e44.json b/library/imports/53/539d05dd-7893-411d-bc4b-7a15921e60ba.json
similarity index 67%
rename from library/imports/6f/6f871c8f-5b0f-4063-a6f6-290947cc7e44.json
rename to library/imports/53/539d05dd-7893-411d-bc4b-7a15921e60ba.json
index aff1ff1..0ad1f51 100644
--- a/library/imports/6f/6f871c8f-5b0f-4063-a6f6-290947cc7e44.json
+++ b/library/imports/53/539d05dd-7893-411d-bc4b-7a15921e60ba.json
@@ -1,12 +1,11 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "闇囧姩01",
- "texture": "f8ebdf98-79f3-41fd-8663-8abd3225fa66",
- "atlas": "",
+ "name": "音效00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1057,
+ 739,
116,
122
],
diff --git a/library/imports/54/548a7c0c-6423-4800-8e4a-dfea3ce0999d.json b/library/imports/54/548a7c0c-6423-4800-8e4a-dfea3ce0999d.json
new file mode 100644
index 0000000..9506f1e
--- /dev/null
+++ b/library/imports/54/548a7c0c-6423-4800-8e4a-dfea3ce0999d.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1057,
+ 616,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/54/54ded0b7-c64c-468c-abfa-1d5b85cc9b9f.json b/library/imports/54/54ded0b7-c64c-468c-abfa-1d5b85cc9b9f.json
new file mode 100644
index 0000000..ff41b19
--- /dev/null
+++ b/library/imports/54/54ded0b7-c64c-468c-abfa-1d5b85cc9b9f.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 971,
+ 1343,
+ 363,
+ 57
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 363,
+ 57
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/54/54ffd922-bb43-419a-9489-dd532a53131c.json b/library/imports/54/54ffd922-bb43-419a-9489-dd532a53131c.json
new file mode 100644
index 0000000..d3bd5ef
--- /dev/null
+++ b/library/imports/54/54ffd922-bb43-419a-9489-dd532a53131c.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "带锁",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 496,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/55/551d0eef-7c06-4ba9-b95d-666c900c878a.json b/library/imports/55/551d0eef-7c06-4ba9-b95d-666c900c878a.json
new file mode 100644
index 0000000..3e55ef9
--- /dev/null
+++ b/library/imports/55/551d0eef-7c06-4ba9-b95d-666c900c878a.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字11_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 987,
+ 1703,
+ 322,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 322,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/55/55240a28-e9ee-49ea-992f-62325200dbb1.json b/library/imports/55/55240a28-e9ee-49ea-992f-62325200dbb1.json
new file mode 100644
index 0000000..2b396db
--- /dev/null
+++ b/library/imports/55/55240a28-e9ee-49ea-992f-62325200dbb1.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "加按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1789,
+ 1223,
+ 76,
+ 82
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 76,
+ 82
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/55/55943a12-6929-4956-a6cd-20ac058b1c49.json b/library/imports/55/55943a12-6929-4956-a6cd-20ac058b1c49.json
new file mode 100644
index 0000000..ece24cf
--- /dev/null
+++ b/library/imports/55/55943a12-6929-4956-a6cd-20ac058b1c49.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字02_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 517,
+ 1276,
+ 283,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 283,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/55/55afd81e-884b-4160-9e4b-6f9d4ca97554.json b/library/imports/55/55afd81e-884b-4160-9e4b-6f9d4ca97554.json
new file mode 100644
index 0000000..09150de
--- /dev/null
+++ b/library/imports/55/55afd81e-884b-4160-9e4b-6f9d4ca97554.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 1106,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a2/a240b819-2b4f-4608-b382-e99982cd138f.json b/library/imports/56/5652a0a0-3753-477b-afbd-e68830208955.json
similarity index 84%
rename from library/imports/a2/a240b819-2b4f-4608-b382-e99982cd138f.json
rename to library/imports/56/5652a0a0-3753-477b-afbd-e68830208955.json
index f03ace4..34ef2de 100644
--- a/library/imports/a2/a240b819-2b4f-4608-b382-e99982cd138f.json
+++ b/library/imports/56/5652a0a0-3753-477b-afbd-e68830208955.json
@@ -2,7 +2,7 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "shop_2",
- "texture": "abd65429-c263-4d3a-84f3-1c26b1433094",
+ "texture": "39980b3f-ffc1-450f-90bc-4861aa8c81fb",
"atlas": "",
"rect": [
0,
diff --git a/library/imports/56/5696b755-64e0-46ff-962f-6fcadd7dd3d5.json b/library/imports/56/5696b755-64e0-46ff-962f-6fcadd7dd3d5.json
new file mode 100644
index 0000000..762d557
--- /dev/null
+++ b/library/imports/56/5696b755-64e0-46ff-962f-6fcadd7dd3d5.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 572,
+ 1356,
+ 412,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 412,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/56/569f5a4d-beff-465f-be16-fc3bcf467850.json b/library/imports/56/569f5a4d-beff-465f-be16-fc3bcf467850.json
new file mode 100644
index 0000000..fc15423
--- /dev/null
+++ b/library/imports/56/569f5a4d-beff-465f-be16-fc3bcf467850.json
@@ -0,0 +1,89 @@
+{
+ "__type__": "cc.SpriteAtlas",
+ "_name": "shuzi.plist",
+ "_objFlags": 0,
+ "_native": "",
+ "_spriteFrames": {
+ "coins_sz0": {
+ "__uuid__": "f7cd0a40-56e7-4d44-ae0f-c0b8336cd9a0"
+ },
+ "coins_sz1": {
+ "__uuid__": "5a89f992-acc9-4739-8233-c57b5db0a123"
+ },
+ "coins_sz10": {
+ "__uuid__": "49628cf9-eb96-41b2-a2c9-13168b9b03c1"
+ },
+ "coins_sz11": {
+ "__uuid__": "86abe80b-15ed-4c52-892e-7ced36bbbea5"
+ },
+ "coins_sz12": {
+ "__uuid__": "a69c275d-feb7-4eb6-aa11-104d24cf2da0"
+ },
+ "coins_sz13": {
+ "__uuid__": "d5ac310b-0de6-4b85-9854-eceb6dbf39f5"
+ },
+ "coins_sz2": {
+ "__uuid__": "3109fbd4-cfef-48a7-ac0f-56fb5fe101c7"
+ },
+ "coins_sz3": {
+ "__uuid__": "bfe1bfb2-6b06-4ed2-a183-a20bd676ff2c"
+ },
+ "coins_sz4": {
+ "__uuid__": "4869026f-04ec-47b5-85f7-02ee2a1865d9"
+ },
+ "coins_sz5": {
+ "__uuid__": "993d5de7-a09c-4c74-9d31-7abbe35d2ae1"
+ },
+ "coins_sz6": {
+ "__uuid__": "cc957ffd-6fe4-4f67-80cb-ebf8a1d5d11d"
+ },
+ "coins_sz7": {
+ "__uuid__": "2f5b7b7c-5329-4e26-bc0d-869df502b262"
+ },
+ "coins_sz8": {
+ "__uuid__": "ae8eff19-6ef0-46cc-88ba-5cc74fbd7e19"
+ },
+ "coins_sz9": {
+ "__uuid__": "9f12c901-afef-41f1-8111-c7f7c4ec860f"
+ },
+ "cost_0": {
+ "__uuid__": "eda6def7-3f41-4e71-b328-27b858a8f167"
+ },
+ "cost_1": {
+ "__uuid__": "3ae58373-6b26-4cad-9373-d00a87902b60"
+ },
+ "cost_10": {
+ "__uuid__": "646c3b71-e143-4d0f-94e6-534c77123f6d"
+ },
+ "cost_11": {
+ "__uuid__": "c5b62989-f18e-41f8-a950-68be1c4be79a"
+ },
+ "cost_2": {
+ "__uuid__": "1ced933d-f1a4-404f-893e-46a0e0a8b47f"
+ },
+ "cost_3": {
+ "__uuid__": "0474e049-57c0-451a-ba18-17d624cb4aef"
+ },
+ "cost_4": {
+ "__uuid__": "2934e269-db62-4cd7-9c0c-c4c9358cfaa6"
+ },
+ "cost_5": {
+ "__uuid__": "c27b90ef-5231-40ff-9c47-380561e1cc77"
+ },
+ "cost_6": {
+ "__uuid__": "30b3ef49-bd7e-47a6-84b2-da05678348a6"
+ },
+ "cost_7": {
+ "__uuid__": "478f346f-7aa8-4f88-bb46-877d0e27e9f6"
+ },
+ "cost_8": {
+ "__uuid__": "3ad60e42-8744-4068-b7dd-24ef792c21fe"
+ },
+ "cost_9": {
+ "__uuid__": "5b7e89b0-02ab-4c9b-814d-15978168c9e7"
+ },
+ "cost_yuan": {
+ "__uuid__": "8becca83-dce4-46e0-8d90-a3d85c978728"
+ }
+ }
+}
\ No newline at end of file
diff --git a/library/imports/57/57dbc606-d1de-4b3b-be2e-cfde135d67e2.json b/library/imports/57/57dbc606-d1de-4b3b-be2e-cfde135d67e2.json
new file mode 100644
index 0000000..9c876d6
--- /dev/null
+++ b/library/imports/57/57dbc606-d1de-4b3b-be2e-cfde135d67e2.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "进入关卡按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1175,
+ 0,
+ 520,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 520,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map
index a9aebd7..729a646 100644
--- a/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map
+++ b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\n\nconst { ccclass, property } = cc._decorator;\n@ccclass\nexport default class AudioManager extends cc.Component {\n static _instance: any;\n //背景音乐\n @property(cc.AudioClip)\n audioGameBgm0: cc.AudioClip = null;\n\n @property(cc.AudioClip)\n xiaochu: cc.AudioClip = null;\n @property(cc.AudioClip)\n hit: cc.AudioClip = null;\n @property(cc.AudioClip)\n down: cc.AudioClip = null;\n @property(cc.AudioClip)\n fangxiang: cc.AudioClip = null;\n @property(cc.AudioClip)\n build: cc.AudioClip = null;\n @property(cc.AudioClip)\n win: cc.AudioClip = null;\n @property(cc.AudioClip)\n lose: cc.AudioClip = null;\n @property(cc.AudioClip)\n anniu_Big: cc.AudioClip = null;\n @property(cc.AudioClip)\n anniu_little: cc.AudioClip = null;\n @property(cc.AudioClip)\n zhuan1: cc.AudioClip = null;\n @property(cc.AudioClip)\n zhuan2: cc.AudioClip = null;\n\n mAudioMap: {};\n bgMusicVolume: number;\n effectMusicVolume: number;\n mMusicSwitch: number;\n mEffectSwitch: number;\n brickSound: any;\n reward: boolean;\n finish: boolean;\n rewardCount: number;\n mMusicKey: any;\n\n onLoad() {\n if (AudioManager._instance == null) {\n AudioManager._instance = this;\n cc.fx.AudioManager = AudioManager;\n cc.game.addPersistRootNode(this.node);\n }\n else {\n return;\n }\n this.reward = false;\n this.finish = false;\n this.rewardCount = 0;\n this.ctor();\n\n this.preload();\n }\n\n ctor() {\n this.mAudioMap = {};\n /**\n * 默认音量大小\n * @type {number}\n */\n this.bgMusicVolume = 0.1;\n this.effectMusicVolume = 1;\n\n this.mMusicSwitch = 1;\n this.mEffectSwitch = 1;\n }\n play(audioSource, loop, callback, isBgMusic) {\n // if (isBgMusic && !this.mMusicSwitch) return;\n // if (!isBgMusic && !this.mEffectSwitch) return;\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\n\n // if (cc.sys.isBrowser) {\n // if(audioSource == this.brickSound){\n // volume = 0.1;\n // } \n volume = 1;\n cc.audioEngine.setEffectsVolume(1);\n cc.audioEngine.setMusicVolume(1);\n if (audioSource.name == \"lose\") {\n cc.audioEngine.setEffectsVolume(0.5);\n }\n else {\n cc.audioEngine.setEffectsVolume(1);\n }\n var context = cc.audioEngine.playEffect(audioSource, loop);\n if (callback) {\n cc.audioEngine.setFinishCallback(context, function () {\n callback.call(this);\n }.bind(this));\n }\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\n\n this.mAudioMap[audioSource] = context;\n return audioSource;\n // } else {\n // return audioSource;\n // }\n }\n\n save() {\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\n }\n\n // static get Instance()\n // {\n // if (this._instance == null)\n // {\n // this._instance = new AudioManager();\n // }\n // return this._instance;\n // }\n\n preload() {\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\n\n var musics = [\n this.audioGameBgm0,\n ];\n musics.forEach(function (path) {\n })\n console.log(\"音乐开关\", cc.fx.GameConfig.GM_INFO.musicOpen);\n this.playMusicGame();\n }\n\n getAudioMusicSwitch() {\n return this.mMusicSwitch;\n\n }\n getAudioEffectSwitch() {\n return this.mEffectSwitch;\n }\n trunAudioSound(on) {\n this.switchMusic(on);\n this.switchEffect(on)\n }\n switchMusic(on) {\n if (this.mMusicSwitch != (on ? 1 : 0)) {\n this.mMusicSwitch = 1 - this.mMusicSwitch;\n // this.save();\n }\n if (on) {\n this.playMusicGame();\n }\n else {\n this.stopMusic();\n }\n }\n switchEffect(on) {\n if (this.mEffectSwitch != (on ? 1 : 0)) {\n this.mEffectSwitch = 1 - this.mEffectSwitch;\n // this.save();\n\n }\n }\n onHide() {\n cc.audioEngine.pauseAll();\n }\n\n onShow() {\n cc.audioEngine.resumeAll();\n }\n\n //播放音效\n playEffect(name, callback) {\n if (!cc.fx.GameConfig.GM_INFO.effectOpen) {\n return;\n }\n if (this[name])\n return this.play(this[name], false, callback, this.mEffectSwitch);\n }\n playMusic(key, callback, loop) {\n if (!cc.fx.GameConfig.GM_INFO.musicOpen) {\n return;\n }\n loop = typeof loop == 'undefined' || loop ? true : false;\n this.stopMusic();\n this.mMusicKey = this.play(key, loop, callback, true);\n\n }\n /**\n * 游戏背景音乐\n */\n playMusicGame() {\n this.stopMusic();\n this.playMusic(this.audioGameBgm0, {}, true);\n }\n /**\n * 停止背景音乐播放\n */\n stopMusic() {\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\n cc.audioEngine.stopAll();\n }\n\n /**\n * 恢复被暂停的背景音乐播放\n */\n resumeMusic() {\n // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放\n cc.audioEngine.resumeMusic();\n }\n\n /*\n * 游戏开始音效\n *\n */\n playGameStart() {\n\n }\n /*\n * 失败的游戏结束\n */\n playGameOver() {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultFailed() {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultSuccess() {\n\n }\n /**\n * 报警的音效\n */\n\n /**\n * 按钮\n */\n playAudioButton() {\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\n }\n};\n\n// export { AudioManager };\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n@ccclass\r\nexport default class AudioManager extends cc.Component {\r\n static _instance: any;\r\n //背景音乐\r\n @property(cc.AudioClip)\r\n audioGameBgm0: cc.AudioClip = null;\r\n\r\n @property(cc.AudioClip)\r\n xiaochu: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n hit: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n down: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n fangxiang: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n build: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n win: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n lose: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_Big: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_little: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan1: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan2: cc.AudioClip = null;\r\n\r\n mAudioMap: {};\r\n bgMusicVolume: number;\r\n effectMusicVolume: number;\r\n mMusicSwitch: number;\r\n mEffectSwitch: number;\r\n brickSound: any;\r\n reward: boolean;\r\n finish: boolean;\r\n rewardCount: number;\r\n mMusicKey: any;\r\n\r\n onLoad() {\r\n if (AudioManager._instance == null) {\r\n AudioManager._instance = this;\r\n cc.fx.AudioManager = AudioManager;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n this.reward = false;\r\n this.finish = false;\r\n this.rewardCount = 0;\r\n this.ctor();\r\n\r\n this.preload();\r\n }\r\n\r\n ctor() {\r\n this.mAudioMap = {};\r\n /**\r\n * 默认音量大小\r\n * @type {number}\r\n */\r\n this.bgMusicVolume = 0.1;\r\n this.effectMusicVolume = 1;\r\n\r\n this.mMusicSwitch = 1;\r\n this.mEffectSwitch = 1;\r\n }\r\n play(audioSource, loop, callback, isBgMusic) {\r\n // if (isBgMusic && !this.mMusicSwitch) return;\r\n // if (!isBgMusic && !this.mEffectSwitch) return;\r\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\r\n\r\n // if (cc.sys.isBrowser) {\r\n // if(audioSource == this.brickSound){\r\n // volume = 0.1;\r\n // } \r\n volume = 1;\r\n cc.audioEngine.setEffectsVolume(1);\r\n cc.audioEngine.setMusicVolume(1);\r\n if (audioSource.name == \"lose\") {\r\n cc.audioEngine.setEffectsVolume(0.5);\r\n }\r\n else {\r\n cc.audioEngine.setEffectsVolume(1);\r\n }\r\n var context = cc.audioEngine.playEffect(audioSource, loop);\r\n if (callback) {\r\n cc.audioEngine.setFinishCallback(context, function () {\r\n callback.call(this);\r\n }.bind(this));\r\n }\r\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\r\n\r\n this.mAudioMap[audioSource] = context;\r\n return audioSource;\r\n // } else {\r\n // return audioSource;\r\n // }\r\n }\r\n\r\n save() {\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\r\n }\r\n\r\n // static get Instance()\r\n // {\r\n // if (this._instance == null)\r\n // {\r\n // this._instance = new AudioManager();\r\n // }\r\n // return this._instance;\r\n // }\r\n\r\n preload() {\r\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\r\n\r\n var musics = [\r\n this.audioGameBgm0,\r\n ];\r\n musics.forEach(function (path) {\r\n })\r\n console.log(\"音乐开关\", cc.fx.GameConfig.GM_INFO.musicOpen);\r\n this.playMusicGame();\r\n }\r\n\r\n getAudioMusicSwitch() {\r\n return this.mMusicSwitch;\r\n\r\n }\r\n getAudioEffectSwitch() {\r\n return this.mEffectSwitch;\r\n }\r\n trunAudioSound(on) {\r\n this.switchMusic(on);\r\n this.switchEffect(on)\r\n }\r\n switchMusic(on) {\r\n if (this.mMusicSwitch != (on ? 1 : 0)) {\r\n this.mMusicSwitch = 1 - this.mMusicSwitch;\r\n // this.save();\r\n }\r\n if (on) {\r\n this.playMusicGame();\r\n }\r\n else {\r\n this.stopMusic();\r\n }\r\n }\r\n switchEffect(on) {\r\n if (this.mEffectSwitch != (on ? 1 : 0)) {\r\n this.mEffectSwitch = 1 - this.mEffectSwitch;\r\n // this.save();\r\n\r\n }\r\n }\r\n onHide() {\r\n cc.audioEngine.pauseAll();\r\n }\r\n\r\n onShow() {\r\n cc.audioEngine.resumeAll();\r\n }\r\n\r\n //播放音效\r\n playEffect(name, callback) {\r\n if (!cc.fx.GameConfig.GM_INFO.effectOpen) {\r\n return;\r\n }\r\n if (this[name])\r\n return this.play(this[name], false, callback, this.mEffectSwitch);\r\n }\r\n playMusic(key, callback, loop) {\r\n if (!cc.fx.GameConfig.GM_INFO.musicOpen) {\r\n return;\r\n }\r\n loop = typeof loop == 'undefined' || loop ? true : false;\r\n this.stopMusic();\r\n this.mMusicKey = this.play(key, loop, callback, true);\r\n\r\n }\r\n /**\r\n * 游戏背景音乐\r\n */\r\n playMusicGame() {\r\n this.stopMusic();\r\n this.playMusic(this.audioGameBgm0, {}, true);\r\n }\r\n /**\r\n * 停止背景音乐播放\r\n */\r\n stopMusic() {\r\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\r\n cc.audioEngine.stopAll();\r\n }\r\n\r\n /**\r\n * 恢复被暂停的背景音乐播放\r\n */\r\n resumeMusic() {\r\n // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放\r\n cc.audioEngine.resumeMusic();\r\n }\r\n\r\n /*\r\n * 游戏开始音效\r\n *\r\n */\r\n playGameStart() {\r\n\r\n }\r\n /*\r\n * 失败的游戏结束\r\n */\r\n playGameOver() {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultFailed() {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultSuccess() {\r\n\r\n }\r\n /**\r\n * 报警的音效\r\n */\r\n\r\n /**\r\n * 按钮\r\n */\r\n playAudioButton() {\r\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\r\n }\r\n};\r\n\r\n// export { AudioManager };\r\n"]}
\ No newline at end of file
diff --git a/library/imports/58/58456b97-7133-4be1-99bf-1db8f33e5633.json b/library/imports/58/58456b97-7133-4be1-99bf-1db8f33e5633.json
new file mode 100644
index 0000000..0121449
--- /dev/null
+++ b/library/imports/58/58456b97-7133-4be1-99bf-1db8f33e5633.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 572,
+ 1356,
+ 412,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 412,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json b/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/58/58c32817-0174-4337-a981-3e35167eb35c.json b/library/imports/58/58c32817-0174-4337-a981-3e35167eb35c.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/58/58c32817-0174-4337-a981-3e35167eb35c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/59/59800a22-36b4-4f4c-a6fa-c663d14acc2e.json b/library/imports/59/59800a22-36b4-4f4c-a6fa-c663d14acc2e.json
new file mode 100644
index 0000000..0f21937
--- /dev/null
+++ b/library/imports/59/59800a22-36b4-4f4c-a6fa-c663d14acc2e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "ditu00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 639,
+ 312,
+ 62
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 312,
+ 62
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/59/598432ac-b818-463b-a9cf-e6270501308d.json b/library/imports/59/598432ac-b818-463b-a9cf-e6270501308d.json
new file mode 100644
index 0000000..a4806b9
--- /dev/null
+++ b/library/imports/59/598432ac-b818-463b-a9cf-e6270501308d.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动tuzi",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 521,
+ 314,
+ 117
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 314,
+ 117
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/29/292f0765-53d0-4c3b-8220-35bf2bc17034.json b/library/imports/5a/5a89f992-acc9-4739-8233-c57b5db0a123.json
similarity index 67%
rename from library/imports/29/292f0765-53d0-4c3b-8220-35bf2bc17034.json
rename to library/imports/5a/5a89f992-acc9-4739-8233-c57b5db0a123.json
index 9902d80..3faa393 100644
--- a/library/imports/29/292f0765-53d0-4c3b-8220-35bf2bc17034.json
+++ b/library/imports/5a/5a89f992-acc9-4739-8233-c57b5db0a123.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz1",
- "texture": "58481a2a-4229-43d2-bd30-69e4f09cfe4b",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 1,
+ 72,
23,
51
],
diff --git a/library/imports/5b/5b38334a-d39a-4ae1-8360-7e8e8a6ddd1a.json b/library/imports/5b/5b38334a-d39a-4ae1-8360-7e8e8a6ddd1a.json
new file mode 100644
index 0000000..5d923db
--- /dev/null
+++ b/library/imports/5b/5b38334a-d39a-4ae1-8360-7e8e8a6ddd1a.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出框关闭按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1789,
+ 1306,
+ 65,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 65,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5b/5b40d22b-faa1-4d5e-9e71-9dd032552e79.json b/library/imports/5b/5b40d22b-faa1-4d5e-9e71-9dd032552e79.json
new file mode 100644
index 0000000..2b449bf
--- /dev/null
+++ b/library/imports/5b/5b40d22b-faa1-4d5e-9e71-9dd032552e79.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字09",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1235,
+ 1401,
+ 281,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 64
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d5/d59eec63-4069-4240-8862-3a5dec033980.json b/library/imports/5b/5b4b9be3-30db-411c-aa4c-7be4c18fb6c0.json
similarity index 60%
rename from library/imports/d5/d59eec63-4069-4240-8862-3a5dec033980.json
rename to library/imports/5b/5b4b9be3-30db-411c-aa4c-7be4c18fb6c0.json
index 05a4528..0f06b66 100644
--- a/library/imports/d5/d59eec63-4069-4240-8862-3a5dec033980.json
+++ b/library/imports/5b/5b4b9be3-30db-411c-aa4c-7be4c18fb6c0.json
@@ -1,14 +1,13 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "coins6",
- "texture": "30543705-d10e-4279-a2fb-d2225b570bb4",
- "atlas": "",
+ "name": "冰冻时钟大",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1374,
+ 1302,
240,
- 182
+ 291
],
"offset": [
0,
@@ -16,8 +15,9 @@
],
"originalSize": [
240,
- 182
+ 291
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/05/058187b7-47d9-4c89-a131-e700f642ebf9.json b/library/imports/5b/5b7e89b0-02ab-4c9b-814d-15978168c9e7.json
similarity index 67%
rename from library/imports/05/058187b7-47d9-4c89-a131-e700f642ebf9.json
rename to library/imports/5b/5b7e89b0-02ab-4c9b-814d-15978168c9e7.json
index c712322..93c27e0 100644
--- a/library/imports/05/058187b7-47d9-4c89-a131-e700f642ebf9.json
+++ b/library/imports/5b/5b7e89b0-02ab-4c9b-814d-15978168c9e7.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_9",
- "texture": "621ae85f-f4e4-48a1-9e97-1cdfd769677d",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 319,
+ 1,
27,
39
],
diff --git a/library/imports/5c/5cbb7099-0ac0-42e6-a788-39178eaf6607.json b/library/imports/5c/5cbb7099-0ac0-42e6-a788-39178eaf6607.json
new file mode 100644
index 0000000..9b86872
--- /dev/null
+++ b/library/imports/5c/5cbb7099-0ac0-42e6-a788-39178eaf6607.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 638,
+ 1356,
+ 340,
+ 276
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 340,
+ 276
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5c/5ccbd7b2-837d-4ff6-a2fd-f4bc7335037b.json b/library/imports/5c/5ccbd7b2-837d-4ff6-a2fd-f4bc7335037b.json
new file mode 100644
index 0000000..aac14d2
--- /dev/null
+++ b/library/imports/5c/5ccbd7b2-837d-4ff6-a2fd-f4bc7335037b.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动tuzi",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 521,
+ 314,
+ 117
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 314,
+ 117
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5c/5cfee8ac-c734-44b4-9098-08a82de9f636.json b/library/imports/5c/5cfee8ac-c734-44b4-9098-08a82de9f636.json
deleted file mode 100644
index 810bc23..0000000
--- a/library/imports/5c/5cfee8ac-c734-44b4-9098-08a82de9f636.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "txt2",
- "texture": "06097023-184a-44ab-be97-104b5b23de45",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 907,
- 63
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 907,
- 63
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/5d/5d4c0cb0-5029-4d54-a5ed-1e7235c10888.json b/library/imports/5d/5d4c0cb0-5029-4d54-a5ed-1e7235c10888.json
new file mode 100644
index 0000000..fc4c266
--- /dev/null
+++ b/library/imports/5d/5d4c0cb0-5029-4d54-a5ed-1e7235c10888.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "圆底01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 1276,
+ 516,
+ 516
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 516,
+ 516
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5e/5e8fa3c3-fbf0-426e-83a2-0dd8d9d926ed.json b/library/imports/5e/5e8fa3c3-fbf0-426e-83a2-0dd8d9d926ed.json
new file mode 100644
index 0000000..33d4669
--- /dev/null
+++ b/library/imports/5e/5e8fa3c3-fbf0-426e-83a2-0dd8d9d926ed.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字11_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 987,
+ 1703,
+ 322,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 322,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.json b/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.png b/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.png
deleted file mode 100644
index 64f9823..0000000
Binary files a/library/imports/5f/5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8.png and /dev/null differ
diff --git a/library/imports/5f/5fe46c32-e783-41e6-9a84-50c19003b188.json b/library/imports/5f/5fe46c32-e783-41e6-9a84-50c19003b188.json
new file mode 100644
index 0000000..0f45fe4
--- /dev/null
+++ b/library/imports/5f/5fe46c32-e783-41e6-9a84-50c19003b188.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐tuzi",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 702,
+ 311,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.json b/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json b/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/62/62e56e7a-ac0b-477d-a226-a80b3bf7a5fd.json b/library/imports/62/62e56e7a-ac0b-477d-a226-a80b3bf7a5fd.json
new file mode 100644
index 0000000..6b8e92e
--- /dev/null
+++ b/library/imports/62/62e56e7a-ac0b-477d-a226-a80b3bf7a5fd.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "闹钟图标00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 1543,
+ 235,
+ 284
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 235,
+ 284
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/57/57b54d9a-f5da-4b63-ab6b-c5f53ec4a0b7.json b/library/imports/64/646c3b71-e143-4d0f-94e6-534c77123f6d.json
similarity index 63%
rename from library/imports/57/57b54d9a-f5da-4b63-ab6b-c5f53ec4a0b7.json
rename to library/imports/64/646c3b71-e143-4d0f-94e6-534c77123f6d.json
index 844b762..605de0b 100644
--- a/library/imports/57/57b54d9a-f5da-4b63-ab6b-c5f53ec4a0b7.json
+++ b/library/imports/64/646c3b71-e143-4d0f-94e6-534c77123f6d.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_10",
- "texture": "76a01e2d-248a-494c-a56c-c14e4f26a3b0",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 162,
+ 114,
9,
10
],
@@ -18,6 +18,7 @@
9,
10
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/65/6509ef26-690b-4c43-a803-81b1d9b43c0c.json b/library/imports/65/6509ef26-690b-4c43-a803-81b1d9b43c0c.json
new file mode 100644
index 0000000..1ad93bf
--- /dev/null
+++ b/library/imports/65/6509ef26-690b-4c43-a803-81b1d9b43c0c.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1590,
+ 307,
+ 150,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 150,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/65/65a95ace-2ed0-4da4-8902-79f5130b159b.json b/library/imports/65/65a95ace-2ed0-4da4-8902-79f5130b159b.json
new file mode 100644
index 0000000..ebd8eea
--- /dev/null
+++ b/library/imports/65/65a95ace-2ed0-4da4-8902-79f5130b159b.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 1106,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/65/65bec656-a8fc-4fc3-ad4d-98e76f9c9531.json b/library/imports/65/65bec656-a8fc-4fc3-ad4d-98e76f9c9531.json
new file mode 100644
index 0000000..c75e83b
--- /dev/null
+++ b/library/imports/65/65bec656-a8fc-4fc3-ad4d-98e76f9c9531.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字05",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 920,
+ 289,
+ 72
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 289,
+ 72
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json b/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json
index 54170aa..4957e3e 100644
--- a/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json
+++ b/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json
@@ -179,31 +179,31 @@
"__id__": 7
},
{
- "__id__": 117
+ "__id__": 128
},
{
- "__id__": 161
+ "__id__": 172
},
{
- "__id__": 179
+ "__id__": 190
},
{
- "__id__": 199
+ "__id__": 210
},
{
- "__id__": 252
+ "__id__": 263
}
],
"_active": true,
"_components": [
{
- "__id__": 254
+ "__id__": 265
},
{
- "__id__": 255
+ "__id__": 266
},
{
- "__id__": 256
+ "__id__": 267
}
],
"_prefab": null,
@@ -379,16 +379,16 @@
"__id__": 80
},
{
- "__id__": 103
+ "__id__": 114
},
{
- "__id__": 108
+ "__id__": 119
}
],
"_active": true,
"_components": [
{
- "__id__": 116
+ "__id__": 127
}
],
"_prefab": null,
@@ -3853,22 +3853,28 @@
"__id__": 81
},
{
- "__id__": 83
+ "__id__": 85
},
{
- "__id__": 89
+ "__id__": 87
},
{
"__id__": 95
+ },
+ {
+ "__id__": 103
}
],
"_active": false,
"_components": [
{
- "__id__": 101
+ "__id__": 111
},
{
- "__id__": 102
+ "__id__": 112
+ },
+ {
+ "__id__": 113
}
],
"_prefab": null,
@@ -3921,7 +3927,7 @@
},
{
"__type__": "cc.Node",
- "_name": "tiaodik",
+ "_name": "New Node",
"_objFlags": 0,
"_parent": {
"__id__": 80
@@ -3931,6 +3937,180 @@
"_components": [
{
"__id__": 82
+ },
+ {
+ "__id__": 83
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1080,
+ "height": 1920
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -417.054,
+ 259.387,
+ 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": "e8tNdSTsxI0oc8XZZW12JO"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "alignMode": 1,
+ "_target": null,
+ "_alignFlags": 45,
+ "_left": -463,
+ "_right": -463,
+ "_top": -661,
+ "_bottom": -661,
+ "_verticalCenter": 0,
+ "_horizontalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 1080,
+ "_originalHeight": 1920,
+ "_id": "41pHA/iYdFla4bJbJUEtrE"
+ },
+ {
+ "__type__": "cc.Button",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "_normalMaterial": null,
+ "_grayMaterial": null,
+ "duration": 0.1,
+ "zoomScale": 1.2,
+ "clickEvents": [
+ {
+ "__id__": 84
+ }
+ ],
+ "_N$interactable": true,
+ "_N$enableAutoGrayEffect": false,
+ "_N$transition": 0,
+ "transition": 0,
+ "_N$normalColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "_N$hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$disabledColor": {
+ "__type__": "cc.Color",
+ "r": 124,
+ "g": 124,
+ "b": 124,
+ "a": 255
+ },
+ "_N$normalSprite": null,
+ "_N$pressedSprite": null,
+ "pressedSprite": null,
+ "_N$hoverSprite": null,
+ "hoverSprite": null,
+ "_N$disabledSprite": null,
+ "_N$target": null,
+ "_id": "252ICggOxKkbSkMoonQTOU"
+ },
+ {
+ "__type__": "cc.ClickEvent",
+ "target": {
+ "__id__": 80
+ },
+ "component": "",
+ "_componentId": "19d952d5kVBrLSzAIGeElFK",
+ "handler": "closeUi",
+ "customEventData": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "tiaodik",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 80
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 86
}
],
"_prefab": null,
@@ -3986,7 +4166,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 81
+ "__id__": 85
},
"_enabled": true,
"_materials": [
@@ -3997,7 +4177,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "abe182b3-b936-4f20-ba7c-8d2456d35c89"
+ "__uuid__": "7253fc88-be8f-46c1-933b-0b730a63e20b"
},
"_type": 0,
"_sizeMode": 1,
@@ -4010,7 +4190,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "86L4gO+JlM/bf6mEXs44/n"
},
{
@@ -4022,16 +4204,19 @@
},
"_children": [
{
- "__id__": 84
+ "__id__": 88
},
{
- "__id__": 86
+ "__id__": 90
+ },
+ {
+ "__id__": 92
}
],
"_active": true,
"_components": [
{
- "__id__": 88
+ "__id__": 94
}
],
"_prefab": null,
@@ -4087,13 +4272,13 @@
"_name": "闊充箰00",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 85
+ "__id__": 89
}
],
"_prefab": null,
@@ -4149,7 +4334,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 84
+ "__id__": 88
},
"_enabled": true,
"_materials": [
@@ -4160,7 +4345,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "341042f4-0224-41f0-a6a3-91e723dbdce1"
+ "__uuid__": "d9d890d7-401a-4ccd-b8fc-be3439203d65"
},
"_type": 0,
"_sizeMode": 1,
@@ -4173,7 +4358,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "453TPzj9lFAJfI67H3x3FM"
},
{
@@ -4181,13 +4368,13 @@
"_name": "闊充箰01",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 87
+ "__id__": 91
}
],
"_prefab": null,
@@ -4243,7 +4430,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 86
+ "__id__": 90
},
"_enabled": true,
"_materials": [
@@ -4254,7 +4441,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "e6f3c660-cfa7-4368-b36d-609458c5678b"
+ "__uuid__": "694fb9cc-9eba-4bc4-ae86-d586e34da96e"
},
"_type": 0,
"_sizeMode": 1,
@@ -4267,15 +4454,113 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "a9hNzWp4xAqImydzVwg0GG"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "音乐字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 87
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 93
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 72,
+ "height": 38
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "4doxZtcpZIrZCA41SMiMjS"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 92
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "f7UVr5raRF/5HTo3KzPhgp"
+ },
{
"__type__": "cc.Toggle",
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 83
+ "__id__": 87
},
"_enabled": true,
"_normalMaterial": null,
@@ -4336,12 +4621,12 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 83
+ "__id__": 87
},
"_N$isChecked": false,
"toggleGroup": null,
"checkMark": {
- "__id__": 87
+ "__id__": 91
},
"checkEvents": [],
"_id": "c09/yHVMJDoam/VbhBXxcH"
@@ -4355,16 +4640,19 @@
},
"_children": [
{
- "__id__": 90
+ "__id__": 96
},
{
- "__id__": 92
+ "__id__": 98
+ },
+ {
+ "__id__": 100
}
],
"_active": true,
"_components": [
{
- "__id__": 94
+ "__id__": 102
}
],
"_prefab": null,
@@ -4419,339 +4707,6 @@
"__type__": "cc.Node",
"_name": "闊虫晥00",
"_objFlags": 0,
- "_parent": {
- "__id__": 89
- },
- "_children": [],
- "_active": true,
- "_components": [
- {
- "__id__": 91
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- 0,
- 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": "b9Z31M2rZM54FWau1g1ZT8"
- },
- {
- "__type__": "cc.Sprite",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 90
- },
- "_enabled": true,
- "_materials": [
- {
- "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
- }
- ],
- "_srcBlendFactor": 770,
- "_dstBlendFactor": 771,
- "_spriteFrame": {
- "__uuid__": "d56be779-2bae-49dd-ade4-41a2154e4f83"
- },
- "_type": 0,
- "_sizeMode": 1,
- "_fillType": 0,
- "_fillCenter": {
- "__type__": "cc.Vec2",
- "x": 0,
- "y": 0
- },
- "_fillStart": 0,
- "_fillRange": 0,
- "_isTrimmedMode": true,
- "_atlas": null,
- "_id": "bfjq1Fa2VHOZgZQWZuOEXX"
- },
- {
- "__type__": "cc.Node",
- "_name": "闊虫晥01",
- "_objFlags": 0,
- "_parent": {
- "__id__": 89
- },
- "_children": [],
- "_active": false,
- "_components": [
- {
- "__id__": 93
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- 0,
- 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": "2aCrXDpFlK1Y1LFC/H773f"
- },
- {
- "__type__": "cc.Sprite",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 92
- },
- "_enabled": true,
- "_materials": [
- {
- "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
- }
- ],
- "_srcBlendFactor": 770,
- "_dstBlendFactor": 771,
- "_spriteFrame": {
- "__uuid__": "8dff3740-d0f0-4fb7-8b47-61acb1349b7a"
- },
- "_type": 0,
- "_sizeMode": 1,
- "_fillType": 0,
- "_fillCenter": {
- "__type__": "cc.Vec2",
- "x": 0,
- "y": 0
- },
- "_fillStart": 0,
- "_fillRange": 0,
- "_isTrimmedMode": true,
- "_atlas": null,
- "_id": "ebNOH+XrVEHa79CBGqx5bw"
- },
- {
- "__type__": "cc.Toggle",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 89
- },
- "_enabled": true,
- "_normalMaterial": null,
- "_grayMaterial": null,
- "duration": 0.1,
- "zoomScale": 1.2,
- "clickEvents": [],
- "_N$interactable": true,
- "_N$enableAutoGrayEffect": false,
- "_N$transition": 0,
- "transition": 0,
- "_N$normalColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_N$pressedColor": {
- "__type__": "cc.Color",
- "r": 211,
- "g": 211,
- "b": 211,
- "a": 255
- },
- "pressedColor": {
- "__type__": "cc.Color",
- "r": 211,
- "g": 211,
- "b": 211,
- "a": 255
- },
- "_N$hoverColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "hoverColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_N$disabledColor": {
- "__type__": "cc.Color",
- "r": 124,
- "g": 124,
- "b": 124,
- "a": 255
- },
- "_N$normalSprite": null,
- "_N$pressedSprite": null,
- "pressedSprite": null,
- "_N$hoverSprite": null,
- "hoverSprite": null,
- "_N$disabledSprite": null,
- "_N$target": {
- "__id__": 89
- },
- "_N$isChecked": false,
- "toggleGroup": null,
- "checkMark": {
- "__id__": 93
- },
- "checkEvents": [],
- "_id": "b9cAW4AvdAXZdGsjzb8ZZf"
- },
- {
- "__type__": "cc.Node",
- "_name": "zhendong",
- "_objFlags": 0,
- "_parent": {
- "__id__": 80
- },
- "_children": [
- {
- "__id__": 96
- },
- {
- "__id__": 98
- }
- ],
- "_active": true,
- "_components": [
- {
- "__id__": 100
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- -181,
- 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": "a8YH618gdGCrUOoZdEgCsJ"
- },
- {
- "__type__": "cc.Node",
- "_name": "闇囧姩00",
- "_objFlags": 0,
"_parent": {
"__id__": 95
},
@@ -4808,7 +4763,7 @@
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
- "_id": "c5vAS0+N5A67AhLyHe/kRM"
+ "_id": "b9Z31M2rZM54FWau1g1ZT8"
},
{
"__type__": "cc.Sprite",
@@ -4826,7 +4781,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "cadd896f-dd2c-43fa-8788-334576768186"
+ "__uuid__": "69822a33-016b-48a4-a4eb-d42755666efc"
},
"_type": 0,
"_sizeMode": 1,
@@ -4839,12 +4794,14 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
- "_id": "fb9In1Ki5NRJoR+ASxwH6D"
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "bfjq1Fa2VHOZgZQWZuOEXX"
},
{
"__type__": "cc.Node",
- "_name": "闇囧姩01",
+ "_name": "闊虫晥01",
"_objFlags": 0,
"_parent": {
"__id__": 95
@@ -4902,7 +4859,7 @@
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
- "_id": "c9Piiqj/9N7Lv1YMnn4p6T"
+ "_id": "2aCrXDpFlK1Y1LFC/H773f"
},
{
"__type__": "cc.Sprite",
@@ -4920,7 +4877,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "6f871c8f-5b0f-4063-a6f6-290947cc7e44"
+ "__uuid__": "55afd81e-884b-4160-9e4b-6f9d4ca97554"
},
"_type": 0,
"_sizeMode": 1,
@@ -4933,8 +4890,106 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
- "_id": "b4FcAyEHpGjIYB1ndEaO5N"
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "ebNOH+XrVEHa79CBGqx5bw"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "音效字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 95
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 101
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 73,
+ "height": 38
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "93HwhjXtZEq6lLKV34kCBv"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 100
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "2a0977c4-0886-4e75-aee9-25002bdcb297"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "feBIgKuQtF5pWUBQIXgVjQ"
},
{
"__type__": "cc.Toggle",
@@ -5010,6 +5065,442 @@
"__id__": 99
},
"checkEvents": [],
+ "_id": "b9cAW4AvdAXZdGsjzb8ZZf"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "zhendong",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 80
+ },
+ "_children": [
+ {
+ "__id__": 104
+ },
+ {
+ "__id__": 106
+ },
+ {
+ "__id__": 108
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 110
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -181,
+ 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": "a8YH618gdGCrUOoZdEgCsJ"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "闇囧姩00",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 105
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ 0,
+ 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": "c5vAS0+N5A67AhLyHe/kRM"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 104
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "39026068-bd1b-4c1f-9a92-28b67312a93d"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "fb9In1Ki5NRJoR+ASxwH6D"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "闇囧姩01",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": false,
+ "_components": [
+ {
+ "__id__": 107
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ 0,
+ 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": "c9Piiqj/9N7Lv1YMnn4p6T"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 106
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "d64ec358-d205-4605-8d70-4a9b60c4fe31"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "b4FcAyEHpGjIYB1ndEaO5N"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "震动字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 109
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 74,
+ "height": 39
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "2cfWG8IzxHh4I7/JJlyX+A"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 108
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "c40825bb-b96a-4b65-8966-4e8a81f2d44a"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "6cLP2TnU5DW7CA+QvhiObw"
+ },
+ {
+ "__type__": "cc.Toggle",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 103
+ },
+ "_enabled": true,
+ "_normalMaterial": null,
+ "_grayMaterial": null,
+ "duration": 0.1,
+ "zoomScale": 1.2,
+ "clickEvents": [],
+ "_N$interactable": true,
+ "_N$enableAutoGrayEffect": false,
+ "_N$transition": 0,
+ "transition": 0,
+ "_N$normalColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "_N$hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$disabledColor": {
+ "__type__": "cc.Color",
+ "r": 124,
+ "g": 124,
+ "b": 124,
+ "a": 255
+ },
+ "_N$normalSprite": null,
+ "_N$pressedSprite": null,
+ "pressedSprite": null,
+ "_N$hoverSprite": null,
+ "hoverSprite": null,
+ "_N$disabledSprite": null,
+ "_N$target": {
+ "__id__": 103
+ },
+ "_N$isChecked": false,
+ "toggleGroup": null,
+ "checkMark": {
+ "__id__": 107
+ },
+ "checkEvents": [],
"_id": "f9H3N/MqVI0ZJ6D1GMBA4u"
},
{
@@ -5052,7 +5543,9 @@
"__id__": 80
},
"_enabled": true,
- "_defaultClip": null,
+ "_defaultClip": {
+ "__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031"
+ },
"_clips": [
{
"__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031"
@@ -5061,6 +5554,25 @@
"playOnLoad": false,
"_id": "06zhlax2BIgq2BGFohNQeX"
},
+ {
+ "__type__": "19d952d5kVBrLSzAIGeElFK",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 80
+ },
+ "_enabled": true,
+ "music": {
+ "__id__": 87
+ },
+ "effect": {
+ "__id__": 95
+ },
+ "vibrate": {
+ "__id__": 103
+ },
+ "_id": "09T1CBxRNLYrp9d2cfApFS"
+ },
{
"__type__": "cc.Node",
"_name": "shezhiBtn",
@@ -5070,13 +5582,13 @@
},
"_children": [
{
- "__id__": 104
+ "__id__": 115
}
],
"_active": true,
"_components": [
{
- "__id__": 106
+ "__id__": 117
}
],
"_prefab": null,
@@ -5132,13 +5644,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 103
+ "__id__": 114
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 105
+ "__id__": 116
}
],
"_prefab": null,
@@ -5194,7 +5706,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 104
+ "__id__": 115
},
"_enabled": true,
"_materials": [
@@ -5228,7 +5740,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 103
+ "__id__": 114
},
"_enabled": true,
"_normalMaterial": null,
@@ -5237,7 +5749,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 107
+ "__id__": 118
}
],
"_N$interactable": true,
@@ -5293,7 +5805,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 103
+ "__id__": 114
},
"_id": "02bgX7BW9KmbZ6ke3vsVWy"
},
@@ -5304,7 +5816,7 @@
},
"component": "",
"_componentId": "1dc93b4fehOrpGgTkihBH4g",
- "handler": "openPause",
+ "handler": "openSet",
"customEventData": ""
},
{
@@ -5316,13 +5828,13 @@
},
"_children": [
{
- "__id__": 109
+ "__id__": 120
}
],
"_active": true,
"_components": [
{
- "__id__": 114
+ "__id__": 125
}
],
"_prefab": null,
@@ -5378,20 +5890,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
- "__id__": 108
+ "__id__": 119
},
"_children": [
{
- "__id__": 110
+ "__id__": 121
}
],
"_active": true,
"_components": [
{
- "__id__": 112
+ "__id__": 123
},
{
- "__id__": 113
+ "__id__": 124
}
],
"_prefab": null,
@@ -5447,13 +5959,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
- "__id__": 109
+ "__id__": 120
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 111
+ "__id__": 122
}
],
"_prefab": null,
@@ -5509,7 +6021,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 110
+ "__id__": 121
},
"_enabled": true,
"_materials": [
@@ -5542,7 +6054,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 109
+ "__id__": 120
},
"_enabled": true,
"_materials": [
@@ -5574,7 +6086,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 109
+ "__id__": 120
},
"_enabled": true,
"alignMode": 0,
@@ -5601,7 +6113,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 108
+ "__id__": 119
},
"_enabled": true,
"_normalMaterial": null,
@@ -5610,7 +6122,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 115
+ "__id__": 126
}
],
"_N$interactable": true,
@@ -5678,7 +6190,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
- "__id__": 109
+ "__id__": 120
},
"_id": "88UX+E3n9ImZvBg4tRwHFR"
},
@@ -5728,25 +6240,25 @@
},
"_children": [
{
- "__id__": 118
+ "__id__": 129
},
{
- "__id__": 122
+ "__id__": 133
},
{
- "__id__": 124
+ "__id__": 135
},
{
- "__id__": 152
+ "__id__": 163
},
{
- "__id__": 156
+ "__id__": 167
}
],
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 171
}
],
"_prefab": null,
@@ -5802,19 +6314,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 119
+ "__id__": 130
},
{
- "__id__": 120
+ "__id__": 131
},
{
- "__id__": 121
+ "__id__": 132
}
],
"_prefab": null,
@@ -5870,7 +6382,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"_materials": [
@@ -5902,7 +6414,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"alignMode": 1,
@@ -5929,7 +6441,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"_id": "dfDCcIpbVJQaLDWZH9iaPD"
@@ -5939,13 +6451,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 123
+ "__id__": 134
}
],
"_prefab": null,
@@ -6001,7 +6513,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 122
+ "__id__": 133
},
"_enabled": true,
"_materials": [
@@ -6031,47 +6543,47 @@
"_name": "rank",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [
{
- "__id__": 125
+ "__id__": 136
},
{
- "__id__": 127
+ "__id__": 138
},
{
- "__id__": 129
+ "__id__": 140
},
{
- "__id__": 131
+ "__id__": 142
},
{
- "__id__": 133
+ "__id__": 144
},
{
- "__id__": 135
+ "__id__": 146
},
{
- "__id__": 137
+ "__id__": 148
},
{
- "__id__": 139
+ "__id__": 150
},
{
- "__id__": 141
+ "__id__": 152
},
{
- "__id__": 143
+ "__id__": 154
},
{
- "__id__": 145
+ "__id__": 156
}
],
"_active": true,
"_components": [
{
- "__id__": 151
+ "__id__": 162
}
],
"_prefab": null,
@@ -6127,13 +6639,13 @@
"_name": "paihang1_1_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 126
+ "__id__": 137
}
],
"_prefab": null,
@@ -6189,7 +6701,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 125
+ "__id__": 136
},
"_enabled": true,
"_materials": [
@@ -6219,13 +6731,13 @@
"_name": "paihang1_2_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 128
+ "__id__": 139
}
],
"_prefab": null,
@@ -6281,7 +6793,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 127
+ "__id__": 138
},
"_enabled": true,
"_materials": [
@@ -6311,13 +6823,13 @@
"_name": "paihang1_3_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 130
+ "__id__": 141
}
],
"_prefab": null,
@@ -6373,7 +6885,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 129
+ "__id__": 140
},
"_enabled": true,
"_materials": [
@@ -6403,13 +6915,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 132
+ "__id__": 143
}
],
"_prefab": null,
@@ -6465,7 +6977,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 131
+ "__id__": 142
},
"_enabled": true,
"_materials": [
@@ -6495,13 +7007,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 134
+ "__id__": 145
}
],
"_prefab": null,
@@ -6557,7 +7069,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 144
},
"_enabled": true,
"_materials": [
@@ -6587,13 +7099,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 136
+ "__id__": 147
}
],
"_prefab": null,
@@ -6649,7 +7161,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 135
+ "__id__": 146
},
"_enabled": true,
"_materials": [
@@ -6679,13 +7191,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 138
+ "__id__": 149
}
],
"_prefab": null,
@@ -6741,7 +7253,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 137
+ "__id__": 148
},
"_enabled": true,
"_materials": [
@@ -6773,13 +7285,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 140
+ "__id__": 151
}
],
"_prefab": null,
@@ -6835,7 +7347,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 139
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -6868,13 +7380,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 142
+ "__id__": 153
}
],
"_prefab": null,
@@ -6930,7 +7442,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 141
+ "__id__": 152
},
"_enabled": true,
"_materials": [
@@ -6963,13 +7475,13 @@
"_name": "shuzi3_6",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 144
+ "__id__": 155
}
],
"_prefab": null,
@@ -7025,7 +7537,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 143
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7055,20 +7567,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [
{
- "__id__": 146
+ "__id__": 157
}
],
"_active": true,
"_components": [
{
- "__id__": 148
+ "__id__": 159
},
{
- "__id__": 149
+ "__id__": 160
}
],
"_prefab": null,
@@ -7124,13 +7636,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 145
+ "__id__": 156
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 147
+ "__id__": 158
}
],
"_prefab": null,
@@ -7186,7 +7698,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 146
+ "__id__": 157
},
"_enabled": true,
"_materials": [
@@ -7220,7 +7732,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7254,7 +7766,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 156
},
"_enabled": true,
"_normalMaterial": null,
@@ -7263,7 +7775,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 150
+ "__id__": 161
}
],
"_N$interactable": true,
@@ -7319,7 +7831,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 145
+ "__id__": 156
},
"_id": "0b4hiJfolDCqERI+qJ8NNt"
},
@@ -7336,7 +7848,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 124
+ "__id__": 135
},
"_enabled": true,
"_materials": [
@@ -7366,17 +7878,17 @@
"_name": "logo",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [
{
- "__id__": 153
+ "__id__": 164
}
],
"_active": false,
"_components": [
{
- "__id__": 155
+ "__id__": 166
}
],
"_prefab": null,
@@ -7432,13 +7944,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 152
+ "__id__": 163
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 154
+ "__id__": 165
}
],
"_prefab": null,
@@ -7494,7 +8006,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7527,7 +8039,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 152
+ "__id__": 163
},
"_enabled": true,
"_materials": [
@@ -7561,16 +8073,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 157
+ "__id__": 168
},
{
- "__id__": 158
+ "__id__": 169
}
],
"_prefab": null,
@@ -7626,7 +8138,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 156
+ "__id__": 167
},
"_enabled": true,
"_materials": [
@@ -7660,7 +8172,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 156
+ "__id__": 167
},
"_enabled": true,
"_normalMaterial": null,
@@ -7669,7 +8181,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 159
+ "__id__": 170
}
],
"_N$interactable": true,
@@ -7725,7 +8237,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 156
+ "__id__": 167
},
"_id": "aeOKxuEtVBQ76OAxASWQGP"
},
@@ -7744,7 +8256,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 117
+ "__id__": 128
},
"_enabled": true,
"alignMode": 1,
@@ -7775,13 +8287,13 @@
},
"_children": [
{
- "__id__": 162
+ "__id__": 173
},
{
- "__id__": 165
+ "__id__": 176
},
{
- "__id__": 167
+ "__id__": 178
}
],
"_active": false,
@@ -7839,16 +8351,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 163
+ "__id__": 174
},
{
- "__id__": 164
+ "__id__": 175
}
],
"_prefab": null,
@@ -7904,7 +8416,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -7936,7 +8448,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 173
},
"_enabled": true,
"_id": "6eAfAN7PxP8LBtlAPfR/Ia"
@@ -7946,13 +8458,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 166
+ "__id__": 177
}
],
"_prefab": null,
@@ -8008,7 +8520,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 165
+ "__id__": 176
},
"_enabled": true,
"_materials": [
@@ -8038,20 +8550,20 @@
"_name": "reward",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [
{
- "__id__": 168
+ "__id__": 179
},
{
- "__id__": 172
+ "__id__": 183
}
],
"_active": true,
"_components": [
{
- "__id__": 178
+ "__id__": 189
}
],
"_prefab": null,
@@ -8107,16 +8619,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 178
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 169
+ "__id__": 180
},
{
- "__id__": 170
+ "__id__": 181
}
],
"_prefab": null,
@@ -8172,7 +8684,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8206,7 +8718,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8215,7 +8727,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 171
+ "__id__": 182
}
],
"_N$interactable": true,
@@ -8271,7 +8783,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 168
+ "__id__": 179
},
"_id": "8697ar7LREtafp+rIsxcSE"
},
@@ -8290,20 +8802,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 178
},
"_children": [
{
- "__id__": 173
+ "__id__": 184
}
],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 186
},
{
- "__id__": 176
+ "__id__": 187
}
],
"_prefab": null,
@@ -8359,13 +8871,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 172
+ "__id__": 183
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 174
+ "__id__": 185
}
],
"_prefab": null,
@@ -8421,7 +8933,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 173
+ "__id__": 184
},
"_enabled": true,
"_materials": [
@@ -8455,7 +8967,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 183
},
"_enabled": true,
"_materials": [
@@ -8489,7 +9001,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 183
},
"_enabled": true,
"_normalMaterial": null,
@@ -8498,7 +9010,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 177
+ "__id__": 188
}
],
"_N$interactable": true,
@@ -8554,7 +9066,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 172
+ "__id__": 183
},
"_id": "a99do5CqxGB7rnced8tB+I"
},
@@ -8571,7 +9083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 178
},
"_enabled": true,
"_materials": [
@@ -8605,25 +9117,25 @@
},
"_children": [
{
- "__id__": 180
+ "__id__": 191
},
{
- "__id__": 184
+ "__id__": 195
},
{
- "__id__": 186
+ "__id__": 197
},
{
- "__id__": 188
+ "__id__": 199
},
{
- "__id__": 192
+ "__id__": 203
}
],
"_active": false,
"_components": [
{
- "__id__": 198
+ "__id__": 209
}
],
"_prefab": null,
@@ -8679,19 +9191,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 192
},
{
- "__id__": 182
+ "__id__": 193
},
{
- "__id__": 183
+ "__id__": 194
}
],
"_prefab": null,
@@ -8747,7 +9259,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"_materials": [
@@ -8779,7 +9291,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"alignMode": 1,
@@ -8806,7 +9318,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"_id": "d3WO2KgvBHxZSuuuiocs4j"
@@ -8816,13 +9328,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 185
+ "__id__": 196
}
],
"_prefab": null,
@@ -8878,7 +9390,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 195
},
"_enabled": true,
"_materials": [
@@ -8908,13 +9420,13 @@
"_name": "Stamina",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 187
+ "__id__": 198
}
],
"_prefab": null,
@@ -8970,7 +9482,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 186
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -9000,16 +9512,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 189
+ "__id__": 200
},
{
- "__id__": 190
+ "__id__": 201
}
],
"_prefab": null,
@@ -9065,7 +9577,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 199
},
"_enabled": true,
"_materials": [
@@ -9099,7 +9611,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 199
},
"_enabled": true,
"_normalMaterial": null,
@@ -9108,7 +9620,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 191
+ "__id__": 202
}
],
"_N$interactable": true,
@@ -9164,7 +9676,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 188
+ "__id__": 199
},
"_id": "4fx9FNHrVMm7QEtzYiJ4Ca"
},
@@ -9183,20 +9695,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [
{
- "__id__": 193
+ "__id__": 204
}
],
"_active": true,
"_components": [
{
- "__id__": 195
+ "__id__": 206
},
{
- "__id__": 196
+ "__id__": 207
}
],
"_prefab": null,
@@ -9252,13 +9764,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 192
+ "__id__": 203
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 205
}
],
"_prefab": null,
@@ -9314,7 +9826,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 193
+ "__id__": 204
},
"_enabled": true,
"_materials": [
@@ -9348,7 +9860,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9382,7 +9894,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 203
},
"_enabled": true,
"_normalMaterial": null,
@@ -9391,7 +9903,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 197
+ "__id__": 208
}
],
"_N$interactable": true,
@@ -9447,7 +9959,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 192
+ "__id__": 203
},
"_id": "6f5W0gZq1NG4kBoigH1HP7"
},
@@ -9464,7 +9976,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9494,68 +10006,68 @@
"__id__": 4
},
"_children": [
- {
- "__id__": 200
- },
- {
- "__id__": 203
- },
- {
- "__id__": 205
- },
{
"__id__": 211
},
{
- "__id__": 213
+ "__id__": 214
},
{
- "__id__": 217
+ "__id__": 216
},
{
- "__id__": 219
+ "__id__": 222
},
{
- "__id__": 221
+ "__id__": 224
},
{
- "__id__": 223
+ "__id__": 228
},
{
- "__id__": 225
+ "__id__": 230
},
{
- "__id__": 227
+ "__id__": 232
},
{
- "__id__": 229
+ "__id__": 234
},
{
- "__id__": 233
+ "__id__": 236
},
{
- "__id__": 237
+ "__id__": 238
},
{
- "__id__": 241
+ "__id__": 240
},
{
- "__id__": 243
+ "__id__": 244
},
{
- "__id__": 245
+ "__id__": 248
},
{
- "__id__": 247
+ "__id__": 252
},
{
- "__id__": 249
+ "__id__": 254
+ },
+ {
+ "__id__": 256
+ },
+ {
+ "__id__": 258
+ },
+ {
+ "__id__": 260
}
],
"_active": false,
"_components": [
{
- "__id__": 251
+ "__id__": 262
}
],
"_prefab": null,
@@ -9611,16 +10123,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 201
+ "__id__": 212
},
{
- "__id__": 202
+ "__id__": 213
}
],
"_prefab": null,
@@ -9676,7 +10188,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 200
+ "__id__": 211
},
"_enabled": true,
"_materials": [
@@ -9708,7 +10220,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 200
+ "__id__": 211
},
"_enabled": true,
"_id": "22/vLI0+hBZrCrug3svOux"
@@ -9718,13 +10230,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 204
+ "__id__": 215
}
],
"_prefab": null,
@@ -9780,7 +10292,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 203
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -9812,20 +10324,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [
{
- "__id__": 206
+ "__id__": 217
}
],
"_active": true,
"_components": [
{
- "__id__": 208
+ "__id__": 219
},
{
- "__id__": 209
+ "__id__": 220
}
],
"_prefab": null,
@@ -9881,13 +10393,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 207
+ "__id__": 218
}
],
"_prefab": null,
@@ -9943,7 +10455,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 206
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -9977,7 +10489,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 216
},
"_enabled": true,
"_materials": [
@@ -10011,7 +10523,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 216
},
"_enabled": true,
"_normalMaterial": null,
@@ -10020,7 +10532,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 210
+ "__id__": 221
}
],
"_N$interactable": true,
@@ -10076,7 +10588,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 205
+ "__id__": 216
},
"_id": "b8Y9x+dpZGKKCgiAzSbF2w"
},
@@ -10095,13 +10607,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 212
+ "__id__": 223
}
],
"_prefab": null,
@@ -10157,7 +10669,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 211
+ "__id__": 222
},
"_enabled": true,
"_materials": [
@@ -10191,16 +10703,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 225
},
{
- "__id__": 215
+ "__id__": 226
}
],
"_prefab": null,
@@ -10256,7 +10768,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 224
},
"_enabled": true,
"_materials": [
@@ -10290,7 +10802,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 224
},
"_enabled": true,
"_normalMaterial": null,
@@ -10299,7 +10811,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 216
+ "__id__": 227
}
],
"_N$interactable": true,
@@ -10355,7 +10867,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 213
+ "__id__": 224
},
"_id": "3fEch1YYZH6oMgUJ5+mat/"
},
@@ -10374,13 +10886,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 218
+ "__id__": 229
}
],
"_prefab": null,
@@ -10436,7 +10948,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 217
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10470,13 +10982,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 220
+ "__id__": 231
}
],
"_prefab": null,
@@ -10532,7 +11044,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 219
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10566,13 +11078,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 222
+ "__id__": 233
}
],
"_prefab": null,
@@ -10628,7 +11140,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 221
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10662,13 +11174,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 224
+ "__id__": 235
}
],
"_prefab": null,
@@ -10724,7 +11236,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 223
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -10758,13 +11270,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 226
+ "__id__": 237
}
],
"_prefab": null,
@@ -10820,7 +11332,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 225
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -10854,13 +11366,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 239
}
],
"_prefab": null,
@@ -10916,7 +11428,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -10950,16 +11462,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 241
},
{
- "__id__": 231
+ "__id__": 242
}
],
"_prefab": null,
@@ -11015,7 +11527,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 240
},
"_enabled": true,
"_materials": [
@@ -11049,7 +11561,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 240
},
"_enabled": true,
"_normalMaterial": null,
@@ -11058,7 +11570,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 232
+ "__id__": 243
}
],
"_N$interactable": true,
@@ -11114,14 +11626,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 229
+ "__id__": 240
},
"_id": "625dakXShD7bgpaU3SIzV2"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11133,16 +11645,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 234
+ "__id__": 245
},
{
- "__id__": 235
+ "__id__": 246
}
],
"_prefab": null,
@@ -11198,7 +11710,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11232,7 +11744,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 244
},
"_enabled": true,
"_normalMaterial": null,
@@ -11241,7 +11753,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 236
+ "__id__": 247
}
],
"_N$interactable": true,
@@ -11297,14 +11809,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 233
+ "__id__": 244
},
"_id": "72VsvwUtxAD6Hj+ox2n5Ez"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11316,16 +11828,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 238
+ "__id__": 249
},
{
- "__id__": 239
+ "__id__": 250
}
],
"_prefab": null,
@@ -11381,7 +11893,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11415,7 +11927,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 248
},
"_enabled": true,
"_normalMaterial": null,
@@ -11424,7 +11936,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 240
+ "__id__": 251
}
],
"_N$interactable": true,
@@ -11480,14 +11992,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 237
+ "__id__": 248
},
"_id": "efSi0dlVNIXJRT6hEV1IpJ"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11499,13 +12011,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 242
+ "__id__": 253
}
],
"_prefab": null,
@@ -11561,7 +12073,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 241
+ "__id__": 252
},
"_enabled": true,
"_materials": [
@@ -11595,13 +12107,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 255
}
],
"_prefab": null,
@@ -11657,7 +12169,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 254
},
"_enabled": true,
"_materials": [
@@ -11691,13 +12203,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 257
}
],
"_prefab": null,
@@ -11753,7 +12265,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 256
},
"_enabled": true,
"_materials": [
@@ -11787,13 +12299,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 259
}
],
"_prefab": null,
@@ -11849,7 +12361,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 258
},
"_enabled": true,
"_materials": [
@@ -11882,13 +12394,13 @@
"_name": "openID",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 261
}
],
"_prefab": null,
@@ -11944,7 +12456,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -11977,17 +12489,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 199
+ "__id__": 210
},
"_enabled": true,
"music": {
- "__id__": 241
+ "__id__": 252
},
"effect": {
- "__id__": 243
+ "__id__": 254
},
"vibrate": {
- "__id__": 245
+ "__id__": 256
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -12008,7 +12520,7 @@
"_active": false,
"_components": [
{
- "__id__": 253
+ "__id__": 264
}
],
"_prefab": null,
@@ -12064,7 +12576,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 263
},
"_enabled": true,
"_materials": [
@@ -12185,6 +12697,9 @@
"Stamina": {
"__id__": 28
},
+ "setUi": {
+ "__id__": 80
+ },
"_id": "0dna+7W/NMp6RyIrSQLx5u"
}
]
\ No newline at end of file
diff --git a/library/imports/67/67952f97-79a4-4a3c-a14a-8a588c61eb6b.json b/library/imports/67/67952f97-79a4-4a3c-a14a-8a588c61eb6b.json
new file mode 100644
index 0000000..3544a6c
--- /dev/null
+++ b/library/imports/67/67952f97-79a4-4a3c-a14a-8a588c61eb6b.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字03_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 915,
+ 1356,
+ 319,
+ 34
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 319,
+ 34
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/68/68cbe5df-799e-4c0e-9daf-e70de404495a.json b/library/imports/68/68cbe5df-799e-4c0e-9daf-e70de404495a.json
new file mode 100644
index 0000000..124dbe6
--- /dev/null
+++ b/library/imports/68/68cbe5df-799e-4c0e-9daf-e70de404495a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1223,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/69/694fb9cc-9eba-4bc4-ae86-d586e34da96e.json b/library/imports/69/694fb9cc-9eba-4bc4-ae86-d586e34da96e.json
new file mode 100644
index 0000000..c4b12e9
--- /dev/null
+++ b/library/imports/69/694fb9cc-9eba-4bc4-ae86-d586e34da96e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1057,
+ 616,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/69/6971355d-0542-42f6-96ec-4244dbcc5897.png b/library/imports/69/6971355d-0542-42f6-96ec-4244dbcc5897.png
index 3780df5..a0871c0 100644
Binary files a/library/imports/69/6971355d-0542-42f6-96ec-4244dbcc5897.png and b/library/imports/69/6971355d-0542-42f6-96ec-4244dbcc5897.png differ
diff --git a/library/imports/69/69822a33-016b-48a4-a4eb-d42755666efc.json b/library/imports/69/69822a33-016b-48a4-a4eb-d42755666efc.json
new file mode 100644
index 0000000..213a079
--- /dev/null
+++ b/library/imports/69/69822a33-016b-48a4-a4eb-d42755666efc.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1057,
+ 739,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.json b/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json b/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/6c/6c090df3-7b95-4560-9ebb-5360c75f7cf8.json b/library/imports/6c/6c090df3-7b95-4560-9ebb-5360c75f7cf8.json
new file mode 100644
index 0000000..d6e401f
--- /dev/null
+++ b/library/imports/6c/6c090df3-7b95-4560-9ebb-5360c75f7cf8.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关卡数字01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 517,
+ 1356,
+ 419,
+ 54
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 419,
+ 54
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/6d/6d484a21-0a8b-411f-a8d0-3c663c8b5d3f.json b/library/imports/6d/6d484a21-0a8b-411f-a8d0-3c663c8b5d3f.json
new file mode 100644
index 0000000..d70b9fd
--- /dev/null
+++ b/library/imports/6d/6d484a21-0a8b-411f-a8d0-3c663c8b5d3f.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "小钟图标",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1659,
+ 1688,
+ 79,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 79,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/6d/6db0f2c4-ec42-4a81-9239-bf0aad1e076a.json b/library/imports/6d/6db0f2c4-ec42-4a81-9239-bf0aad1e076a.json
new file mode 100644
index 0000000..4bb66c4
--- /dev/null
+++ b/library/imports/6d/6db0f2c4-ec42-4a81-9239-bf0aad1e076a.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字08",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 341,
+ 692,
+ 140
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 692,
+ 140
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/6f/6f1bbc06-e201-4cde-8959-ee6e6e6b114f.json b/library/imports/6f/6f1bbc06-e201-4cde-8959-ee6e6e6b114f.json
new file mode 100644
index 0000000..f9d766b
--- /dev/null
+++ b/library/imports/6f/6f1bbc06-e201-4cde-8959-ee6e6e6b114f.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "已满字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1791,
+ 1145,
+ 72,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 36
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7a/7afab640-c900-437d-bf03-4d10d3c5b91e.json b/library/imports/71/71894f8f-9a53-4e7b-a34d-2e1bdbd36915.json
similarity index 64%
rename from library/imports/7a/7afab640-c900-437d-bf03-4d10d3c5b91e.json
rename to library/imports/71/71894f8f-9a53-4e7b-a34d-2e1bdbd36915.json
index 052e063..bdda98e 100644
--- a/library/imports/7a/7afab640-c900-437d-bf03-4d10d3c5b91e.json
+++ b/library/imports/71/71894f8f-9a53-4e7b-a34d-2e1bdbd36915.json
@@ -1,13 +1,12 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "coins5",
- "texture": "270ef871-ac9d-4ba7-91d1-7d7624c3aed9",
- "atlas": "",
+ "name": "dikuang00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
0,
- 0,
- 231,
+ 114,
+ 1056,
169
],
"offset": [
@@ -15,7 +14,7 @@
0
],
"originalSize": [
- 231,
+ 1056,
169
],
"capInsets": [
diff --git a/library/imports/72/7253fc88-be8f-46c1-933b-0b730a63e20b.json b/library/imports/72/7253fc88-be8f-46c1-933b-0b730a63e20b.json
new file mode 100644
index 0000000..c0a1f21
--- /dev/null
+++ b/library/imports/72/7253fc88-be8f-46c1-933b-0b730a63e20b.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "tiaodik",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 1121,
+ 154,
+ 598
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 598
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/74/74589c72-e4ec-4f8c-8d71-2794415efb20.json b/library/imports/74/74589c72-e4ec-4f8c-8d71-2794415efb20.json
new file mode 100644
index 0000000..75e9ab1
--- /dev/null
+++ b/library/imports/74/74589c72-e4ec-4f8c-8d71-2794415efb20.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "闹钟图标00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 1543,
+ 235,
+ 284
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 235,
+ 284
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json b/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/75/75abc382-3760-477c-850a-15dab855dcfa.json b/library/imports/75/75abc382-3760-477c-850a-15dab855dcfa.json
new file mode 100644
index 0000000..107e251
--- /dev/null
+++ b/library/imports/75/75abc382-3760-477c-850a-15dab855dcfa.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "门图",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1081,
+ 0,
+ 615,
+ 93
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 615,
+ 93
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.json b/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json b/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json b/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/78/780efb23-d368-46f0-9417-9dfb439fc1f9.json b/library/imports/78/780efb23-d368-46f0-9417-9dfb439fc1f9.json
new file mode 100644
index 0000000..d50cb91
--- /dev/null
+++ b/library/imports/78/780efb23-d368-46f0-9417-9dfb439fc1f9.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "设置图标_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 599,
+ 1121,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json b/library/imports/78/788b15b4-1813-47f1-8ed6-537103a30d3a.json
similarity index 67%
rename from library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json
rename to library/imports/78/788b15b4-1813-47f1-8ed6-537103a30d3a.json
index a0535f4..6694f50 100644
--- a/library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json
+++ b/library/imports/78/788b15b4-1813-47f1-8ed6-537103a30d3a.json
@@ -1,12 +1,11 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "闊虫晥01",
- "texture": "dfa1190c-5129-4775-b495-d2aca6a3a5bf",
- "atlas": "",
+ "name": "音乐01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
+ 1057,
+ 616,
116,
122
],
diff --git a/library/imports/79/7930fa23-3ece-47de-94b2-3c461f185931.json b/library/imports/79/7930fa23-3ece-47de-94b2-3c461f185931.json
new file mode 100644
index 0000000..8ba1d28
--- /dev/null
+++ b/library/imports/79/7930fa23-3ece-47de-94b2-3c461f185931.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒小_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1659,
+ 1574,
+ 113,
+ 118
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 113,
+ 118
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7a/7a0d6aa9-2980-4985-9036-9a4a425603be.json b/library/imports/7a/7a0d6aa9-2980-4985-9036-9a4a425603be.json
new file mode 100644
index 0000000..0a5e997
--- /dev/null
+++ b/library/imports/7a/7a0d6aa9-2980-4985-9036-9a4a425603be.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟大_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 1302,
+ 240,
+ 291
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 240,
+ 291
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7b/7bcb2d5f-3aaa-45f6-b357-2b139ad4495c.json b/library/imports/7b/7bcb2d5f-3aaa-45f6-b357-2b139ad4495c.json
new file mode 100644
index 0000000..503a017
--- /dev/null
+++ b/library/imports/7b/7bcb2d5f-3aaa-45f6-b357-2b139ad4495c.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字02",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 517,
+ 1276,
+ 283,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 283,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7b/7bd098fe-fb82-4e70-9863-637bfd3bcda0.json b/library/imports/7b/7bd098fe-fb82-4e70-9863-637bfd3bcda0.json
new file mode 100644
index 0000000..197ac5e
--- /dev/null
+++ b/library/imports/7b/7bd098fe-fb82-4e70-9863-637bfd3bcda0.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "退出按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1676,
+ 155,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7c/7c332a0d-9d45-4af5-95c8-7d5260655cae.json b/library/imports/7c/7c332a0d-9d45-4af5-95c8-7d5260655cae.json
new file mode 100644
index 0000000..03a3fe5
--- /dev/null
+++ b/library/imports/7c/7c332a0d-9d45-4af5-95c8-7d5260655cae.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1778,
+ 1574,
+ 92,
+ 88
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 92,
+ 88
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7c/7c6c2281-72d1-4217-81e1-77b9c86910a1.json b/library/imports/7c/7c6c2281-72d1-4217-81e1-77b9c86910a1.json
new file mode 100644
index 0000000..4b68ce4
--- /dev/null
+++ b/library/imports/7c/7c6c2281-72d1-4217-81e1-77b9c86910a1.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字11",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 987,
+ 1703,
+ 322,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 322,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7d/7d119e53-888a-41fe-8a53-c9d2d85472be.json b/library/imports/7d/7d119e53-888a-41fe-8a53-c9d2d85472be.json
new file mode 100644
index 0000000..c628c24
--- /dev/null
+++ b/library/imports/7d/7d119e53-888a-41fe-8a53-c9d2d85472be.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁上字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1833,
+ 961,
+ 109,
+ 32
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 109,
+ 32
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/7d/7dbce5ec-ee46-4ab3-a99d-654bbb914ff2.json b/library/imports/7d/7dbce5ec-ee46-4ab3-a99d-654bbb914ff2.json
new file mode 100644
index 0000000..3eee14b
--- /dev/null
+++ b/library/imports/7d/7dbce5ec-ee46-4ab3-a99d-654bbb914ff2.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子小",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 693,
+ 341,
+ 124,
+ 129
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 124,
+ 129
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/83/836148ca-227d-46cd-829d-4f31bcf8a650.json b/library/imports/83/836148ca-227d-46cd-829d-4f31bcf8a650.json
new file mode 100644
index 0000000..b34e85a
--- /dev/null
+++ b/library/imports/83/836148ca-227d-46cd-829d-4f31bcf8a650.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁上字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1833,
+ 961,
+ 109,
+ 32
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 109,
+ 32
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/84/848b221b-3658-4df3-9cb6-bf37fa1a945f.json b/library/imports/84/848b221b-3658-4df3-9cb6-bf37fa1a945f.json
new file mode 100644
index 0000000..8fea975
--- /dev/null
+++ b/library/imports/84/848b221b-3658-4df3-9cb6-bf37fa1a945f.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1340,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.json b/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/d2/d2daf530-25b4-4c2c-99bc-bfd1b7745219.json b/library/imports/86/86abe80b-15ed-4c52-892e-7ced36bbbea5.json
similarity index 67%
rename from library/imports/d2/d2daf530-25b4-4c2c-99bc-bfd1b7745219.json
rename to library/imports/86/86abe80b-15ed-4c52-892e-7ced36bbbea5.json
index 9c55105..05209bc 100644
--- a/library/imports/d2/d2daf530-25b4-4c2c-99bc-bfd1b7745219.json
+++ b/library/imports/86/86abe80b-15ed-4c52-892e-7ced36bbbea5.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz11",
- "texture": "852ff94f-f07c-447b-93fa-a9adcb1a069b",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 121,
+ 68,
39,
47
],
diff --git a/library/imports/86/86db2d74-622c-4804-bb00-7bdc5f81091e.json b/library/imports/86/86db2d74-622c-4804-bb00-7bdc5f81091e.json
new file mode 100644
index 0000000..624bf07
--- /dev/null
+++ b/library/imports/86/86db2d74-622c-4804-bb00-7bdc5f81091e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "返回主界面按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1001,
+ 867,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/88/88a2751c-1ed7-4f37-b358-e9b29126cdaa.json b/library/imports/88/88a2751c-1ed7-4f37-b358-e9b29126cdaa.json
new file mode 100644
index 0000000..03c881b
--- /dev/null
+++ b/library/imports/88/88a2751c-1ed7-4f37-b358-e9b29126cdaa.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效tuzi",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 803,
+ 311,
+ 116
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 116
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/88/88aa2afb-82cc-433d-93a1-853869f7c024.json b/library/imports/88/88aa2afb-82cc-433d-93a1-853869f7c024.json
new file mode 100644
index 0000000..e33be81
--- /dev/null
+++ b/library/imports/88/88aa2afb-82cc-433d-93a1-853869f7c024.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "设置图标",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 599,
+ 1121,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/89/89f75db3-6cd8-4cb8-a0ba-71a0787faec9.json b/library/imports/89/89f75db3-6cd8-4cb8-a0ba-71a0787faec9.json
new file mode 100644
index 0000000..00937d6
--- /dev/null
+++ b/library/imports/89/89f75db3-6cd8-4cb8-a0ba-71a0787faec9.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "放弃按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 826,
+ 921,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/8a/8a7b5f72-aed9-4acd-ab0b-809785c3a7c4.json b/library/imports/8a/8a7b5f72-aed9-4acd-ab0b-809785c3a7c4.json
new file mode 100644
index 0000000..f960cb8
--- /dev/null
+++ b/library/imports/8a/8a7b5f72-aed9-4acd-ab0b-809785c3a7c4.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1778,
+ 1574,
+ 92,
+ 88
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 92,
+ 88
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/8b/8badfde4-6e76-4af1-b84b-536983a4c6b6.json b/library/imports/8b/8badfde4-6e76-4af1-b84b-536983a4c6b6.json
new file mode 100644
index 0000000..f135f84
--- /dev/null
+++ b/library/imports/8b/8badfde4-6e76-4af1-b84b-536983a4c6b6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 1106,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/8b/8bc7338d-8134-4b6b-bee0-6e714308e5b6.json b/library/imports/8b/8bc7338d-8134-4b6b-bee0-6e714308e5b6.json
new file mode 100644
index 0000000..7427ed5
--- /dev/null
+++ b/library/imports/8b/8bc7338d-8134-4b6b-bee0-6e714308e5b6.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字03",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 915,
+ 1356,
+ 319,
+ 34
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 319,
+ 34
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/cb/cb33205e-e96b-4d22-bd92-4b201b1247de.json b/library/imports/8b/8becca83-dce4-46e0-8d90-a3d85c978728.json
similarity index 64%
rename from library/imports/cb/cb33205e-e96b-4d22-bd92-4b201b1247de.json
rename to library/imports/8b/8becca83-dce4-46e0-8d90-a3d85c978728.json
index 569d9ad..025b248 100644
--- a/library/imports/cb/cb33205e-e96b-4d22-bd92-4b201b1247de.json
+++ b/library/imports/8b/8becca83-dce4-46e0-8d90-a3d85c978728.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_yuan",
- "texture": "6b7f9211-7903-45b4-b2e2-d388ba17e935",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 162,
+ 66,
46,
43
],
@@ -18,6 +18,7 @@
46,
43
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/8b/8bf1142f-1ab1-47e9-acf1-b6b8888a696e.json b/library/imports/8b/8bf1142f-1ab1-47e9-acf1-b6b8888a696e.json
new file mode 100644
index 0000000..994890e
--- /dev/null
+++ b/library/imports/8b/8bf1142f-1ab1-47e9-acf1-b6b8888a696e.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "dikuang00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 114,
+ 1056,
+ 169
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1056,
+ 169
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/8d/8d554be7-4923-4539-986e-0f26f8c1ef33.json b/library/imports/8d/8d554be7-4923-4539-986e-0f26f8c1ef33.json
new file mode 100644
index 0000000..112449b
--- /dev/null
+++ b/library/imports/8d/8d554be7-4923-4539-986e-0f26f8c1ef33.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重试按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 826,
+ 284,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/91/91b22884-5946-4275-a019-5d9c92fa513d.json b/library/imports/91/91b22884-5946-4275-a019-5d9c92fa513d.json
new file mode 100644
index 0000000..8b1e087
--- /dev/null
+++ b/library/imports/91/91b22884-5946-4275-a019-5d9c92fa513d.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1591,
+ 1230,
+ 73,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 73,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/92/923cf59a-aba8-4569-9922-c3b14c92068c.json b/library/imports/92/923cf59a-aba8-4569-9922-c3b14c92068c.json
new file mode 100644
index 0000000..c85657b
--- /dev/null
+++ b/library/imports/92/923cf59a-aba8-4569-9922-c3b14c92068c.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟小_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1463,
+ 1190,
+ 106,
+ 127
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 106,
+ 127
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/93/93bd4730-60db-4373-85f3-31319264dfe8.json b/library/imports/93/93bd4730-60db-4373-85f3-31319264dfe8.json
new file mode 100644
index 0000000..905d102
--- /dev/null
+++ b/library/imports/93/93bd4730-60db-4373-85f3-31319264dfe8.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字03",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 284,
+ 766,
+ 56
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 766,
+ 56
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/95/950e310d-fd4b-4f10-be38-64184406631f.json b/library/imports/95/950e310d-fd4b-4f10-be38-64184406631f.json
new file mode 100644
index 0000000..bc4fa44
--- /dev/null
+++ b/library/imports/95/950e310d-fd4b-4f10-be38-64184406631f.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "设置图标",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 599,
+ 1121,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/95/95765141-8917-41cb-93ec-f541ba8f41e1.json b/library/imports/95/95765141-8917-41cb-93ec-f541ba8f41e1.json
new file mode 100644
index 0000000..f1addcc
--- /dev/null
+++ b/library/imports/95/95765141-8917-41cb-93ec-f541ba8f41e1.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "头像底图",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 307,
+ 188,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 188,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.json b/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.png b/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.png
deleted file mode 100644
index 2151d5e..0000000
Binary files a/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.png and /dev/null differ
diff --git a/library/imports/96/96731285-bdb3-4b01-946e-cea5ed2c94fb.json b/library/imports/96/96731285-bdb3-4b01-946e-cea5ed2c94fb.json
new file mode 100644
index 0000000..0e4d907
--- /dev/null
+++ b/library/imports/96/96731285-bdb3-4b01-946e-cea5ed2c94fb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "退出按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1676,
+ 155,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.json b/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.png b/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.png
deleted file mode 100644
index 1f186ba..0000000
Binary files a/library/imports/96/96c15f9c-935e-4e9d-b5c0-f95e5d429f5c.png and /dev/null differ
diff --git a/library/imports/97/97a6b663-88e0-4b9b-878b-c0c612e14a5c.json b/library/imports/97/97a6b663-88e0-4b9b-878b-c0c612e14a5c.json
new file mode 100644
index 0000000..3c191e2
--- /dev/null
+++ b/library/imports/97/97a6b663-88e0-4b9b-878b-c0c612e14a5c.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐tuzi_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 702,
+ 311,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/98/98bc5c77-90dd-4b3d-b548-c305927ec884.json b/library/imports/98/98bc5c77-90dd-4b3d-b548-c305927ec884.json
new file mode 100644
index 0000000..d09ab8f
--- /dev/null
+++ b/library/imports/98/98bc5c77-90dd-4b3d-b548-c305927ec884.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁上字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1833,
+ 961,
+ 109,
+ 32
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 109,
+ 32
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/98/98f3ae5d-a527-4859-807e-0a0cbb52f527.json b/library/imports/98/98f3ae5d-a527-4859-807e-0a0cbb52f527.json
new file mode 100644
index 0000000..1f433f8
--- /dev/null
+++ b/library/imports/98/98f3ae5d-a527-4859-807e-0a0cbb52f527.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "放弃按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 826,
+ 921,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ab/ab144d76-17a8-43f2-a8da-3767e4f801fe.json b/library/imports/99/993d5de7-a09c-4c74-9d31-7abbe35d2ae1.json
similarity index 67%
rename from library/imports/ab/ab144d76-17a8-43f2-a8da-3767e4f801fe.json
rename to library/imports/99/993d5de7-a09c-4c74-9d31-7abbe35d2ae1.json
index 2d16ee7..8e265ba 100644
--- a/library/imports/ab/ab144d76-17a8-43f2-a8da-3767e4f801fe.json
+++ b/library/imports/99/993d5de7-a09c-4c74-9d31-7abbe35d2ae1.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz5",
- "texture": "774d1aad-d081-44e1-9d68-9a3fd767aba3",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 314,
+ 63,
42,
60
],
diff --git a/library/imports/99/99530de1-73c8-493d-8c30-726384fcc7a2.json b/library/imports/99/99530de1-73c8-493d-8c30-726384fcc7a2.json
new file mode 100644
index 0000000..01840c1
--- /dev/null
+++ b/library/imports/99/99530de1-73c8-493d-8c30-726384fcc7a2.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "设置图标_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 599,
+ 1121,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/9a/9ab7589a-80da-4212-92d5-548620d4f606.json b/library/imports/9a/9ab7589a-80da-4212-92d5-548620d4f606.json
new file mode 100644
index 0000000..7e1fbdb
--- /dev/null
+++ b/library/imports/9a/9ab7589a-80da-4212-92d5-548620d4f606.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1457,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/9b/9b9d9148-3213-4a92-a6a3-37e7606d73df.json b/library/imports/9b/9b9d9148-3213-4a92-a6a3-37e7606d73df.json
deleted file mode 100644
index 7b21672..0000000
--- a/library/imports/9b/9b9d9148-3213-4a92-a6a3-37e7606d73df.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins4",
- "texture": "14a00731-8325-4675-8abd-da6b581a7266",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 171,
- 191
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 171,
- 191
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/9c/9c320ec0-85b1-45cc-ad32-be7b17fbfb76.json b/library/imports/9c/9c320ec0-85b1-45cc-ad32-be7b17fbfb76.json
new file mode 100644
index 0000000..2efa444
--- /dev/null
+++ b/library/imports/9c/9c320ec0-85b1-45cc-ad32-be7b17fbfb76.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "园底上发光",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 482,
+ 650,
+ 638
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 650,
+ 638
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/9d/9dcd36e6-5066-4dde-8fea-9b668c8e758a.json b/library/imports/9d/9dcd36e6-5066-4dde-8fea-9b668c8e758a.json
new file mode 100644
index 0000000..e5b7c5b
--- /dev/null
+++ b/library/imports/9d/9dcd36e6-5066-4dde-8fea-9b668c8e758a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1676,
+ 0,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/9e/9e7374d1-86e6-4b34-aac0-5995743b4b33.json b/library/imports/9e/9e7374d1-86e6-4b34-aac0-5995743b4b33.json
new file mode 100644
index 0000000..52d96ca
--- /dev/null
+++ b/library/imports/9e/9e7374d1-86e6-4b34-aac0-5995743b4b33.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效tuzi",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 803,
+ 311,
+ 116
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 116
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/9e/9eff1bc5-32de-45b9-b78b-2842b03e5ac6.json b/library/imports/9e/9eff1bc5-32de-45b9-b78b-2842b03e5ac6.json
new file mode 100644
index 0000000..b4e7238
--- /dev/null
+++ b/library/imports/9e/9eff1bc5-32de-45b9-b78b-2842b03e5ac6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字04",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 0,
+ 281,
+ 71
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 71
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c5/c512f489-2fcc-429d-8d24-51a7b9f52b2b.json b/library/imports/9f/9f12c901-afef-41f1-8111-c7f7c4ec860f.json
similarity index 67%
rename from library/imports/c5/c512f489-2fcc-429d-8d24-51a7b9f52b2b.json
rename to library/imports/9f/9f12c901-afef-41f1-8111-c7f7c4ec860f.json
index d34bef8..598b70a 100644
--- a/library/imports/c5/c512f489-2fcc-429d-8d24-51a7b9f52b2b.json
+++ b/library/imports/9f/9f12c901-afef-41f1-8111-c7f7c4ec860f.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz9",
- "texture": "3b8e0a01-7634-402d-a8d2-349fbbc809f6",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 228,
+ 1,
43,
61
],
diff --git a/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json b/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/a0/a015f272-ef06-472d-9ed0-51df191c80b7.json b/library/imports/a0/a015f272-ef06-472d-9ed0-51df191c80b7.json
new file mode 100644
index 0000000..0e95f4f
--- /dev/null
+++ b/library/imports/a0/a015f272-ef06-472d-9ed0-51df191c80b7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字小_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 971,
+ 1302,
+ 368,
+ 40
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 368,
+ 40
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a1/a19be097-17fa-4047-8efb-7f6906cf0c4c.json b/library/imports/a1/a19be097-17fa-4047-8efb-7f6906cf0c4c.json
new file mode 100644
index 0000000..3e21855
--- /dev/null
+++ b/library/imports/a1/a19be097-17fa-4047-8efb-7f6906cf0c4c.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字02",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1335,
+ 1343,
+ 359,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 359,
+ 38
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a1/a1c4b17c-19ef-4df2-8cd8-9bf525089cbe.json b/library/imports/a1/a1c4b17c-19ef-4df2-8cd8-9bf525089cbe.json
new file mode 100644
index 0000000..7b9cda3
--- /dev/null
+++ b/library/imports/a1/a1c4b17c-19ef-4df2-8cd8-9bf525089cbe.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字03_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 284,
+ 766,
+ 56
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 766,
+ 56
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a1/a1f844fe-88a2-4ea6-a719-ad1ea3d9302a.json b/library/imports/a1/a1f844fe-88a2-4ea6-a719-ad1ea3d9302a.json
deleted file mode 100644
index c4cff77..0000000
--- a/library/imports/a1/a1f844fe-88a2-4ea6-a719-ad1ea3d9302a.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins8",
- "texture": "4dbc349a-8dbd-4753-8e82-378b916ea36b",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 213,
- 195
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 213,
- 195
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/a1/a1fb2f86-4cae-43ef-a0f2-c51314cf5f88.json b/library/imports/a1/a1fb2f86-4cae-43ef-a0f2-c51314cf5f88.json
new file mode 100644
index 0000000..64a99d7
--- /dev/null
+++ b/library/imports/a1/a1fb2f86-4cae-43ef-a0f2-c51314cf5f88.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字03_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 284,
+ 766,
+ 56
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 766,
+ 56
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a2/a29c08f9-6c7a-4282-8880-dc49e9a920bb.json b/library/imports/a2/a29c08f9-6c7a-4282-8880-dc49e9a920bb.json
new file mode 100644
index 0000000..42d6586
--- /dev/null
+++ b/library/imports/a2/a29c08f9-6c7a-4282-8880-dc49e9a920bb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1778,
+ 1574,
+ 92,
+ 88
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 92,
+ 88
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a5/a58942d2-99f5-4cd0-82b2-2dabc0eb10ed.json b/library/imports/a5/a58942d2-99f5-4cd0-82b2-2dabc0eb10ed.json
new file mode 100644
index 0000000..b1f6200
--- /dev/null
+++ b/library/imports/a5/a58942d2-99f5-4cd0-82b2-2dabc0eb10ed.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重置按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 961,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/29/2952f12c-0d8c-490a-8fc0-62704a384180.json b/library/imports/a6/a69c275d-feb7-4eb6-aa11-104d24cf2da0.json
similarity index 67%
rename from library/imports/29/2952f12c-0d8c-490a-8fc0-62704a384180.json
rename to library/imports/a6/a69c275d-feb7-4eb6-aa11-104d24cf2da0.json
index 1f9ce7f..90cf35d 100644
--- a/library/imports/29/2952f12c-0d8c-490a-8fc0-62704a384180.json
+++ b/library/imports/a6/a69c275d-feb7-4eb6-aa11-104d24cf2da0.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz12",
- "texture": "6112faa1-3935-48de-a5a8-3369a63cead8",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 70,
+ 1,
64,
65
],
diff --git a/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.json b/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.png b/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.png
deleted file mode 100644
index 0e46341..0000000
Binary files a/library/imports/a7/a7020897-1d42-416a-ab6f-b99429684626.png and /dev/null differ
diff --git a/library/imports/a7/a70bfb36-1517-42e0-bd50-48bc9bbfe574.json b/library/imports/a7/a70bfb36-1517-42e0-bd50-48bc9bbfe574.json
new file mode 100644
index 0000000..d724502
--- /dev/null
+++ b/library/imports/a7/a70bfb36-1517-42e0-bd50-48bc9bbfe574.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1590,
+ 307,
+ 150,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 150,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/a8/a81d74d9-943b-4d0e-aad5-2999276d3447.json b/library/imports/a8/a81d74d9-943b-4d0e-aad5-2999276d3447.json
index bfba056..67928fc 100644
--- a/library/imports/a8/a81d74d9-943b-4d0e-aad5-2999276d3447.json
+++ b/library/imports/a8/a81d74d9-943b-4d0e-aad5-2999276d3447.json
@@ -172,7 +172,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "c708602e-74bd-4929-9850-6fa800129b1f"
+ "__uuid__": "8df4862f-bc72-4038-bc80-6bec5833a561"
},
"_type": 0,
"_sizeMode": 0,
@@ -185,7 +185,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "88f4116d-72c2-46cc-9f06-d164a85a9275"
+ },
"_id": ""
},
{
@@ -452,7 +454,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "c4ffe50c-173b-4bff-9661-3573003616ca"
+ "__uuid__": "7788da8f-ccb8-4cb4-9a46-1dd01f6186c7"
},
"_type": 0,
"_sizeMode": 1,
@@ -465,7 +467,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "88f4116d-72c2-46cc-9f06-d164a85a9275"
+ },
"_id": ""
},
{
diff --git a/library/imports/a8/a82c351b-9b93-45d0-b3f8-8aebe0f0cbae.json b/library/imports/a8/a82c351b-9b93-45d0-b3f8-8aebe0f0cbae.json
new file mode 100644
index 0000000..27371ce
--- /dev/null
+++ b/library/imports/a8/a82c351b-9b93-45d0-b3f8-8aebe0f0cbae.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字09_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1235,
+ 1401,
+ 281,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 64
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/aa/aa7ae01e-65ed-4f9a-b6a2-5bf0a90d0060.json b/library/imports/aa/aa7ae01e-65ed-4f9a-b6a2-5bf0a90d0060.json
new file mode 100644
index 0000000..cbfdb3f
--- /dev/null
+++ b/library/imports/aa/aa7ae01e-65ed-4f9a-b6a2-5bf0a90d0060.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1676,
+ 0,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ab/abc44372-ed53-4665-aba8-c701dbc22e45.json b/library/imports/ab/abc44372-ed53-4665-aba8-c701dbc22e45.json
new file mode 100644
index 0000000..ad2f71b
--- /dev/null
+++ b/library/imports/ab/abc44372-ed53-4665-aba8-c701dbc22e45.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出小框",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1174,
+ 616,
+ -313,
+ -95
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ -313,
+ -95
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/fd/fd18d6ff-5af2-4edf-a197-040823eb5855.json b/library/imports/ae/ae8eff19-6ef0-46cc-88ba-5cc74fbd7e19.json
similarity index 67%
rename from library/imports/fd/fd18d6ff-5af2-4edf-a197-040823eb5855.json
rename to library/imports/ae/ae8eff19-6ef0-46cc-88ba-5cc74fbd7e19.json
index 6dda194..2f54602 100644
--- a/library/imports/fd/fd18d6ff-5af2-4edf-a197-040823eb5855.json
+++ b/library/imports/ae/ae8eff19-6ef0-46cc-88ba-5cc74fbd7e19.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz8",
- "texture": "74db3129-e7a8-4b0b-baf9-e271bdfab9ba",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 182,
+ 1,
44,
63
],
diff --git a/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
index 23900f4..0cef4f5 100644
--- a/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
+++ b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json
@@ -325,7 +325,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "a240b819-2b4f-4608-b382-e99982cd138f"
+ "__uuid__": "5652a0a0-3753-477b-afbd-e68830208955"
},
"_type": 0,
"_sizeMode": 0,
@@ -544,7 +544,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "f174e2e2-2556-4acb-8ccd-97f3bed5b91d"
+ "__uuid__": "11bc6aa1-f82e-42c0-8581-7cc70ba6cde0"
},
"_type": 0,
"_sizeMode": 0,
diff --git a/library/imports/b0/b0c0c709-56f5-48df-9c1b-a6f8f8fc0d82.json b/library/imports/b0/b0c0c709-56f5-48df-9c1b-a6f8f8fc0d82.json
new file mode 100644
index 0000000..c5d2bea
--- /dev/null
+++ b/library/imports/b0/b0c0c709-56f5-48df-9c1b-a6f8f8fc0d82.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字09",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1235,
+ 1401,
+ 281,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 64
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b2/b22f387f-2cd1-444a-bf38-99ac9f0cce63.json b/library/imports/b2/b22f387f-2cd1-444a-bf38-99ac9f0cce63.json
new file mode 100644
index 0000000..6e51756
--- /dev/null
+++ b/library/imports/b2/b22f387f-2cd1-444a-bf38-99ac9f0cce63.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字10",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1001,
+ 284,
+ 582,
+ 55
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 582,
+ 55
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b2/b287b22b-0927-4dd3-a642-c5969da5ecb8.json b/library/imports/b2/b287b22b-0927-4dd3-a642-c5969da5ecb8.json
new file mode 100644
index 0000000..76ad2be
--- /dev/null
+++ b/library/imports/b2/b287b22b-0927-4dd3-a642-c5969da5ecb8.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1591,
+ 1190,
+ 74,
+ 39
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 74,
+ 39
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b3/b351934c-cadf-489e-96b9-a2d1fefd41e8.json b/library/imports/b3/b351934c-cadf-489e-96b9-a2d1fefd41e8.json
new file mode 100644
index 0000000..0c3f177
--- /dev/null
+++ b/library/imports/b3/b351934c-cadf-489e-96b9-a2d1fefd41e8.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字05_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 920,
+ 289,
+ 72
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 289,
+ 72
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b3/b3d43798-badf-4605-a46f-3f8e6d006ff7.json b/library/imports/b3/b3d43798-badf-4605-a46f-3f8e6d006ff7.json
new file mode 100644
index 0000000..4cbbee0
--- /dev/null
+++ b/library/imports/b3/b3d43798-badf-4605-a46f-3f8e6d006ff7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "已满字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1791,
+ 1145,
+ 72,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 36
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b4/b408ff41-fd70-476e-a1e9-8a578e26e034.json b/library/imports/b4/b408ff41-fd70-476e-a1e9-8a578e26e034.json
new file mode 100644
index 0000000..a57d129
--- /dev/null
+++ b/library/imports/b4/b408ff41-fd70-476e-a1e9-8a578e26e034.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 806,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b5/b5630b1e-0e45-4b38-a5c4-76b2fa8fad52.json b/library/imports/b5/b5630b1e-0e45-4b38-a5c4-76b2fa8fad52.json
new file mode 100644
index 0000000..b662a7b
--- /dev/null
+++ b/library/imports/b5/b5630b1e-0e45-4b38-a5c4-76b2fa8fad52.json
@@ -0,0 +1,410 @@
+{
+ "__type__": "cc.SpriteAtlas",
+ "_name": "texture_atlas-0.plist",
+ "_objFlags": 0,
+ "_native": "",
+ "_spriteFrames": {
+ "底板00": {
+ "__uuid__": "4d3b6389-4079-4627-8561-cb2f899bb7e4"
+ },
+ "底板00_1": {
+ "__uuid__": "1d62a42b-bac7-4650-b104-cd2d06726a5f"
+ },
+ "dikuang00": {
+ "__uuid__": "8bf1142f-1ab1-47e9-acf1-b6b8888a696e"
+ },
+ "dikuang00_1": {
+ "__uuid__": "71894f8f-9a53-4e7b-a34d-2e1bdbd36915"
+ },
+ "字03": {
+ "__uuid__": "d5e07eb0-5349-45d4-a493-b85eeb3bc068"
+ },
+ "字03_1": {
+ "__uuid__": "a1c4b17c-19ef-4df2-8cd8-9bf525089cbe"
+ },
+ "字08": {
+ "__uuid__": "6db0f2c4-ec42-4a81-9239-bf0aad1e076a"
+ },
+ "字08_1": {
+ "__uuid__": "0661d038-9d89-40c6-9b66-bddcd33b0aea"
+ },
+ "园底上发光": {
+ "__uuid__": "1c320cfc-927e-4914-9b26-a7e72329f689"
+ },
+ "园底上发光_1": {
+ "__uuid__": "efcff880-3b08-4582-a534-8b07046a3c11"
+ },
+ "按钮00": {
+ "__uuid__": "d305e34e-3d73-4cdc-9927-d418ca741c4a"
+ },
+ "按钮00_1": {
+ "__uuid__": "3cf8c3a8-e38c-4038-8231-24f57009b658"
+ },
+ "重试按钮": {
+ "__uuid__": "43141c9a-9d79-4fd9-a649-bae4f77d9e0e"
+ },
+ "门图": {
+ "__uuid__": "32b9646c-8d48-436a-ba18-a23e046b7885"
+ },
+ "门图_1": {
+ "__uuid__": "13509d15-5bd8-49eb-a45a-18ba84bdf238"
+ },
+ "tiaodik": {
+ "__uuid__": "085499d6-322c-4d5d-931b-cbd3fb60a879"
+ },
+ "tiaodik_1": {
+ "__uuid__": "02e66b2c-7d73-4d15-9cdb-e13adfe74468"
+ },
+ "字10": {
+ "__uuid__": "b22f387f-2cd1-444a-bf38-99ac9f0cce63"
+ },
+ "字10_1": {
+ "__uuid__": "2814cb8b-adc1-4d46-a7cb-48665bebf9bc"
+ },
+ "进入关卡按钮": {
+ "__uuid__": "2e666e6c-64b1-4289-a6d6-ae76945a7e74"
+ },
+ "进入关卡按钮_1": {
+ "__uuid__": "4fc2af6e-7e80-4f51-9bf2-4604b550bd73"
+ },
+ "圆底01": {
+ "__uuid__": "5d4c0cb0-5029-4d54-a5ed-1e7235c10888"
+ },
+ "圆底01_1": {
+ "__uuid__": "38664387-f748-470d-a652-5090c56c26c0"
+ },
+ "继续按钮": {
+ "__uuid__": "48acea19-9c97-4a72-9d85-05db28300d5d"
+ },
+ "继续按钮_1": {
+ "__uuid__": "1f276159-e912-4d49-84ba-58a42da0ebf6"
+ },
+ "返回主界面按钮": {
+ "__uuid__": "86db2d74-622c-4804-bb00-7bdc5f81091e"
+ },
+ "返回主界面按钮_1": {
+ "__uuid__": "322ae6c1-f061-4d9c-877d-c3df43680c6c"
+ },
+ "放弃按钮": {
+ "__uuid__": "98f3ae5d-a527-4859-807e-0a0cbb52f527"
+ },
+ "放弃按钮_1": {
+ "__uuid__": "89f75db3-6cd8-4cb8-a0ba-71a0787faec9"
+ },
+ "关卡数字01": {
+ "__uuid__": "c7eb958c-10a4-4469-b8a3-29f6504ec4a1"
+ },
+ "关卡数字01_1": {
+ "__uuid__": "eb20f0ab-6210-4122-9ac7-5f15da67d5b0"
+ },
+ "字00": {
+ "__uuid__": "eb08a13e-140f-424d-b1e9-4331e08f4db1"
+ },
+ "字00_1": {
+ "__uuid__": "58456b97-7133-4be1-99bf-1db8f33e5633"
+ },
+ "数字小": {
+ "__uuid__": "4429a4d8-236a-4c1e-b4b3-9fdac7a2997a"
+ },
+ "数字小_1": {
+ "__uuid__": "ece749fa-630b-4bc7-a427-ad987bea3fb6"
+ },
+ "字01": {
+ "__uuid__": "e9f7146c-7094-4f89-95d4-6224e84575ad"
+ },
+ "字01_1": {
+ "__uuid__": "bcf8c3ee-33e2-4e42-bfd1-189ce7e1b524"
+ },
+ "数字02": {
+ "__uuid__": "a19be097-17fa-4047-8efb-7f6906cf0c4c"
+ },
+ "数字02_1": {
+ "__uuid__": "52acb1f8-2d30-495b-aa22-1044c20358f6"
+ },
+ "字07": {
+ "__uuid__": "0ed82742-547c-42f6-8f19-42f0fd9018a2"
+ },
+ "字07_1": {
+ "__uuid__": "ed84bd52-af96-476e-b8a7-b36e08b3b777"
+ },
+ "心图标01": {
+ "__uuid__": "1a665cc2-9f50-4245-9cc8-e8456a8dd8bb"
+ },
+ "心图标01_1": {
+ "__uuid__": "cacea0ff-785e-44f7-a5e2-6c36f7723740"
+ },
+ "字11": {
+ "__uuid__": "c3349370-d9db-4e12-85a6-1d394ce16b0f"
+ },
+ "字11_1": {
+ "__uuid__": "551d0eef-7c06-4ba9-b95d-666c900c878a"
+ },
+ "数字03": {
+ "__uuid__": "4255617b-34d3-4f61-bd7f-69c4064b782f"
+ },
+ "数字03_1": {
+ "__uuid__": "4bc17d5c-38c1-4ca5-8689-ca7f8193c920"
+ },
+ "锤子大": {
+ "__uuid__": "b8480b77-33bb-4830-bb26-f9f16e2222f6"
+ },
+ "锤子大_1": {
+ "__uuid__": "d74245de-0aee-4038-899e-79522392a77f"
+ },
+ "震动tuzi": {
+ "__uuid__": "598432ac-b818-463b-a9cf-e6270501308d"
+ },
+ "震动tuzi_1": {
+ "__uuid__": "d16de6dc-7bca-4d55-9c20-26df6b3cccd3"
+ },
+ "ditu00": {
+ "__uuid__": "cf87ab28-5a4f-42bc-948b-89a0f0125078"
+ },
+ "ditu00_1": {
+ "__uuid__": "bc8d81cc-7ef9-4a8c-b240-ad92be5582eb"
+ },
+ "音乐tuzi": {
+ "__uuid__": "32d1a14c-7d5e-40f4-a4f2-bf842d16e688"
+ },
+ "音乐tuzi_1": {
+ "__uuid__": "0067bef8-35b3-4e41-9d45-ffb39b74450e"
+ },
+ "音效tuzi": {
+ "__uuid__": "88a2751c-1ed7-4f37-b358-e9b29126cdaa"
+ },
+ "音效tuzi_1": {
+ "__uuid__": "190be0d8-fe40-46bd-958c-7b55a3e36013"
+ },
+ "五星棒大": {
+ "__uuid__": "d9b9110b-81ea-4f4b-9139-ca836f79ddca"
+ },
+ "五星棒大_1": {
+ "__uuid__": "146b6e6d-9258-4ed8-90fd-da234876d414"
+ },
+ "冰冻时钟大": {
+ "__uuid__": "5b4b9be3-30db-411c-aa4c-7be4c18fb6c0"
+ },
+ "冰冻时钟大_1": {
+ "__uuid__": "ba903c53-7bd7-4cfb-8943-0bb99f3870e2"
+ },
+ "字05": {
+ "__uuid__": "65bec656-a8fc-4fc3-ad4d-98e76f9c9531"
+ },
+ "字05_1": {
+ "__uuid__": "b351934c-cadf-489e-96b9-a2d1fefd41e8"
+ },
+ "闹钟图标00": {
+ "__uuid__": "2ccededa-25d9-459b-b4cc-180f71680e58"
+ },
+ "闹钟图标00_1": {
+ "__uuid__": "74589c72-e4ec-4f8c-8d71-2794415efb20"
+ },
+ "字02": {
+ "__uuid__": "7bcb2d5f-3aaa-45f6-b357-2b139ad4495c"
+ },
+ "字02_1": {
+ "__uuid__": "eae6e5e0-a6c7-460c-8976-dee23d9c91e1"
+ },
+ "字09": {
+ "__uuid__": "b0c0c709-56f5-48df-9c1b-a6f8f8fc0d82"
+ },
+ "字09_1": {
+ "__uuid__": "ca101545-05e4-42bb-bfb3-7bacceebf314"
+ },
+ "字04": {
+ "__uuid__": "50fee89c-cf58-43c7-9a25-37d5a2cd2fe4"
+ },
+ "字04_1": {
+ "__uuid__": "18969cec-52d4-45e0-87a0-761ade9fe680"
+ },
+ "锁关卡数字小": {
+ "__uuid__": "c9c415da-50ca-4791-9024-f70a7b35f267"
+ },
+ "开按钮": {
+ "__uuid__": "d39a6aec-5fac-4bd6-a038-21381df5a7c9"
+ },
+ "开按钮_1": {
+ "__uuid__": "082415c2-6a08-41dc-a7a4-c9f5a28f45de"
+ },
+ "关按钮": {
+ "__uuid__": "da40bc65-a336-4890-94c3-f57f38def65a"
+ },
+ "第关字": {
+ "__uuid__": "399bdc91-3a6a-46b1-82eb-fbd55d6cb973"
+ },
+ "第关字_1": {
+ "__uuid__": "16bd254e-2424-4135-985c-1eb20499d3d4"
+ },
+ "每日奖励图标": {
+ "__uuid__": "33c46527-8045-48ce-889f-e8afe935ddd7"
+ },
+ "头像底图": {
+ "__uuid__": "28d1f867-0c60-4108-b244-7737d4644aa0"
+ },
+ "头像底图_1": {
+ "__uuid__": "41932ad3-a24c-4e10-9df8-218b53475b97"
+ },
+ "设置图标": {
+ "__uuid__": "950e310d-fd4b-4f10-be38-64184406631f"
+ },
+ "设置图标_1": {
+ "__uuid__": "99530de1-73c8-493d-8c30-726384fcc7a2"
+ },
+ "排行榜图标": {
+ "__uuid__": "3e5c08d5-254d-4b98-bbc0-4a1094bd3712"
+ },
+ "排行榜图标_1": {
+ "__uuid__": "413c9c3b-bd4d-4fd6-b084-2061753cf599"
+ },
+ "锁按钮": {
+ "__uuid__": "9dcd36e6-5066-4dde-8fea-9b668c8e758a"
+ },
+ "锁按钮_1": {
+ "__uuid__": "aa7ae01e-65ed-4f9a-b6a2-5bf0a90d0060"
+ },
+ "带锁": {
+ "__uuid__": "1626e32a-ce24-483c-a5e1-9b038f54039e"
+ },
+ "带锁_1": {
+ "__uuid__": "3790638a-0781-459f-b50e-fc26002e12ab"
+ },
+ "空道具底框": {
+ "__uuid__": "40259de3-11f6-485c-8d4b-366146c29772"
+ },
+ "暂停按钮": {
+ "__uuid__": "11b54394-fa53-4278-b46e-98a19c82198a"
+ },
+ "退出按钮": {
+ "__uuid__": "7bd098fe-fb82-4e70-9863-637bfd3bcda0"
+ },
+ "退出按钮_1": {
+ "__uuid__": "96731285-bdb3-4b01-946e-cea5ed2c94fb"
+ },
+ "重置按钮": {
+ "__uuid__": "a58942d2-99f5-4cd0-82b2-2dabc0eb10ed"
+ },
+ "重置按钮_1": {
+ "__uuid__": "c80bd083-798f-4680-b404-26ba79fd0abb"
+ },
+ "暂停字": {
+ "__uuid__": "e895de15-b238-409a-b822-dd1e1eafc35f"
+ },
+ "暂停字_1": {
+ "__uuid__": "400f9538-f55a-4420-a47b-91452e9b3a82"
+ },
+ "锤子小": {
+ "__uuid__": "7dbce5ec-ee46-4ab3-a99d-654bbb914ff2"
+ },
+ "锤子小_1": {
+ "__uuid__": "1d48621b-cc04-49f9-a618-5f4dc896960a"
+ },
+ "冰冻时钟小": {
+ "__uuid__": "e63a7d56-7503-4e82-99c0-76ef51164b8d"
+ },
+ "冰冻时钟小_1": {
+ "__uuid__": "923cf59a-aba8-4569-9922-c3b14c92068c"
+ },
+ "音乐01": {
+ "__uuid__": "01ceb0e9-9252-49db-a831-f0c1d808849f"
+ },
+ "音乐01_1": {
+ "__uuid__": "788b15b4-1813-47f1-8ed6-537103a30d3a"
+ },
+ "音效00": {
+ "__uuid__": "3d70d35e-3b09-432d-a7cc-87fd904d8a42"
+ },
+ "音效00_1": {
+ "__uuid__": "539d05dd-7893-411d-bc4b-7a15921e60ba"
+ },
+ "音效01": {
+ "__uuid__": "8badfde4-6e76-4af1-b84b-536983a4c6b6"
+ },
+ "音效01_1": {
+ "__uuid__": "65a95ace-2ed0-4da4-8902-79f5130b159b"
+ },
+ "震动00": {
+ "__uuid__": "2f4368dd-b62d-4dae-90e8-6c1a0ccba85a"
+ },
+ "震动00_1": {
+ "__uuid__": "68cbe5df-799e-4c0e-9daf-e70de404495a"
+ },
+ "音乐00": {
+ "__uuid__": "412a92ab-a1de-4f88-b447-a363a9d8bd99"
+ },
+ "音乐00_1": {
+ "__uuid__": "215fb691-669a-45cc-9a64-b119c772a8e8"
+ },
+ "震动01": {
+ "__uuid__": "9ab7589a-80da-4212-92d5-548620d4f606"
+ },
+ "震动01_1": {
+ "__uuid__": "d4545a5d-5761-47bb-95c8-9e2bce13ab11"
+ },
+ "五星棒小": {
+ "__uuid__": "2b92a3b8-a03c-4f03-b4c4-d1246ce976d7"
+ },
+ "五星棒小_1": {
+ "__uuid__": "7930fa23-3ece-47de-94b2-3c461f185931"
+ },
+ "锁上字": {
+ "__uuid__": "7d119e53-888a-41fe-8a53-c9d2d85472be"
+ },
+ "锁上字_1": {
+ "__uuid__": "109965fd-702a-461f-bfd6-53643e7f2428"
+ },
+ "小钟图标": {
+ "__uuid__": "6d484a21-0a8b-411f-a8d0-3c663c8b5d3f"
+ },
+ "小钟图标_1": {
+ "__uuid__": "4b8c2f67-5331-4c24-91fd-51f35d0088b3"
+ },
+ "心图标": {
+ "__uuid__": "a29c08f9-6c7a-4282-8880-dc49e9a920bb"
+ },
+ "心图标_1": {
+ "__uuid__": "8a7b5f72-aed9-4acd-ab0b-809785c3a7c4"
+ },
+ "加按钮": {
+ "__uuid__": "43cacadd-23e9-4858-bb3f-bf5914054a0e"
+ },
+ "加按钮_1": {
+ "__uuid__": "55240a28-e9ee-49ea-992f-62325200dbb1"
+ },
+ "震动字": {
+ "__uuid__": "4654fc78-d060-4cf0-8eeb-8dd4b0c329e0"
+ },
+ "震动字_1": {
+ "__uuid__": "b287b22b-0927-4dd3-a642-c5969da5ecb8"
+ },
+ "音效字": {
+ "__uuid__": "91b22884-5946-4275-a019-5d9c92fa513d"
+ },
+ "音效字_1": {
+ "__uuid__": "ecc6a80f-3415-456c-81ea-df56a2b63168"
+ },
+ "音乐字": {
+ "__uuid__": "b61c5973-a297-4a59-b3dd-e65a26b1b7d6"
+ },
+ "音乐字_1": {
+ "__uuid__": "ffedc654-f966-41f1-9b06-1adde965784e"
+ },
+ "已满字": {
+ "__uuid__": "6f1bbc06-e201-4cde-8959-ee6e6e6b114f"
+ },
+ "已满字_1": {
+ "__uuid__": "ed740af5-aeab-4eb7-befa-90375429d98f"
+ },
+ "弹出框关闭按钮": {
+ "__uuid__": "5b38334a-d39a-4ae1-8360-7e8e8a6ddd1a"
+ },
+ "弹出框关闭按钮_1": {
+ "__uuid__": "ed8cfedc-0d93-41ad-96c3-52e5d0ae6008"
+ },
+ "弹出小框": {
+ "__uuid__": "095b3b98-e5ba-4f81-8458-a836cb4608f6"
+ },
+ "弹出小框_1": {
+ "__uuid__": "43931090-b629-404e-88bf-84fe31102af8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b6/b61c5973-a297-4a59-b3dd-e65a26b1b7d6.json b/library/imports/b6/b61c5973-a297-4a59-b3dd-e65a26b1b7d6.json
new file mode 100644
index 0000000..f3d0947
--- /dev/null
+++ b/library/imports/b6/b61c5973-a297-4a59-b3dd-e65a26b1b7d6.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1791,
+ 1106,
+ 72,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.json b/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/b8/b805a15e-9ae8-42f5-96e7-d17966806b11.json b/library/imports/b8/b805a15e-9ae8-42f5-96e7-d17966806b11.json
new file mode 100644
index 0000000..339ed0b
--- /dev/null
+++ b/library/imports/b8/b805a15e-9ae8-42f5-96e7-d17966806b11.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "底板00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 0,
+ 1080,
+ 113
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1080,
+ 113
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b8/b8480b77-33bb-4830-bb26-f9f16e2222f6.json b/library/imports/b8/b8480b77-33bb-4830-bb26-f9f16e2222f6.json
new file mode 100644
index 0000000..9cbb33d
--- /dev/null
+++ b/library/imports/b8/b8480b77-33bb-4830-bb26-f9f16e2222f6.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子大",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1146,
+ 998,
+ 303,
+ 316
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 303,
+ 316
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b9/b9e660da-3e10-4c1f-af72-45fbf377aafd.json b/library/imports/b9/b9e660da-3e10-4c1f-af72-45fbf377aafd.json
new file mode 100644
index 0000000..dd7a718
--- /dev/null
+++ b/library/imports/b9/b9e660da-3e10-4c1f-af72-45fbf377aafd.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 572,
+ 1356,
+ 412,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 412,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b9/b9eda2af-71ff-494d-8914-ec65eadd1aaf.json b/library/imports/b9/b9eda2af-71ff-494d-8914-ec65eadd1aaf.json
new file mode 100644
index 0000000..8ad4112
--- /dev/null
+++ b/library/imports/b9/b9eda2af-71ff-494d-8914-ec65eadd1aaf.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "按钮00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 651,
+ 482,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ba/ba903c53-7bd7-4cfb-8943-0bb99f3870e2.json b/library/imports/ba/ba903c53-7bd7-4cfb-8943-0bb99f3870e2.json
new file mode 100644
index 0000000..6b77d61
--- /dev/null
+++ b/library/imports/ba/ba903c53-7bd7-4cfb-8943-0bb99f3870e2.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟大_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 1302,
+ 240,
+ 291
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 240,
+ 291
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/bb/bb39499a-feb7-4eab-bbf3-46ac003c3f9a.json b/library/imports/bb/bb39499a-feb7-4eab-bbf3-46ac003c3f9a.json
new file mode 100644
index 0000000..46bc66d
--- /dev/null
+++ b/library/imports/bb/bb39499a-feb7-4eab-bbf3-46ac003c3f9a.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字10",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1001,
+ 284,
+ 582,
+ 55
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 582,
+ 55
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/54/546a566e-6902-431f-a072-b3d00fe9f788.json b/library/imports/bc/bc8d81cc-7ef9-4a8c-b240-ad92be5582eb.json
similarity index 62%
rename from library/imports/54/546a566e-6902-431f-a072-b3d00fe9f788.json
rename to library/imports/bc/bc8d81cc-7ef9-4a8c-b240-ad92be5582eb.json
index 1eb66a5..1061210 100644
--- a/library/imports/54/546a566e-6902-431f-a072-b3d00fe9f788.json
+++ b/library/imports/bc/bc8d81cc-7ef9-4a8c-b240-ad92be5582eb.json
@@ -1,13 +1,12 @@
{
"__type__": "cc.SpriteFrame",
"content": {
- "name": "txt1",
- "texture": "d824166e-71a9-461c-bd7d-2be020ff85b7",
- "atlas": "",
+ "name": "ditu00_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
"rect": [
- 0,
- 0,
- 907,
+ 1340,
+ 639,
+ 312,
62
],
"offset": [
@@ -15,7 +14,7 @@
0
],
"originalSize": [
- 907,
+ 312,
62
],
"capInsets": [
diff --git a/library/imports/bc/bcf8c3ee-33e2-4e42-bfd1-189ce7e1b524.json b/library/imports/bc/bcf8c3ee-33e2-4e42-bfd1-189ce7e1b524.json
new file mode 100644
index 0000000..20334aa
--- /dev/null
+++ b/library/imports/bc/bcf8c3ee-33e2-4e42-bfd1-189ce7e1b524.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 971,
+ 1343,
+ 363,
+ 57
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 363,
+ 57
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c9/c9bbe275-ebab-49b9-95e9-b6169ef4fe06.json b/library/imports/bf/bfe1bfb2-6b06-4ed2-a183-a20bd676ff2c.json
similarity index 64%
rename from library/imports/c9/c9bbe275-ebab-49b9-95e9-b6169ef4fe06.json
rename to library/imports/bf/bfe1bfb2-6b06-4ed2-a183-a20bd676ff2c.json
index 98cff30..f291317 100644
--- a/library/imports/c9/c9bbe275-ebab-49b9-95e9-b6169ef4fe06.json
+++ b/library/imports/bf/bfe1bfb2-6b06-4ed2-a183-a20bd676ff2c.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz3",
- "texture": "e9077dbb-d18e-45d5-aae4-9f46b103ed05",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 207,
+ 66,
44,
61
],
@@ -18,6 +18,7 @@
44,
61
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c0/c089d57e-d036-423a-ac1b-55cac40e7691.json b/library/imports/c0/c089d57e-d036-423a-ac1b-55cac40e7691.json
new file mode 100644
index 0000000..d8ab103
--- /dev/null
+++ b/library/imports/c0/c089d57e-d036-423a-ac1b-55cac40e7691.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效tuzi_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1340,
+ 803,
+ 311,
+ 116
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 311,
+ 116
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c0/c0b0148b-e769-4674-8f71-b3dd828675d8.json b/library/imports/c0/c0b0148b-e769-4674-8f71-b3dd828675d8.json
new file mode 100644
index 0000000..28e5b04
--- /dev/null
+++ b/library/imports/c0/c0b0148b-e769-4674-8f71-b3dd828675d8.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟小",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1463,
+ 1190,
+ 106,
+ 127
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 106,
+ 127
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c1/c176a193-7e7f-48d3-9012-ae53132138dc.json b/library/imports/c1/c176a193-7e7f-48d3-9012-ae53132138dc.json
new file mode 100644
index 0000000..34958c7
--- /dev/null
+++ b/library/imports/c1/c176a193-7e7f-48d3-9012-ae53132138dc.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "第关字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1639,
+ 72,
+ 234,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 234,
+ 36
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js
index 8204177..670406a 100644
--- a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js
+++ b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js
@@ -1092,10 +1092,12 @@ var MiniGameSdk;
}
};
API.shushu_Login = function () {
- API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
- var result = "success";
- API.shushu_Track("login", result);
- API.shushu_SetSuperProperties();
+ if (typeof wx !== 'undefined' && wx !== null) {
+ API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
+ var result = "success";
+ API.shushu_Track("login", result);
+ API.shushu_SetSuperProperties();
+ }
};
API.shushu_userSet = function (time) {
if (typeof wx !== 'undefined' && wx !== null) {
diff --git a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map
index 3e06bb2..aee24f7 100644
--- a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map
+++ b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n //@ts-ignore\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n private static _ta: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'none',\r\n duration: duration * 500\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) => {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n\r\n\r\n /*\r\n * 数数平台初始化以及登录\r\n */\r\n\r\n static shushu_Init() {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"开始接入数数平台\");\r\n //getWechatGameVersion\r\n let appId = \"121591378fc1423893deb12041413eb3\";\r\n let test = cc.fx.GameTool.getWechatGameVersion();\r\n if (test == \"正式版\") {\r\n appId = \"87d18958cea145f29d3265470ecd3486\";\r\n }\r\n var config = {\r\n // appId: \"73e1ec654f15b47a1a7354fbabec05ad\", // 项目 APP ID\r\n appId: appId,\r\n serverUrl: \"https://data.nika4fun.com\", // 上报地址\r\n autoTrack: {\r\n appShow: true, // 自动采集 ta_mg_show\r\n appHide: true // 自动采集 ta_mg_hide\r\n }\r\n };\r\n // 创建 TA 实例\r\n API._ta = new ThinkingAnalyticsAPI(config);\r\n // 初始化\r\n API._ta.init();\r\n }\r\n }\r\n\r\n static shushu_Login() {\r\n API._ta.login(cc.fx.GameConfig.GM_INFO.openid);\r\n const result = \"success\";\r\n API.shushu_Track(\"login\", result);\r\n API.shushu_SetSuperProperties();\r\n }\r\n\r\n static shushu_userSet(time) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"设置用户注册属性\");\r\n API._ta.userSet({ register_time: time });\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台设置动态公共属性\r\n */\r\n\r\n static shushu_SetSuperProperties() {\r\n if (typeof wx !== 'undefined' && wx !== null && API._ta) {\r\n const versionData = \"1.3\";\r\n // API._ta.userSetOnce({ register_time:time});\r\n var superProperties = {\r\n current_level: (cc.fx.GameConfig.GM_INFO.level + 1), //当前关卡等级 number\r\n current_health: cc.fx.GameConfig.GM_INFO.hp, //当前体力值\r\n tmp_coin: cc.fx.GameConfig.GM_INFO.coin,//当前金币\r\n version: versionData\r\n };\r\n API._ta.setSuperProperties(superProperties);//设置公共事件属性\r\n }\r\n }\r\n\r\n static getWechatGameVersion(): string | null {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n // @ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n return accountInfo.miniProgram.version;\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台具体埋点\r\n */\r\n\r\n static shushu_Track(name, data, callback?: (success: boolean, error?: any) => void) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n if (API._ta) {\r\n // 假设 track 方法返回一个 Promise\r\n API._ta.track(\r\n name, // 事件名称\r\n data // 事件属性 \r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n}"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n //@ts-ignore\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n private static _ta: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'none',\r\n duration: duration * 500\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) => {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n\r\n\r\n /*\r\n * 数数平台初始化以及登录\r\n */\r\n\r\n static shushu_Init() {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"开始接入数数平台\");\r\n //getWechatGameVersion\r\n let appId = \"121591378fc1423893deb12041413eb3\";\r\n let test = cc.fx.GameTool.getWechatGameVersion();\r\n if (test == \"正式版\") {\r\n appId = \"87d18958cea145f29d3265470ecd3486\";\r\n }\r\n var config = {\r\n // appId: \"73e1ec654f15b47a1a7354fbabec05ad\", // 项目 APP ID\r\n appId: appId,\r\n serverUrl: \"https://data.nika4fun.com\", // 上报地址\r\n autoTrack: {\r\n appShow: true, // 自动采集 ta_mg_show\r\n appHide: true // 自动采集 ta_mg_hide\r\n }\r\n };\r\n // 创建 TA 实例\r\n API._ta = new ThinkingAnalyticsAPI(config);\r\n // 初始化\r\n API._ta.init();\r\n }\r\n }\r\n\r\n static shushu_Login() {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n API._ta.login(cc.fx.GameConfig.GM_INFO.openid);\r\n const result = \"success\";\r\n API.shushu_Track(\"login\", result);\r\n API.shushu_SetSuperProperties();\r\n }\r\n }\r\n\r\n static shushu_userSet(time) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"设置用户注册属性\");\r\n API._ta.userSet({ register_time: time });\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台设置动态公共属性\r\n */\r\n\r\n static shushu_SetSuperProperties() {\r\n if (typeof wx !== 'undefined' && wx !== null && API._ta) {\r\n const versionData = \"1.3\";\r\n // API._ta.userSetOnce({ register_time:time});\r\n var superProperties = {\r\n current_level: (cc.fx.GameConfig.GM_INFO.level + 1), //当前关卡等级 number\r\n current_health: cc.fx.GameConfig.GM_INFO.hp, //当前体力值\r\n tmp_coin: cc.fx.GameConfig.GM_INFO.coin,//当前金币\r\n version: versionData\r\n };\r\n API._ta.setSuperProperties(superProperties);//设置公共事件属性\r\n }\r\n }\r\n\r\n static getWechatGameVersion(): string | null {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n // @ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n return accountInfo.miniProgram.version;\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台具体埋点\r\n */\r\n\r\n static shushu_Track(name, data, callback?: (success: boolean, error?: any) => void) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n if (API._ta) {\r\n // 假设 track 方法返回一个 Promise\r\n API._ta.track(\r\n name, // 事件名称\r\n data // 事件属性 \r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n}"]}
\ No newline at end of file
diff --git a/library/imports/f0/f0d924c0-19bb-45cd-b55c-f3c9451f0f55.json b/library/imports/c2/c27b90ef-5231-40ff-9c47-380561e1cc77.json
similarity index 63%
rename from library/imports/f0/f0d924c0-19bb-45cd-b55c-f3c9451f0f55.json
rename to library/imports/c2/c27b90ef-5231-40ff-9c47-380561e1cc77.json
index 0707e77..360a2ed 100644
--- a/library/imports/f0/f0d924c0-19bb-45cd-b55c-f3c9451f0f55.json
+++ b/library/imports/c2/c27b90ef-5231-40ff-9c47-380561e1cc77.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_5",
- "texture": "9ffc3971-f097-4de5-b88a-2e5e6d78104a",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 415,
+ 60,
25,
36
],
@@ -18,6 +18,7 @@
25,
36
],
+ "rotated": 1,
"capInsets": [
0,
0,
diff --git a/library/imports/c2/c2ae6df9-8799-4348-a317-1d06ec5f4531.json b/library/imports/c2/c2ae6df9-8799-4348-a317-1d06ec5f4531.json
new file mode 100644
index 0000000..53ba92c
--- /dev/null
+++ b/library/imports/c2/c2ae6df9-8799-4348-a317-1d06ec5f4531.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重置按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 961,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c2/c2be84c9-771c-425d-8185-655f4b592512.json b/library/imports/c2/c2be84c9-771c-425d-8185-655f4b592512.json
new file mode 100644
index 0000000..4936ac0
--- /dev/null
+++ b/library/imports/c2/c2be84c9-771c-425d-8185-655f4b592512.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出框关闭按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1789,
+ 1306,
+ 65,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 65,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c3/c3349370-d9db-4e12-85a6-1d394ce16b0f.json b/library/imports/c3/c3349370-d9db-4e12-85a6-1d394ce16b0f.json
new file mode 100644
index 0000000..bba5d49
--- /dev/null
+++ b/library/imports/c3/c3349370-d9db-4e12-85a6-1d394ce16b0f.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字11",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 987,
+ 1703,
+ 322,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 322,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c4/c40825bb-b96a-4b65-8966-4e8a81f2d44a.json b/library/imports/c4/c40825bb-b96a-4b65-8966-4e8a81f2d44a.json
new file mode 100644
index 0000000..c9e3bb9
--- /dev/null
+++ b/library/imports/c4/c40825bb-b96a-4b65-8966-4e8a81f2d44a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动字",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1591,
+ 1190,
+ 74,
+ 39
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 74,
+ 39
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c4/c4ffe50c-173b-4bff-9661-3573003616ca.json b/library/imports/c4/c4ffe50c-173b-4bff-9661-3573003616ca.json
deleted file mode 100644
index fd42ebb..0000000
--- a/library/imports/c4/c4ffe50c-173b-4bff-9661-3573003616ca.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins_di",
- "texture": "1e3dbd9c-6c1c-420b-9320-e27f3195e6d0",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 327,
- 454
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 327,
- 454
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/84/84079931-0966-46a2-956e-a0951ca34b32.json b/library/imports/c5/c5b62989-f18e-41f8-a950-68be1c4be79a.json
similarity index 67%
rename from library/imports/84/84079931-0966-46a2-956e-a0951ca34b32.json
rename to library/imports/c5/c5b62989-f18e-41f8-a950-68be1c4be79a.json
index 2d92008..daec637 100644
--- a/library/imports/84/84079931-0966-46a2-956e-a0951ca34b32.json
+++ b/library/imports/c5/c5b62989-f18e-41f8-a950-68be1c4be79a.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_11",
- "texture": "1019c0e2-cc2c-4dde-93e4-86b676bc69cd",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 415,
+ 87,
33,
33
],
diff --git a/library/imports/c5/c5ba0cab-fc46-4c97-89ec-a4cb557d63e9.json b/library/imports/c5/c5ba0cab-fc46-4c97-89ec-a4cb557d63e9.json
new file mode 100644
index 0000000..0178e3f
--- /dev/null
+++ b/library/imports/c5/c5ba0cab-fc46-4c97-89ec-a4cb557d63e9.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "加按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1789,
+ 1223,
+ 76,
+ 82
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 76,
+ 82
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.json b/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/c6/c653aded-8dc8-40f0-8af5-0b71c9efeed7.json b/library/imports/c6/c653aded-8dc8-40f0-8af5-0b71c9efeed7.json
new file mode 100644
index 0000000..7738610
--- /dev/null
+++ b/library/imports/c6/c653aded-8dc8-40f0-8af5-0b71c9efeed7.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1591,
+ 1230,
+ 73,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 73,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c6/c6cb1ba1-3842-4022-ae8a-eb350e1893b9.json b/library/imports/c6/c6cb1ba1-3842-4022-ae8a-eb350e1893b9.json
new file mode 100644
index 0000000..762d217
--- /dev/null
+++ b/library/imports/c6/c6cb1ba1-3842-4022-ae8a-eb350e1893b9.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "排行榜图标",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1463,
+ 993,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c7/c708602e-74bd-4929-9850-6fa800129b1f.json b/library/imports/c7/c708602e-74bd-4929-9850-6fa800129b1f.json
deleted file mode 100644
index dea480c..0000000
--- a/library/imports/c7/c708602e-74bd-4929-9850-6fa800129b1f.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins1",
- "texture": "1c56a793-7cd3-412f-a040-8a754a2f4d41",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 206,
- 141
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 206,
- 141
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/c7/c7eb958c-10a4-4469-b8a3-29f6504ec4a1.json b/library/imports/c7/c7eb958c-10a4-4469-b8a3-29f6504ec4a1.json
new file mode 100644
index 0000000..8d802ac
--- /dev/null
+++ b/library/imports/c7/c7eb958c-10a4-4469-b8a3-29f6504ec4a1.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关卡数字01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 517,
+ 1356,
+ 419,
+ 54
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 419,
+ 54
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c8/c80bd083-798f-4680-b404-26ba79fd0abb.json b/library/imports/c8/c80bd083-798f-4680-b404-26ba79fd0abb.json
new file mode 100644
index 0000000..b226fdc
--- /dev/null
+++ b/library/imports/c8/c80bd083-798f-4680-b404-26ba79fd0abb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "重置按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1668,
+ 961,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.json b/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/c9/c9c415da-50ca-4791-9024-f70a7b35f267.json b/library/imports/c9/c9c415da-50ca-4791-9024-f70a7b35f267.json
new file mode 100644
index 0000000..29a1e61
--- /dev/null
+++ b/library/imports/c9/c9c415da-50ca-4791-9024-f70a7b35f267.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁关卡数字小",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1630,
+ 920,
+ 269,
+ 37
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 269,
+ 37
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ca/ca101545-05e4-42bb-bfb3-7bacceebf314.json b/library/imports/ca/ca101545-05e4-42bb-bfb3-7bacceebf314.json
new file mode 100644
index 0000000..370dd63
--- /dev/null
+++ b/library/imports/ca/ca101545-05e4-42bb-bfb3-7bacceebf314.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字09_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1235,
+ 1401,
+ 281,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 281,
+ 64
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ca/cacea0ff-785e-44f7-a5e2-6c36f7723740.json b/library/imports/ca/cacea0ff-785e-44f7-a5e2-6c36f7723740.json
new file mode 100644
index 0000000..d4b72bb
--- /dev/null
+++ b/library/imports/ca/cacea0ff-785e-44f7-a5e2-6c36f7723740.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 638,
+ 1356,
+ 340,
+ 276
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 340,
+ 276
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/cc/cc4ed551-4143-40db-a3b6-d2c09a978701.json b/library/imports/cc/cc4ed551-4143-40db-a3b6-d2c09a978701.json
deleted file mode 100644
index b439c37..0000000
--- a/library/imports/cc/cc4ed551-4143-40db-a3b6-d2c09a978701.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins7",
- "texture": "96c15f9c-935e-4e9d-b5c0-f95e5d429f5c",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 185,
- 206
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 185,
- 206
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/f6/f6eaa69d-1533-4a6f-a7b5-9daf1d3ced4e.json b/library/imports/cc/cc957ffd-6fe4-4f67-80cb-ebf8a1d5d11d.json
similarity index 67%
rename from library/imports/f6/f6eaa69d-1533-4a6f-a7b5-9daf1d3ced4e.json
rename to library/imports/cc/cc957ffd-6fe4-4f67-80cb-ebf8a1d5d11d.json
index adff274..902a110 100644
--- a/library/imports/f6/f6eaa69d-1533-4a6f-a7b5-9daf1d3ced4e.json
+++ b/library/imports/cc/cc957ffd-6fe4-4f67-80cb-ebf8a1d5d11d.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz6",
- "texture": "08a0b3cf-1219-46ba-8171-206dfe24151b",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 273,
+ 1,
44,
60
],
diff --git a/library/imports/cc/ccfde84e-efcc-439a-8301-54c0bd11a7e8.json b/library/imports/cc/ccfde84e-efcc-439a-8301-54c0bd11a7e8.json
new file mode 100644
index 0000000..e827b51
--- /dev/null
+++ b/library/imports/cc/ccfde84e-efcc-439a-8301-54c0bd11a7e8.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字07_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 638,
+ 1703,
+ 348,
+ 66
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 348,
+ 66
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/cd/cd139bc7-45e1-4ae7-9f45-0df7959c1acf.json b/library/imports/cd/cd139bc7-45e1-4ae7-9f45-0df7959c1acf.json
new file mode 100644
index 0000000..8da10a4
--- /dev/null
+++ b/library/imports/cd/cd139bc7-45e1-4ae7-9f45-0df7959c1acf.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "圆底01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 1276,
+ 516,
+ 516
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 516,
+ 516
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/cf/cf33e06c-01c7-49bb-8894-039f67ee6910.json b/library/imports/cf/cf33e06c-01c7-49bb-8894-039f67ee6910.json
new file mode 100644
index 0000000..0645791
--- /dev/null
+++ b/library/imports/cf/cf33e06c-01c7-49bb-8894-039f67ee6910.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "每日奖励图标",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 307,
+ 199,
+ 215
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 199,
+ 215
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/cf/cf87ab28-5a4f-42bc-948b-89a0f0125078.json b/library/imports/cf/cf87ab28-5a4f-42bc-948b-89a0f0125078.json
new file mode 100644
index 0000000..10d32bf
--- /dev/null
+++ b/library/imports/cf/cf87ab28-5a4f-42bc-948b-89a0f0125078.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "ditu00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 639,
+ 312,
+ 62
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 312,
+ 62
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d0/d0050bfc-d0b9-4848-807e-cbacf0c4a253.json b/library/imports/d0/d0050bfc-d0b9-4848-807e-cbacf0c4a253.json
deleted file mode 100644
index f28de84..0000000
--- a/library/imports/d0/d0050bfc-d0b9-4848-807e-cbacf0c4a253.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "coins2",
- "texture": "5f5f473c-d88a-4bff-bb6b-2a5f6b2208e8",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 163,
- 151
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 163,
- 151
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/d1/d16de6dc-7bca-4d55-9c20-26df6b3cccd3.json b/library/imports/d1/d16de6dc-7bca-4d55-9c20-26df6b3cccd3.json
new file mode 100644
index 0000000..b2e6f23
--- /dev/null
+++ b/library/imports/d1/d16de6dc-7bca-4d55-9c20-26df6b3cccd3.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动tuzi_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1340,
+ 521,
+ 314,
+ 117
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 314,
+ 117
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d2/d229cc47-8fde-407c-8a0a-986e6a7db207.json b/library/imports/d2/d229cc47-8fde-407c-8a0a-986e6a7db207.json
new file mode 100644
index 0000000..e2c2035
--- /dev/null
+++ b/library/imports/d2/d229cc47-8fde-407c-8a0a-986e6a7db207.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "底板00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 0,
+ 1080,
+ 113
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 1080,
+ 113
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d3/d305e34e-3d73-4cdc-9927-d418ca741c4a.json b/library/imports/d3/d305e34e-3d73-4cdc-9927-d418ca741c4a.json
new file mode 100644
index 0000000..dcdcb9a
--- /dev/null
+++ b/library/imports/d3/d305e34e-3d73-4cdc-9927-d418ca741c4a.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "按钮00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 651,
+ 482,
+ 636,
+ 174
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 636,
+ 174
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d3/d39a6aec-5fac-4bd6-a038-21381df5a7c9.json b/library/imports/d3/d39a6aec-5fac-4bd6-a038-21381df5a7c9.json
new file mode 100644
index 0000000..6847750
--- /dev/null
+++ b/library/imports/d3/d39a6aec-5fac-4bd6-a038-21381df5a7c9.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "开按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 72,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d4/d4545a5d-5761-47bb-95c8-9e2bce13ab11.json b/library/imports/d4/d4545a5d-5761-47bb-95c8-9e2bce13ab11.json
new file mode 100644
index 0000000..48dbee3
--- /dev/null
+++ b/library/imports/d4/d4545a5d-5761-47bb-95c8-9e2bce13ab11.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1666,
+ 1457,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d5/d56be779-2bae-49dd-ade4-41a2154e4f83.json b/library/imports/d5/d56be779-2bae-49dd-ade4-41a2154e4f83.json
deleted file mode 100644
index c49a14e..0000000
--- a/library/imports/d5/d56be779-2bae-49dd-ade4-41a2154e4f83.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "闊虫晥00",
- "texture": "ea182daa-7a43-48b5-9a08-f20f71980deb",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 116,
- 122
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 116,
- 122
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/e5/e500caa6-8465-4a14-9eb8-75bc09a5462a.json b/library/imports/d5/d5ac310b-0de6-4b85-9854-eceb6dbf39f5.json
similarity index 67%
rename from library/imports/e5/e500caa6-8465-4a14-9eb8-75bc09a5462a.json
rename to library/imports/d5/d5ac310b-0de6-4b85-9854-eceb6dbf39f5.json
index 20370b4..16aeaa4 100644
--- a/library/imports/e5/e500caa6-8465-4a14-9eb8-75bc09a5462a.json
+++ b/library/imports/d5/d5ac310b-0de6-4b85-9854-eceb6dbf39f5.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz13",
- "texture": "efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 1,
+ 1,
67,
69
],
diff --git a/library/imports/d5/d5e07eb0-5349-45d4-a493-b85eeb3bc068.json b/library/imports/d5/d5e07eb0-5349-45d4-a493-b85eeb3bc068.json
new file mode 100644
index 0000000..f7191a4
--- /dev/null
+++ b/library/imports/d5/d5e07eb0-5349-45d4-a493-b85eeb3bc068.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字03",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 284,
+ 766,
+ 56
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 766,
+ 56
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d6/d64ec358-d205-4605-8d70-4a9b60c4fe31.json b/library/imports/d6/d64ec358-d205-4605-8d70-4a9b60c4fe31.json
new file mode 100644
index 0000000..2b0a46a
--- /dev/null
+++ b/library/imports/d6/d64ec358-d205-4605-8d70-4a9b60c4fe31.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1457,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d7/d74245de-0aee-4038-899e-79522392a77f.json b/library/imports/d7/d74245de-0aee-4038-899e-79522392a77f.json
new file mode 100644
index 0000000..baca6a8
--- /dev/null
+++ b/library/imports/d7/d74245de-0aee-4038-899e-79522392a77f.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子大_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1146,
+ 998,
+ 303,
+ 316
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 303,
+ 316
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.json b/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.png b/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.png
deleted file mode 100644
index fcde9ad..0000000
Binary files a/library/imports/d8/d824166e-71a9-461c-bd7d-2be020ff85b7.png and /dev/null differ
diff --git a/library/imports/d8/d8902812-2210-4ce7-aecf-e93c1aba806d.json b/library/imports/d8/d8902812-2210-4ce7-aecf-e93c1aba806d.json
new file mode 100644
index 0000000..566d48d
--- /dev/null
+++ b/library/imports/d8/d8902812-2210-4ce7-aecf-e93c1aba806d.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字02",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 517,
+ 1276,
+ 283,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 283,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d9/d960b9d5-b68d-4593-8e61-11fbee0ee441.json b/library/imports/d9/d960b9d5-b68d-4593-8e61-11fbee0ee441.json
new file mode 100644
index 0000000..eb207a1
--- /dev/null
+++ b/library/imports/d9/d960b9d5-b68d-4593-8e61-11fbee0ee441.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "震动字_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1591,
+ 1190,
+ 74,
+ 39
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 74,
+ 39
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d9/d9b9110b-81ea-4f4b-9139-ca836f79ddca.json b/library/imports/d9/d9b9110b-81ea-4f4b-9139-ca836f79ddca.json
new file mode 100644
index 0000000..7a2da0d
--- /dev/null
+++ b/library/imports/d9/d9b9110b-81ea-4f4b-9139-ca836f79ddca.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒大",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 950,
+ 1401,
+ 284,
+ 297
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 284,
+ 297
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d9/d9d33bf8-3421-42b0-b44a-53f2ba5b8089.json b/library/imports/d9/d9d33bf8-3421-42b0-b44a-53f2ba5b8089.json
new file mode 100644
index 0000000..7a0a187
--- /dev/null
+++ b/library/imports/d9/d9d33bf8-3421-42b0-b44a-53f2ba5b8089.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "退出按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1676,
+ 155,
+ 144,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 144,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/d9/d9d890d7-401a-4ccd-b8fc-be3439203d65.json b/library/imports/d9/d9d890d7-401a-4ccd-b8fc-be3439203d65.json
new file mode 100644
index 0000000..073cd4a
--- /dev/null
+++ b/library/imports/d9/d9d890d7-401a-4ccd-b8fc-be3439203d65.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐00",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1666,
+ 1340,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/da/da40bc65-a336-4890-94c3-f57f38def65a.json b/library/imports/da/da40bc65-a336-4890-94c3-f57f38def65a.json
new file mode 100644
index 0000000..96d63eb
--- /dev/null
+++ b/library/imports/da/da40bc65-a336-4890-94c3-f57f38def65a.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关按钮",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1374,
+ 177,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/db/db32aa47-4cb5-4999-ac31-ce962b95948d.json b/library/imports/db/db32aa47-4cb5-4999-ac31-ce962b95948d.json
new file mode 100644
index 0000000..8b59c24
--- /dev/null
+++ b/library/imports/db/db32aa47-4cb5-4999-ac31-ce962b95948d.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锁按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1676,
+ 0,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.json b/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/db/dbca32c8-89c2-44f0-b11d-0a03d7f456b5.json b/library/imports/db/dbca32c8-89c2-44f0-b11d-0a03d7f456b5.json
new file mode 100644
index 0000000..55292c8
--- /dev/null
+++ b/library/imports/db/dbca32c8-89c2-44f0-b11d-0a03d7f456b5.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "头像底图_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 307,
+ 188,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 188,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/dd/dd4fe9fa-a953-4faa-add4-50734e0496e3.json b/library/imports/dd/dd4fe9fa-a953-4faa-add4-50734e0496e3.json
new file mode 100644
index 0000000..8918034
--- /dev/null
+++ b/library/imports/dd/dd4fe9fa-a953-4faa-add4-50734e0496e3.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "带锁_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 496,
+ 154,
+ 172
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 172
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.jpg b/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.jpg
new file mode 100644
index 0000000..d8ef00f
Binary files /dev/null and b/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.jpg differ
diff --git a/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.json b/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.json
new file mode 100644
index 0000000..9ddba82
--- /dev/null
+++ b/library/imports/de/de563d8c-eee2-42f8-bbbb-47b6149eed20.json
@@ -0,0 +1,4 @@
+{
+ "__type__": "cc.Texture2D",
+ "content": "1,9729,9729,33071,33071,0,0,1"
+}
\ No newline at end of file
diff --git a/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json b/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.png b/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.png
deleted file mode 100644
index 6b42937..0000000
Binary files a/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.png and /dev/null differ
diff --git a/library/imports/e0/e0440b96-7c7b-482b-8694-231ffe70bdfd.json b/library/imports/e0/e0440b96-7c7b-482b-8694-231ffe70bdfd.json
new file mode 100644
index 0000000..1bff232
--- /dev/null
+++ b/library/imports/e0/e0440b96-7c7b-482b-8694-231ffe70bdfd.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟大",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 1302,
+ 240,
+ 291
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 240,
+ 291
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.json b/library/imports/e0/e05177b7-0b07-4cd3-8573-0cd2432f6181.json
similarity index 100%
rename from library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.json
rename to library/imports/e0/e05177b7-0b07-4cd3-8573-0cd2432f6181.json
diff --git a/library/imports/e0/e05177b7-0b07-4cd3-8573-0cd2432f6181.png b/library/imports/e0/e05177b7-0b07-4cd3-8573-0cd2432f6181.png
new file mode 100644
index 0000000..ad03e1a
Binary files /dev/null and b/library/imports/e0/e05177b7-0b07-4cd3-8573-0cd2432f6181.png differ
diff --git a/library/imports/e3/e3c8057d-feeb-4082-9e5d-3dd19199d230.json b/library/imports/e3/e3c8057d-feeb-4082-9e5d-3dd19199d230.json
new file mode 100644
index 0000000..15f42fa
--- /dev/null
+++ b/library/imports/e3/e3c8057d-feeb-4082-9e5d-3dd19199d230.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 971,
+ 1343,
+ 363,
+ 57
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 363,
+ 57
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e5/e54e9ac3-4cdc-4afa-bcc5-3e76a71de364.json b/library/imports/e5/e54e9ac3-4cdc-4afa-bcc5-3e76a71de364.json
new file mode 100644
index 0000000..1c99791
--- /dev/null
+++ b/library/imports/e5/e54e9ac3-4cdc-4afa-bcc5-3e76a71de364.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "小钟图标_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1659,
+ 1688,
+ 79,
+ 100
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 79,
+ 100
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e6/e63a7d56-7503-4e82-99c0-76ef51164b8d.json b/library/imports/e6/e63a7d56-7503-4e82-99c0-76ef51164b8d.json
new file mode 100644
index 0000000..ddb3b6f
--- /dev/null
+++ b/library/imports/e6/e63a7d56-7503-4e82-99c0-76ef51164b8d.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟小",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1463,
+ 1190,
+ 106,
+ 127
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 106,
+ 127
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e6/e6f3c660-cfa7-4368-b36d-609458c5678b.json b/library/imports/e6/e6f3c660-cfa7-4368-b36d-609458c5678b.json
deleted file mode 100644
index 4026ad8..0000000
--- a/library/imports/e6/e6f3c660-cfa7-4368-b36d-609458c5678b.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__type__": "cc.SpriteFrame",
- "content": {
- "name": "闊充箰01",
- "texture": "f5f584ca-c27f-40a2-96e6-6bc312eb3c21",
- "atlas": "",
- "rect": [
- 0,
- 0,
- 116,
- 122
- ],
- "offset": [
- 0,
- 0
- ],
- "originalSize": [
- 116,
- 122
- ],
- "capInsets": [
- 0,
- 0,
- 0,
- 0
- ]
- }
-}
\ No newline at end of file
diff --git a/library/imports/e7/e7a8382c-c44b-4866-947e-b066a6076bcb.json b/library/imports/e7/e7a8382c-c44b-4866-947e-b066a6076bcb.json
new file mode 100644
index 0000000..7a112e1
--- /dev/null
+++ b/library/imports/e7/e7a8382c-c44b-4866-947e-b066a6076bcb.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒大",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 950,
+ 1401,
+ 284,
+ 297
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 284,
+ 297
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e8/e82b5210-67e9-4105-b39e-e2105422b9a3.json b/library/imports/e8/e82b5210-67e9-4105-b39e-e2105422b9a3.json
new file mode 100644
index 0000000..c9950f9
--- /dev/null
+++ b/library/imports/e8/e82b5210-67e9-4105-b39e-e2105422b9a3.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "冰冻时钟小_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1463,
+ 1190,
+ 106,
+ 127
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 106,
+ 127
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e8/e895de15-b238-409a-b822-dd1e1eafc35f.json b/library/imports/e8/e895de15-b238-409a-b822-dd1e1eafc35f.json
new file mode 100644
index 0000000..83c96dd
--- /dev/null
+++ b/library/imports/e8/e895de15-b238-409a-b822-dd1e1eafc35f.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "暂停字",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1590,
+ 307,
+ 150,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 150,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json b/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/e9/e9f7146c-7094-4f89-95d4-6224e84575ad.json b/library/imports/e9/e9f7146c-7094-4f89-95d4-6224e84575ad.json
new file mode 100644
index 0000000..59a606d
--- /dev/null
+++ b/library/imports/e9/e9f7146c-7094-4f89-95d4-6224e84575ad.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字01",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 971,
+ 1343,
+ 363,
+ 57
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 363,
+ 57
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.json b/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.png b/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.png
deleted file mode 100644
index 52f4ae8..0000000
Binary files a/library/imports/ea/ea09c71c-5b5d-4b24-9b62-d93b291d93c2.png and /dev/null differ
diff --git a/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json b/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.png b/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.png
deleted file mode 100644
index ae57f5d..0000000
Binary files a/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.png and /dev/null differ
diff --git a/library/imports/ea/ea2f7320-1e7c-42a9-a5ad-5a2652ce6202.json b/library/imports/ea/ea2f7320-1e7c-42a9-a5ad-5a2652ce6202.json
new file mode 100644
index 0000000..9cb1e84
--- /dev/null
+++ b/library/imports/ea/ea2f7320-1e7c-42a9-a5ad-5a2652ce6202.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关卡数字01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 517,
+ 1356,
+ 419,
+ 54
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 419,
+ 54
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ea/eae6e5e0-a6c7-460c-8976-dee23d9c91e1.json b/library/imports/ea/eae6e5e0-a6c7-460c-8976-dee23d9c91e1.json
new file mode 100644
index 0000000..463203e
--- /dev/null
+++ b/library/imports/ea/eae6e5e0-a6c7-460c-8976-dee23d9c91e1.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字02_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 517,
+ 1276,
+ 283,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 283,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/eb/eb08a13e-140f-424d-b1e9-4331e08f4db1.json b/library/imports/eb/eb08a13e-140f-424d-b1e9-4331e08f4db1.json
new file mode 100644
index 0000000..8bfa370
--- /dev/null
+++ b/library/imports/eb/eb08a13e-140f-424d-b1e9-4331e08f4db1.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字00",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 572,
+ 1356,
+ 412,
+ 65
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 412,
+ 65
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/eb/eb20f0ab-6210-4122-9ac7-5f15da67d5b0.json b/library/imports/eb/eb20f0ab-6210-4122-9ac7-5f15da67d5b0.json
new file mode 100644
index 0000000..482221c
--- /dev/null
+++ b/library/imports/eb/eb20f0ab-6210-4122-9ac7-5f15da67d5b0.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "关卡数字01_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 517,
+ 1356,
+ 419,
+ 54
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 419,
+ 54
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/eb/ebf6c070-e0ec-4318-a816-9eff6bf88809.json b/library/imports/eb/ebf6c070-e0ec-4318-a816-9eff6bf88809.json
new file mode 100644
index 0000000..d43bcbc
--- /dev/null
+++ b/library/imports/eb/ebf6c070-e0ec-4318-a816-9eff6bf88809.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "锤子小_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 693,
+ 341,
+ 124,
+ 129
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 124,
+ 129
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ec/ec89a40c-c092-4e92-b898-c8a9048b7b0e.json b/library/imports/ec/ec89a40c-c092-4e92-b898-c8a9048b7b0e.json
new file mode 100644
index 0000000..c7a020d
--- /dev/null
+++ b/library/imports/ec/ec89a40c-c092-4e92-b898-c8a9048b7b0e.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效00_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1057,
+ 739,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ec/ecc6a80f-3415-456c-81ea-df56a2b63168.json b/library/imports/ec/ecc6a80f-3415-456c-81ea-df56a2b63168.json
new file mode 100644
index 0000000..c3a8e96
--- /dev/null
+++ b/library/imports/ec/ecc6a80f-3415-456c-81ea-df56a2b63168.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1591,
+ 1230,
+ 73,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 73,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ec/ece749fa-630b-4bc7-a427-ad987bea3fb6.json b/library/imports/ec/ece749fa-630b-4bc7-a427-ad987bea3fb6.json
new file mode 100644
index 0000000..62913f0
--- /dev/null
+++ b/library/imports/ec/ece749fa-630b-4bc7-a427-ad987bea3fb6.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字小_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 971,
+ 1302,
+ 368,
+ 40
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 368,
+ 40
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ed/ed740af5-aeab-4eb7-befa-90375429d98f.json b/library/imports/ed/ed740af5-aeab-4eb7-befa-90375429d98f.json
new file mode 100644
index 0000000..28e3892
--- /dev/null
+++ b/library/imports/ed/ed740af5-aeab-4eb7-befa-90375429d98f.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "已满字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1791,
+ 1145,
+ 72,
+ 36
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 36
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ed/ed84bd52-af96-476e-b8a7-b36e08b3b777.json b/library/imports/ed/ed84bd52-af96-476e-b8a7-b36e08b3b777.json
new file mode 100644
index 0000000..b9ae013
--- /dev/null
+++ b/library/imports/ed/ed84bd52-af96-476e-b8a7-b36e08b3b777.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字07_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 638,
+ 1703,
+ 348,
+ 66
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 348,
+ 66
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ed/ed8cfedc-0d93-41ad-96c3-52e5d0ae6008.json b/library/imports/ed/ed8cfedc-0d93-41ad-96c3-52e5d0ae6008.json
new file mode 100644
index 0000000..6cfa57b
--- /dev/null
+++ b/library/imports/ed/ed8cfedc-0d93-41ad-96c3-52e5d0ae6008.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "弹出框关闭按钮_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1789,
+ 1306,
+ 65,
+ 64
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 65,
+ 64
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/b0/b024605a-48a6-437b-aa90-9daca75bc6d0.json b/library/imports/ed/eda6def7-3f41-4e71-b328-27b858a8f167.json
similarity index 67%
rename from library/imports/b0/b024605a-48a6-437b-aa90-9daca75bc6d0.json
rename to library/imports/ed/eda6def7-3f41-4e71-b328-27b858a8f167.json
index ecf9a24..019c76f 100644
--- a/library/imports/b0/b024605a-48a6-437b-aa90-9daca75bc6d0.json
+++ b/library/imports/ed/eda6def7-3f41-4e71-b328-27b858a8f167.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "cost_0",
- "texture": "12c63ed2-bf61-4b5b-8d37-781d02f4386c",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 348,
+ 1,
30,
38
],
diff --git a/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json b/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/ef/efcff880-3b08-4582-a534-8b07046a3c11.json b/library/imports/ef/efcff880-3b08-4582-a534-8b07046a3c11.json
new file mode 100644
index 0000000..cd6eee2
--- /dev/null
+++ b/library/imports/ef/efcff880-3b08-4582-a534-8b07046a3c11.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "园底上发光_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 0,
+ 482,
+ 650,
+ 638
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 650,
+ 638
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f0/f04ef342-a164-45cd-9518-bc29549d3ec6.json b/library/imports/f0/f04ef342-a164-45cd-9518-bc29549d3ec6.json
new file mode 100644
index 0000000..500725e
--- /dev/null
+++ b/library/imports/f0/f04ef342-a164-45cd-9518-bc29549d3ec6.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "继续按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1175,
+ 521,
+ 476,
+ 164
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 476,
+ 164
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f0/f071c7d7-0c90-4153-95fc-ac0b14403538.json b/library/imports/f0/f071c7d7-0c90-4153-95fc-ac0b14403538.json
new file mode 100644
index 0000000..cd21a68
--- /dev/null
+++ b/library/imports/f0/f071c7d7-0c90-4153-95fc-ac0b14403538.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "心图标01",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 638,
+ 1356,
+ 340,
+ 276
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 340,
+ 276
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json b/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.json b/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/f2/f2ba433f-c9a0-4fdf-aec0-554824ad093a.json b/library/imports/f2/f2ba433f-c9a0-4fdf-aec0-554824ad093a.json
new file mode 100644
index 0000000..adb1531
--- /dev/null
+++ b/library/imports/f2/f2ba433f-c9a0-4fdf-aec0-554824ad093a.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "放弃按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 826,
+ 921,
+ 434,
+ 144
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 434,
+ 144
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f3/f37d06c1-f7b0-4795-baa7-178fde594ebb.json b/library/imports/f3/f37d06c1-f7b0-4795-baa7-178fde594ebb.json
new file mode 100644
index 0000000..0885cda
--- /dev/null
+++ b/library/imports/f3/f37d06c1-f7b0-4795-baa7-178fde594ebb.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "进入关卡按钮",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1175,
+ 0,
+ 520,
+ 198
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 520,
+ 198
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json b/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.png b/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.png
deleted file mode 100644
index 3a96861..0000000
Binary files a/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.png and /dev/null differ
diff --git a/library/imports/9e/9e677504-e0a3-481d-9b9f-c02de8347b7e.json b/library/imports/f7/f7cd0a40-56e7-4d44-ae0f-c0b8336cd9a0.json
similarity index 67%
rename from library/imports/9e/9e677504-e0a3-481d-9b9f-c02de8347b7e.json
rename to library/imports/f7/f7cd0a40-56e7-4d44-ae0f-c0b8336cd9a0.json
index 11ac13d..5ad1ee9 100644
--- a/library/imports/9e/9e677504-e0a3-481d-9b9f-c02de8347b7e.json
+++ b/library/imports/f7/f7cd0a40-56e7-4d44-ae0f-c0b8336cd9a0.json
@@ -2,11 +2,11 @@
"__type__": "cc.SpriteFrame",
"content": {
"name": "coins_sz0",
- "texture": "0734a70a-118d-4d9d-9a9f-9a61c11641d2",
- "atlas": "",
+ "texture": "1b0e3a45-c168-4de9-b34e-9f9fa9d30fef",
+ "atlas": "569f5a4d-beff-465f-be16-fc3bcf467850",
"rect": [
- 0,
- 0,
+ 72,
+ 68,
47,
49
],
diff --git a/library/imports/f8/f8251620-36d0-4ee4-9be1-5ddd3ffe5e7e.json b/library/imports/f8/f8251620-36d0-4ee4-9be1-5ddd3ffe5e7e.json
new file mode 100644
index 0000000..ca35d18
--- /dev/null
+++ b/library/imports/f8/f8251620-36d0-4ee4-9be1-5ddd3ffe5e7e.json
@@ -0,0 +1,29 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音效01_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1668,
+ 1106,
+ 116,
+ 122
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 116,
+ 122
+ ],
+ "rotated": 1,
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.json b/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.png b/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.png
deleted file mode 100644
index ad7a995..0000000
Binary files a/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.png and /dev/null differ
diff --git a/library/imports/fa/faa786a0-c837-4c24-8fcb-fd92090b7b5b.json b/library/imports/fa/faa786a0-c837-4c24-8fcb-fd92090b7b5b.json
new file mode 100644
index 0000000..e1b3985
--- /dev/null
+++ b/library/imports/fa/faa786a0-c837-4c24-8fcb-fd92090b7b5b.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "数字小",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 971,
+ 1302,
+ 368,
+ 40
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 368,
+ 40
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/fb/fb464ead-bb30-4e08-83e0-8e689a06a849.json b/library/imports/fb/fb464ead-bb30-4e08-83e0-8e689a06a849.json
new file mode 100644
index 0000000..fc18ba1
--- /dev/null
+++ b/library/imports/fb/fb464ead-bb30-4e08-83e0-8e689a06a849.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "字08_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 0,
+ 341,
+ 692,
+ 140
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 692,
+ 140
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json b/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json
deleted file mode 100644
index e7522d6..0000000
--- a/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "__type__": "cc.Texture2D",
- "content": "0,9729,9729,33071,33071,0,0,1"
-}
\ No newline at end of file
diff --git a/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.png b/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.png
deleted file mode 100644
index 728b78e..0000000
Binary files a/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.png and /dev/null differ
diff --git a/library/imports/fd/fd34d22f-84fa-4234-80ce-87baaf7fcf18.json b/library/imports/fd/fd34d22f-84fa-4234-80ce-87baaf7fcf18.json
new file mode 100644
index 0000000..50cc980
--- /dev/null
+++ b/library/imports/fd/fd34d22f-84fa-4234-80ce-87baaf7fcf18.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "排行榜图标_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1463,
+ 993,
+ 154,
+ 173
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 154,
+ 173
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/fd/fd3fe304-5907-4cc0-9eb5-e0c3032479f5.json b/library/imports/fd/fd3fe304-5907-4cc0-9eb5-e0c3032479f5.json
new file mode 100644
index 0000000..ccd59f2
--- /dev/null
+++ b/library/imports/fd/fd3fe304-5907-4cc0-9eb5-e0c3032479f5.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "五星棒大_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 950,
+ 1401,
+ 284,
+ 297
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 284,
+ 297
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/fe/fe46a9e9-ce92-428e-b6b1-080831ec5270.json b/library/imports/fe/fe46a9e9-ce92-428e-b6b1-080831ec5270.json
new file mode 100644
index 0000000..2f0efa2
--- /dev/null
+++ b/library/imports/fe/fe46a9e9-ce92-428e-b6b1-080831ec5270.json
@@ -0,0 +1,28 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "开按钮_1",
+ "texture": "e05177b7-0b07-4cd3-8573-0cd2432f6181",
+ "atlas": "373b1886-4974-4bc1-97c8-1a87410cf7fe",
+ "rect": [
+ 1374,
+ 72,
+ 264,
+ 104
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 264,
+ 104
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/imports/ff/ffedc654-f966-41f1-9b06-1adde965784e.json b/library/imports/ff/ffedc654-f966-41f1-9b06-1adde965784e.json
new file mode 100644
index 0000000..084d180
--- /dev/null
+++ b/library/imports/ff/ffedc654-f966-41f1-9b06-1adde965784e.json
@@ -0,0 +1,27 @@
+{
+ "__type__": "cc.SpriteFrame",
+ "content": {
+ "name": "音乐字_1",
+ "atlas": "b5630b1e-0e45-4b38-a5c4-76b2fa8fad52",
+ "rect": [
+ 1791,
+ 1106,
+ 72,
+ 38
+ ],
+ "offset": [
+ 0,
+ 0
+ ],
+ "originalSize": [
+ 72,
+ 38
+ ],
+ "capInsets": [
+ 0,
+ 0,
+ 0,
+ 0
+ ]
+ }
+}
\ No newline at end of file
diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json
index 55702a4..9a8eda0 100644
--- a/library/uuid-to-mtime.json
+++ b/library/uuid-to-mtime.json
@@ -5,13 +5,13 @@
"relativePath": "migration"
},
"29f52784-2fca-467b-92e7-8fd9ef8c57b7": {
- "asset": 1751270412038,
- "meta": 1751270454721,
+ "asset": 1751337146425,
+ "meta": 1751337168057,
"relativePath": "Scene"
},
"4734c20c-0db8-4eb2-92ea-e692f4d70934": {
- "asset": 1751273105659,
- "meta": 1751277032087,
+ "asset": 1751337146426,
+ "meta": 1751337168058,
"relativePath": "Script"
},
"7a231473-d1df-4b05-8620-6376c36252c1": {
@@ -26,7 +26,7 @@
},
"6ebfe2d9-539a-4853-8b16-fca5c89cf2ce": {
"asset": 1751270412222,
- "meta": 1751270454721,
+ "meta": 1751337168056,
"relativePath": "music"
},
"bf3935ca-518a-42f4-84e4-ad96badfd1b4": {
@@ -60,13 +60,13 @@
"relativePath": "Script\\module\\Crypto"
},
"b4e113c6-a987-4133-bfa0-3355d8ab4bd1": {
- "asset": 1751270412066,
- "meta": 1751270456824,
+ "asset": 1751337146427,
+ "meta": 1751337168267,
"relativePath": "Script\\module\\GameStart"
},
"0487cacb-b94a-4ab6-a301-b6402ab0ac5d": {
- "asset": 1751270412067,
- "meta": 1751270456825,
+ "asset": 1751337146427,
+ "meta": 1751337168269,
"relativePath": "Script\\module\\Music"
},
"ff6560d9-676d-42ad-8ec7-e44acb84ad9e": {
@@ -145,13 +145,13 @@
"relativePath": "Script\\RankManager.ts"
},
"9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d": {
- "asset": 1751270412038,
- "meta": 1751270455128,
- "relativePath": "Scene\\LoadScene.fire"
+ "asset": 1751337146428,
+ "meta": 1751337168475,
+ "relativePath": "StartScene\\LoadScene.fire"
},
"93c9bdf3-8205-46e5-a8f1-3576b0dbc836": {
- "asset": 1751270412052,
- "meta": 1751270455785,
+ "asset": 1751337146426,
+ "meta": 1751337168265,
"relativePath": "Script\\Sdk"
},
"ca0f9934-a015-436e-9402-f8e30d4c5de6": {
@@ -656,7 +656,7 @@
},
"cb1d6907-6e2b-4c96-ae04-20f4be8eca78": {
"asset": 1751270412124,
- "meta": 1751270454726,
+ "meta": 1751337168061,
"relativePath": "UI"
},
"a5a1fd16-fffe-4e74-8bf9-7fd966fce8b7": {
@@ -680,8 +680,8 @@
"relativePath": "music\\xiaochu.mp3"
},
"61d4c718-db3b-4b31-8221-f16bea3cf030": {
- "asset": 1751270412066,
- "meta": 1751270457990,
+ "asset": 1751337146427,
+ "meta": 1751337168632,
"relativePath": "Script\\module\\GameStart\\GameAppStart.ts"
},
"825f4992-deeb-4f19-8c4e-9a65b191753b": {
@@ -981,12 +981,12 @@
},
"41916418-405c-4025-8e60-c3fdb4a83154": {
"asset": 1751270412091,
- "meta": 1751270454726,
+ "meta": 1751337168060,
"relativePath": "TextureBlock"
},
"6713016b-5658-4a59-ac4a-ce9d84f47b8d": {
- "asset": 1751270412123,
- "meta": 1751270455832,
+ "asset": 1751337146266,
+ "meta": 1751337168266,
"relativePath": "TextureBlock\\block"
},
"8f9cd656-30c2-4d3f-88dd-ef00d02b3f3e": {
@@ -2154,11 +2154,6 @@
"meta": 1751270454843,
"relativePath": "libs\\ThinkingAnalyticsSDK.d.ts"
},
- "19659ed7-1823-42a9-b8e8-1884c19df817": {
- "asset": 1751270412038,
- "meta": 1751270455142,
- "relativePath": "Scene\\New Scene.fire"
- },
"84e11f32-3c7c-4f05-8a5d-1777127f6370": {
"asset": 1751270412163,
"meta": 1751270455846,
@@ -2735,8 +2730,8 @@
"relativePath": "TextureBg"
},
"89c216a8-80c9-4e97-a06f-864e5640fcc8": {
- "asset": 1751270412090,
- "meta": 1751270455831,
+ "asset": 1751337146430,
+ "meta": 1751337168266,
"relativePath": "TextureBg\\pop_Bg"
},
"22bce3a4-1d59-4e46-a06c-530039f813b8": {
@@ -2750,8 +2745,8 @@
"relativePath": "TextureBg\\pop_Bg\\pauseBg.png"
},
"669a5a6c-68ca-412c-9321-a0af32085234": {
- "asset": 1751270412085,
- "meta": 1751270457477,
+ "asset": 1751337146430,
+ "meta": 1751337168748,
"relativePath": "TextureBg\\pop_Bg\\result_bg2.png"
},
"cf67e4b5-6705-4eb0-809f-69efa4a5883e": {
@@ -3150,8 +3145,8 @@
"relativePath": "Script\\Pause.ts"
},
"58403fe7-d7a2-426b-9b19-84d3236731a8": {
- "asset": 1751270412067,
- "meta": 1751270458016,
+ "asset": 1751337146427,
+ "meta": 1751337168662,
"relativePath": "Script\\module\\Music\\AudioManager.ts"
},
"c5692be7-8703-45e4-9f67-23b54d290356": {
@@ -3214,11 +3209,6 @@
"meta": 1751270456307,
"relativePath": "resources\\Json\\level127.json"
},
- "c1af99dd-ee03-40f7-9609-d3887d0dd357": {
- "asset": 1751270412052,
- "meta": 1751270457038,
- "relativePath": "Script\\Sdk\\MiniGameSdk.ts"
- },
"87a449b9-7ffa-4f00-a22b-b3202b4abfd5": {
"asset": 1751270412052,
"meta": 1751270455816,
@@ -3251,12 +3241,12 @@
},
"28d9b746-520c-4ddc-95f8-401692d28ffc": {
"asset": 1751270412490,
- "meta": 1751270454721,
+ "meta": 1751337168059,
"relativePath": "shop"
},
"e4b11ec6-5712-4dba-ba33-eb23129e396a": {
- "asset": 1751279307687,
- "meta": 1751279358281,
+ "asset": 1751337167714,
+ "meta": 1751337168265,
"relativePath": "shop\\img"
},
"ac030bb2-163b-4609-8553-0d6e7e662d03": {
@@ -3275,13 +3265,13 @@
"relativePath": "prefab\\map\\wall.prefab"
},
"66281f32-0047-4af8-8237-90c93fc4b0e8": {
- "asset": 1751284005345,
- "meta": 1751284005353,
+ "asset": 1751341549563,
+ "meta": 1751341549572,
"relativePath": "Scene\\HomeScene.fire"
},
"4eaf518b-35ec-4262-928d-4d497c3f2830": {
- "asset": 1751336325505,
- "meta": 1751336325511,
+ "asset": 1751342205304,
+ "meta": 1751342205326,
"relativePath": "Scene\\GameScene.fire"
},
"50c01dd8-431f-43cc-820e-abb2a859d031": {
@@ -3314,24 +3304,19 @@
"meta": 1751270457278,
"relativePath": "shop\\script\\shop.ts"
},
- "9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb": {
- "asset": 1751270412091,
- "meta": 1751270457301,
- "relativePath": "TextureBlock\\block\\AutoAtlas.pac"
- },
"c31c74ba-a2b0-4b6f-ac21-5c87b44aea4a": {
- "asset": 1751278466064,
- "meta": 1751279358281,
+ "asset": 1751337116464,
+ "meta": 1751337168610,
"relativePath": "UI\\UI\\set"
},
"b01ef5c5-2755-455d-acb4-ba3818f5e331": {
- "asset": 1751279316360,
- "meta": 1751279316366,
+ "asset": 1751340757853,
+ "meta": 1751340757866,
"relativePath": "shop\\prefab\\shop.prefab"
},
"a81d74d9-943b-4d0e-aad5-2999276d3447": {
- "asset": 1751279087714,
- "meta": 1751279087718,
+ "asset": 1751339931732,
+ "meta": 1751339931744,
"relativePath": "shop\\prefab\\item.prefab"
},
"4466b8d6-b468-4cb5-bc57-7a2bd3df12e4": {
@@ -3340,20 +3325,10 @@
"relativePath": "shop\\prefab\\Tops.prefab"
},
"6971355d-0542-42f6-96ec-4244dbcc5897": {
- "asset": 1751270412481,
- "meta": 1751270457434,
+ "asset": 1751337146442,
+ "meta": 1751337168714,
"relativePath": "shop\\img\\texture_atlas-1.png"
},
- "abd65429-c263-4d3a-84f3-1c26b1433094": {
- "asset": 1751270412472,
- "meta": 1751270457344,
- "relativePath": "shop\\img\\shop_2.jpg"
- },
- "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": {
- "asset": 1751270412045,
- "meta": 1751270455618,
- "relativePath": "Script\\Map.ts"
- },
"3d019ed8-3019-436d-add0-ceeb02a5baaf": {
"asset": 1751270412115,
"meta": 1751270458928,
@@ -3365,8 +3340,8 @@
"relativePath": "TextureBlock\\block\\down.png"
},
"df248952-2e59-4e66-9087-c06a90e587b7": {
- "asset": 1751270412041,
- "meta": 1751270455302,
+ "asset": 1751337146426,
+ "meta": 1751337168264,
"relativePath": "Script\\GameManager.ts"
},
"2ef5a7c6-04f5-418a-85b6-bf39220cd512": {
@@ -3414,11 +3389,6 @@
"meta": 1751278351573,
"relativePath": "UI\\UI\\案例.jpg"
},
- "1742fc3d-1b8c-4003-9979-8f29dadd7520": {
- "asset": 1750303030000,
- "meta": 1751279307750,
- "relativePath": "shop\\img\\shop_1.png"
- },
"809984f5-0183-4d45-9751-c6c56f5d1eb9": {
"asset": 1751279545655,
"meta": 1751279617513,
@@ -3438,5 +3408,30 @@
"asset": 1751253896000,
"meta": 1751282894386,
"relativePath": "UI\\UI\\set\\commonUi-0.plist"
+ },
+ "31150528-f369-46ce-a3aa-51b431eeaa39": {
+ "asset": 1751337146428,
+ "meta": 1751337168060,
+ "relativePath": "StartScene"
+ },
+ "39980b3f-ffc1-450f-90bc-4861aa8c81fb": {
+ "asset": 1750303022000,
+ "meta": 1751338999581,
+ "relativePath": "shop\\img\\shop_2.jpg"
+ },
+ "0fb4aec7-ce6d-40d7-949d-563c8710f75c": {
+ "asset": 1750303030000,
+ "meta": 1751340481812,
+ "relativePath": "shop\\img\\shop_1.png"
+ },
+ "c1af99dd-ee03-40f7-9609-d3887d0dd357": {
+ "asset": 1751340686102,
+ "meta": 1751340688934,
+ "relativePath": "Script\\Sdk\\MiniGameSdk.ts"
+ },
+ "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": {
+ "asset": 1751342200791,
+ "meta": 1751342202723,
+ "relativePath": "Script\\Map.ts"
}
}
\ No newline at end of file
diff --git a/local/layout.editor.json b/local/layout.editor.json
index 10b6733..74d9d0e 100644
--- a/local/layout.editor.json
+++ b/local/layout.editor.json
@@ -13,13 +13,13 @@
"type": "dock-h",
"children": [
{
- "width": 207,
+ "width": 313,
"height": 568.5,
"type": "dock-v",
"children": [
{
- "width": 207,
- "height": 339.4895935058594,
+ "width": 313,
+ "height": 226,
"type": "panel",
"active": 0,
"children": [
@@ -27,8 +27,8 @@
]
},
{
- "width": 207,
- "height": 226,
+ "width": 313,
+ "height": 339.4895935058594,
"type": "panel",
"active": 0,
"children": [
@@ -38,7 +38,7 @@
]
},
{
- "width": 759.9896240234375,
+ "width": 654,
"height": 568.5,
"type": "panel",
"active": 0,
@@ -65,8 +65,7 @@
"inspector",
"cocos-services"
]
- },
- " common-asset-worker-worker": {}
+ }
},
"panels": {
"builder": {
@@ -82,10 +81,10 @@
"height": 688
},
"console": {
- "x": 6,
- "y": 50,
- "width": 1292,
- "height": 700
+ "x": -277,
+ "y": 130,
+ "width": 1313,
+ "height": 681
},
"store": {
"x": -8,
diff --git a/local/local.json b/local/local.json
index 829501a..65559e4 100644
--- a/local/local.json
+++ b/local/local.json
@@ -1,9 +1,6 @@
{
- "last-edit": "66281f32-0047-4af8-8237-90c93fc4b0e8",
+ "last-edit": "4eaf518b-35ec-4262-928d-4d497c3f2830",
"recent-items": [
- "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d",
- "4eaf518b-35ec-4262-928d-4d497c3f2830",
- "66281f32-0047-4af8-8237-90c93fc4b0e8",
"5ed13d95-5b93-4407-b770-0dedeb674b0f",
"bf502854-8e31-40c1-9d27-ac480682b4c4",
"92dfa35c-14f5-48b7-8f57-583c7a23d434",
@@ -37,6 +34,11 @@
"f0da65e3-27d4-43c7-9945-ace5c5d815e5",
"1024689e-c2b8-4ef4-91de-02732703334f",
"fc41ae6e-8743-4057-86fa-bff2f8ff171b",
- "b01ef5c5-2755-455d-acb4-ba3818f5e331"
+ "4466b8d6-b468-4cb5-bc57-7a2bd3df12e4",
+ "a81d74d9-943b-4d0e-aad5-2999276d3447",
+ "b01ef5c5-2755-455d-acb4-ba3818f5e331",
+ "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d",
+ "66281f32-0047-4af8-8237-90c93fc4b0e8",
+ "4eaf518b-35ec-4262-928d-4d497c3f2830"
]
}
diff --git a/local/node-tree-state.json b/local/node-tree-state.json
index 117d7fd..c386663 100644
--- a/local/node-tree-state.json
+++ b/local/node-tree-state.json
@@ -1,130 +1,5 @@
{
"nodeFoldStates": [
- "597YMPt2ZLdp8UXicPiUux",
- "1fM9vyxOpMQIeyNsBTXuNa",
- "a8Ew7LWbNFL67xjq5GCb07",
- "9biB1k5OhEC4EWsmMYSKn0",
- "a0A2fWKRFOY5yQ796vJAYO",
- "69rE4sopVBKq9+4eMoWdwy",
- "f1oZbTTdhBnI0mf0v0D8lC",
- "93VkXHHxtAT7g9YOnOhwxu",
- "83tQxT7HlFU6V7HXl/fu0g",
- "60Jp5BDW1Fm5Qawr10gciK",
- "c7MvtP+3BCpL4PDWPsL2d5",
- "0frZY/okBD7ZsqKNhkkXX3",
- "41ovg6xMhJpY6a/xoSwzYz",
- "44blZFeNdFYaDafI+ABKyL",
- "67LZTVWmpEAYT6hpcfFqx4",
- "28MvyCkA9GoZl9kC86L54s",
- "95KpauO5RKf6itn6hQ6W37",
- "cd6ib0u8FGW7u9wBH0kry4",
- "a7H2MNPHBE+4SE76BcNHlE",
- "ae0zuE9ttE+YXu4FPM/+JF",
- "9aiLis/B9I5J7mLjE59vSm",
- "d5HOODejlKYKoYqTMXIyzt",
- "adxrHvq8NBr7H481T0Qo+5",
- "6fIvgKsc9PyJC7jltmQ8xH",
- "4aS4RlOIhO4o1vXnL7s5fa",
- "6bp7JENwtHDJY2wxhCwrxr",
- "63ar3lvjBFo7UAtFeHX9zx",
- "95H1f352lCxZTja/82XLFu",
- "db/aw2UnJEW69Dgi8x9Qp3",
- "27vmb3mglKpJHP+kElVLnD",
- "f3ClAVSr5GYYOMJdgDmxb+",
- "b4OBeUaPFJuJtgkT/MfDcn",
- "4bw5d44shJ9JHsbRVYavAk",
- "151h6WI4VGXYcI8YkuIH6o",
- "falhTbf7ZHyZr472UN5eew",
- "b10DhfEJVC17oCWRwjjUpn",
- "57Ak8Q+udIobWh6z28Uk9+",
- "dca03kiN1GxaphkduVjMGK",
- "5cHzl/JjhPaanJAQzHS+rV",
- "052mW4Q45AMJ8hExD0IJuS",
- "41nwG8YW1Epo+SbJpLWjem",
- "5dtMDd6GtB6ImV16x7Br4B",
- "9cF+JCXxFMc6sH7/xhxbyw",
- "e4sLLnYEhPfrF0C8rJLlgi",
- "2a3CD765NFZYWal4Y/BcYP",
- "9bb1GV0QpFao4Pb23HcdOR",
- "c6z/FnqftAtKR4zVua5EgI",
- "fdZTcutXtPKIcSYED5hYFz",
- "d9G+owqZhMzoaTnvJqyzaH",
- "ea7nZTxftOv7p2pmYUDkwt",
- "77AFCk8wZK1qvLTK8kftHA",
- "54REd6AC1Pfo+H7BAydmrP",
- "59uerU8+dPprzM8f3fZ1Lr",
- "abJ0ctF51JFbNDrB//HEpN",
- "35crDMBTVM/YTThqylKUFD",
- "bdoXa9Q1BAEpNqy91YgvPf",
- "70Xq2w/ONKLZ8AIQDjC0d/",
- "5cz9y3TM5M9rVa+34a7s1m",
- "22OLo/ZxhEqJX202NQfDGg",
- "d2rQc3BPFHi6M3DQMafkMI",
- "58LIy/oEJGbozmnmpcK87l",
- "f1NVtPKi9CWpB1NoECmJ93",
- "c03pKkoL9MB5nawMKAEf3T",
- "59tV5AOgRLpb/XpZog8OvE",
- "a29fiysD9M96mBAZ01tmZi",
- "fa2ae6SVlImrinNTaaSSV1",
- "27O8M3WlRFJqTIRZstX9bM",
- "34OndNzwpLWYj+VThhlZ7H",
- "0ayUDcYjdHj4SFFNorDPEM",
- "01qUpLHV5KGZUjmE9ZFjZO",
- "30y5nUnqJCZbVPVvUaeoN6",
- "0aIaiGnE1PSJx1n+gp3t5m",
- "7ez6ZbyPVNfZyvh4P8AaRo",
- "17SiuW0zVD65NF0V/JOivq",
- "65+h/kzDhBypZiTrojFDOi",
- "5cNGBIU1lAOYa+ctY6lmWf",
- "caXgr6YEFAP6XN15sB0kp6",
- "5bQNmQpT1IfYmgn4rC/EtY",
- "29TCnmWkVF2Jk4AUgUmWYp",
- "3966Z6FwhD3JtuqWhDEnN6",
- "6f2YMAI1pFNbhPwQFunsCy",
- "6a/wv2+6NJvLQ+6R3GFzn9",
- "1d1vxQVyVEbKjMyOvJFgV8",
- "96v+TjVIRBS6YTohnQV4Xr",
- "7cLCoUeC5PJLQm1v0LPFbj",
- "1aB64eTWRLo4m+7mDk31RE",
- "2fXIKkWbxCXIpjRJqrA6Ll",
- "05VDl5kzRORb7ydj4OzeDn",
- "37iGQt2AhBEK5OmlmzJInL",
- "68T+Z1yJRBHp4frbr4Q6iU",
- "99E0WH+exNJJy6VkgvgDGj",
- "ed8bV5tplBOq69YqUv/SzE",
- "03Pe/DAFpHrZx1rbo+I21L",
- "b8yfAhJlpO54t139505eTc",
- "0c/LmoC19Is6moMnQ3wId5",
- "1fe/PNqHNNc5FDACur5xDu",
- "2dLBAlDS1NGrzwDv/nobeN",
- "fajb4t40NMQYZ36KTNZQc5",
- "aatxXnRQBJGZYAdjSmcSX5",
- "0aLPC+AjFH0rtCXS4hYFmf",
- "f4Ce0DNztGwJK7PaazNTwe",
- "8aw9U0kLBNJrOv2r9HAplJ",
- "d0NsJwB+FObrlD12S/Jzjn",
- "bfBovvxNJN5ZMz5xOW5dWR",
- "dcJKJ2B59FjJx2BLwO7BHG",
- "61WfZXF35ON6ZlFxWwuO8E",
- "d3XoDwn3pJHLnAc1C9XNid",
- "fbYqLknV9Gqb/J/wz37tZw",
- "40+hNi36RHBpgsri3bVZiG",
- "95fApYudRLRrFXYh3N1oeQ",
- "8aqwlImFRMzrnY0wdyJyHf",
- "2dxGDzCABOFLLEOCPyIRGE",
- "11pncox0pJW43oDEm5s7wx",
- "97WtxZ06pELKHIO5zWbYYm",
- "11ZBn4h2BBiL2dBX1WCy8a",
- "caOu9DIGxJIqZrD1dV41Hf",
- "5dw9kYADZPNpobSvvbD8b0",
- "c4+XesRcRCxb1mAeGTN8cj",
- "2fDAwX3sZJyIJ+0kuhvU1K",
- "05LzAX/zJFErixSkZUuEyv",
- "87+oAOWmZIfaaVyrntQKQY",
- "29UgHWPvpNy5ZSUcGiP1lK",
- "7671Mg4iNPYr3CNxSnF0if",
- "feOeCMy9xCeIfe36B26M8E",
- "8fwPJXxXVCAo7lOc3DTYLF",
"f512lHTTNL74yzOlBE9JGI",
"7dVUxPHcdBYowXHNfbX9sn",
"2eU1lLJjNP1LW50j8sCiwC",
@@ -307,11 +182,7 @@
"60ohztsKZAyKQd/c6dihG9",
"48SuIXIbhGJKAjz08bBCFt",
"2arcd3a5ZNHZ2ruuGi9Yx1",
- "76Wbk9IeRB5b52GhEBOcos",
- "cezIxmNxRO6JVpiC2ekT1U",
- "22F0XLwFlA4JWo/+rK/2Ak",
"a43Sm9ElpAKLoLaNRkLTKT",
- "52m0+B99tBDI20UvzW7VQW",
"6dkjCDyy1GmYo+C/bfAkuG",
"07rGkrMItJdYm/4n6fajTj",
"1ban2/GwVEB4jihybbCmH8",
@@ -356,19 +227,7 @@
"a7jIwfGu1Av740fROBsdss",
"bdzrc829VLQ5doPrje4iyU",
"d7PnSbi11Kfq9uQTo378x0",
- "a5esZu+45LA5mBpvttspPD",
- "5bWWPTPWhMvbOJcMi50EIm",
- "eadrEk6sZOIaE5o/oMPM2G",
- "92YD+h90NJhp8U6bJYnT/u",
- "51hcJ2oCpB6701uBYymjqZ",
- "a1VkYOiSNKQ45FN4rUFgET",
- "03jXCZORFJG6n9jpa+2OeV",
- "9b5vl6YSJCV4KJSug+nQjT",
- "dfWlPEN7RFR6XchLehCcdE",
"c7Fb9h/RNNYIhjS4XnDMCj",
- "edGku/mxZPxJszZ+KWAxf0",
- "1a1t6flR5NCp3ArthNU739",
- "b0VHqWWqlJ4qVyuwnLGCWw",
"0ax3zoOJNIz6JXjKysnJeM",
"1auUaeui9F7aTcgWoL0qOd",
"23+hcrCppO9K+g5+gLlS6C",
@@ -390,17 +249,10 @@
"ac5KpKiZ9FOZM7xeVnT0gM",
"3fmK7vjpRGrZbzW1qimReD",
"dddVUK6TBKo6QFOrmmDU7m",
- "1eERHUg2hDxZesih/09x+A",
- "75/8o7Uo5GK5UOksSb0Vaf",
- "faTUOwCO9I+5u+/Z51XIk/",
"8cioaWxzdBwaC5lZHRaEyQ",
- "b2/1NmDPVCXovcyHPoKEHX",
- "2a7fKXbxNM+7oVc5ylGZS3",
"bbsXTvcuBLUr67DsG2oE8g",
"39zlXmZYZOXKpd5NRIFb8h",
"349IYUpJ9GgqafnciDCl3J",
- "366Lx63TdOsbhMMswe7QCc",
- "1100mE3D9NOZt7Z7LNDlJY",
"63u0GWwYBHQYonYh/K0LnP",
"2bLO47dXNKSZvDbXHMD3j8",
"fb3vwX7QtHTJwW1wJf0/zx",
@@ -499,6 +351,147 @@
"d4Cg2JM2NK0L0wfKFQeg6i",
"13I4RiGftKJ6g7Wnc3EX9m",
"d3ajDTgv5N949f58uGtp7d",
- "1ePTP3SAxHF78/fucx4khs"
+ "1ePTP3SAxHF78/fucx4khs",
+ "3cLr4N9IJBTan4nBClyTDv",
+ "2aYexfAo9CW4woLnOhrVeo",
+ "c1sBhIMz1O9In1j3LfHkfD",
+ "9dlto8igBPr6QrYOrO2L7L",
+ "7d7rSJXxFEiIm/rFDuSEZL",
+ "ccAQ6es4VK0ZR4GDdtcZeT",
+ "63BhnOpHRJUZY9LE3b1XDC",
+ "35mdiWqnRFhYzjwD5Uk/EH",
+ "bcVtng8XVDnpmD9DVlF9ld",
+ "5fVD8G9ixJmZuSSsy8gqF9",
+ "5aQ2mip0ZF64zDYrTyUFkS",
+ "aaVeViXp9JWJIs15HSlzp6",
+ "78yJpmepVBhpGq0/ZFJpId",
+ "a321YDQVFGlaHFbZvb1Dyt",
+ "b2/1NmDPVCXovcyHPoKEHX",
+ "6dqgv+aKdPoakjPzpvDNA5",
+ "92Yk45bddBkIC5VFH4eASS",
+ "20jAAP9CpIGZs5cllgOlEH",
+ "41ovg6xMhJpY6a/xoSwzYz",
+ "22F0XLwFlA4JWo/+rK/2Ak",
+ "cbuzoJCRZOuo5AU8opcyOt",
+ "7fuhipepBHYpfdIqaFxgVg",
+ "531BJn26hM+aG5nJ2Lj7hb",
+ "61wYfy0EFCUohALrmwXwfE",
+ "5bWWPTPWhMvbOJcMi50EIm",
+ "eadrEk6sZOIaE5o/oMPM2G",
+ "8esd0mEOFIWaNXN9D2xErT",
+ "0cOnEc6s9LMp5+OwPKJd7x",
+ "03jXCZORFJG6n9jpa+2OeV",
+ "a1VkYOiSNKQ45FN4rUFgET",
+ "1ew+4wfMJOeo20nGbnmfGO",
+ "f3C0D4lFRBn7BC6Jdls9jm",
+ "d360XBXNlJRqPOIxU4ufb6",
+ "51hcJ2oCpB6701uBYymjqZ",
+ "e2+EmEqkNL26aRhDhaxXOn",
+ "54+uW7sTBFKYRMnyCE53A5",
+ "c5Z9Z//+lL2p93Tj/ibo46",
+ "18OIVS54hJnpuMXtzigz2U",
+ "a1X1CfXwpIa7JpvhA/6b5w",
+ "0a1m1GIxRBppxLmJmrNAZ/",
+ "25vtz/i/NC6abYOOKms5Nz",
+ "0bFvVtmKZEiKyZUAW4DgGx",
+ "e33du1Hc9H4aAzYC6rT+r8",
+ "40Y3WJSsREhpl8O5fd8vYA",
+ "dfuZRH9YlJvYfGhO1rO0RP",
+ "e98mVuhf5HLKKKzQ32VArZ",
+ "5fkSth0ihEMIbC0FlVCaWj",
+ "7e28TjuA1FNKXnPX1CwzTr",
+ "39pPOUGylJkYkivwc+ue7P",
+ "44rNj20xROw61KDw4bnari",
+ "95Qi4s5GRHV7qHN6doigge",
+ "71cNsfALdAbJ6TMbqIMEDs",
+ "01N1oAxMtFlatBhgv2WzYs",
+ "a8YH618gdGCrUOoZdEgCsJ",
+ "76Wbk9IeRB5b52GhEBOcos",
+ "2eEhXQtC9CXYzqM1Rs/+of",
+ "a1JBzXWelBX65l+dFY2CKW",
+ "18WyPLaTtD7bjoyqdUCqHn",
+ "fcX27iK29PRK8/unpz8ED7",
+ "10BZI9HqhG5JS/Z5QZv+zd",
+ "faNmaYP4FPKZMLwwW51GRn",
+ "64BwEksohKa6hFeLXEC86n",
+ "70BNjKltNBs6kXuAZFicyk",
+ "8c4VplBiRJB7/LSRH1LPoE",
+ "2bj5L/h0ZLv6GVexOqbd4k",
+ "24bq3QCkRH2aqXU/6Rh/OA",
+ "7dE9l/y/BAKa+VJjIVN1lK",
+ "6deInVD2tLa5PcXyhRBU0G",
+ "8aCfW3gyVMK7edsCdYbpHL",
+ "fdF1Aq4mVFWpeOYV1AqJWL",
+ "548FERGKNLWrDNaPk4V/bD",
+ "04YLAwsNdECZMpJNxge9gt",
+ "5apKXPlq5GRr5E4ZEGfLi3",
+ "29+nid3F5FhKYfblmpMhPA",
+ "92vL8A1GdL0aq3PP+RdbIs",
+ "a0QZj/cVROjLOm5O83LxsQ",
+ "707RhtbwFCibBx+UfptTx/",
+ "1aia5vOP5AiJXV2Hr9yqOc",
+ "77NZq6DUhMA4GPG0dvXaH1",
+ "87BjgeR8JN2ZuhIEvctntd",
+ "ac/ghinpNAuYVRgIX41ov/",
+ "99AXWilJpGva8eOlNYEKHf",
+ "26PULO+thHH65f/8/ykfjv",
+ "06Mrv5VjBCw6y5TbJndqQD",
+ "49oQaOFP5HZqpIh0RF4B6C",
+ "005ttkLCJPTYyEC8pPRh0y",
+ "872gFSf6tJxrMirF9CswkV",
+ "44fqIJ6EpN4ZkIzsDxUCMP",
+ "6abTaYDSlJP7hryEOU0C5E",
+ "3fq/uFUoNJNJy0quHnsWrG",
+ "6d55/TDxlJY7wO5GAPHv9L",
+ "30xUY0skpGg4V8OtsqS1ks",
+ "eaghIhtiNEd6GlVtQgSh24",
+ "34WQed+fNPp78jSowAgtxA",
+ "9fqxpJGuhGbp43Esja5OYU",
+ "75GMHEacFJMbGp/tu6E4TJ",
+ "07Ksba/0lHCYy462U4zph9",
+ "59od3WsFVGv7oJnhDtT139",
+ "abQSaBTohNs4lxrYEZw+Ad",
+ "4dIoQJ7IJCy5GCek0KvzZ6",
+ "f7j2hYRKhLbaQ+AkTYVg6J",
+ "a26M6H1XtHu5oMSLngwPhC",
+ "880RHgUnNPmoVGFsO1ke/k",
+ "17GvO4rxBMT5xTRMlYXsho",
+ "14/EFVzj1Ma5FtHELj4Gvd",
+ "a5esZu+45LA5mBpvttspPD",
+ "edGku/mxZPxJszZ+KWAxf0",
+ "b0VHqWWqlJ4qVyuwnLGCWw",
+ "e32VfzbBZHmIWIYEhvY/mp",
+ "cezIxmNxRO6JVpiC2ekT1U",
+ "07afITpORHfqPONAypAM0J",
+ "d0UzByGLlHhZBro9lAsDtj",
+ "5bygU22UFO9brKYQ+eNzC1",
+ "dfWlPEN7RFR6XchLehCcdE",
+ "b1KKqFm9hMtpLUtxEY0uFW",
+ "44blZFeNdFYaDafI+ABKyL",
+ "67LZTVWmpEAYT6hpcfFqx4",
+ "366Lx63TdOsbhMMswe7QCc",
+ "99k/frMy1Lz6U4YMjy0tug",
+ "5digBgV6FFa55bp8ApLXqu",
+ "f3vGOwuVlH8rNh3ga21IiB",
+ "44vQhnjcpFGbUVYviBzL5J",
+ "04/AY/hQRBIp270nF8kX7Z",
+ "d8CZbzYdlK2oRflAbWkM5v",
+ "52m0+B99tBDI20UvzW7VQW",
+ "1100mE3D9NOZt7Z7LNDlJY",
+ "78Fl/8dnVGur/T2tCF1Awd",
+ "1eERHUg2hDxZesih/09x+A",
+ "0bk5X+UdtG+o7m0EXRTFdu",
+ "9bQzWjtadN+KeTGC326Cxf",
+ "64cC23cEdDy7+MguJh0fUR",
+ "75/8o7Uo5GK5UOksSb0Vaf",
+ "faTUOwCO9I+5u+/Z51XIk/",
+ "7fhIJPcv1JVoYYa9kWQOKz",
+ "edksWoJnZFk7HCcTx1SM2H",
+ "78JrwC6KJKp7MrMcRq8D3n",
+ "84eA0uLwBDMpVbOAwT4zIf",
+ "cbllED8F9AHbQ/HaHPQ5eH",
+ "a8dp5X5NxAg5E6iqlNgXlQ",
+ "1a1t6flR5NCp3ArthNU739",
+ "990IgEk4RPnL+uMnWKShE+"
]
}
diff --git a/temp/BackupAssets/assets/Scene/GameScene.fire b/temp/BackupAssets/assets/Scene/GameScene.fire
index daca74d..9499783 100644
--- a/temp/BackupAssets/assets/Scene/GameScene.fire
+++ b/temp/BackupAssets/assets/Scene/GameScene.fire
@@ -75,28 +75,28 @@
"__id__": 5
},
{
- "__id__": 74
+ "__id__": 76
},
{
- "__id__": 350
+ "__id__": 360
},
{
- "__id__": 400
+ "__id__": 410
}
],
"_active": true,
"_components": [
{
- "__id__": 403
+ "__id__": 413
},
{
- "__id__": 404
+ "__id__": 414
},
{
- "__id__": 405
+ "__id__": 415
},
{
- "__id__": 406
+ "__id__": 416
}
],
"_prefab": null,
@@ -260,22 +260,22 @@
"__id__": 9
},
{
- "__id__": 163
+ "__id__": 173
},
{
- "__id__": 184
+ "__id__": 194
},
{
- "__id__": 204
+ "__id__": 214
},
{
- "__id__": 76
+ "__id__": 78
}
],
"_active": true,
"_components": [
{
- "__id__": 349
+ "__id__": 359
}
],
"_prefab": null,
@@ -465,19 +465,19 @@
"__id__": 13
},
{
- "__id__": 138
+ "__id__": 140
},
{
"__id__": 20
},
{
- "__id__": 159
+ "__id__": 169
}
],
"_active": true,
"_components": [
{
- "__id__": 162
+ "__id__": 172
}
],
"_prefab": null,
@@ -956,34 +956,34 @@
"__id__": 18
},
"destroyBtn": {
- "__id__": 27
+ "__id__": 29
},
"magicBtn": {
- "__id__": 36
+ "__id__": 38
},
"mask": {
- "__id__": 74
+ "__id__": 76
},
"iceLabel": {
- "__id__": 70
+ "__id__": 72
},
"hammerLabel": {
- "__id__": 25
+ "__id__": 27
},
"magicLabel": {
- "__id__": 34
+ "__id__": 36
},
"magicMask": {
- "__id__": 55
+ "__id__": 57
},
"hammerMask": {
- "__id__": 52
+ "__id__": 54
},
"freezeMask": {
- "__id__": 49
+ "__id__": 51
},
"coinPop": {
- "__id__": 76
+ "__id__": 78
},
"_id": "1e+NpmfM1ClafoWSY4VNW+"
},
@@ -1001,7 +1001,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 73
+ "__id__": 75
}
],
"_N$interactable": true,
@@ -1070,22 +1070,22 @@
},
"_children": [
{
- "__id__": 67
+ "__id__": 69
},
{
- "__id__": 69
+ "__id__": 71
}
],
"_active": true,
"_components": [
{
- "__id__": 71
+ "__id__": 73
},
{
"__id__": 18
},
{
- "__id__": 72
+ "__id__": 74
}
],
"_prefab": null,
@@ -1099,8 +1099,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1111,8 +1111,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -280,
- 142.663,
+ 116.277,
+ 100.136,
0,
0,
0,
@@ -1144,38 +1144,41 @@
"__id__": 9
},
"_children": [
- {
- "__id__": 19
- },
{
"__id__": 21
},
{
- "__id__": 30
+ "__id__": 19
},
{
- "__id__": 39
+ "__id__": 23
},
{
- "__id__": 45
+ "__id__": 32
},
{
- "__id__": 49
+ "__id__": 41
},
{
- "__id__": 52
+ "__id__": 47
},
{
- "__id__": 55
+ "__id__": 51
},
{
- "__id__": 58
+ "__id__": 54
+ },
+ {
+ "__id__": 57
+ },
+ {
+ "__id__": 60
}
],
"_active": true,
"_components": [
{
- "__id__": 66
+ "__id__": 68
}
],
"_prefab": null,
@@ -1228,29 +1231,16 @@
},
{
"__type__": "cc.Node",
- "_name": "destroyBtn",
+ "_name": "底板00_1",
"_objFlags": 0,
"_parent": {
"__id__": 20
},
- "_children": [
- {
- "__id__": 22
- },
- {
- "__id__": 24
- }
- ],
+ "_children": [],
"_active": true,
"_components": [
{
- "__id__": 26
- },
- {
- "__id__": 27
- },
- {
- "__id__": 29
+ "__id__": 22
}
],
"_prefab": null,
@@ -1264,8 +1254,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 1080,
+ "height": 113
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1276,8 +1266,117 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -80,
- 142.663,
+ 0,
+ 45.697,
+ 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": "d13GbSvV9OPJBUKUlhuTex"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 21
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "d229cc47-8fde-407c-8a0a-986e6a7db207"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "d0b1izjvVCgamoGah1Jaft"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "destroyBtn",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 20
+ },
+ "_children": [
+ {
+ "__id__": 24
+ },
+ {
+ "__id__": 26
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 28
+ },
+ {
+ "__id__": 29
+ },
+ {
+ "__id__": 31
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 154,
+ "height": 172
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -112.862,
+ 104.002,
0,
0,
0,
@@ -1306,13 +1405,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 21
+ "__id__": 23
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 23
+ "__id__": 25
}
],
"_prefab": null,
@@ -1326,8 +1425,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 97,
- "height": 109
+ "width": 124,
+ "height": 129
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1338,8 +1437,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 0,
- 0,
+ -9.665,
+ 15.464,
0,
0,
0,
@@ -1368,7 +1467,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 22
+ "__id__": 24
},
"_enabled": true,
"_materials": [
@@ -1379,7 +1478,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "fbfecad6-2e70-43a0-bf64-d3a59335362e"
+ "__uuid__": "330e6f4d-b16c-4cf2-9791-e10d7a7b5166"
},
"_type": 0,
"_sizeMode": 1,
@@ -1393,7 +1492,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "44zciXhM9By7FOyycM/dKY"
},
@@ -1402,13 +1501,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 21
+ "__id__": 23
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 25
+ "__id__": 27
}
],
"_prefab": null,
@@ -1464,7 +1563,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 24
+ "__id__": 26
},
"_enabled": true,
"_materials": [
@@ -1497,7 +1596,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_materials": [
@@ -1508,7 +1607,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -1522,7 +1621,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "4fpgZvoWZKwbhWiIRUbZgZ"
},
@@ -1531,7 +1630,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_normalMaterial": null,
@@ -1540,7 +1639,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 28
+ "__id__": 30
}
],
"_N$interactable": true,
@@ -1596,7 +1695,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 21
+ "__id__": 23
},
"_id": "37kLzoX/5ETIkOp2zQsq9p"
},
@@ -1615,7 +1714,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 21
+ "__id__": 23
},
"_enabled": true,
"_id": "dekCrxpChCv7UV5uQ+seyc"
@@ -1629,22 +1728,22 @@
},
"_children": [
{
- "__id__": 31
+ "__id__": 33
},
{
- "__id__": 33
+ "__id__": 35
}
],
"_active": true,
"_components": [
{
- "__id__": 35
- },
- {
- "__id__": 36
+ "__id__": 37
},
{
"__id__": 38
+ },
+ {
+ "__id__": 40
}
],
"_prefab": null,
@@ -1658,8 +1757,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 159,
- "height": 159
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1670,8 +1769,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 120,
- 142.663,
+ 346.167,
+ 78.872,
0,
0,
0,
@@ -1700,13 +1799,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 30
+ "__id__": 32
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 32
+ "__id__": 34
}
],
"_prefab": null,
@@ -1720,8 +1819,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 93,
- "height": 109
+ "width": 113,
+ "height": 118
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1762,7 +1861,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 31
+ "__id__": 33
},
"_enabled": true,
"_materials": [
@@ -1773,7 +1872,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "d84b80a7-d4bf-44f4-a85e-6e347f54482a"
+ "__uuid__": "2ba6206f-a68c-48c4-b91b-41f435367121"
},
"_type": 0,
"_sizeMode": 1,
@@ -1787,7 +1886,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "0c4DaC9ZZHSLXDHJAIQc+O"
},
@@ -1796,13 +1895,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 30
+ "__id__": 32
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 34
+ "__id__": 36
}
],
"_prefab": null,
@@ -1858,7 +1957,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 33
+ "__id__": 35
},
"_enabled": true,
"_materials": [
@@ -1891,7 +1990,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_materials": [
@@ -1902,7 +2001,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -1916,7 +2015,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "647u+bW4NOQZKdQAAA2N82"
},
@@ -1925,7 +2024,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_normalMaterial": null,
@@ -1934,7 +2033,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 37
+ "__id__": 39
}
],
"_N$interactable": true,
@@ -1990,7 +2089,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 30
+ "__id__": 32
},
"_id": "13iXPcjuVGtZpauFnVUGQE"
},
@@ -2009,7 +2108,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 30
+ "__id__": 32
},
"_enabled": true,
"_id": "d3aD0owzFH74KOQ39ei+jJ"
@@ -2023,16 +2122,16 @@
},
"_children": [
{
- "__id__": 40
+ "__id__": 42
}
],
"_active": true,
"_components": [
{
- "__id__": 42
+ "__id__": 44
},
{
- "__id__": 44
+ "__id__": 46
}
],
"_prefab": null,
@@ -2058,8 +2157,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 320,
- 142,
+ -344.139,
+ 86.196,
0,
0,
0,
@@ -2088,13 +2187,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 39
+ "__id__": 41
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 41
+ "__id__": 43
}
],
"_prefab": null,
@@ -2108,8 +2207,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 155,
- "height": 155
+ "width": 154,
+ "height": 172
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -2150,7 +2249,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 40
+ "__id__": 42
},
"_enabled": true,
"_materials": [
@@ -2161,7 +2260,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "3643a167-546c-4acb-a522-f8fd1eab0ee4"
+ "__uuid__": "b408ff41-fd70-476e-a1e9-8a578e26e034"
},
"_type": 0,
"_sizeMode": 1,
@@ -2175,7 +2274,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "66p8eNtFFEn6LRcLCWRnW/"
},
@@ -2184,7 +2283,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 39
+ "__id__": 41
},
"_enabled": true,
"_normalMaterial": null,
@@ -2193,7 +2292,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 43
+ "__id__": 45
}
],
"_N$interactable": true,
@@ -2249,7 +2348,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 39
+ "__id__": 41
},
"_id": "87c+8sV8FH+5mMTIXYBbll"
},
@@ -2268,7 +2367,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 39
+ "__id__": 41
},
"_enabled": true,
"_id": "ae2rpYpEJBsK26v76aVmm/"
@@ -2284,10 +2383,10 @@
"_active": false,
"_components": [
{
- "__id__": 46
+ "__id__": 48
},
{
- "__id__": 47
+ "__id__": 49
}
],
"_prefab": null,
@@ -2343,7 +2442,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 45
+ "__id__": 47
},
"_enabled": true,
"_materials": [
@@ -2373,7 +2472,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 45
+ "__id__": 47
},
"_enabled": true,
"_normalMaterial": null,
@@ -2382,7 +2481,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 48
+ "__id__": 50
}
],
"_N$interactable": true,
@@ -2438,7 +2537,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 45
+ "__id__": 47
},
"_id": "3dlpZtk6BJQ40ey82SCcay"
},
@@ -2463,10 +2562,10 @@
"_active": false,
"_components": [
{
- "__id__": 50
+ "__id__": 52
},
{
- "__id__": 51
+ "__id__": 53
}
],
"_prefab": null,
@@ -2522,7 +2621,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 49
+ "__id__": 51
},
"_enabled": true,
"_materials": [
@@ -2556,7 +2655,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 49
+ "__id__": 51
},
"_enabled": true,
"_id": "63gNCerwZExo+YLuxgFmqU"
@@ -2572,10 +2671,10 @@
"_active": false,
"_components": [
{
- "__id__": 53
+ "__id__": 55
},
{
- "__id__": 54
+ "__id__": 56
}
],
"_prefab": null,
@@ -2631,7 +2730,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 52
+ "__id__": 54
},
"_enabled": true,
"_materials": [
@@ -2665,7 +2764,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 52
+ "__id__": 54
},
"_enabled": true,
"_id": "38p//kTl1IxZ+3LfA8cdcJ"
@@ -2681,10 +2780,10 @@
"_active": false,
"_components": [
{
- "__id__": 56
+ "__id__": 58
},
{
- "__id__": 57
+ "__id__": 59
}
],
"_prefab": null,
@@ -2740,7 +2839,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 55
+ "__id__": 57
},
"_enabled": true,
"_materials": [
@@ -2774,7 +2873,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 55
+ "__id__": 57
},
"_enabled": true,
"_id": "e8zuQH36BBZaL/1k13rbss"
@@ -2788,13 +2887,13 @@
},
"_children": [
{
- "__id__": 59
+ "__id__": 61
}
],
"_active": true,
"_components": [
{
- "__id__": 64
+ "__id__": 66
}
],
"_prefab": null,
@@ -2850,20 +2949,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
- "__id__": 58
+ "__id__": 60
},
"_children": [
{
- "__id__": 60
+ "__id__": 62
}
],
"_active": true,
"_components": [
{
- "__id__": 62
+ "__id__": 64
},
{
- "__id__": 63
+ "__id__": 65
}
],
"_prefab": null,
@@ -2919,13 +3018,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
- "__id__": 59
+ "__id__": 61
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 61
+ "__id__": 63
}
],
"_prefab": null,
@@ -2981,7 +3080,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 60
+ "__id__": 62
},
"_enabled": true,
"_materials": [
@@ -3014,7 +3113,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 59
+ "__id__": 61
},
"_enabled": true,
"_materials": [
@@ -3046,7 +3145,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 59
+ "__id__": 61
},
"_enabled": true,
"alignMode": 0,
@@ -3073,7 +3172,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 58
+ "__id__": 60
},
"_enabled": true,
"_normalMaterial": null,
@@ -3082,7 +3181,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 65
+ "__id__": 67
}
],
"_N$interactable": true,
@@ -3150,7 +3249,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
- "__id__": 59
+ "__id__": 61
},
"_id": "111w+INMtEeL+/wHpeYLTf"
},
@@ -3202,7 +3301,7 @@
"_active": true,
"_components": [
{
- "__id__": 68
+ "__id__": 70
}
],
"_prefab": null,
@@ -3216,8 +3315,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 98,
- "height": 109
+ "width": 106,
+ "height": 127
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -3229,7 +3328,7 @@
"ctor": "Float64Array",
"array": [
0,
- 0,
+ 3.866,
0,
0,
0,
@@ -3258,7 +3357,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 67
+ "__id__": 69
},
"_enabled": true,
"_materials": [
@@ -3269,7 +3368,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0c83acfe-399d-4375-8e85-db76234268f6"
+ "__uuid__": "c0b0148b-e769-4674-8f71-b3dd828675d8"
},
"_type": 0,
"_sizeMode": 1,
@@ -3283,7 +3382,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "59Pk6HFEZIiKfGvnH+qPLO"
},
@@ -3295,10 +3394,10 @@
"__id__": 19
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 70
+ "__id__": 72
}
],
"_prefab": null,
@@ -3354,7 +3453,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 69
+ "__id__": 71
},
"_enabled": true,
"_materials": [
@@ -3398,7 +3497,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "0f99f0a7-4494-46b4-9baa-be0c6335ce81"
+ "__uuid__": "3b77f169-3a59-4cc5-a0f3-26cdd64ca754"
},
"_type": 0,
"_sizeMode": 1,
@@ -3412,7 +3511,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "df3kV4XrtNHYvyWu+Nwmo9"
},
@@ -3447,7 +3546,7 @@
"_active": false,
"_components": [
{
- "__id__": 75
+ "__id__": 77
}
],
"_prefab": null,
@@ -3503,7 +3602,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 74
+ "__id__": 76
},
"_enabled": true,
"_materials": [
@@ -3539,10 +3638,7 @@
},
"_children": [
{
- "__id__": 77
- },
- {
- "__id__": 81
+ "__id__": 79
},
{
"__id__": 83
@@ -3557,22 +3653,25 @@
"__id__": 89
},
{
- "__id__": 98
+ "__id__": 91
},
{
- "__id__": 107
+ "__id__": 100
},
{
- "__id__": 116
+ "__id__": 109
},
{
- "__id__": 133
+ "__id__": 118
+ },
+ {
+ "__id__": 135
}
],
"_active": false,
"_components": [
{
- "__id__": 137
+ "__id__": 139
}
],
"_prefab": null,
@@ -3628,19 +3727,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
- {
- "__id__": 78
- },
- {
- "__id__": 79
- },
{
"__id__": 80
+ },
+ {
+ "__id__": 81
+ },
+ {
+ "__id__": 82
}
],
"_prefab": null,
@@ -3696,7 +3795,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"_materials": [
@@ -3728,7 +3827,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"alignMode": 1,
@@ -3755,7 +3854,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 77
+ "__id__": 79
},
"_enabled": true,
"_id": "7ck1YZHrVNgK0sTsx/E/46"
@@ -3765,13 +3864,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 82
+ "__id__": 84
}
],
"_prefab": null,
@@ -3827,7 +3926,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 81
+ "__id__": 83
},
"_enabled": true,
"_materials": [
@@ -3859,13 +3958,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 84
+ "__id__": 86
}
],
"_prefab": null,
@@ -3921,7 +4020,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 83
+ "__id__": 85
},
"_enabled": true,
"_materials": [
@@ -3955,13 +4054,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 86
+ "__id__": 88
}
],
"_prefab": null,
@@ -4017,7 +4116,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 85
+ "__id__": 87
},
"_enabled": true,
"_materials": [
@@ -4051,13 +4150,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 88
+ "__id__": 90
}
],
"_prefab": null,
@@ -4113,7 +4212,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 87
+ "__id__": 89
},
"_enabled": true,
"_materials": [
@@ -4145,12 +4244,9 @@
"_name": "freeze",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 90
- },
{
"__id__": 92
},
@@ -4159,6 +4255,9 @@
},
{
"__id__": 96
+ },
+ {
+ "__id__": 98
}
],
"_active": false,
@@ -4216,13 +4315,13 @@
"_name": "freeze_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 91
+ "__id__": 93
}
],
"_prefab": null,
@@ -4278,7 +4377,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 90
+ "__id__": 92
},
"_enabled": true,
"_materials": [
@@ -4312,13 +4411,13 @@
"_name": "freeze_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 93
+ "__id__": 95
}
],
"_prefab": null,
@@ -4374,7 +4473,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 92
+ "__id__": 94
},
"_enabled": true,
"_materials": [
@@ -4408,13 +4507,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 95
+ "__id__": 97
}
],
"_prefab": null,
@@ -4470,7 +4569,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 94
+ "__id__": 96
},
"_enabled": true,
"_materials": [
@@ -4504,13 +4603,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 89
+ "__id__": 91
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 97
+ "__id__": 99
}
],
"_prefab": null,
@@ -4566,7 +4665,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 96
+ "__id__": 98
},
"_enabled": true,
"_materials": [
@@ -4600,12 +4699,9 @@
"_name": "hammer",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 99
- },
{
"__id__": 101
},
@@ -4614,6 +4710,9 @@
},
{
"__id__": 105
+ },
+ {
+ "__id__": 107
}
],
"_active": false,
@@ -4671,13 +4770,13 @@
"_name": "hammer_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 100
+ "__id__": 102
}
],
"_prefab": null,
@@ -4733,7 +4832,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 99
+ "__id__": 101
},
"_enabled": true,
"_materials": [
@@ -4767,13 +4866,13 @@
"_name": "hammer_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 102
+ "__id__": 104
}
],
"_prefab": null,
@@ -4829,7 +4928,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 101
+ "__id__": 103
},
"_enabled": true,
"_materials": [
@@ -4863,13 +4962,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 104
+ "__id__": 106
}
],
"_prefab": null,
@@ -4925,7 +5024,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 103
+ "__id__": 105
},
"_enabled": true,
"_materials": [
@@ -4959,13 +5058,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 98
+ "__id__": 100
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 106
+ "__id__": 108
}
],
"_prefab": null,
@@ -5021,7 +5120,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 105
+ "__id__": 107
},
"_enabled": true,
"_materials": [
@@ -5055,12 +5154,9 @@
"_name": "magic",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 108
- },
{
"__id__": 110
},
@@ -5069,6 +5165,9 @@
},
{
"__id__": 114
+ },
+ {
+ "__id__": 116
}
],
"_active": false,
@@ -5126,13 +5225,13 @@
"_name": "magic_Label",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 109
+ "__id__": 111
}
],
"_prefab": null,
@@ -5188,7 +5287,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 108
+ "__id__": 110
},
"_enabled": true,
"_materials": [
@@ -5222,13 +5321,13 @@
"_name": "magic_Icon",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 111
+ "__id__": 113
}
],
"_prefab": null,
@@ -5284,7 +5383,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 110
+ "__id__": 112
},
"_enabled": true,
"_materials": [
@@ -5318,13 +5417,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 113
+ "__id__": 115
}
],
"_prefab": null,
@@ -5380,7 +5479,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 112
+ "__id__": 114
},
"_enabled": true,
"_materials": [
@@ -5414,13 +5513,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 107
+ "__id__": 109
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 115
+ "__id__": 117
}
],
"_prefab": null,
@@ -5476,7 +5575,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 114
+ "__id__": 116
},
"_enabled": true,
"_materials": [
@@ -5510,12 +5609,9 @@
"_name": "buy_Btn",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [
- {
- "__id__": 117
- },
{
"__id__": 119
},
@@ -5530,18 +5626,21 @@
},
{
"__id__": 127
+ },
+ {
+ "__id__": 129
}
],
"_active": true,
"_components": [
{
- "__id__": 129
- },
- {
- "__id__": 130
+ "__id__": 131
},
{
"__id__": 132
+ },
+ {
+ "__id__": 134
}
],
"_prefab": null,
@@ -5597,13 +5696,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 118
+ "__id__": 120
}
],
"_prefab": null,
@@ -5659,7 +5758,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 117
+ "__id__": 119
},
"_enabled": true,
"_materials": [
@@ -5693,13 +5792,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 120
+ "__id__": 122
}
],
"_prefab": null,
@@ -5755,7 +5854,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 119
+ "__id__": 121
},
"_enabled": true,
"_materials": [
@@ -5789,13 +5888,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 122
+ "__id__": 124
}
],
"_prefab": null,
@@ -5851,7 +5950,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 121
+ "__id__": 123
},
"_enabled": true,
"_materials": [
@@ -5885,13 +5984,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 124
+ "__id__": 126
}
],
"_prefab": null,
@@ -5947,7 +6046,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 123
+ "__id__": 125
},
"_enabled": true,
"_materials": [
@@ -5981,13 +6080,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 126
+ "__id__": 128
}
],
"_prefab": null,
@@ -6043,7 +6142,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 125
+ "__id__": 127
},
"_enabled": true,
"_materials": [
@@ -6077,13 +6176,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 116
+ "__id__": 118
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 128
+ "__id__": 130
}
],
"_prefab": null,
@@ -6139,7 +6238,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 127
+ "__id__": 129
},
"_enabled": true,
"_materials": [
@@ -6173,7 +6272,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_materials": [
@@ -6207,7 +6306,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_normalMaterial": null,
@@ -6216,7 +6315,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 131
+ "__id__": 133
}
],
"_N$interactable": true,
@@ -6272,7 +6371,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 116
+ "__id__": 118
},
"_id": "3dIBlmgnFLIKI+Rx3mWLiH"
},
@@ -6291,7 +6390,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 116
+ "__id__": 118
},
"_enabled": true,
"_id": "f9YC9UOyxPc4DLFd+bNIec"
@@ -6301,16 +6400,16 @@
"_name": "close",
"_objFlags": 0,
"_parent": {
- "__id__": 76
+ "__id__": 78
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 134
+ "__id__": 136
},
{
- "__id__": 135
+ "__id__": 137
}
],
"_prefab": null,
@@ -6366,7 +6465,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 135
},
"_enabled": true,
"_materials": [
@@ -6400,7 +6499,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 135
},
"_enabled": true,
"_normalMaterial": null,
@@ -6409,7 +6508,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 136
+ "__id__": 138
}
],
"_N$interactable": true,
@@ -6465,7 +6564,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 133
+ "__id__": 135
},
"_id": "e2r0BmMa5MrIsk8JJmyNf3"
},
@@ -6484,7 +6583,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 76
+ "__id__": 78
},
"_enabled": true,
"alignMode": 1,
@@ -6514,9 +6613,6 @@
"__id__": 9
},
"_children": [
- {
- "__id__": 139
- },
{
"__id__": 141
},
@@ -6529,23 +6625,38 @@
{
"__id__": 147
},
- {
- "__id__": 148
- },
{
"__id__": 149
},
{
"__id__": 151
},
+ {
+ "__id__": 152
+ },
{
"__id__": 153
+ },
+ {
+ "__id__": 155
+ },
+ {
+ "__id__": 157
+ },
+ {
+ "__id__": 159
+ },
+ {
+ "__id__": 161
+ },
+ {
+ "__id__": 163
}
],
"_active": true,
"_components": [
{
- "__id__": 158
+ "__id__": 168
}
],
"_prefab": null,
@@ -6601,13 +6712,13 @@
"_name": "topBg",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 140
+ "__id__": 142
}
],
"_prefab": null,
@@ -6621,8 +6732,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 1058,
- "height": 266
+ "width": 1056,
+ "height": 169
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -6634,7 +6745,7 @@
"ctor": "Float64Array",
"array": [
0,
- -157.461,
+ -78.562,
0,
0,
0,
@@ -6663,7 +6774,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 139
+ "__id__": 141
},
"_enabled": true,
"_materials": [
@@ -6674,7 +6785,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "4ff0e468-4bdc-47b9-a3fc-c3999a1a62dc"
+ "__uuid__": "504647c0-4bb4-4edd-b02d-5a20a94e12d5"
},
"_type": 0,
"_sizeMode": 1,
@@ -6688,7 +6799,7 @@
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
- "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
},
"_id": "493kRumnpEfqIUNxgxZDsz"
},
@@ -6697,13 +6808,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
- "_active": true,
+ "_active": false,
"_components": [
{
- "__id__": 142
+ "__id__": 144
}
],
"_prefab": null,
@@ -6730,7 +6841,7 @@
"ctor": "Float64Array",
"array": [
48.363,
- -66.999,
+ -39.709,
0,
0,
0,
@@ -6759,7 +6870,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 141
+ "__id__": 143
},
"_enabled": true,
"_materials": [
@@ -6793,13 +6904,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 144
+ "__id__": 146
}
],
"_prefab": null,
@@ -6825,15 +6936,15 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -393.758,
- -120.524,
+ -378.213,
+ -32.38,
0,
0,
0,
0,
1,
- 1,
- 1,
+ 0.4,
+ 0.4,
1
]
},
@@ -6855,7 +6966,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 143
+ "__id__": 145
},
"_enabled": true,
"_materials": [
@@ -6886,16 +6997,112 @@
},
{
"__type__": "cc.Node",
- "_name": "New Sprite",
+ "_name": "小钟图标_1",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 146
+ "__id__": 148
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 79,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ -179.234,
+ -45.185,
+ 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": "208soSmsZDPpggTM1mGJkD"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 147
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "e54e9ac3-4cdc-4afa-bcc5-3e76a71de364"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "cepyUebbNJsZhk/CwUtfZG"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "New Sprite",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 150
}
],
"_prefab": null,
@@ -6921,8 +7128,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- 47.735,
- -178.828,
+ -4.385,
+ -56.3,
0,
0,
0,
@@ -6951,7 +7158,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 149
},
"_enabled": true,
"_materials": [
@@ -6985,7 +7192,7 @@
"_name": "level",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
@@ -7013,8 +7220,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -421.43,
- -202.999,
+ -390,
+ -90.338,
0,
0,
0,
@@ -7043,7 +7250,7 @@
"_name": "time",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": true,
@@ -7071,8 +7278,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
- -47,
- -175.073,
+ -103.331,
+ -54.197,
0,
0,
0,
@@ -7096,18 +7303,306 @@
"groupIndex": 0,
"_id": "40UpDXAxJJPKv8JLFp8zwJ"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "ditu00",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 154
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 312,
+ "height": 62
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 338.889,
+ -55.728,
+ 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": "a0NhyFR6JMYrrafDAcT+mG"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 153
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "01c52e25-2b5d-4a2d-bcee-60913a9b83e6"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "baGP59Fc9Ki6dTjlXk/XAp"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "coins",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 156
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 70,
+ "height": 71
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 212.37,
+ -54.222,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1.2,
+ 1.2,
+ 1
+ ]
+ },
+ "_eulerAngles": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_skewX": 0,
+ "_skewY": 0,
+ "_is3DNode": false,
+ "_groupIndex": 0,
+ "groupIndex": 0,
+ "_id": "a8JH7FzwlLgLoubW/zwwzN"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 155
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "239f5193-a287-40ec-8887-5108d59b569c"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7"
+ },
+ "_id": "d5Ga1SVtFCHpW+F/d+M2Dx"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "加按钮_1",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 140
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 158
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 76,
+ "height": 82
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 466.913,
+ -58.741,
+ 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": "f1isnnRLZEfodXxw30geH/"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 157
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "14120fba-2d29-4ca3-a9f5-3154657e3ab3"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "b15b5gJJRFxpH/6bNeH1b0"
+ },
{
"__type__": "cc.Node",
"_name": "Ice",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 150
+ "__id__": 160
}
],
"_prefab": null,
@@ -7163,7 +7658,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 149
+ "__id__": 159
},
"_enabled": true,
"_materials": [
@@ -7195,13 +7690,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 152
+ "__id__": 162
}
],
"_prefab": null,
@@ -7257,7 +7752,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 151
+ "__id__": 161
},
"_enabled": true,
"_materials": [
@@ -7290,17 +7785,17 @@
"_name": "returnBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 138
+ "__id__": 140
},
"_children": [
{
- "__id__": 154
+ "__id__": 164
}
],
"_active": false,
"_components": [
{
- "__id__": 156
+ "__id__": 166
}
],
"_prefab": null,
@@ -7356,13 +7851,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 153
+ "__id__": 163
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 155
+ "__id__": 165
}
],
"_prefab": null,
@@ -7418,7 +7913,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 154
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7452,7 +7947,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 163
},
"_enabled": true,
"_normalMaterial": null,
@@ -7461,7 +7956,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 157
+ "__id__": 167
}
],
"_N$interactable": true,
@@ -7517,7 +8012,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 153
+ "__id__": 163
},
"_id": "34Z6b/IgpOtKrGQXG1ECg6"
},
@@ -7536,7 +8031,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 138
+ "__id__": 140
},
"_enabled": true,
"alignMode": 1,
@@ -7569,10 +8064,10 @@
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 170
},
{
- "__id__": 161
+ "__id__": 171
}
],
"_prefab": null,
@@ -7628,7 +8123,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 159
+ "__id__": 169
},
"_enabled": true,
"_materials": [
@@ -7660,7 +8155,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 159
+ "__id__": 169
},
"_enabled": true,
"alignMode": 1,
@@ -7717,32 +8212,32 @@
"__id__": 5
},
"_children": [
- {
- "__id__": 164
- },
- {
- "__id__": 168
- },
- {
- "__id__": 170
- },
- {
- "__id__": 172
- },
{
"__id__": 174
},
+ {
+ "__id__": 178
+ },
{
"__id__": 180
+ },
+ {
+ "__id__": 182
+ },
+ {
+ "__id__": 184
+ },
+ {
+ "__id__": 190
}
],
"_active": false,
"_components": [
{
- "__id__": 182
+ "__id__": 192
},
{
- "__id__": 183
+ "__id__": 193
}
],
"_prefab": null,
@@ -7798,19 +8293,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 165
+ "__id__": 175
},
{
- "__id__": 166
+ "__id__": 176
},
{
- "__id__": 167
+ "__id__": 177
}
],
"_prefab": null,
@@ -7866,7 +8361,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"_materials": [
@@ -7898,7 +8393,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"alignMode": 1,
@@ -7925,7 +8420,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 164
+ "__id__": 174
},
"_enabled": true,
"_id": "1e62ukhsJObKLFucCNzfwm"
@@ -7935,13 +8430,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 169
+ "__id__": 179
}
],
"_prefab": null,
@@ -7997,7 +8492,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 178
},
"_enabled": true,
"_materials": [
@@ -8029,13 +8524,13 @@
"_name": "light",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 171
+ "__id__": 181
}
],
"_prefab": null,
@@ -8091,7 +8586,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 170
+ "__id__": 180
},
"_enabled": true,
"_materials": [
@@ -8123,13 +8618,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 173
+ "__id__": 183
}
],
"_prefab": null,
@@ -8185,7 +8680,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 182
},
"_enabled": true,
"_materials": [
@@ -8215,20 +8710,20 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [
{
- "__id__": 175
+ "__id__": 185
}
],
"_active": true,
"_components": [
{
- "__id__": 177
+ "__id__": 187
},
{
- "__id__": 178
+ "__id__": 188
}
],
"_prefab": null,
@@ -8284,13 +8779,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 174
+ "__id__": 184
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 176
+ "__id__": 186
}
],
"_prefab": null,
@@ -8346,7 +8841,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 175
+ "__id__": 185
},
"_enabled": true,
"_materials": [
@@ -8378,7 +8873,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 184
},
"_enabled": true,
"_materials": [
@@ -8410,7 +8905,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 174
+ "__id__": 184
},
"_enabled": true,
"_normalMaterial": null,
@@ -8419,7 +8914,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 179
+ "__id__": 189
}
],
"_N$interactable": true,
@@ -8475,14 +8970,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 174
+ "__id__": 184
},
"_id": "2bhrCpcRxImqyWzBaIVVCd"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 163
+ "__id__": 173
},
"component": "",
"_componentId": "7fe14dRFQZKSKKAoEn4S7OU",
@@ -8494,13 +8989,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 163
+ "__id__": 173
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 191
}
],
"_prefab": null,
@@ -8556,7 +9051,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 190
},
"_enabled": true,
"_materials": [
@@ -8588,7 +9083,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 173
},
"_enabled": true,
"alignMode": 1,
@@ -8615,7 +9110,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 163
+ "__id__": 173
},
"_enabled": true,
"label": null,
@@ -8631,22 +9126,22 @@
},
"_children": [
{
- "__id__": 185
+ "__id__": 195
},
{
- "__id__": 189
+ "__id__": 199
},
{
- "__id__": 191
+ "__id__": 201
},
{
- "__id__": 197
+ "__id__": 207
}
],
"_active": false,
"_components": [
{
- "__id__": 203
+ "__id__": 213
}
],
"_prefab": null,
@@ -8702,19 +9197,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 186
+ "__id__": 196
},
{
- "__id__": 187
+ "__id__": 197
},
{
- "__id__": 188
+ "__id__": 198
}
],
"_prefab": null,
@@ -8770,7 +9265,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"_materials": [
@@ -8802,7 +9297,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"alignMode": 1,
@@ -8829,7 +9324,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 185
+ "__id__": 195
},
"_enabled": true,
"_id": "7aMdyhm41AyqFZMnIAtTUY"
@@ -8839,13 +9334,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 190
+ "__id__": 200
}
],
"_prefab": null,
@@ -8901,7 +9396,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 189
+ "__id__": 199
},
"_enabled": true,
"_materials": [
@@ -8933,20 +9428,20 @@
"_name": "nextBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [
{
- "__id__": 192
+ "__id__": 202
}
],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 204
},
{
- "__id__": 195
+ "__id__": 205
}
],
"_prefab": null,
@@ -9002,13 +9497,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 191
+ "__id__": 201
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 193
+ "__id__": 203
}
],
"_prefab": null,
@@ -9064,7 +9559,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 202
},
"_enabled": true,
"_materials": [
@@ -9098,7 +9593,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 191
+ "__id__": 201
},
"_enabled": true,
"_materials": [
@@ -9130,7 +9625,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 191
+ "__id__": 201
},
"_enabled": true,
"_normalMaterial": null,
@@ -9139,7 +9634,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 196
+ "__id__": 206
}
],
"_N$interactable": true,
@@ -9195,7 +9690,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 191
+ "__id__": 201
},
"_id": "02dmnqIIhNA7gNoxAqWnCT"
},
@@ -9214,20 +9709,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 184
+ "__id__": 194
},
"_children": [
{
- "__id__": 198
+ "__id__": 208
}
],
"_active": true,
"_components": [
{
- "__id__": 200
+ "__id__": 210
},
{
- "__id__": 201
+ "__id__": 211
}
],
"_prefab": null,
@@ -9283,13 +9778,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 197
+ "__id__": 207
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 199
+ "__id__": 209
}
],
"_prefab": null,
@@ -9345,7 +9840,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 198
+ "__id__": 208
},
"_enabled": true,
"_materials": [
@@ -9379,7 +9874,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 197
+ "__id__": 207
},
"_enabled": true,
"_materials": [
@@ -9411,7 +9906,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 197
+ "__id__": 207
},
"_enabled": true,
"_normalMaterial": null,
@@ -9420,7 +9915,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 202
+ "__id__": 212
}
],
"_N$interactable": true,
@@ -9476,7 +9971,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 197
+ "__id__": 207
},
"_id": "340osYA4tCpJlhedNAxg8f"
},
@@ -9495,7 +9990,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 194
},
"_enabled": true,
"alignMode": 1,
@@ -9526,28 +10021,28 @@
},
"_children": [
{
- "__id__": 205
+ "__id__": 215
},
{
- "__id__": 209
+ "__id__": 219
},
{
- "__id__": 211
+ "__id__": 221
},
{
- "__id__": 283
+ "__id__": 293
},
{
- "__id__": 304
+ "__id__": 314
},
{
- "__id__": 327
+ "__id__": 337
}
],
"_active": false,
"_components": [
{
- "__id__": 348
+ "__id__": 358
}
],
"_prefab": null,
@@ -9603,19 +10098,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 206
+ "__id__": 216
},
{
- "__id__": 207
+ "__id__": 217
},
{
- "__id__": 208
+ "__id__": 218
}
],
"_prefab": null,
@@ -9671,7 +10166,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"_materials": [
@@ -9703,7 +10198,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"alignMode": 1,
@@ -9730,7 +10225,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 215
},
"_enabled": true,
"_id": "c22Pk+4yZHHaEcGiym9WxK"
@@ -9740,13 +10235,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 210
+ "__id__": 220
}
],
"_prefab": null,
@@ -9802,7 +10297,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 209
+ "__id__": 219
},
"_enabled": true,
"_materials": [
@@ -9834,32 +10329,32 @@
"_name": "Time",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
- {
- "__id__": 212
- },
- {
- "__id__": 214
- },
- {
- "__id__": 216
- },
- {
- "__id__": 218
- },
- {
- "__id__": 220
- },
{
"__id__": 222
},
{
- "__id__": 238
+ "__id__": 224
},
{
- "__id__": 277
+ "__id__": 226
+ },
+ {
+ "__id__": 228
+ },
+ {
+ "__id__": 230
+ },
+ {
+ "__id__": 232
+ },
+ {
+ "__id__": 248
+ },
+ {
+ "__id__": 287
}
],
"_active": true,
@@ -9917,13 +10412,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 213
+ "__id__": 223
}
],
"_prefab": null,
@@ -9979,7 +10474,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 212
+ "__id__": 222
},
"_enabled": true,
"_materials": [
@@ -10013,13 +10508,13 @@
"_name": "result_Label1",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 215
+ "__id__": 225
}
],
"_prefab": null,
@@ -10075,7 +10570,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 214
+ "__id__": 224
},
"_enabled": true,
"_materials": [
@@ -10109,13 +10604,13 @@
"_name": "time_show",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 217
+ "__id__": 227
}
],
"_prefab": null,
@@ -10171,7 +10666,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 216
+ "__id__": 226
},
"_enabled": true,
"_materials": [
@@ -10205,13 +10700,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 219
+ "__id__": 229
}
],
"_prefab": null,
@@ -10267,7 +10762,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 218
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10300,13 +10795,13 @@
"_name": "time_hide",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 221
+ "__id__": 231
}
],
"_prefab": null,
@@ -10362,7 +10857,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 220
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10396,35 +10891,35 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
- {
- "__id__": 223
- },
- {
- "__id__": 225
- },
- {
- "__id__": 227
- },
- {
- "__id__": 229
- },
- {
- "__id__": 231
- },
{
"__id__": 233
+ },
+ {
+ "__id__": 235
+ },
+ {
+ "__id__": 237
+ },
+ {
+ "__id__": 239
+ },
+ {
+ "__id__": 241
+ },
+ {
+ "__id__": 243
}
],
"_active": false,
"_components": [
{
- "__id__": 235
+ "__id__": 245
},
{
- "__id__": 236
+ "__id__": 246
}
],
"_prefab": null,
@@ -10480,13 +10975,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 224
+ "__id__": 234
}
],
"_prefab": null,
@@ -10542,7 +11037,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 223
+ "__id__": 233
},
"_enabled": true,
"_materials": [
@@ -10576,13 +11071,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 226
+ "__id__": 236
}
],
"_prefab": null,
@@ -10638,7 +11133,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 225
+ "__id__": 235
},
"_enabled": true,
"_materials": [
@@ -10672,13 +11167,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 238
}
],
"_prefab": null,
@@ -10734,7 +11229,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 237
},
"_enabled": true,
"_materials": [
@@ -10768,13 +11263,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 230
+ "__id__": 240
}
],
"_prefab": null,
@@ -10830,7 +11325,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 239
},
"_enabled": true,
"_materials": [
@@ -10864,13 +11359,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 232
+ "__id__": 242
}
],
"_prefab": null,
@@ -10926,7 +11421,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 231
+ "__id__": 241
},
"_enabled": true,
"_materials": [
@@ -10960,13 +11455,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 222
+ "__id__": 232
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 234
+ "__id__": 244
}
],
"_prefab": null,
@@ -11022,7 +11517,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 243
},
"_enabled": true,
"_materials": [
@@ -11056,7 +11551,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -11090,7 +11585,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 222
+ "__id__": 232
},
"_enabled": true,
"_normalMaterial": null,
@@ -11099,7 +11594,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 237
+ "__id__": 247
}
],
"_N$interactable": true,
@@ -11155,7 +11650,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 222
+ "__id__": 232
},
"_id": "f26wyaXk1ODqKTicGneesK"
},
@@ -11172,41 +11667,41 @@
"_name": "buyBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
{
- "__id__": 239
+ "__id__": 249
},
{
- "__id__": 241
+ "__id__": 251
},
{
- "__id__": 243
+ "__id__": 253
},
{
- "__id__": 245
+ "__id__": 255
},
{
- "__id__": 247
+ "__id__": 257
},
{
- "__id__": 254
+ "__id__": 264
},
{
- "__id__": 263
+ "__id__": 273
},
{
- "__id__": 272
+ "__id__": 282
}
],
"_active": true,
"_components": [
{
- "__id__": 274
+ "__id__": 284
},
{
- "__id__": 275
+ "__id__": 285
}
],
"_prefab": null,
@@ -11262,13 +11757,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 240
+ "__id__": 250
}
],
"_prefab": null,
@@ -11324,7 +11819,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 239
+ "__id__": 249
},
"_enabled": true,
"_materials": [
@@ -11358,13 +11853,13 @@
"_name": "coins_+",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 242
+ "__id__": 252
}
],
"_prefab": null,
@@ -11420,7 +11915,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 241
+ "__id__": 251
},
"_enabled": true,
"_materials": [
@@ -11454,13 +11949,13 @@
"_name": "coins2",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 254
}
],
"_prefab": null,
@@ -11516,7 +12011,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 253
},
"_enabled": true,
"_materials": [
@@ -11550,13 +12045,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 256
}
],
"_prefab": null,
@@ -11612,7 +12107,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 255
},
"_enabled": true,
"_materials": [
@@ -11646,17 +12141,17 @@
"_name": "coin1",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 248
+ "__id__": 258
},
{
- "__id__": 250
+ "__id__": 260
},
{
- "__id__": 252
+ "__id__": 262
}
],
"_active": false,
@@ -11714,13 +12209,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 249
+ "__id__": 259
}
],
"_prefab": null,
@@ -11776,7 +12271,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 248
+ "__id__": 258
},
"_enabled": true,
"_materials": [
@@ -11810,13 +12305,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 251
+ "__id__": 261
}
],
"_prefab": null,
@@ -11872,7 +12367,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 250
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -11906,13 +12401,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 247
+ "__id__": 257
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 253
+ "__id__": 263
}
],
"_prefab": null,
@@ -11968,7 +12463,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 262
},
"_enabled": true,
"_materials": [
@@ -12002,20 +12497,20 @@
"_name": "coin2",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 255
+ "__id__": 265
},
{
- "__id__": 257
+ "__id__": 267
},
{
- "__id__": 259
+ "__id__": 269
},
{
- "__id__": 261
+ "__id__": 271
}
],
"_active": false,
@@ -12073,13 +12568,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 256
+ "__id__": 266
}
],
"_prefab": null,
@@ -12135,7 +12630,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 255
+ "__id__": 265
},
"_enabled": true,
"_materials": [
@@ -12169,13 +12664,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 258
+ "__id__": 268
}
],
"_prefab": null,
@@ -12231,7 +12726,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 257
+ "__id__": 267
},
"_enabled": true,
"_materials": [
@@ -12265,13 +12760,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 260
+ "__id__": 270
}
],
"_prefab": null,
@@ -12327,7 +12822,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 259
+ "__id__": 269
},
"_enabled": true,
"_materials": [
@@ -12361,13 +12856,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 254
+ "__id__": 264
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 262
+ "__id__": 272
}
],
"_prefab": null,
@@ -12423,7 +12918,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 261
+ "__id__": 271
},
"_enabled": true,
"_materials": [
@@ -12457,20 +12952,20 @@
"_name": "coin3",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [
{
- "__id__": 264
+ "__id__": 274
},
{
- "__id__": 266
+ "__id__": 276
},
{
- "__id__": 268
+ "__id__": 278
},
{
- "__id__": 270
+ "__id__": 280
}
],
"_active": false,
@@ -12528,13 +13023,13 @@
"_name": "coins1",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 265
+ "__id__": 275
}
],
"_prefab": null,
@@ -12590,7 +13085,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 264
+ "__id__": 274
},
"_enabled": true,
"_materials": [
@@ -12624,13 +13119,13 @@
"_name": "coins5",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 267
+ "__id__": 277
}
],
"_prefab": null,
@@ -12686,7 +13181,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 266
+ "__id__": 276
},
"_enabled": true,
"_materials": [
@@ -12720,13 +13215,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 269
+ "__id__": 279
}
],
"_prefab": null,
@@ -12782,7 +13277,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 268
+ "__id__": 278
},
"_enabled": true,
"_materials": [
@@ -12816,13 +13311,13 @@
"_name": "coins0",
"_objFlags": 0,
"_parent": {
- "__id__": 263
+ "__id__": 273
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 271
+ "__id__": 281
}
],
"_prefab": null,
@@ -12878,7 +13373,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 270
+ "__id__": 280
},
"_enabled": true,
"_materials": [
@@ -12912,13 +13407,13 @@
"_name": "coins",
"_objFlags": 0,
"_parent": {
- "__id__": 238
+ "__id__": 248
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 273
+ "__id__": 283
}
],
"_prefab": null,
@@ -12974,7 +13469,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 272
+ "__id__": 282
},
"_enabled": true,
"_materials": [
@@ -13008,7 +13503,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 238
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -13040,7 +13535,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 238
+ "__id__": 248
},
"_enabled": true,
"_normalMaterial": null,
@@ -13049,7 +13544,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 276
+ "__id__": 286
}
],
"_N$interactable": true,
@@ -13105,7 +13600,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 238
+ "__id__": 248
},
"_id": "d9X6reFQ5ElIF/oEEoTwvB"
},
@@ -13124,20 +13619,20 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 211
+ "__id__": 221
},
"_children": [
{
- "__id__": 278
+ "__id__": 288
}
],
"_active": true,
"_components": [
{
- "__id__": 280
+ "__id__": 290
},
{
- "__id__": 281
+ "__id__": 291
}
],
"_prefab": null,
@@ -13193,13 +13688,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 277
+ "__id__": 287
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 279
+ "__id__": 289
}
],
"_prefab": null,
@@ -13255,7 +13750,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 278
+ "__id__": 288
},
"_enabled": true,
"_materials": [
@@ -13289,7 +13784,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 277
+ "__id__": 287
},
"_enabled": true,
"_materials": [
@@ -13321,7 +13816,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 277
+ "__id__": 287
},
"_enabled": true,
"_normalMaterial": null,
@@ -13330,7 +13825,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 282
+ "__id__": 292
}
],
"_N$interactable": true,
@@ -13386,7 +13881,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 277
+ "__id__": 287
},
"_id": "48mz2WOYxOmpmmNFGfPFpu"
},
@@ -13405,23 +13900,23 @@
"_name": "Boom",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 284
- },
- {
- "__id__": 286
- },
- {
- "__id__": 288
+ "__id__": 294
},
{
"__id__": 296
},
{
- "__id__": 302
+ "__id__": 298
+ },
+ {
+ "__id__": 306
+ },
+ {
+ "__id__": 312
}
],
"_active": false,
@@ -13479,13 +13974,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 285
+ "__id__": 295
}
],
"_prefab": null,
@@ -13541,7 +14036,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 284
+ "__id__": 294
},
"_enabled": true,
"_materials": [
@@ -13575,13 +14070,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 287
+ "__id__": 297
}
],
"_prefab": null,
@@ -13637,7 +14132,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 286
+ "__id__": 296
},
"_enabled": true,
"_materials": [
@@ -13671,23 +14166,23 @@
"_name": "boomBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [
{
- "__id__": 289
+ "__id__": 299
},
{
- "__id__": 291
+ "__id__": 301
}
],
"_active": false,
"_components": [
{
- "__id__": 293
+ "__id__": 303
},
{
- "__id__": 294
+ "__id__": 304
}
],
"_prefab": null,
@@ -13743,13 +14238,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 288
+ "__id__": 298
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 290
+ "__id__": 300
}
],
"_prefab": null,
@@ -13805,7 +14300,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 289
+ "__id__": 299
},
"_enabled": true,
"_materials": [
@@ -13839,13 +14334,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 288
+ "__id__": 298
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 292
+ "__id__": 302
}
],
"_prefab": null,
@@ -13901,7 +14396,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 291
+ "__id__": 301
},
"_enabled": true,
"_materials": [
@@ -13935,7 +14430,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 298
},
"_enabled": true,
"_materials": [
@@ -13969,7 +14464,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 288
+ "__id__": 298
},
"_enabled": true,
"_normalMaterial": null,
@@ -13978,7 +14473,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 295
+ "__id__": 305
}
],
"_N$interactable": true,
@@ -14034,7 +14529,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 288
+ "__id__": 298
},
"_id": "fdZzVHD4hNAIg80rQMiVrL"
},
@@ -14051,20 +14546,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [
{
- "__id__": 297
+ "__id__": 307
}
],
"_active": true,
"_components": [
{
- "__id__": 299
+ "__id__": 309
},
{
- "__id__": 300
+ "__id__": 310
}
],
"_prefab": null,
@@ -14120,13 +14615,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 296
+ "__id__": 306
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 298
+ "__id__": 308
}
],
"_prefab": null,
@@ -14182,7 +14677,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 297
+ "__id__": 307
},
"_enabled": true,
"_materials": [
@@ -14216,7 +14711,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 296
+ "__id__": 306
},
"_enabled": true,
"_materials": [
@@ -14248,7 +14743,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 296
+ "__id__": 306
},
"_enabled": true,
"_normalMaterial": null,
@@ -14257,7 +14752,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 301
+ "__id__": 311
}
],
"_N$interactable": true,
@@ -14313,7 +14808,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 296
+ "__id__": 306
},
"_id": "55yv+R8WZJC6lx8Nc3Ql1k"
},
@@ -14332,13 +14827,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 283
+ "__id__": 293
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 303
+ "__id__": 313
}
],
"_prefab": null,
@@ -14394,7 +14889,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 302
+ "__id__": 312
},
"_enabled": true,
"_materials": [
@@ -14428,20 +14923,20 @@
"_name": "Lock",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 305
+ "__id__": 315
},
{
- "__id__": 307
+ "__id__": 317
},
{
- "__id__": 309
+ "__id__": 319
},
{
- "__id__": 311
+ "__id__": 321
}
],
"_active": false,
@@ -14499,13 +14994,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 306
+ "__id__": 316
}
],
"_prefab": null,
@@ -14561,7 +15056,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 305
+ "__id__": 315
},
"_enabled": true,
"_materials": [
@@ -14595,13 +15090,13 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 308
+ "__id__": 318
}
],
"_prefab": null,
@@ -14657,7 +15152,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 307
+ "__id__": 317
},
"_enabled": true,
"_materials": [
@@ -14690,13 +15185,13 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 310
+ "__id__": 320
}
],
"_prefab": null,
@@ -14752,7 +15247,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 309
+ "__id__": 319
},
"_enabled": false,
"_materials": [
@@ -14786,35 +15281,35 @@
"_name": "lockBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 304
+ "__id__": 314
},
"_children": [
- {
- "__id__": 312
- },
- {
- "__id__": 314
- },
- {
- "__id__": 316
- },
- {
- "__id__": 318
- },
- {
- "__id__": 320
- },
{
"__id__": 322
+ },
+ {
+ "__id__": 324
+ },
+ {
+ "__id__": 326
+ },
+ {
+ "__id__": 328
+ },
+ {
+ "__id__": 330
+ },
+ {
+ "__id__": 332
}
],
"_active": true,
"_components": [
{
- "__id__": 324
+ "__id__": 334
},
{
- "__id__": 325
+ "__id__": 335
}
],
"_prefab": null,
@@ -14870,13 +15365,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 313
+ "__id__": 323
}
],
"_prefab": null,
@@ -14932,7 +15427,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 312
+ "__id__": 322
},
"_enabled": true,
"_materials": [
@@ -14966,13 +15461,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 315
+ "__id__": 325
}
],
"_prefab": null,
@@ -15028,7 +15523,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 314
+ "__id__": 324
},
"_enabled": true,
"_materials": [
@@ -15062,13 +15557,13 @@
"_name": "number2",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 317
+ "__id__": 327
}
],
"_prefab": null,
@@ -15124,7 +15619,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 316
+ "__id__": 326
},
"_enabled": true,
"_materials": [
@@ -15158,13 +15653,13 @@
"_name": "number1",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 319
+ "__id__": 329
}
],
"_prefab": null,
@@ -15220,7 +15715,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 318
+ "__id__": 328
},
"_enabled": true,
"_materials": [
@@ -15254,13 +15749,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 321
+ "__id__": 331
}
],
"_prefab": null,
@@ -15316,7 +15811,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 320
+ "__id__": 330
},
"_enabled": true,
"_materials": [
@@ -15350,13 +15845,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 311
+ "__id__": 321
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 323
+ "__id__": 333
}
],
"_prefab": null,
@@ -15412,7 +15907,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 322
+ "__id__": 332
},
"_enabled": true,
"_materials": [
@@ -15446,7 +15941,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 321
},
"_enabled": true,
"_materials": [
@@ -15480,7 +15975,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 311
+ "__id__": 321
},
"_enabled": true,
"_normalMaterial": null,
@@ -15489,7 +15984,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 326
+ "__id__": 336
}
],
"_N$interactable": true,
@@ -15545,7 +16040,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 311
+ "__id__": 321
},
"_id": "655dVf4UVDOrfIwT5AEPmn"
},
@@ -15562,23 +16057,23 @@
"_name": "Health",
"_objFlags": 0,
"_parent": {
- "__id__": 204
+ "__id__": 214
},
"_children": [
{
- "__id__": 328
- },
- {
- "__id__": 330
- },
- {
- "__id__": 336
+ "__id__": 338
},
{
"__id__": 340
},
{
"__id__": 346
+ },
+ {
+ "__id__": 350
+ },
+ {
+ "__id__": 356
}
],
"_active": false,
@@ -15636,13 +16131,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 329
+ "__id__": 339
}
],
"_prefab": null,
@@ -15698,7 +16193,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 328
+ "__id__": 338
},
"_enabled": true,
"_materials": [
@@ -15732,20 +16227,20 @@
"_name": "boom_show",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [
{
- "__id__": 331
+ "__id__": 341
},
{
- "__id__": 333
+ "__id__": 343
}
],
"_active": true,
"_components": [
{
- "__id__": 335
+ "__id__": 345
}
],
"_prefab": null,
@@ -15801,13 +16296,13 @@
"_name": "hp_-",
"_objFlags": 0,
"_parent": {
- "__id__": 330
+ "__id__": 340
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 332
+ "__id__": 342
}
],
"_prefab": null,
@@ -15863,7 +16358,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 331
+ "__id__": 341
},
"_enabled": true,
"_materials": [
@@ -15897,13 +16392,13 @@
"_name": "hp_1",
"_objFlags": 0,
"_parent": {
- "__id__": 330
+ "__id__": 340
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 334
+ "__id__": 344
}
],
"_prefab": null,
@@ -15959,7 +16454,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 333
+ "__id__": 343
},
"_enabled": true,
"_materials": [
@@ -15993,7 +16488,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 330
+ "__id__": 340
},
"_enabled": true,
"_materials": [
@@ -16027,16 +16522,16 @@
"_name": "homeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 337
+ "__id__": 347
},
{
- "__id__": 338
+ "__id__": 348
}
],
"_prefab": null,
@@ -16092,7 +16587,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 336
+ "__id__": 346
},
"_enabled": true,
"_materials": [
@@ -16126,7 +16621,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 336
+ "__id__": 346
},
"_enabled": true,
"_normalMaterial": null,
@@ -16135,7 +16630,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 339
+ "__id__": 349
}
],
"_N$interactable": true,
@@ -16191,7 +16686,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 336
+ "__id__": 346
},
"_id": "e6+nQbfBJDk5i7aunx3eFh"
},
@@ -16210,20 +16705,20 @@
"_name": "timeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [
{
- "__id__": 341
+ "__id__": 351
}
],
"_active": true,
"_components": [
{
- "__id__": 343
+ "__id__": 353
},
{
- "__id__": 344
+ "__id__": 354
}
],
"_prefab": null,
@@ -16279,13 +16774,13 @@
"_name": "btn_zi_xhongshi",
"_objFlags": 0,
"_parent": {
- "__id__": 340
+ "__id__": 350
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 342
+ "__id__": 352
}
],
"_prefab": null,
@@ -16341,7 +16836,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 341
+ "__id__": 351
},
"_enabled": true,
"_materials": [
@@ -16375,7 +16870,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 350
},
"_enabled": true,
"_materials": [
@@ -16407,7 +16902,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 340
+ "__id__": 350
},
"_enabled": true,
"_normalMaterial": null,
@@ -16416,7 +16911,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 345
+ "__id__": 355
}
],
"_N$interactable": true,
@@ -16472,7 +16967,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 340
+ "__id__": 350
},
"_id": "bbSZLwLOdIJJ624BuB24QD"
},
@@ -16491,13 +16986,13 @@
"_name": "result_title4",
"_objFlags": 0,
"_parent": {
- "__id__": 327
+ "__id__": 337
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 347
+ "__id__": 357
}
],
"_prefab": null,
@@ -16553,7 +17048,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 346
+ "__id__": 356
},
"_enabled": true,
"_materials": [
@@ -16587,7 +17082,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 204
+ "__id__": 214
},
"_enabled": true,
"alignMode": 1,
@@ -16645,25 +17140,13 @@
},
"_children": [
{
- "__id__": 351
+ "__id__": 361
},
{
- "__id__": 354
+ "__id__": 364
},
{
- "__id__": 356
- },
- {
- "__id__": 363
- },
- {
- "__id__": 365
- },
- {
- "__id__": 369
- },
- {
- "__id__": 371
+ "__id__": 366
},
{
"__id__": 373
@@ -16671,35 +17154,47 @@
{
"__id__": 375
},
- {
- "__id__": 377
- },
{
"__id__": 379
},
{
"__id__": 381
},
+ {
+ "__id__": 383
+ },
{
"__id__": 385
},
+ {
+ "__id__": 387
+ },
{
"__id__": 389
},
{
- "__id__": 393
+ "__id__": 391
},
{
"__id__": 395
},
{
- "__id__": 397
+ "__id__": 399
+ },
+ {
+ "__id__": 403
+ },
+ {
+ "__id__": 405
+ },
+ {
+ "__id__": 407
}
],
"_active": false,
"_components": [
{
- "__id__": 399
+ "__id__": 409
}
],
"_prefab": null,
@@ -16755,16 +17250,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 352
+ "__id__": 362
},
{
- "__id__": 353
+ "__id__": 363
}
],
"_prefab": null,
@@ -16820,7 +17315,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 351
+ "__id__": 361
},
"_enabled": true,
"_materials": [
@@ -16852,7 +17347,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 351
+ "__id__": 361
},
"_enabled": true,
"_id": "081I6vq85Jwqkph7MYgiJK"
@@ -16862,13 +17357,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 355
+ "__id__": 365
}
],
"_prefab": null,
@@ -16924,7 +17419,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 354
+ "__id__": 364
},
"_enabled": true,
"_materials": [
@@ -16956,23 +17451,23 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [
{
- "__id__": 357
+ "__id__": 367
}
],
"_active": true,
"_components": [
{
- "__id__": 359
+ "__id__": 369
},
{
- "__id__": 360
+ "__id__": 370
},
{
- "__id__": 362
+ "__id__": 372
}
],
"_prefab": null,
@@ -17028,13 +17523,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 356
+ "__id__": 366
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 358
+ "__id__": 368
}
],
"_prefab": null,
@@ -17090,7 +17585,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 357
+ "__id__": 367
},
"_enabled": true,
"_materials": [
@@ -17124,7 +17619,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_materials": [
@@ -17158,7 +17653,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_normalMaterial": null,
@@ -17167,7 +17662,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 361
+ "__id__": 371
}
],
"_N$interactable": true,
@@ -17223,7 +17718,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 356
+ "__id__": 366
},
"_id": "10Gq5GdVNFoaGKYCbUkdh0"
},
@@ -17242,7 +17737,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 356
+ "__id__": 366
},
"_enabled": true,
"_id": "48L+wrOmdFHpjlTvLGv0eT"
@@ -17252,13 +17747,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 364
+ "__id__": 374
}
],
"_prefab": null,
@@ -17314,7 +17809,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 363
+ "__id__": 373
},
"_enabled": true,
"_materials": [
@@ -17348,16 +17843,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 366
+ "__id__": 376
},
{
- "__id__": 367
+ "__id__": 377
}
],
"_prefab": null,
@@ -17413,7 +17908,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 365
+ "__id__": 375
},
"_enabled": true,
"_materials": [
@@ -17447,7 +17942,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 365
+ "__id__": 375
},
"_enabled": true,
"_normalMaterial": null,
@@ -17456,7 +17951,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 368
+ "__id__": 378
}
],
"_N$interactable": true,
@@ -17512,7 +18007,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 365
+ "__id__": 375
},
"_id": "9cyVET3cdKsYjhCs6UcCZp"
},
@@ -17531,13 +18026,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 370
+ "__id__": 380
}
],
"_prefab": null,
@@ -17593,7 +18088,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 369
+ "__id__": 379
},
"_enabled": true,
"_materials": [
@@ -17627,13 +18122,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 372
+ "__id__": 382
}
],
"_prefab": null,
@@ -17689,7 +18184,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 371
+ "__id__": 381
},
"_enabled": true,
"_materials": [
@@ -17723,13 +18218,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 374
+ "__id__": 384
}
],
"_prefab": null,
@@ -17785,7 +18280,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 373
+ "__id__": 383
},
"_enabled": true,
"_materials": [
@@ -17819,13 +18314,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 376
+ "__id__": 386
}
],
"_prefab": null,
@@ -17881,7 +18376,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 375
+ "__id__": 385
},
"_enabled": true,
"_materials": [
@@ -17915,13 +18410,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 378
+ "__id__": 388
}
],
"_prefab": null,
@@ -17977,7 +18472,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 377
+ "__id__": 387
},
"_enabled": true,
"_materials": [
@@ -18011,13 +18506,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 380
+ "__id__": 390
}
],
"_prefab": null,
@@ -18073,7 +18568,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 379
+ "__id__": 389
},
"_enabled": true,
"_materials": [
@@ -18107,16 +18602,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 382
+ "__id__": 392
},
{
- "__id__": 383
+ "__id__": 393
}
],
"_prefab": null,
@@ -18172,7 +18667,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 391
},
"_enabled": true,
"_materials": [
@@ -18206,7 +18701,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 381
+ "__id__": 391
},
"_enabled": true,
"_normalMaterial": null,
@@ -18215,7 +18710,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 384
+ "__id__": 394
}
],
"_N$interactable": true,
@@ -18271,14 +18766,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 381
+ "__id__": 391
},
"_id": "f5jlj3QZFNUoLmIDeOTDNk"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18290,16 +18785,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 386
+ "__id__": 396
},
{
- "__id__": 387
+ "__id__": 397
}
],
"_prefab": null,
@@ -18355,7 +18850,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 395
},
"_enabled": true,
"_materials": [
@@ -18389,7 +18884,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 385
+ "__id__": 395
},
"_enabled": true,
"_normalMaterial": null,
@@ -18398,7 +18893,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 388
+ "__id__": 398
}
],
"_N$interactable": true,
@@ -18454,14 +18949,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 385
+ "__id__": 395
},
"_id": "f7PV5tqLpANY2mQ5mNiG8G"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18473,16 +18968,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 390
+ "__id__": 400
},
{
- "__id__": 391
+ "__id__": 401
}
],
"_prefab": null,
@@ -18538,7 +19033,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 399
},
"_enabled": true,
"_materials": [
@@ -18572,7 +19067,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 389
+ "__id__": 399
},
"_enabled": true,
"_normalMaterial": null,
@@ -18581,7 +19076,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 392
+ "__id__": 402
}
],
"_N$interactable": true,
@@ -18637,14 +19132,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 389
+ "__id__": 399
},
"_id": "f9Y6q5sbpGXrDTpVBgbvWY"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 350
+ "__id__": 360
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -18656,13 +19151,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 394
+ "__id__": 404
}
],
"_prefab": null,
@@ -18718,7 +19213,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 393
+ "__id__": 403
},
"_enabled": true,
"_materials": [
@@ -18752,13 +19247,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 396
+ "__id__": 406
}
],
"_prefab": null,
@@ -18814,7 +19309,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 395
+ "__id__": 405
},
"_enabled": true,
"_materials": [
@@ -18848,13 +19343,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 350
+ "__id__": 360
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 398
+ "__id__": 408
}
],
"_prefab": null,
@@ -18910,7 +19405,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 397
+ "__id__": 407
},
"_enabled": true,
"_materials": [
@@ -18944,17 +19439,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 350
+ "__id__": 360
},
"_enabled": true,
"music": {
- "__id__": 393
+ "__id__": 403
},
"effect": {
- "__id__": 395
+ "__id__": 405
},
"vibrate": {
- "__id__": 397
+ "__id__": 407
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -18975,10 +19470,10 @@
"_active": false,
"_components": [
{
- "__id__": 401
+ "__id__": 411
},
{
- "__id__": 402
+ "__id__": 412
}
],
"_prefab": null,
@@ -19034,7 +19529,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 400
+ "__id__": 410
},
"_enabled": true,
"_materials": [
@@ -19076,7 +19571,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 400
+ "__id__": 410
},
"_enabled": false,
"_id": "00qpMLeBFNhYRX9r3QZvyP"
@@ -19139,13 +19634,13 @@
"__id__": 19
},
"hammer": {
- "__id__": 21
+ "__id__": 23
},
"magic_wand": {
- "__id__": 30
+ "__id__": 32
},
"pause": {
- "__id__": 39
+ "__id__": 41
},
"Block_Array": [],
"Wall_Prefab": [],
diff --git a/temp/BackupAssets/assets/Scene/HomeScene.fire b/temp/BackupAssets/assets/Scene/HomeScene.fire
index 341ce4e..0150f6b 100644
--- a/temp/BackupAssets/assets/Scene/HomeScene.fire
+++ b/temp/BackupAssets/assets/Scene/HomeScene.fire
@@ -178,31 +178,31 @@
"__id__": 7
},
{
- "__id__": 117
+ "__id__": 128
},
{
- "__id__": 161
+ "__id__": 172
},
{
- "__id__": 179
+ "__id__": 190
},
{
- "__id__": 199
+ "__id__": 210
},
{
- "__id__": 252
+ "__id__": 263
}
],
"_active": true,
"_components": [
{
- "__id__": 254
+ "__id__": 265
},
{
- "__id__": 255
+ "__id__": 266
},
{
- "__id__": 256
+ "__id__": 267
}
],
"_prefab": null,
@@ -378,16 +378,16 @@
"__id__": 80
},
{
- "__id__": 103
+ "__id__": 114
},
{
- "__id__": 108
+ "__id__": 119
}
],
"_active": true,
"_components": [
{
- "__id__": 116
+ "__id__": 127
}
],
"_prefab": null,
@@ -3852,22 +3852,28 @@
"__id__": 81
},
{
- "__id__": 83
+ "__id__": 85
},
{
- "__id__": 89
+ "__id__": 87
},
{
"__id__": 95
+ },
+ {
+ "__id__": 103
}
],
"_active": false,
"_components": [
{
- "__id__": 101
+ "__id__": 111
},
{
- "__id__": 102
+ "__id__": 112
+ },
+ {
+ "__id__": 113
}
],
"_prefab": null,
@@ -3920,7 +3926,7 @@
},
{
"__type__": "cc.Node",
- "_name": "tiaodik",
+ "_name": "New Node",
"_objFlags": 0,
"_parent": {
"__id__": 80
@@ -3930,6 +3936,180 @@
"_components": [
{
"__id__": 82
+ },
+ {
+ "__id__": 83
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1080,
+ "height": 1920
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ 0,
+ 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": "e8tNdSTsxI0oc8XZZW12JO"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "alignMode": 1,
+ "_target": null,
+ "_alignFlags": 45,
+ "_left": -463,
+ "_right": -463,
+ "_top": -661,
+ "_bottom": -661,
+ "_verticalCenter": 0,
+ "_horizontalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 1080,
+ "_originalHeight": 1920,
+ "_id": "41pHA/iYdFla4bJbJUEtrE"
+ },
+ {
+ "__type__": "cc.Button",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 81
+ },
+ "_enabled": true,
+ "_normalMaterial": null,
+ "_grayMaterial": null,
+ "duration": 0.1,
+ "zoomScale": 1.2,
+ "clickEvents": [
+ {
+ "__id__": 84
+ }
+ ],
+ "_N$interactable": true,
+ "_N$enableAutoGrayEffect": false,
+ "_N$transition": 0,
+ "transition": 0,
+ "_N$normalColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "_N$hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$disabledColor": {
+ "__type__": "cc.Color",
+ "r": 124,
+ "g": 124,
+ "b": 124,
+ "a": 255
+ },
+ "_N$normalSprite": null,
+ "_N$pressedSprite": null,
+ "pressedSprite": null,
+ "_N$hoverSprite": null,
+ "hoverSprite": null,
+ "_N$disabledSprite": null,
+ "_N$target": null,
+ "_id": "252ICggOxKkbSkMoonQTOU"
+ },
+ {
+ "__type__": "cc.ClickEvent",
+ "target": {
+ "__id__": 80
+ },
+ "component": "",
+ "_componentId": "19d952d5kVBrLSzAIGeElFK",
+ "handler": "closeUi",
+ "customEventData": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "tiaodik",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 80
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 86
}
],
"_prefab": null,
@@ -3985,7 +4165,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 81
+ "__id__": 85
},
"_enabled": true,
"_materials": [
@@ -3996,7 +4176,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "abe182b3-b936-4f20-ba7c-8d2456d35c89"
+ "__uuid__": "7253fc88-be8f-46c1-933b-0b730a63e20b"
},
"_type": 0,
"_sizeMode": 1,
@@ -4009,7 +4189,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "86L4gO+JlM/bf6mEXs44/n"
},
{
@@ -4021,16 +4203,19 @@
},
"_children": [
{
- "__id__": 84
+ "__id__": 88
},
{
- "__id__": 86
+ "__id__": 90
+ },
+ {
+ "__id__": 92
}
],
"_active": true,
"_components": [
{
- "__id__": 88
+ "__id__": 94
}
],
"_prefab": null,
@@ -4086,13 +4271,13 @@
"_name": "闊充箰00",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 85
+ "__id__": 89
}
],
"_prefab": null,
@@ -4148,7 +4333,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 84
+ "__id__": 88
},
"_enabled": true,
"_materials": [
@@ -4159,7 +4344,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "341042f4-0224-41f0-a6a3-91e723dbdce1"
+ "__uuid__": "d9d890d7-401a-4ccd-b8fc-be3439203d65"
},
"_type": 0,
"_sizeMode": 1,
@@ -4172,7 +4357,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "453TPzj9lFAJfI67H3x3FM"
},
{
@@ -4180,13 +4367,13 @@
"_name": "闊充箰01",
"_objFlags": 0,
"_parent": {
- "__id__": 83
+ "__id__": 87
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 87
+ "__id__": 91
}
],
"_prefab": null,
@@ -4242,7 +4429,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 86
+ "__id__": 90
},
"_enabled": true,
"_materials": [
@@ -4253,7 +4440,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "e6f3c660-cfa7-4368-b36d-609458c5678b"
+ "__uuid__": "694fb9cc-9eba-4bc4-ae86-d586e34da96e"
},
"_type": 0,
"_sizeMode": 1,
@@ -4266,15 +4453,113 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
"_id": "a9hNzWp4xAqImydzVwg0GG"
},
+ {
+ "__type__": "cc.Node",
+ "_name": "音乐字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 87
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 93
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 72,
+ "height": 38
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "4doxZtcpZIrZCA41SMiMjS"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 92
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "2ed36b2a-6f4b-458e-bd4e-4ade8fcf0d92"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "f7UVr5raRF/5HTo3KzPhgp"
+ },
{
"__type__": "cc.Toggle",
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 83
+ "__id__": 87
},
"_enabled": true,
"_normalMaterial": null,
@@ -4335,12 +4620,12 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 83
+ "__id__": 87
},
"_N$isChecked": false,
"toggleGroup": null,
"checkMark": {
- "__id__": 87
+ "__id__": 91
},
"checkEvents": [],
"_id": "c09/yHVMJDoam/VbhBXxcH"
@@ -4354,16 +4639,19 @@
},
"_children": [
{
- "__id__": 90
+ "__id__": 96
},
{
- "__id__": 92
+ "__id__": 98
+ },
+ {
+ "__id__": 100
}
],
"_active": true,
"_components": [
{
- "__id__": 94
+ "__id__": 102
}
],
"_prefab": null,
@@ -4418,339 +4706,6 @@
"__type__": "cc.Node",
"_name": "闊虫晥00",
"_objFlags": 0,
- "_parent": {
- "__id__": 89
- },
- "_children": [],
- "_active": true,
- "_components": [
- {
- "__id__": 91
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- 0,
- 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": "b9Z31M2rZM54FWau1g1ZT8"
- },
- {
- "__type__": "cc.Sprite",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 90
- },
- "_enabled": true,
- "_materials": [
- {
- "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
- }
- ],
- "_srcBlendFactor": 770,
- "_dstBlendFactor": 771,
- "_spriteFrame": {
- "__uuid__": "d56be779-2bae-49dd-ade4-41a2154e4f83"
- },
- "_type": 0,
- "_sizeMode": 1,
- "_fillType": 0,
- "_fillCenter": {
- "__type__": "cc.Vec2",
- "x": 0,
- "y": 0
- },
- "_fillStart": 0,
- "_fillRange": 0,
- "_isTrimmedMode": true,
- "_atlas": null,
- "_id": "bfjq1Fa2VHOZgZQWZuOEXX"
- },
- {
- "__type__": "cc.Node",
- "_name": "闊虫晥01",
- "_objFlags": 0,
- "_parent": {
- "__id__": 89
- },
- "_children": [],
- "_active": false,
- "_components": [
- {
- "__id__": 93
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- 0,
- 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": "2aCrXDpFlK1Y1LFC/H773f"
- },
- {
- "__type__": "cc.Sprite",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 92
- },
- "_enabled": true,
- "_materials": [
- {
- "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
- }
- ],
- "_srcBlendFactor": 770,
- "_dstBlendFactor": 771,
- "_spriteFrame": {
- "__uuid__": "8dff3740-d0f0-4fb7-8b47-61acb1349b7a"
- },
- "_type": 0,
- "_sizeMode": 1,
- "_fillType": 0,
- "_fillCenter": {
- "__type__": "cc.Vec2",
- "x": 0,
- "y": 0
- },
- "_fillStart": 0,
- "_fillRange": 0,
- "_isTrimmedMode": true,
- "_atlas": null,
- "_id": "ebNOH+XrVEHa79CBGqx5bw"
- },
- {
- "__type__": "cc.Toggle",
- "_name": "",
- "_objFlags": 0,
- "node": {
- "__id__": 89
- },
- "_enabled": true,
- "_normalMaterial": null,
- "_grayMaterial": null,
- "duration": 0.1,
- "zoomScale": 1.2,
- "clickEvents": [],
- "_N$interactable": true,
- "_N$enableAutoGrayEffect": false,
- "_N$transition": 0,
- "transition": 0,
- "_N$normalColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_N$pressedColor": {
- "__type__": "cc.Color",
- "r": 211,
- "g": 211,
- "b": 211,
- "a": 255
- },
- "pressedColor": {
- "__type__": "cc.Color",
- "r": 211,
- "g": 211,
- "b": 211,
- "a": 255
- },
- "_N$hoverColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "hoverColor": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_N$disabledColor": {
- "__type__": "cc.Color",
- "r": 124,
- "g": 124,
- "b": 124,
- "a": 255
- },
- "_N$normalSprite": null,
- "_N$pressedSprite": null,
- "pressedSprite": null,
- "_N$hoverSprite": null,
- "hoverSprite": null,
- "_N$disabledSprite": null,
- "_N$target": {
- "__id__": 89
- },
- "_N$isChecked": false,
- "toggleGroup": null,
- "checkMark": {
- "__id__": 93
- },
- "checkEvents": [],
- "_id": "b9cAW4AvdAXZdGsjzb8ZZf"
- },
- {
- "__type__": "cc.Node",
- "_name": "zhendong",
- "_objFlags": 0,
- "_parent": {
- "__id__": 80
- },
- "_children": [
- {
- "__id__": 96
- },
- {
- "__id__": 98
- }
- ],
- "_active": true,
- "_components": [
- {
- "__id__": 100
- }
- ],
- "_prefab": null,
- "_opacity": 255,
- "_color": {
- "__type__": "cc.Color",
- "r": 255,
- "g": 255,
- "b": 255,
- "a": 255
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 116,
- "height": 122
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_trs": {
- "__type__": "TypedArray",
- "ctor": "Float64Array",
- "array": [
- 0,
- -181,
- 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": "a8YH618gdGCrUOoZdEgCsJ"
- },
- {
- "__type__": "cc.Node",
- "_name": "闇囧姩00",
- "_objFlags": 0,
"_parent": {
"__id__": 95
},
@@ -4807,7 +4762,7 @@
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
- "_id": "c5vAS0+N5A67AhLyHe/kRM"
+ "_id": "b9Z31M2rZM54FWau1g1ZT8"
},
{
"__type__": "cc.Sprite",
@@ -4825,7 +4780,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "cadd896f-dd2c-43fa-8788-334576768186"
+ "__uuid__": "69822a33-016b-48a4-a4eb-d42755666efc"
},
"_type": 0,
"_sizeMode": 1,
@@ -4838,12 +4793,14 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
- "_id": "fb9In1Ki5NRJoR+ASxwH6D"
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "bfjq1Fa2VHOZgZQWZuOEXX"
},
{
"__type__": "cc.Node",
- "_name": "闇囧姩01",
+ "_name": "闊虫晥01",
"_objFlags": 0,
"_parent": {
"__id__": 95
@@ -4901,7 +4858,7 @@
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
- "_id": "c9Piiqj/9N7Lv1YMnn4p6T"
+ "_id": "2aCrXDpFlK1Y1LFC/H773f"
},
{
"__type__": "cc.Sprite",
@@ -4919,7 +4876,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "6f871c8f-5b0f-4063-a6f6-290947cc7e44"
+ "__uuid__": "55afd81e-884b-4160-9e4b-6f9d4ca97554"
},
"_type": 0,
"_sizeMode": 1,
@@ -4932,8 +4889,106 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
- "_id": "b4FcAyEHpGjIYB1ndEaO5N"
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "ebNOH+XrVEHa79CBGqx5bw"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "音效字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 95
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 101
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 73,
+ "height": 38
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "93HwhjXtZEq6lLKV34kCBv"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 100
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "2a0977c4-0886-4e75-aee9-25002bdcb297"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "feBIgKuQtF5pWUBQIXgVjQ"
},
{
"__type__": "cc.Toggle",
@@ -5009,6 +5064,442 @@
"__id__": 99
},
"checkEvents": [],
+ "_id": "b9cAW4AvdAXZdGsjzb8ZZf"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "zhendong",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 80
+ },
+ "_children": [
+ {
+ "__id__": 104
+ },
+ {
+ "__id__": 106
+ },
+ {
+ "__id__": 108
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 110
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -181,
+ 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": "a8YH618gdGCrUOoZdEgCsJ"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "闇囧姩00",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 105
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ 0,
+ 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": "c5vAS0+N5A67AhLyHe/kRM"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 104
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "39026068-bd1b-4c1f-9a92-28b67312a93d"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "fb9In1Ki5NRJoR+ASxwH6D"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "闇囧姩01",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": false,
+ "_components": [
+ {
+ "__id__": 107
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 116,
+ "height": 122
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ 0,
+ 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": "c9Piiqj/9N7Lv1YMnn4p6T"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 106
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "d64ec358-d205-4605-8d70-4a9b60c4fe31"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "b4FcAyEHpGjIYB1ndEaO5N"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "震动字",
+ "_objFlags": 0,
+ "_parent": {
+ "__id__": 103
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 109
+ }
+ ],
+ "_prefab": null,
+ "_opacity": 255,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 74,
+ "height": 39
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_trs": {
+ "__type__": "TypedArray",
+ "ctor": "Float64Array",
+ "array": [
+ 0,
+ -82.393,
+ 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": "2cfWG8IzxHh4I7/JJlyX+A"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 108
+ },
+ "_enabled": true,
+ "_materials": [
+ {
+ "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+ }
+ ],
+ "_srcBlendFactor": 770,
+ "_dstBlendFactor": 771,
+ "_spriteFrame": {
+ "__uuid__": "c40825bb-b96a-4b65-8966-4e8a81f2d44a"
+ },
+ "_type": 0,
+ "_sizeMode": 1,
+ "_fillType": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_atlas": {
+ "__uuid__": "373b1886-4974-4bc1-97c8-1a87410cf7fe"
+ },
+ "_id": "6cLP2TnU5DW7CA+QvhiObw"
+ },
+ {
+ "__type__": "cc.Toggle",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 103
+ },
+ "_enabled": true,
+ "_normalMaterial": null,
+ "_grayMaterial": null,
+ "duration": 0.1,
+ "zoomScale": 1.2,
+ "clickEvents": [],
+ "_N$interactable": true,
+ "_N$enableAutoGrayEffect": false,
+ "_N$transition": 0,
+ "transition": 0,
+ "_N$normalColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "pressedColor": {
+ "__type__": "cc.Color",
+ "r": 211,
+ "g": 211,
+ "b": 211,
+ "a": 255
+ },
+ "_N$hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "hoverColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_N$disabledColor": {
+ "__type__": "cc.Color",
+ "r": 124,
+ "g": 124,
+ "b": 124,
+ "a": 255
+ },
+ "_N$normalSprite": null,
+ "_N$pressedSprite": null,
+ "pressedSprite": null,
+ "_N$hoverSprite": null,
+ "hoverSprite": null,
+ "_N$disabledSprite": null,
+ "_N$target": {
+ "__id__": 103
+ },
+ "_N$isChecked": false,
+ "toggleGroup": null,
+ "checkMark": {
+ "__id__": 107
+ },
+ "checkEvents": [],
"_id": "f9H3N/MqVI0ZJ6D1GMBA4u"
},
{
@@ -5051,7 +5542,9 @@
"__id__": 80
},
"_enabled": true,
- "_defaultClip": null,
+ "_defaultClip": {
+ "__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031"
+ },
"_clips": [
{
"__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031"
@@ -5060,6 +5553,25 @@
"playOnLoad": false,
"_id": "06zhlax2BIgq2BGFohNQeX"
},
+ {
+ "__type__": "19d952d5kVBrLSzAIGeElFK",
+ "_name": "",
+ "_objFlags": 0,
+ "node": {
+ "__id__": 80
+ },
+ "_enabled": true,
+ "music": {
+ "__id__": 87
+ },
+ "effect": {
+ "__id__": 95
+ },
+ "vibrate": {
+ "__id__": 103
+ },
+ "_id": "09T1CBxRNLYrp9d2cfApFS"
+ },
{
"__type__": "cc.Node",
"_name": "shezhiBtn",
@@ -5069,13 +5581,13 @@
},
"_children": [
{
- "__id__": 104
+ "__id__": 115
}
],
"_active": true,
"_components": [
{
- "__id__": 106
+ "__id__": 117
}
],
"_prefab": null,
@@ -5131,13 +5643,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 103
+ "__id__": 114
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 105
+ "__id__": 116
}
],
"_prefab": null,
@@ -5193,7 +5705,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 104
+ "__id__": 115
},
"_enabled": true,
"_materials": [
@@ -5227,7 +5739,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 103
+ "__id__": 114
},
"_enabled": true,
"_normalMaterial": null,
@@ -5236,7 +5748,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 107
+ "__id__": 118
}
],
"_N$interactable": true,
@@ -5292,7 +5804,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 103
+ "__id__": 114
},
"_id": "02bgX7BW9KmbZ6ke3vsVWy"
},
@@ -5303,7 +5815,7 @@
},
"component": "",
"_componentId": "1dc93b4fehOrpGgTkihBH4g",
- "handler": "openPause",
+ "handler": "openSet",
"customEventData": ""
},
{
@@ -5315,13 +5827,13 @@
},
"_children": [
{
- "__id__": 109
+ "__id__": 120
}
],
"_active": true,
"_components": [
{
- "__id__": 114
+ "__id__": 125
}
],
"_prefab": null,
@@ -5377,20 +5889,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
- "__id__": 108
+ "__id__": 119
},
"_children": [
{
- "__id__": 110
+ "__id__": 121
}
],
"_active": true,
"_components": [
{
- "__id__": 112
+ "__id__": 123
},
{
- "__id__": 113
+ "__id__": 124
}
],
"_prefab": null,
@@ -5446,13 +5958,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
- "__id__": 109
+ "__id__": 120
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 111
+ "__id__": 122
}
],
"_prefab": null,
@@ -5508,7 +6020,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 110
+ "__id__": 121
},
"_enabled": true,
"_materials": [
@@ -5541,7 +6053,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 109
+ "__id__": 120
},
"_enabled": true,
"_materials": [
@@ -5573,7 +6085,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 109
+ "__id__": 120
},
"_enabled": true,
"alignMode": 0,
@@ -5600,7 +6112,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 108
+ "__id__": 119
},
"_enabled": true,
"_normalMaterial": null,
@@ -5609,7 +6121,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 115
+ "__id__": 126
}
],
"_N$interactable": true,
@@ -5677,7 +6189,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
- "__id__": 109
+ "__id__": 120
},
"_id": "88UX+E3n9ImZvBg4tRwHFR"
},
@@ -5727,25 +6239,25 @@
},
"_children": [
{
- "__id__": 118
+ "__id__": 129
},
{
- "__id__": 122
+ "__id__": 133
},
{
- "__id__": 124
+ "__id__": 135
},
{
- "__id__": 152
+ "__id__": 163
},
{
- "__id__": 156
+ "__id__": 167
}
],
"_active": false,
"_components": [
{
- "__id__": 160
+ "__id__": 171
}
],
"_prefab": null,
@@ -5801,19 +6313,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 119
+ "__id__": 130
},
{
- "__id__": 120
+ "__id__": 131
},
{
- "__id__": 121
+ "__id__": 132
}
],
"_prefab": null,
@@ -5869,7 +6381,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"_materials": [
@@ -5901,7 +6413,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"alignMode": 1,
@@ -5928,7 +6440,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 118
+ "__id__": 129
},
"_enabled": true,
"_id": "dfDCcIpbVJQaLDWZH9iaPD"
@@ -5938,13 +6450,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 123
+ "__id__": 134
}
],
"_prefab": null,
@@ -6000,7 +6512,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 122
+ "__id__": 133
},
"_enabled": true,
"_materials": [
@@ -6030,47 +6542,47 @@
"_name": "rank",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [
{
- "__id__": 125
+ "__id__": 136
},
{
- "__id__": 127
+ "__id__": 138
},
{
- "__id__": 129
+ "__id__": 140
},
{
- "__id__": 131
+ "__id__": 142
},
{
- "__id__": 133
+ "__id__": 144
},
{
- "__id__": 135
+ "__id__": 146
},
{
- "__id__": 137
+ "__id__": 148
},
{
- "__id__": 139
+ "__id__": 150
},
{
- "__id__": 141
+ "__id__": 152
},
{
- "__id__": 143
+ "__id__": 154
},
{
- "__id__": 145
+ "__id__": 156
}
],
"_active": true,
"_components": [
{
- "__id__": 151
+ "__id__": 162
}
],
"_prefab": null,
@@ -6126,13 +6638,13 @@
"_name": "paihang1_1_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 126
+ "__id__": 137
}
],
"_prefab": null,
@@ -6188,7 +6700,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 125
+ "__id__": 136
},
"_enabled": true,
"_materials": [
@@ -6218,13 +6730,13 @@
"_name": "paihang1_2_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 128
+ "__id__": 139
}
],
"_prefab": null,
@@ -6280,7 +6792,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 127
+ "__id__": 138
},
"_enabled": true,
"_materials": [
@@ -6310,13 +6822,13 @@
"_name": "paihang1_3_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 130
+ "__id__": 141
}
],
"_prefab": null,
@@ -6372,7 +6884,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 129
+ "__id__": 140
},
"_enabled": true,
"_materials": [
@@ -6402,13 +6914,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 132
+ "__id__": 143
}
],
"_prefab": null,
@@ -6464,7 +6976,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 131
+ "__id__": 142
},
"_enabled": true,
"_materials": [
@@ -6494,13 +7006,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 134
+ "__id__": 145
}
],
"_prefab": null,
@@ -6556,7 +7068,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 133
+ "__id__": 144
},
"_enabled": true,
"_materials": [
@@ -6586,13 +7098,13 @@
"_name": "paihang1_4_2",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 136
+ "__id__": 147
}
],
"_prefab": null,
@@ -6648,7 +7160,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 135
+ "__id__": 146
},
"_enabled": true,
"_materials": [
@@ -6678,13 +7190,13 @@
"_name": "icon",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 138
+ "__id__": 149
}
],
"_prefab": null,
@@ -6740,7 +7252,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 137
+ "__id__": 148
},
"_enabled": true,
"_materials": [
@@ -6772,13 +7284,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 140
+ "__id__": 151
}
],
"_prefab": null,
@@ -6834,7 +7346,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 139
+ "__id__": 150
},
"_enabled": true,
"_materials": [
@@ -6867,13 +7379,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 142
+ "__id__": 153
}
],
"_prefab": null,
@@ -6929,7 +7441,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 141
+ "__id__": 152
},
"_enabled": true,
"_materials": [
@@ -6962,13 +7474,13 @@
"_name": "shuzi3_6",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 144
+ "__id__": 155
}
],
"_prefab": null,
@@ -7024,7 +7536,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 143
+ "__id__": 154
},
"_enabled": true,
"_materials": [
@@ -7054,20 +7566,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 124
+ "__id__": 135
},
"_children": [
{
- "__id__": 146
+ "__id__": 157
}
],
"_active": true,
"_components": [
{
- "__id__": 148
+ "__id__": 159
},
{
- "__id__": 149
+ "__id__": 160
}
],
"_prefab": null,
@@ -7123,13 +7635,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 145
+ "__id__": 156
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 147
+ "__id__": 158
}
],
"_prefab": null,
@@ -7185,7 +7697,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 146
+ "__id__": 157
},
"_enabled": true,
"_materials": [
@@ -7219,7 +7731,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 156
},
"_enabled": true,
"_materials": [
@@ -7253,7 +7765,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 145
+ "__id__": 156
},
"_enabled": true,
"_normalMaterial": null,
@@ -7262,7 +7774,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 150
+ "__id__": 161
}
],
"_N$interactable": true,
@@ -7318,7 +7830,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 145
+ "__id__": 156
},
"_id": "0b4hiJfolDCqERI+qJ8NNt"
},
@@ -7335,7 +7847,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 124
+ "__id__": 135
},
"_enabled": true,
"_materials": [
@@ -7365,17 +7877,17 @@
"_name": "logo",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [
{
- "__id__": 153
+ "__id__": 164
}
],
"_active": false,
"_components": [
{
- "__id__": 155
+ "__id__": 166
}
],
"_prefab": null,
@@ -7431,13 +7943,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 152
+ "__id__": 163
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 154
+ "__id__": 165
}
],
"_prefab": null,
@@ -7493,7 +8005,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 153
+ "__id__": 164
},
"_enabled": true,
"_materials": [
@@ -7526,7 +8038,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 152
+ "__id__": 163
},
"_enabled": true,
"_materials": [
@@ -7560,16 +8072,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 117
+ "__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 157
+ "__id__": 168
},
{
- "__id__": 158
+ "__id__": 169
}
],
"_prefab": null,
@@ -7625,7 +8137,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 156
+ "__id__": 167
},
"_enabled": true,
"_materials": [
@@ -7659,7 +8171,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 156
+ "__id__": 167
},
"_enabled": true,
"_normalMaterial": null,
@@ -7668,7 +8180,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 159
+ "__id__": 170
}
],
"_N$interactable": true,
@@ -7724,7 +8236,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 156
+ "__id__": 167
},
"_id": "aeOKxuEtVBQ76OAxASWQGP"
},
@@ -7743,7 +8255,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 117
+ "__id__": 128
},
"_enabled": true,
"alignMode": 1,
@@ -7774,13 +8286,13 @@
},
"_children": [
{
- "__id__": 162
+ "__id__": 173
},
{
- "__id__": 165
+ "__id__": 176
},
{
- "__id__": 167
+ "__id__": 178
}
],
"_active": false,
@@ -7838,16 +8350,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 163
+ "__id__": 174
},
{
- "__id__": 164
+ "__id__": 175
}
],
"_prefab": null,
@@ -7903,7 +8415,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 173
},
"_enabled": true,
"_materials": [
@@ -7935,7 +8447,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 162
+ "__id__": 173
},
"_enabled": true,
"_id": "6eAfAN7PxP8LBtlAPfR/Ia"
@@ -7945,13 +8457,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [],
"_active": false,
"_components": [
{
- "__id__": 166
+ "__id__": 177
}
],
"_prefab": null,
@@ -8007,7 +8519,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 165
+ "__id__": 176
},
"_enabled": true,
"_materials": [
@@ -8037,20 +8549,20 @@
"_name": "reward",
"_objFlags": 0,
"_parent": {
- "__id__": 161
+ "__id__": 172
},
"_children": [
{
- "__id__": 168
+ "__id__": 179
},
{
- "__id__": 172
+ "__id__": 183
}
],
"_active": true,
"_components": [
{
- "__id__": 178
+ "__id__": 189
}
],
"_prefab": null,
@@ -8106,16 +8618,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 178
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 169
+ "__id__": 180
},
{
- "__id__": 170
+ "__id__": 181
}
],
"_prefab": null,
@@ -8171,7 +8683,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 179
},
"_enabled": true,
"_materials": [
@@ -8205,7 +8717,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 168
+ "__id__": 179
},
"_enabled": true,
"_normalMaterial": null,
@@ -8214,7 +8726,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 171
+ "__id__": 182
}
],
"_N$interactable": true,
@@ -8270,7 +8782,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 168
+ "__id__": 179
},
"_id": "8697ar7LREtafp+rIsxcSE"
},
@@ -8289,20 +8801,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 167
+ "__id__": 178
},
"_children": [
{
- "__id__": 173
+ "__id__": 184
}
],
"_active": true,
"_components": [
{
- "__id__": 175
+ "__id__": 186
},
{
- "__id__": 176
+ "__id__": 187
}
],
"_prefab": null,
@@ -8358,13 +8870,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 172
+ "__id__": 183
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 174
+ "__id__": 185
}
],
"_prefab": null,
@@ -8420,7 +8932,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 173
+ "__id__": 184
},
"_enabled": true,
"_materials": [
@@ -8454,7 +8966,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 183
},
"_enabled": true,
"_materials": [
@@ -8488,7 +9000,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 172
+ "__id__": 183
},
"_enabled": true,
"_normalMaterial": null,
@@ -8497,7 +9009,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 177
+ "__id__": 188
}
],
"_N$interactable": true,
@@ -8553,7 +9065,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 172
+ "__id__": 183
},
"_id": "a99do5CqxGB7rnced8tB+I"
},
@@ -8570,7 +9082,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 167
+ "__id__": 178
},
"_enabled": true,
"_materials": [
@@ -8604,25 +9116,25 @@
},
"_children": [
{
- "__id__": 180
+ "__id__": 191
},
{
- "__id__": 184
+ "__id__": 195
},
{
- "__id__": 186
+ "__id__": 197
},
{
- "__id__": 188
+ "__id__": 199
},
{
- "__id__": 192
+ "__id__": 203
}
],
"_active": false,
"_components": [
{
- "__id__": 198
+ "__id__": 209
}
],
"_prefab": null,
@@ -8678,19 +9190,19 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 181
+ "__id__": 192
},
{
- "__id__": 182
+ "__id__": 193
},
{
- "__id__": 183
+ "__id__": 194
}
],
"_prefab": null,
@@ -8746,7 +9258,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"_materials": [
@@ -8778,7 +9290,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"alignMode": 1,
@@ -8805,7 +9317,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 180
+ "__id__": 191
},
"_enabled": true,
"_id": "d3WO2KgvBHxZSuuuiocs4j"
@@ -8815,13 +9327,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 185
+ "__id__": 196
}
],
"_prefab": null,
@@ -8877,7 +9389,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 184
+ "__id__": 195
},
"_enabled": true,
"_materials": [
@@ -8907,13 +9419,13 @@
"_name": "Stamina",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 187
+ "__id__": 198
}
],
"_prefab": null,
@@ -8969,7 +9481,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 186
+ "__id__": 197
},
"_enabled": true,
"_materials": [
@@ -8999,16 +9511,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 189
+ "__id__": 200
},
{
- "__id__": 190
+ "__id__": 201
}
],
"_prefab": null,
@@ -9064,7 +9576,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 199
},
"_enabled": true,
"_materials": [
@@ -9098,7 +9610,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 188
+ "__id__": 199
},
"_enabled": true,
"_normalMaterial": null,
@@ -9107,7 +9619,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 191
+ "__id__": 202
}
],
"_N$interactable": true,
@@ -9163,7 +9675,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 188
+ "__id__": 199
},
"_id": "4fx9FNHrVMm7QEtzYiJ4Ca"
},
@@ -9182,20 +9694,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 179
+ "__id__": 190
},
"_children": [
{
- "__id__": 193
+ "__id__": 204
}
],
"_active": true,
"_components": [
{
- "__id__": 195
+ "__id__": 206
},
{
- "__id__": 196
+ "__id__": 207
}
],
"_prefab": null,
@@ -9251,13 +9763,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 192
+ "__id__": 203
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 194
+ "__id__": 205
}
],
"_prefab": null,
@@ -9313,7 +9825,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 193
+ "__id__": 204
},
"_enabled": true,
"_materials": [
@@ -9347,7 +9859,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 203
},
"_enabled": true,
"_materials": [
@@ -9381,7 +9893,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 192
+ "__id__": 203
},
"_enabled": true,
"_normalMaterial": null,
@@ -9390,7 +9902,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 197
+ "__id__": 208
}
],
"_N$interactable": true,
@@ -9446,7 +9958,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 192
+ "__id__": 203
},
"_id": "6f5W0gZq1NG4kBoigH1HP7"
},
@@ -9463,7 +9975,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 179
+ "__id__": 190
},
"_enabled": true,
"alignMode": 1,
@@ -9493,68 +10005,68 @@
"__id__": 4
},
"_children": [
- {
- "__id__": 200
- },
- {
- "__id__": 203
- },
- {
- "__id__": 205
- },
{
"__id__": 211
},
{
- "__id__": 213
+ "__id__": 214
},
{
- "__id__": 217
+ "__id__": 216
},
{
- "__id__": 219
+ "__id__": 222
},
{
- "__id__": 221
+ "__id__": 224
},
{
- "__id__": 223
+ "__id__": 228
},
{
- "__id__": 225
+ "__id__": 230
},
{
- "__id__": 227
+ "__id__": 232
},
{
- "__id__": 229
+ "__id__": 234
},
{
- "__id__": 233
+ "__id__": 236
},
{
- "__id__": 237
+ "__id__": 238
},
{
- "__id__": 241
+ "__id__": 240
},
{
- "__id__": 243
+ "__id__": 244
},
{
- "__id__": 245
+ "__id__": 248
},
{
- "__id__": 247
+ "__id__": 252
},
{
- "__id__": 249
+ "__id__": 254
+ },
+ {
+ "__id__": 256
+ },
+ {
+ "__id__": 258
+ },
+ {
+ "__id__": 260
}
],
"_active": false,
"_components": [
{
- "__id__": 251
+ "__id__": 262
}
],
"_prefab": null,
@@ -9610,16 +10122,16 @@
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 201
+ "__id__": 212
},
{
- "__id__": 202
+ "__id__": 213
}
],
"_prefab": null,
@@ -9675,7 +10187,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 200
+ "__id__": 211
},
"_enabled": true,
"_materials": [
@@ -9707,7 +10219,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 200
+ "__id__": 211
},
"_enabled": true,
"_id": "22/vLI0+hBZrCrug3svOux"
@@ -9717,13 +10229,13 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 204
+ "__id__": 215
}
],
"_prefab": null,
@@ -9779,7 +10291,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 203
+ "__id__": 214
},
"_enabled": true,
"_materials": [
@@ -9811,20 +10323,20 @@
"_name": "btn",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [
{
- "__id__": 206
+ "__id__": 217
}
],
"_active": true,
"_components": [
{
- "__id__": 208
+ "__id__": 219
},
{
- "__id__": 209
+ "__id__": 220
}
],
"_prefab": null,
@@ -9880,13 +10392,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 205
+ "__id__": 216
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 207
+ "__id__": 218
}
],
"_prefab": null,
@@ -9942,7 +10454,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 206
+ "__id__": 217
},
"_enabled": true,
"_materials": [
@@ -9976,7 +10488,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 216
},
"_enabled": true,
"_materials": [
@@ -10010,7 +10522,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 205
+ "__id__": 216
},
"_enabled": true,
"_normalMaterial": null,
@@ -10019,7 +10531,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 210
+ "__id__": 221
}
],
"_N$interactable": true,
@@ -10075,7 +10587,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 205
+ "__id__": 216
},
"_id": "b8Y9x+dpZGKKCgiAzSbF2w"
},
@@ -10094,13 +10606,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 212
+ "__id__": 223
}
],
"_prefab": null,
@@ -10156,7 +10668,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 211
+ "__id__": 222
},
"_enabled": true,
"_materials": [
@@ -10190,16 +10702,16 @@
"_name": "closeBtn",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 214
+ "__id__": 225
},
{
- "__id__": 215
+ "__id__": 226
}
],
"_prefab": null,
@@ -10255,7 +10767,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 224
},
"_enabled": true,
"_materials": [
@@ -10289,7 +10801,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 213
+ "__id__": 224
},
"_enabled": true,
"_normalMaterial": null,
@@ -10298,7 +10810,7 @@
"zoomScale": 1.1,
"clickEvents": [
{
- "__id__": 216
+ "__id__": 227
}
],
"_N$interactable": true,
@@ -10354,7 +10866,7 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 213
+ "__id__": 224
},
"_id": "3fEch1YYZH6oMgUJ5+mat/"
},
@@ -10373,13 +10885,13 @@
"_name": "musicOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 218
+ "__id__": 229
}
],
"_prefab": null,
@@ -10435,7 +10947,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 217
+ "__id__": 228
},
"_enabled": true,
"_materials": [
@@ -10469,13 +10981,13 @@
"_name": "effectOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 220
+ "__id__": 231
}
],
"_prefab": null,
@@ -10531,7 +11043,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 219
+ "__id__": 230
},
"_enabled": true,
"_materials": [
@@ -10565,13 +11077,13 @@
"_name": "vibrateOpen",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 222
+ "__id__": 233
}
],
"_prefab": null,
@@ -10627,7 +11139,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 221
+ "__id__": 232
},
"_enabled": true,
"_materials": [
@@ -10661,13 +11173,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 224
+ "__id__": 235
}
],
"_prefab": null,
@@ -10723,7 +11235,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 223
+ "__id__": 234
},
"_enabled": true,
"_materials": [
@@ -10757,13 +11269,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 226
+ "__id__": 237
}
],
"_prefab": null,
@@ -10819,7 +11331,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 225
+ "__id__": 236
},
"_enabled": true,
"_materials": [
@@ -10853,13 +11365,13 @@
"_name": "New Sprite",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 228
+ "__id__": 239
}
],
"_prefab": null,
@@ -10915,7 +11427,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 227
+ "__id__": 238
},
"_enabled": true,
"_materials": [
@@ -10949,16 +11461,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 230
+ "__id__": 241
},
{
- "__id__": 231
+ "__id__": 242
}
],
"_prefab": null,
@@ -11014,7 +11526,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 240
},
"_enabled": true,
"_materials": [
@@ -11048,7 +11560,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 229
+ "__id__": 240
},
"_enabled": true,
"_normalMaterial": null,
@@ -11057,7 +11569,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 232
+ "__id__": 243
}
],
"_N$interactable": true,
@@ -11113,14 +11625,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 229
+ "__id__": 240
},
"_id": "625dakXShD7bgpaU3SIzV2"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11132,16 +11644,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 234
+ "__id__": 245
},
{
- "__id__": 235
+ "__id__": 246
}
],
"_prefab": null,
@@ -11197,7 +11709,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 244
},
"_enabled": true,
"_materials": [
@@ -11231,7 +11743,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 233
+ "__id__": 244
},
"_enabled": true,
"_normalMaterial": null,
@@ -11240,7 +11752,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 236
+ "__id__": 247
}
],
"_N$interactable": true,
@@ -11296,14 +11808,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 233
+ "__id__": 244
},
"_id": "72VsvwUtxAD6Hj+ox2n5Ez"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11315,16 +11827,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 238
+ "__id__": 249
},
{
- "__id__": 239
+ "__id__": 250
}
],
"_prefab": null,
@@ -11380,7 +11892,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 248
},
"_enabled": true,
"_materials": [
@@ -11414,7 +11926,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 237
+ "__id__": 248
},
"_enabled": true,
"_normalMaterial": null,
@@ -11423,7 +11935,7 @@
"zoomScale": 1.2,
"clickEvents": [
{
- "__id__": 240
+ "__id__": 251
}
],
"_N$interactable": true,
@@ -11479,14 +11991,14 @@
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": {
- "__id__": 237
+ "__id__": 248
},
"_id": "efSi0dlVNIXJRT6hEV1IpJ"
},
{
"__type__": "cc.ClickEvent",
"target": {
- "__id__": 199
+ "__id__": 210
},
"component": "",
"_componentId": "aca4aut33NCvIC0yg3JmY0h",
@@ -11498,13 +12010,13 @@
"_name": "music",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 242
+ "__id__": 253
}
],
"_prefab": null,
@@ -11560,7 +12072,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 241
+ "__id__": 252
},
"_enabled": true,
"_materials": [
@@ -11594,13 +12106,13 @@
"_name": "effct",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 244
+ "__id__": 255
}
],
"_prefab": null,
@@ -11656,7 +12168,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 243
+ "__id__": 254
},
"_enabled": true,
"_materials": [
@@ -11690,13 +12202,13 @@
"_name": "vibrate",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 246
+ "__id__": 257
}
],
"_prefab": null,
@@ -11752,7 +12264,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 245
+ "__id__": 256
},
"_enabled": true,
"_materials": [
@@ -11786,13 +12298,13 @@
"_name": "New Label",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 248
+ "__id__": 259
}
],
"_prefab": null,
@@ -11848,7 +12360,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 247
+ "__id__": 258
},
"_enabled": true,
"_materials": [
@@ -11881,13 +12393,13 @@
"_name": "openID",
"_objFlags": 0,
"_parent": {
- "__id__": 199
+ "__id__": 210
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 250
+ "__id__": 261
}
],
"_prefab": null,
@@ -11943,7 +12455,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 249
+ "__id__": 260
},
"_enabled": true,
"_materials": [
@@ -11976,17 +12488,17 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 199
+ "__id__": 210
},
"_enabled": true,
"music": {
- "__id__": 241
+ "__id__": 252
},
"effect": {
- "__id__": 243
+ "__id__": 254
},
"vibrate": {
- "__id__": 245
+ "__id__": 256
},
"open": {
"__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078"
@@ -12007,7 +12519,7 @@
"_active": false,
"_components": [
{
- "__id__": 253
+ "__id__": 264
}
],
"_prefab": null,
@@ -12063,7 +12575,7 @@
"_name": "",
"_objFlags": 0,
"node": {
- "__id__": 252
+ "__id__": 263
},
"_enabled": true,
"_materials": [
@@ -12184,6 +12696,9 @@
"Stamina": {
"__id__": 28
},
+ "setUi": {
+ "__id__": 80
+ },
"_id": "0dna+7W/NMp6RyIrSQLx5u"
}
]
\ No newline at end of file
diff --git a/temp/BackupAssets/assets/shop/prefab/item.prefab b/temp/BackupAssets/assets/shop/prefab/item.prefab
index fcbb449..c674087 100644
--- a/temp/BackupAssets/assets/shop/prefab/item.prefab
+++ b/temp/BackupAssets/assets/shop/prefab/item.prefab
@@ -172,7 +172,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
+ "__uuid__": "8df4862f-bc72-4038-bc80-6bec5833a561"
},
"_type": 0,
"_sizeMode": 0,
@@ -185,7 +185,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "88f4116d-72c2-46cc-9f06-d164a85a9275"
+ },
"_id": ""
},
{
@@ -451,7 +453,9 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
- "_spriteFrame": null,
+ "_spriteFrame": {
+ "__uuid__": "7788da8f-ccb8-4cb4-9a46-1dd01f6186c7"
+ },
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
@@ -463,7 +467,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
- "_atlas": null,
+ "_atlas": {
+ "__uuid__": "88f4116d-72c2-46cc-9f06-d164a85a9275"
+ },
"_id": ""
},
{
diff --git a/temp/BackupAssets/assets/shop/prefab/shop.prefab b/temp/BackupAssets/assets/shop/prefab/shop.prefab
index fec1040..36ae3fb 100644
--- a/temp/BackupAssets/assets/shop/prefab/shop.prefab
+++ b/temp/BackupAssets/assets/shop/prefab/shop.prefab
@@ -325,7 +325,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "a240b819-2b4f-4608-b382-e99982cd138f"
+ "__uuid__": "5652a0a0-3753-477b-afbd-e68830208955"
},
"_type": 0,
"_sizeMode": 0,
@@ -544,7 +544,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
- "__uuid__": "f174e2e2-2556-4acb-8ccd-97f3bed5b91d"
+ "__uuid__": "11bc6aa1-f82e-42c0-8581-7cc70ba6cde0"
},
"_type": 0,
"_sizeMode": 0,
diff --git a/temp/RemovedMetas/UI/UI/set/common.png.meta b/temp/RemovedMetas/UI/UI/set/common.png.meta
new file mode 100644
index 0000000..ce4b879
--- /dev/null
+++ b/temp/RemovedMetas/UI/UI/set/common.png.meta
@@ -0,0 +1,15 @@
+{
+ "ver": "2.3.7",
+ "uuid": "def06458-e0b9-42fe-a374-6c01ca6da784",
+ "importer": "texture",
+ "type": "raw",
+ "wrapMode": "clamp",
+ "filterMode": "bilinear",
+ "premultiplyAlpha": false,
+ "genMipmaps": false,
+ "packable": true,
+ "width": 1866,
+ "height": 1792,
+ "platformSettings": {},
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/assets/shop/img/coins3.png.meta b/temp/RemovedMetas/UI/UI/set/musicc.png.meta
similarity index 64%
rename from assets/shop/img/coins3.png.meta
rename to temp/RemovedMetas/UI/UI/set/musicc.png.meta
index 3c5c529..4804ec0 100644
--- a/assets/shop/img/coins3.png.meta
+++ b/temp/RemovedMetas/UI/UI/set/musicc.png.meta
@@ -1,6 +1,6 @@
{
"ver": "2.3.7",
- "uuid": "49148440-dbc5-4936-b168-ac7707f80098",
+ "uuid": "883907f1-98b8-478b-a697-5cc1ccef8984",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
@@ -8,15 +8,15 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
- "width": 189,
- "height": 165,
+ "width": 116,
+ "height": 122,
"platformSettings": {},
"subMetas": {
- "coins3": {
+ "musicc": {
"ver": "1.0.6",
- "uuid": "1191b1ec-7ce1-42dd-9f3f-6f47cd855b13",
+ "uuid": "2d7bc646-7958-409e-8105-1dbade16ed2c",
"importer": "sprite-frame",
- "rawTextureUuid": "49148440-dbc5-4936-b168-ac7707f80098",
+ "rawTextureUuid": "883907f1-98b8-478b-a697-5cc1ccef8984",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
@@ -24,10 +24,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
- "width": 189,
- "height": 165,
- "rawWidth": 189,
- "rawHeight": 165,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
diff --git a/assets/shop/img/coins1.png.meta b/temp/RemovedMetas/UI/UI/set/musicw.png.meta
similarity index 64%
rename from assets/shop/img/coins1.png.meta
rename to temp/RemovedMetas/UI/UI/set/musicw.png.meta
index 79b2322..e02f200 100644
--- a/assets/shop/img/coins1.png.meta
+++ b/temp/RemovedMetas/UI/UI/set/musicw.png.meta
@@ -1,6 +1,6 @@
{
"ver": "2.3.7",
- "uuid": "1c56a793-7cd3-412f-a040-8a754a2f4d41",
+ "uuid": "efb670c0-440d-4124-80f3-c10f4bc28c47",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
@@ -8,15 +8,15 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
- "width": 206,
- "height": 141,
+ "width": 116,
+ "height": 122,
"platformSettings": {},
"subMetas": {
- "coins1": {
+ "musicw": {
"ver": "1.0.6",
- "uuid": "c708602e-74bd-4929-9850-6fa800129b1f",
+ "uuid": "b4edb115-3774-4ac7-adad-a62a30446775",
"importer": "sprite-frame",
- "rawTextureUuid": "1c56a793-7cd3-412f-a040-8a754a2f4d41",
+ "rawTextureUuid": "efb670c0-440d-4124-80f3-c10f4bc28c47",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
@@ -24,10 +24,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
- "width": 206,
- "height": 141,
- "rawWidth": 206,
- "rawHeight": 141,
+ "width": 116,
+ "height": 122,
+ "rawWidth": 116,
+ "rawHeight": 122,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
diff --git a/assets/UI/UI/set/闇囧姩00.png.meta b/temp/RemovedMetas/UI/UI/set/闇囧姩00.png.meta
similarity index 100%
rename from assets/UI/UI/set/闇囧姩00.png.meta
rename to temp/RemovedMetas/UI/UI/set/闇囧姩00.png.meta
diff --git a/assets/UI/UI/set/闇囧姩01.png.meta b/temp/RemovedMetas/UI/UI/set/闇囧姩01.png.meta
similarity index 100%
rename from assets/UI/UI/set/闇囧姩01.png.meta
rename to temp/RemovedMetas/UI/UI/set/闇囧姩01.png.meta
diff --git a/assets/UI/UI/set/闊充箰00.png.meta b/temp/RemovedMetas/UI/UI/set/闊充箰00.png.meta
similarity index 100%
rename from assets/UI/UI/set/闊充箰00.png.meta
rename to temp/RemovedMetas/UI/UI/set/闊充箰00.png.meta
diff --git a/assets/UI/UI/set/闊充箰01.png.meta b/temp/RemovedMetas/UI/UI/set/闊充箰01.png.meta
similarity index 100%
rename from assets/UI/UI/set/闊充箰01.png.meta
rename to temp/RemovedMetas/UI/UI/set/闊充箰01.png.meta
diff --git a/assets/UI/UI/set/闊虫晥00.png.meta b/temp/RemovedMetas/UI/UI/set/闊虫晥00.png.meta
similarity index 100%
rename from assets/UI/UI/set/闊虫晥00.png.meta
rename to temp/RemovedMetas/UI/UI/set/闊虫晥00.png.meta
diff --git a/assets/UI/UI/set/闊虫晥01.png.meta b/temp/RemovedMetas/UI/UI/set/闊虫晥01.png.meta
similarity index 100%
rename from assets/UI/UI/set/闊虫晥01.png.meta
rename to temp/RemovedMetas/UI/UI/set/闊虫晥01.png.meta
diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json
index 977275a..078dca7 100644
--- a/temp/quick-scripts/dst/__file_stats__.json
+++ b/temp/quick-scripts/dst/__file_stats__.json
@@ -1 +1 @@
-{"version":"1.0.8","stats":{"C:/color/temp/quick-scripts/src/__qc_index__.js":"2025-06-30T08:00:59.480Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-06-30T08:00:59.348Z","C:/color/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-06-30T08:00:59.363Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-06-30T08:00:59.353Z","C:/color/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-06-30T08:00:59.357Z","C:/color/temp/quick-scripts/src/assets/shop/script/item.js":"2025-06-30T08:00:59.398Z","C:/color/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-06-30T08:00:59.344Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-06-30T08:00:59.375Z","C:/color/temp/quick-scripts/src/assets/effect/融化.js":"2025-06-30T08:00:59.344Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-06-30T08:00:59.358Z","C:/color/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-06-30T08:00:59.358Z","C:/color/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-06-30T08:00:59.342Z","C:/color/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-06-30T08:00:59.355Z","C:/color/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-06-30T08:00:59.355Z","C:/color/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-06-30T08:00:59.400Z","C:/color/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-06-30T08:00:59.363Z","C:/color/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-06-30T08:00:59.398Z","C:/color/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-06-30T08:00:59.348Z","C:/color/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-06-30T08:00:59.338Z","C:/color/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-06-30T08:00:59.402Z","C:/color/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-06-30T08:00:59.402Z","C:/color/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-06-30T08:00:59.372Z","C:/color/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-06-30T08:00:59.402Z","C:/color/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-06-30T08:00:59.370Z","C:/color/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-06-30T08:00:59.372Z","C:/color/temp/quick-scripts/src/assets/Script/Map.js":"2025-06-30T08:00:59.338Z","C:/color/temp/quick-scripts/src/assets/Script/Window.js":"2025-06-30T08:00:59.344Z","C:/color/temp/quick-scripts/src/assets/Script/Wall.js":"2025-06-30T08:00:59.375Z","C:/color/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-06-30T08:00:59.363Z","C:/color/temp/quick-scripts/src/assets/Script/Pause.js":"2025-06-30T08:00:59.384Z","C:/color/temp/quick-scripts/src/assets/Script/Load.js":"2025-06-30T08:00:59.350Z","C:/color/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-06-30T08:00:59.363Z","C:/color/temp/quick-scripts/src/assets/Script/position.js":"2025-06-30T08:00:59.400Z","C:/color/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-06-30T08:00:59.368Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-06-30T08:00:59.350Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-06-30T08:00:59.332Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-06-30T08:00:59.384Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-06-30T08:00:59.372Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-06-30T08:00:59.384Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-06-30T08:00:59.344Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-06-30T08:00:59.378Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-06-30T08:00:59.358Z","C:/color/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-06-30T08:00:59.363Z","C:/color/temp/quick-scripts/src/assets/Script/Block.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-06-30T08:00:59.378Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-06-30T08:00:59.344Z","C:/color/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-06-30T08:00:59.353Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-06-30T08:00:59.378Z","C:/color/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-06-30T08:00:59.377Z","C:/color/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-06-30T08:00:59.332Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-06-30T08:00:59.378Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-06-30T08:00:59.378Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-06-30T08:00:59.388Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-06-30T08:00:59.332Z","C:/color/temp/quick-scripts/src/assets/shop/script/shop.js":"2025-06-30T08:00:59.350Z","C:/color/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-06-30T08:00:59.400Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-06-30T08:00:59.342Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-06-30T08:00:59.330Z"}}
+{"version":"1.0.8","stats":{"C:/color/temp/quick-scripts/src/__qc_index__.js":"2025-07-01T02:57:40.468Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-07-01T02:57:40.326Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-07-01T02:57:40.344Z","C:/color/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-07-01T02:57:40.357Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-07-01T02:57:40.325Z","C:/color/temp/quick-scripts/src/assets/shop/script/shop.js":"2025-07-01T02:57:40.346Z","C:/color/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-07-01T02:57:40.380Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-07-01T02:57:40.371Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-07-01T02:57:40.370Z","C:/color/temp/quick-scripts/src/assets/effect/融化.js":"2025-07-01T02:57:40.340Z","C:/color/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-07-01T02:57:40.339Z","C:/color/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-07-01T02:57:40.358Z","C:/color/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-07-01T02:57:40.353Z","C:/color/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-07-01T02:57:40.377Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-07-01T02:57:40.354Z","C:/color/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-07-01T02:57:40.350Z","C:/color/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-07-01T02:57:40.349Z","C:/color/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-07-01T02:57:40.327Z","C:/color/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-07-01T02:57:40.344Z","C:/color/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-07-01T02:57:40.351Z","C:/color/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-07-01T02:57:40.372Z","C:/color/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-07-01T02:57:40.356Z","C:/color/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-07-01T02:57:40.382Z","C:/color/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-07-01T02:57:40.384Z","C:/color/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-07-01T02:57:40.360Z","C:/color/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-07-01T02:57:40.337Z","C:/color/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-07-01T02:57:40.385Z","C:/color/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-07-01T02:57:40.348Z","C:/color/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-07-01T02:57:40.355Z","C:/color/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-07-01T02:57:40.360Z","C:/color/temp/quick-scripts/src/assets/Script/Load.js":"2025-07-01T02:57:40.345Z","C:/color/temp/quick-scripts/src/assets/Script/Map.js":"2025-07-01T02:57:40.338Z","C:/color/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-07-01T02:57:40.383Z","C:/color/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-07-01T02:57:40.375Z","C:/color/temp/quick-scripts/src/assets/Script/Pause.js":"2025-07-01T02:57:40.369Z","C:/color/temp/quick-scripts/src/assets/Script/Wall.js":"2025-07-01T02:57:40.363Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-07-01T02:57:40.364Z","C:/color/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-07-01T02:57:40.359Z","C:/color/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-07-01T02:57:40.355Z","C:/color/temp/quick-scripts/src/assets/Script/setUi.js":"2025-07-01T02:57:40.336Z","C:/color/temp/quick-scripts/src/assets/Script/position.js":"2025-07-01T02:57:40.381Z","C:/color/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-07-01T02:57:40.365Z","C:/color/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-07-01T02:57:40.361Z","C:/color/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-07-01T02:57:40.370Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-07-01T02:57:40.342Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-07-01T02:57:40.365Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-07-01T02:57:40.343Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-07-01T02:57:40.362Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-07-01T02:57:40.376Z","C:/color/temp/quick-scripts/src/assets/Script/Block.js":"2025-07-01T02:57:40.372Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-07-01T02:57:40.378Z","C:/color/temp/quick-scripts/src/assets/Script/Window.js":"2025-07-01T02:57:40.342Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-07-01T02:57:40.366Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-07-01T02:57:40.375Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-07-01T02:57:40.367Z","C:/color/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-07-01T02:57:40.373Z","C:/color/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-07-01T02:57:40.352Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-07-01T02:57:40.368Z","C:/color/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-07-01T02:57:40.347Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-07-01T02:57:40.341Z","C:/color/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-07-01T02:57:40.368Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-07-01T02:57:40.328Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-07-01T02:57:40.339Z","C:/color/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-07-01T02:57:40.382Z","C:/color/temp/quick-scripts/src/assets/shop/script/item.js":"2025-07-01T02:57:40.379Z","C:/color/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-07-01T02:57:40.374Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-07-01T02:57:40.348Z","C:/color/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-07-01T02:57:40.378Z"}}
diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js
index a7f5584..1682c5e 100644
--- a/temp/quick-scripts/dst/__qc_bundle__.js
+++ b/temp/quick-scripts/dst/__qc_bundle__.js
@@ -65,6 +65,7 @@ require('./assets/Script/prop/Freeze');
require('./assets/Script/prop/Key');
require('./assets/Script/prop/Lock');
require('./assets/Script/prop/Star');
+require('./assets/Script/setUi');
require('./assets/animation/NewScript');
require('./assets/effect/融化');
require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event');
@@ -92,7 +93,7 @@ require('./tiledmap-optimize-resource/Script/TmoTiledMap');
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js';
+ var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -100,8 +101,8 @@ require('./tiledmap-optimize-resource/Script/TmoTiledMap');
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'c22a3wcU/tBdJ/qjn/Q6uuA', 'lq_collide_base');
-// Script/lq_collide_system/lq_collide_base.ts
+cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager');
+// Script/Sdk/MiniGameManager.ts
"use strict";
var __extends = (this && this.__extends) || (function () {
@@ -124,100 +125,317 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQCollideBase = void 0;
-var ccclass = cc._decorator.ccclass;
-var executeInEditMode = cc._decorator.executeInEditMode;
-var PolygonCollider = cc.PolygonCollider;
-var property = cc._decorator.property;
-var lq_collide_1 = require("./lq_collide");
-var lq_const_1 = require("../lq_base/data/lq_const");
-var LQCollideBase = /** @class */ (function (_super) {
- __extends(LQCollideBase, _super);
- function LQCollideBase() {
+exports.MiniGameManager = void 0;
+var MiniGameSdk_1 = require("./MiniGameSdk");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var EWechatAD;
+(function (EWechatAD) {
+ EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473";
+})(EWechatAD || (EWechatAD = {}));
+var MiniGameManager = /** @class */ (function (_super) {
+ __extends(MiniGameManager, _super);
+ function MiniGameManager() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.auto_update_point = true;
+ _this.entranceView = null;
return _this;
}
- LQCollideBase.prototype.find_collide = function () {
- var collide = this.node.getComponent(lq_collide_1.LQCollide);
- if (!collide) {
- console.error(this.node.name + ':没有找到LQCollide组件');
- return undefined;
+ MiniGameManager_1 = MiniGameManager;
+ Object.defineProperty(MiniGameManager, "instance", {
+ get: function () {
+ if (!MiniGameManager_1._instance) {
+ MiniGameManager_1._instance = new MiniGameManager_1();
+ }
+ return MiniGameManager_1._instance;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ MiniGameManager.prototype.start = function () {
+ // 禁用游戏入口视图
+ // this.entranceView.active = false;
+ // MiniGameSdk.API.getUserProfile(this.setUserId);
+ // cc.fx.GameTool.setUserInfo("");
+ this.onGetLoginCode();
+ // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作
+ // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView');
+ // if (buttonEntrance) {
+ // return;
+ // }
+ // 如果是字节跳动小游戏环境,检查侧边栏是否存在
+ if (MiniGameSdk_1.MiniGameSdk.isBytedance()) {
+ //抖音环境,检测侧边栏存在
+ MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) {
+ // 根据侧边栏存在性激活或禁用游戏入口按钮
+ // buttonEntrance.active = success;
+ });
}
- return collide;
+ else {
+ // 非抖音小游戏环境,直接激活游戏入口按钮
+ // 非抖音环境,正常显示按钮
+ // buttonEntrance.active = true;
+ }
+ // 设置监听器,以处理来自侧边栏的交互事件
+ MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) {
+ // 如果交互成功,显示奖励提示
+ if (success) {
+ MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5);
+ }
+ });
};
- LQCollideBase.prototype.onLoad = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
- collide.init_lq_collide();
+ MiniGameManager.prototype.update = function (deltaTime) {
};
- LQCollideBase.prototype.onEnable = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
- collide.enable_lq_collide();
+ /**
+ * 弹出广告横幅。
+ * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。
+ * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。
+ *
+ * @remarks
+ * 此方法提供了两种显示横幅广告的方式:
+ * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。
+ * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。
+ *
+ * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。
+ */
+ MiniGameManager.prototype.onShowBanner = function () {
+ // 加载指定广告位的横幅广告。
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51');
+ // 默认方式显示横幅广告。
+ // 方法1:默认调用
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner();
+ // 示例:指定屏幕底部正中显示横幅广告。
+ // 方法2:指定屏幕顶部或底部正中
+ // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM);
+ // 示例:通过坐标指定位置显示横幅广告。
+ // 方法2:指定坐标
+ // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 });
};
- LQCollideBase.prototype.onDisable = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
- collide.disable_lq_collide();
+ /**
+ * 隐藏广告横幅的函数。
+ *
+ * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。
+ * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。
+ *
+ * @remarks
+ * 此函数不接受任何参数,也不返回任何值。
+ * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。
+ */
+ MiniGameManager.prototype.onHideBanner = function () {
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner();
};
- LQCollideBase.prototype.onDestroy = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
+ /**
+ * 显示插屏广告的函数。
+ *
+ * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。
+ * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。
+ * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。
+ */
+ MiniGameManager.prototype.onShowInterstitial = function () {
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad');
};
- LQCollideBase.prototype.onFocusInEditor = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
+ /**
+ * 调用广告管理器加载并展示自定义广告。
+ * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。
+ * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程,
+ * 以确保广告在展示前正确且充分地被加载。
+ */
+ MiniGameManager.prototype.onShowCustom = function () {
+ // 加载指定的自定义广告单元。
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01);
+ // 展示已加载的自定义广告。
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01);
};
- LQCollideBase.prototype.onLostFocusInEditor = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
+ /**
+ * 隐藏自定义广告。
+ *
+ * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。
+ * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。
+ * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。
+ */
+ MiniGameManager.prototype.onHideCustom = function () {
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01);
};
- LQCollideBase.prototype.resetInEditor = function () {
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
+ /**
+ * 触发显示视频广告的函数。
+ * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。
+ *
+ * @remarks
+ * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。
+ * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。
+ */
+ MiniGameManager.prototype.onShowVideo = function () {
+ // 广告单元ID,用于标识要显示的视频广告
+ // 广告单元ID的样例
+ //抖音形如: 1re3nfqkmy81m4m8ge
+ //微信形如: adunit-a7718f6e195e42fe
+ MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) {
+ // 输出用户观看的广告数量
+ console.log('用户看的视频广告个数是:', count);
+ // 根据用户观看广告的结果,执行不同的逻辑
+ switch (res) {
+ case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT:
+ // 用户完成了广告观看,显示奖励提示
+ MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励');
+ break;
+ case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT:
+ // 用户拒绝了广告观看,显示不奖励提示
+ MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励');
+ break;
+ case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR:
+ // 广告播放发生错误,显示错误提示
+ MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励');
+ break;
+ default:
+ // 其他情况,不作处理
+ break;
+ }
+ });
};
- LQCollideBase.prototype.update = function (dt) {
- if (!CC_EDITOR || !this.auto_update_point) {
- return;
- }
- var collide = this.find_collide();
- if (!collide) {
- return;
- }
- if (collide.collide_shape !== lq_const_1.LQCollideShape.Polygon) {
- return;
- }
- var polygonCollider = this.node.getComponent(PolygonCollider);
- if (!polygonCollider) {
- return;
- }
- collide.polygon_points = polygonCollider.points;
+ /**
+ * 引导用户分享应用给朋友。
+ *
+ * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。
+ * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。
+ *
+ * @remarks
+ * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。
+ */
+ MiniGameManager.prototype.onShare = function () {
+ MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧');
};
+ /**
+ * 显示一个toast提示。
+ *
+ * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。
+ * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。
+ */
+ MiniGameManager.prototype.onShowToast = function () {
+ MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast');
+ };
+ /**
+ * 触发设备振动功能。
+ *
+ * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。
+ * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。
+ *
+ * @remarks
+ * 此方法无参数,也不返回任何值。
+ */
+ MiniGameManager.prototype.onVirbrate = function () {
+ MiniGameSdk_1.MiniGameSdk.API.vibrate();
+ };
+ /**
+ * 重新启动游戏实例。
+ *
+ * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。
+ * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。
+ *
+ * @remarks
+ * 此函数不接受任何参数。
+ *
+ * @returns 无返回值。
+ */
+ MiniGameManager.prototype.onReboot = function () {
+ MiniGameSdk_1.MiniGameSdk.API.reboot();
+ };
+ /**
+ * 当前函数用于在迷你游戏中实现退出功能。
+ * 它调用了MiniGameSdk提供的API方法来触发退出操作。
+ * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。
+ */
+ MiniGameManager.prototype.onExit = function () {
+ MiniGameSdk_1.MiniGameSdk.API.exit();
+ };
+ /**
+ * 显示分享菜单。
+ *
+ * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口,
+ * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。
+ *
+ * @remarks
+ * 此方法不接受任何参数,也不返回任何值。
+ */
+ MiniGameManager.prototype.onShowShareMenu = function () {
+ MiniGameSdk_1.MiniGameSdk.API.showShareMenu();
+ };
+ /**
+ * 导航到指定的小游戏。
+ *
+ * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID,
+ * 以便系统能够正确地将用户重定向到目标小游戏。
+ *
+ * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。
+ */
+ MiniGameManager.prototype.onNavigate = function () {
+ MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id
+ };
+ /**
+ * 激活字节跳动入口视图。
+ *
+ * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时,
+ * 可以调用此方法来激活相应的视图元素,使其对用户可见。
+ */
+ MiniGameManager.prototype.onBytedanceEntranceView = function () {
+ // this.entranceView.active = true;
+ };
+ /**
+ * 请求登录代码
+ *
+ * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。
+ * 这些代码可以用于后续的用户身份验证和数据同步流程。
+ */
+ MiniGameManager.prototype.onGetLoginCode = function () {
+ // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果
+ MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) {
+ // 打印微信或头条的登录代码
+ console.log('Wechat Or Bytedance Code:', code);
+ // 打印头条的匿名登录代码
+ // console.log('Bytedance Anonymous Code:', anonymousCode);
+ if (code) {
+ // cc.fx.GameTool.getUserId(code, data => this.setUserId(data));
+ }
+ });
+ };
+ // setUserId(data){
+ // cc.fx.GameConfig.GM_INFO.userId = data.data.userId;
+ // MiniGameSdk.API.getUserInfo(this.setUserInfo);
+ // }
+ // setUserInfo(data){
+ // console.log("获取到的用户信息",data.userInfo);
+ // var useData = {
+ // "gameId": cc.fx.GameConfig.GM_INFO.gameId,
+ // "userId": cc.fx.GameConfig.GM_INFO.userId,
+ // "nickName":data.userInfo.nickName,
+ // "pic": data.userInfo.avatarUrl
+ // }
+ // console.log("即将上传的用户信息:",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl);
+ // console.log("Post数据:",useData);
+ // cc.fx.GameTool.setUserInfo(useData,(res)=>{
+ // console.log("上传成功:",res);
+ // });
+ // }
+ /**
+ * 创建并显示游戏圈按钮
+ *
+ * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。
+ * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。
+ * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。
+ */
+ MiniGameManager.prototype.onCreateClub = function () {
+ // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素
+ MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 });
+ // 显示游戏俱乐部图标
+ MiniGameSdk_1.MiniGameSdk.GameClub.instance.show();
+ };
+ var MiniGameManager_1;
__decorate([
- property({ tooltip: '多边形自动同步cocos PolygonCollider 组件中的碰撞点' })
- ], LQCollideBase.prototype, "auto_update_point", void 0);
- LQCollideBase = __decorate([
- ccclass,
- executeInEditMode
- ], LQCollideBase);
- return LQCollideBase;
+ property(cc.Node)
+ ], MiniGameManager.prototype, "entranceView", void 0);
+ MiniGameManager = MiniGameManager_1 = __decorate([
+ ccclass
+ ], MiniGameManager);
+ return MiniGameManager;
}(cc.Component));
-exports.LQCollideBase = LQCollideBase;
+exports.MiniGameManager = MiniGameManager;
cc._RF.pop();
}
@@ -230,7 +448,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFPLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztBQUN2QyxJQUFPLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7QUFDM0QsSUFBTyxlQUFlLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztBQUM1QyxJQUFPLFFBQVEsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztBQUN6QywyQ0FBdUM7QUFDdkMscURBQXdEO0FBSXhEO0lBQW1DLGlDQUFZO0lBQS9DO1FBQUEscUVBa0ZDO1FBaEZhLHVCQUFpQixHQUFZLElBQUksQ0FBQzs7SUFnRmhELENBQUM7SUE5RVcsb0NBQVksR0FBcEI7UUFDSSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztZQUNuRCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFUyw4QkFBTSxHQUFoQjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFUyxnQ0FBUSxHQUFsQjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVTLGlDQUFTLEdBQW5CO1FBQ0ksSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRVMsaUNBQVMsR0FBbkI7UUFDSSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU87U0FDVjtJQUNMLENBQUM7SUFFUyx1Q0FBZSxHQUF6QjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO0lBQ0wsQ0FBQztJQUVTLDJDQUFtQixHQUE3QjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO0lBQ0wsQ0FBQztJQUVTLHFDQUFhLEdBQXZCO1FBQ0ksSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRVMsOEJBQU0sR0FBaEIsVUFBaUIsRUFBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZDLE9BQU87U0FDVjtRQUNELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsT0FBTyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUNELElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUM7SUEvRUQ7UUFEQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUUsc0NBQXNDLEVBQUMsQ0FBQzs0REFDaEI7SUFGbkMsYUFBYTtRQUZ6QixPQUFPO1FBQ1AsaUJBQWlCO09BQ0wsYUFBYSxDQWtGekI7SUFBRCxvQkFBQztDQWxGRCxBQWtGQyxDQWxGa0MsRUFBRSxDQUFDLFNBQVMsR0FrRjlDO0FBbEZZLHNDQUFhIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNjY2xhc3MgPSBjYy5fZGVjb3JhdG9yLmNjY2xhc3M7XHJcbmltcG9ydCBleGVjdXRlSW5FZGl0TW9kZSA9IGNjLl9kZWNvcmF0b3IuZXhlY3V0ZUluRWRpdE1vZGU7XHJcbmltcG9ydCBQb2x5Z29uQ29sbGlkZXIgPSBjYy5Qb2x5Z29uQ29sbGlkZXI7XHJcbmltcG9ydCBwcm9wZXJ0eSA9IGNjLl9kZWNvcmF0b3IucHJvcGVydHk7XHJcbmltcG9ydCB7TFFDb2xsaWRlfSBmcm9tIFwiLi9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlU2hhcGV9IGZyb20gXCIuLi9scV9iYXNlL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbkBjY2NsYXNzXHJcbkBleGVjdXRlSW5FZGl0TW9kZVxyXG5leHBvcnQgY2xhc3MgTFFDb2xsaWRlQmFzZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHkoe3Rvb2x0aXA6ICflpJrovrnlvaLoh6rliqjlkIzmraVjb2NvcyBQb2x5Z29uQ29sbGlkZXIg57uE5Lu25Lit55qE56Kw5pKe54K5J30pXHJcbiAgICBwcm90ZWN0ZWQgYXV0b191cGRhdGVfcG9pbnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgZmluZF9jb2xsaWRlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KExRQ29sbGlkZSk7XHJcbiAgICAgICAgaWYgKCFjb2xsaWRlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5ub2RlLm5hbWUgKyAnOuayoeacieaJvuWIsExRQ29sbGlkZee7hOS7ticpO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY29sbGlkZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Mb2FkKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuaW5pdF9scV9jb2xsaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRW5hYmxlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuZW5hYmxlX2xxX2NvbGxpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EaXNhYmxlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuZGlzYWJsZV9scV9jb2xsaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpIHtcclxuICAgICAgICBjb25zdCBjb2xsaWRlID0gdGhpcy5maW5kX2NvbGxpZGUoKTtcclxuICAgICAgICBpZiAoIWNvbGxpZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Gb2N1c0luRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkxvc3RGb2N1c0luRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCByZXNldEluRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcikge1xyXG4gICAgICAgIGlmICghQ0NfRURJVE9SIHx8ICF0aGlzLmF1dG9fdXBkYXRlX3BvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29sbGlkZSA9IHRoaXMuZmluZF9jb2xsaWRlKCk7XHJcbiAgICAgICAgaWYgKCFjb2xsaWRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbGxpZGUuY29sbGlkZV9zaGFwZSAhPT0gTFFDb2xsaWRlU2hhcGUuUG9seWdvbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBvbHlnb25Db2xsaWRlciA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoUG9seWdvbkNvbGxpZGVyKTtcclxuICAgICAgICBpZiAoIXBvbHlnb25Db2xsaWRlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUucG9seWdvbl9wb2ludHMgPSBwb2x5Z29uQ29sbGlkZXIucG9pbnRzO1xyXG4gICAgfVxyXG59Il19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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LHFCQUFxQjtJQUNyQiw2Q0FBNkM7SUFDN0Msc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCxxREFBcUQ7SUFDckQsNkNBQTZDO0lBQzdDLHlDQUF5QztJQUV6QyxRQUFRO0lBQ1IsZ0hBQWdIO0lBQ2hILHNDQUFzQztJQUN0QyxrREFBa0Q7SUFDbEQsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixJQUFJO0lBRUo7Ozs7OztPQU1HO0lBQ0gsc0NBQVksR0FBWjtRQUNJLG1DQUFtQztRQUNuQyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQy9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1oseUJBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0lBdlVEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eURBQ1c7SUFIcEIsZUFBZTtRQUQzQixPQUFPO09BQ0ssZUFBZSxDQTJVM0I7SUFBRCxzQkFBQztDQTNVRCxBQTJVQyxDQTNVb0MsRUFBRSxDQUFDLFNBQVMsR0EyVWhEO0FBM1VZLDBDQUFlIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vTWluaUdhbWVTZGtcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuZW51bSBFV2VjaGF0QUQge1xyXG4gICAgQ1VNU1RPTV8wMSA9ICdhZHVuaXQtZjdjMjQxN2ViMmMyZTQ3MydcclxufVxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlbnRyYW5jZVZpZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlvIDlp4vmuLjmiI/liY3nmoTliJ3lp4vljJbmk43kvZzjgIJcclxuICAgICAqIOS4u+imgei0n+i0o+ajgOafpeW5tuWkhOeQhua4uOaIj+WFpeWPo+aMiemSrueahOa/gOa0u+eKtuaAge+8jOS7peWPiuWcqOeJueWumueOr+Wig+S4i+iuvue9ruS+p+i+ueagj+eahOebkeWQrOWZqOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV6aaW5YWI5bCG5ri45oiP5YWl5Y+j6KeG5Zu+6K6+5Li66Z2e5r+A5rS754q25oCB77yM5Lul5YeG5aSH6L+b6KGM5ZCO57ut55qE5qOA5p+l5ZKM6K6+572u44CCXHJcbiAgICAgKiDlpoLmnpzlvZPliY3njq/looPmmK/mipbpn7PlsI/muLjmiI/vvIzkvJrmo4Dmn6XmmK/lkKblrZjlnKjkvqfovrnmoI/vvIzlubbmoLnmja7mo4Dmn6Xnu5Pmnpzmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq7jgIJcclxuICAgICAqIOWvueS6jumdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5q2k5aSW77yM5peg6K66546v5aKD5aaC5L2V77yM6YO95Lya6K6+572u5LiA5Liq55uR5ZCs5Zmo77yM5Lul5aSE55CG5p2l6Ieq5L6n6L655qCP55qE5LqL5Lu277yM5aaC5oiQ5Yqf6Kem5Y+R5pe25pi+56S65aWW5Yqx5o+Q56S644CCXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2lkOmFueTtcclxuICAgIHByaXZhdGUgX3VzZXJEYXRhOmFueTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE1pbmlHYW1lTWFuYWdlcjtcclxuICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogTWluaUdhbWVNYW5hZ2VyIHtcclxuICAgICAgICBpZiAoIU1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBNaW5pR2FtZU1hbmFnZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgLy8g56aB55So5ri45oiP5YWl5Y+j6KeG5Zu+XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLmdldFVzZXJQcm9maWxlKHRoaXMuc2V0VXNlcklkKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyhcIlwiKTtcclxuICAgICAgICB0aGlzLm9uR2V0TG9naW5Db2RlKCk7XHJcbiAgICAgICAgLy8g5bCd6K+V6I635Y+W5ri45oiP5YWl5Y+j5oyJ6ZKu77yM5aaC5p6c5a2Y5Zyo5YiZ55u05o6l6L+U5Zue77yM5LiN6L+b6KGM5ZCO57ut5pON5L2cXHJcbiAgICAgICAgLy8gbGV0IGJ1dHRvbkVudHJhbmNlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdCdG5zJyk/LmdldENoaWxkQnlOYW1lKCdCdXR0b25fRW50cmFuY2VWaWV3Jyk7XHJcbiAgICAgICAgLy8gaWYgKGJ1dHRvbkVudHJhbmNlKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOaYr+Wtl+iKgui3s+WKqOWwj+a4uOaIj+eOr+Wig++8jOajgOafpeS+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG5cclxuICAgICAgICBpZiAoTWluaUdhbWVTZGsuaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvL+aKlumfs+eOr+Wig++8jOajgOa1i+S+p+i+ueagj+WtmOWcqFxyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmNoZWNrU2lkZUJhcigoc3VjY2VzczogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8g5qC55o2u5L6n6L655qCP5a2Y5Zyo5oCn5r+A5rS75oiW56aB55So5ri45oiP5YWl5Y+j5oyJ6ZKuXHJcbiAgICAgICAgICAgICAgICAvLyBidXR0b25FbnRyYW5jZS5hY3RpdmUgPSBzdWNjZXNzO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7PlsI/muLjmiI/njq/looPvvIznm7TmjqXmv4DmtLvmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgLy8g6Z2e5oqW6Z+z546v5aKD77yM5q2j5bi45pi+56S65oyJ6ZKuXHJcbiAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7nm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuqTkupLkuovku7ZcclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmxpc3RlbkZyb21TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOS6pOS6kuaIkOWKn++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn5L6n6L655qCP5aWW5YqxJywgNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZGVsdGFUaW1lOiBudW1iZXIpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvLnlh7rlub/lkYrmqKrluYXjgIJcclxuICAgICAqIOatpOaWueazleeUqOS6juWKoOi9veW5tuaYvuekuuW5v+WRiuaoquW5heOAguWug+mmluWFiOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiu+8jOeEtuWQjuaYvuekuuW5v+WRiuOAglxyXG4gICAgICog5Yqg6L295bm/5ZGK5ZKM5pi+56S65bm/5ZGK5piv6YCa6L+HTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcueahOWunuS+i+aWueazleadpeWunueOsOeahOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5o+Q5L6b5LqG5Lik56eN5pi+56S65qiq5bmF5bm/5ZGK55qE5pa55byP77yaXHJcbiAgICAgKiAxLiDpu5jorqTmlrnlvI/vvJrosIPnlKhzaG93QmFubmVy5pa55rOV5pi+56S65bm/5ZGK77yM57O757uf5Lya6Ieq5Yqo6YCJ5oup5pi+56S65L2N572u44CCXHJcbiAgICAgKiAyLiDmjIflrprkvY3nva7mlrnlvI/vvJrlj6/ku6XpgJrov4fkvKDlhaXpop3lpJbnmoTlj4LmlbDmnaXmjIflrprlub/lkYrmmL7npLrlnKjlsY/luZXnmoTpobbpg6jmiJblupXpg6jvvIzmiJbogIXpgJrov4flnZDmoIfmjIflrprmmL7npLrkvY3nva7jgIJcclxuICAgICAqIFxyXG4gICAgICog56S65L6L5Luj56CB5Lit5rOo6YeK5o6J5LqG5Lik56eN5pi+56S65bm/5ZGK55qE5YW35L2T5pa55rOV77yM5Y+v5Lul5qC55o2u5a6e6ZmF6ZyA5rGC6YCJ5oup5L2/55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprlub/lkYrkvY3nmoTmqKrluYXlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRCYW5uZXIoJ2FkdW5pdC00ZTdlZjQ2N2UzZWFhYjUxJyk7XHJcblxyXG4gICAgICAgIC8vIOm7mOiupOaWueW8j+aYvuekuuaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIC8vIOaWueazlTHvvJrpu5jorqTosIPnlKhcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dCYW5uZXIoKTtcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya5oyH5a6a5bGP5bmV5bqV6YOo5q2j5Lit5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWxj+W5lemhtumDqOaIluW6lemDqOato+S4rVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCBNaW5pR2FtZVNkay5FQWRCYW5uZXJMb2NhdGlvbi5CT1RUT00pOyBcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya6YCa6L+H5Z2Q5qCH5oyH5a6a5L2N572u5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWdkOagh1xyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCB7IHRvcDogMTAsIGxlZnQ6IDEwIH0pOyBcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmakOiXj+W5v+WRiuaoquW5heeahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM55So5LqO6ZqQ6JeP5bm/5ZGK5qiq5bmF44CCXHJcbiAgICAgKiDlvZPpnIDopoHmmoLml7blgZzmraLlsZXnpLrlub/lkYrmiJbnlKjmiLfkuLvliqjor7fmsYLpmpDol4/lub/lkYrml7bvvIzlj6/ku6XosIPnlKjmraTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICog5a6D5Y2V57qv5Zyw6Kem5Y+R5bm/5ZGK5qiq5bmF55qE6ZqQ6JeP5pON5L2c77yM5YW35L2T5a6e546w5L6d6LWW5LqOQWR2ZXJ0TWFuYWdlcueahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQmFubmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrmj5LlsY/lub/lkYrnmoTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcuWunuS+i+eahOaWueazle+8jOS7peaYvuekuuS4gOS4quaMh+WumueahOaPkuWxj+W5v+WRiuOAglxyXG4gICAgICog5a6D5L2/55So5LqG56Gs57yW56CB55qE5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM6L+Z5oSP5ZGz552A5a6D5LiT5Li654m55a6a55qE5bm/5ZGK5L2N6K6+6K6h44CCXHJcbiAgICAgKiDlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/og73pnIDopoHmoLnmja7lupTnlKjnmoTphY3nva7miJbnlKjmiLfnmoTnibnlrprmnaHku7bmnaXliqjmgIHpgInmi6nlub/lkYrljZXlhYPmoIfor4bnrKbjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93SW50ZXJzdGl0aWFsKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0ludGVyc3RpdGlhbCgnYWR1bml0LWVhZGQ2Nzg1MWQzMDUwYWQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiwg+eUqOW5v+WRiueuoeeQhuWZqOWKoOi9veW5tuWxleekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICog5q2k5pa55rOV6aaW5YWI6YCa6L+H5bm/5ZGK566h55CG5Zmo55qE5a6e5L6L5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD77yM54S25ZCO5bGV56S66L+Z5Liq6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lkozlsZXnpLrlub/lkYrmmK/lub/lkYrnrqHnkIbns7vnu5/kuK3nmoTluLjop4Hmk43kvZzvvIzov5nph4zpgJrov4fkuKTmraXliIbliKvlrozmiJDliqDovb3lkozlsZXnpLrnmoTov4fnqIvvvIxcclxuICAgICAqIOS7peehruS/neW5v+WRiuWcqOWxleekuuWJjeato+ehruS4lOWFheWIhuWcsOiiq+WKoOi9veOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dDdXN0b20oKSB7XHJcbiAgICAgICAgLy8g5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5sb2FkQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgICAgICAvLyDlsZXnpLrlt7LliqDovb3nmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UuaGlkZUN1c3RvbSgp5p2l6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDov5nmmK/lr7nmjqXlub/lkYrnrqHnkIbns7vnu5/nmoTkuIDpg6jliIbvvIznlKjkuo7mjqfliLblub/lkYrnmoTmmL7npLrkuI7pmpDol4/jgIJcclxuICAgICAqIOWcqOmcgOimgemakOiXj+iHquWumuS5ieW5v+WRiueahOWcuuaZr+S4i++8jOiwg+eUqOatpOWHveaVsOWNs+WPr+WunueOsOebuOW6lOWKn+iDveOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVDdXN0b20oKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeaYvuekuuinhumikeW5v+WRiueahOWHveaVsOOAglxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93VmlkZW/mlrnms5XvvIzmmL7npLrkuIDkuKrop4bpopHlub/lkYrvvIzlubbmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTmg4XlhrXmiafooYznm7jlupTnmoTpgLvovpHjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOmmluWFiOS8oOWFpeS4gOS4quW5v+WRiuWNleWFg0lE77yM55So5LqO5qCH6K+G6KaB5pi+56S655qE6KeG6aKR5bm/5ZGK44CC54S25ZCO5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw77yM6K+l5Zue6LCD5Ye95pWw5Zyo55So5oi36KeC55yL5bm/5ZGK5ZCO6KKr6LCD55So77yM5peg6K6655So5oi35piv5a6M5oiQ5LqG6KeC55yL44CB5ouS57ud5LqG6KeC55yL6L+Y5piv6KeC55yL6L+H56iL5Lit5Y+R55Sf5LqG6ZSZ6K+v44CCXHJcbiAgICAgKiDlm57osIPlh73mlbDmjqXmlLbkuKTkuKrlj4LmlbDvvJrkuIDkuKrmmK/nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzlj6bkuIDkuKrmmK/nlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph4/jgILmoLnmja7op4LnnIvnu5PmnpznmoTkuI3lkIzvvIzmmL7npLrkuI3lkIznmoTmj5DnpLrkv6Hmga/jgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VmlkZW8oKSB7XHJcbiAgICAgICAgLy8g5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYpcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJROeahOagt+S+i1xyXG4gICAgICAgIC8v5oqW6Z+z5b2i5aaCOiAxcmUzbmZxa215ODFtNG04Z2VcclxuICAgICAgICAvL+W+ruS/oeW9ouWmgjogYWR1bml0LWE3NzE4ZjZlMTk1ZTQyZmVcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlbygnMXJlM25mcWtteTgxbTRtOGdlJywgKHJlczogTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgLy8g6L6T5Ye655So5oi36KeC55yL55qE5bm/5ZGK5pWw6YePXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfnlKjmiLfnnIvnmoTop4bpopHlub/lkYrkuKrmlbDmmK86JywgY291bnQpO1xyXG5cclxuICAgICAgICAgICAgLy8g5qC55o2u55So5oi36KeC55yL5bm/5ZGK55qE57uT5p6c77yM5omn6KGM5LiN5ZCM55qE6YC76L6RXHJcbiAgICAgICAgICAgIHN3aXRjaCAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkFDQ0VQVDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDnlKjmiLflrozmiJDkuoblub/lkYrop4LnnIvvvIzmmL7npLrlpZblirHmj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfnlKjmiLfnnIvlrozlub/lkYrvvIzlj6/ku6XlpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuUkVKRUNUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+aLkue7neS6huW5v+WRiuingueci++8jOaYvuekuuS4jeWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+aLkue7neaOieW5v+WRiu+8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5FUlJPUjpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlub/lkYrmkq3mlL7lj5HnlJ/plJnor6/vvIzmmL7npLrplJnor6/mj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfmkq3mlL7lub/lkYrlj5HnlJ/plJnor6/vvIzkuI3lpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW25LuW5oOF5Ya177yM5LiN5L2c5aSE55CGXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8leWvvOeUqOaIt+WIhuS6q+W6lOeUqOe7meaci+WPi+OAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeWIhuS6q+WKn+iDve+8jOWQkeeUqOaIt+eahOaci+WPi+WciOWPkemAgemCgOivt++8jOmCgOivt+S7luS7rOS4gOi1t+eOqea4uOaIj+OAglxyXG4gICAgICog6L+Z5piv5LiA5Liq6YeN6KaB55qE5o6o5bm/5omL5q6177yM5Y+v5Lul5aKe5Yqg5bqU55So55qE5pud5YWJ5bqm5ZKM55So5oi36YeP44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XkuK3osIPnlKjnmoRBUEnkvp3otZbkuo7nibnlrprnmoTlsI/muLjmiI/lubPlj7DvvIzlm6DmraTlnKjkuI3lkIznmoTlubPlj7DkuIrlj6/og73pnIDopoHkuI3lkIznmoTlrp7njrDjgIJcclxuICAgICAqL1xyXG4gICAgb25TaGFyZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hhcmVBcHBUb0ZyaWVuZHMoJ+adpeeOqea4uOaIj+WQpycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65LiA5LiqdG9hc3Tmj5DnpLrjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XmnaXmmL7npLrkuIDkuKrnroDnn63nmoTmj5DnpLrkv6Hmga/jgIJ0b2FzdOaYr+S4gOenjei9u+mHj+e6p+eahOaPkOekuuaWueW8j++8jOeUqOS6juWcqOeVjOmdouS4iuefreaaguWcsOWxleekuuS4gOS6m+S/oeaBr++8jOS4jeW9seWTjeeUqOaIt+aTjeS9nOOAglxyXG4gICAgICog6L+Z6YeM5L2/55So5LqG5Zu65a6a55qE5o+Q56S65paH5pysICfov5nmmK/kuIDkuKp0b2FzdCfvvIzlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/ku6XmoLnmja7pnIDopoHliqjmgIHorr7nva7mj5DnpLrmlofmnKzjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VG9hc3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn6L+Z5piv5LiA5LiqdG9hc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeiuvuWkh+aMr+WKqOWKn+iDveOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xmlrnms5XnlKjkuo7osIPnlKhNaW5pR2FtZVNka+aPkOS+m+eahEFQSe+8jOS7peWunueOsOiuvuWkh+eahOaMr+WKqOWKn+iDveOAguW9k+mcgOimgeaPkOmGkueUqOaIt+aIluaPkOS+m+inpuinieWPjemmiOaXtu+8jOWPr+S7peiwg+eUqOatpOaWueazleOAglxyXG4gICAgICog5L6L5aaC77yM5Zyo5ri45oiP5oiW5bqU55So5Lit77yM5b2T55So5oi35a6M5oiQ54m55a6a5pON5L2c5oiW5Y+R55Sf54m55a6a5LqL5Lu25pe277yM5Y+v5Lul6YCa6L+H5oyv5Yqo57uZ5LqI55So5oi35Y+N6aaI44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xml6Dlj4LmlbDvvIzkuZ/kuI3ov5Tlm57ku7vkvZXlgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25WaXJicmF0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkudmlicmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YeN5paw5ZCv5Yqo5ri45oiP5a6e5L6L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOatpOWHveaVsOiwg+eUqE1pbmlHYW1lU2Rr5Lit55qEQVBJ6YeN5paw5ZCv5Yqo5ri45oiP44CC6YeN5paw5ZCv5Yqo5pON5L2c5Y+v6IO95piv5Li65LqG5Yid5aeL5YyW5ri45oiP546v5aKD44CB6YeN572u5ri45oiP54q25oCB5oiW5aSE55CG5YW25LuW6ZyA6KaB6YeN5ZCv55qE5Zy65pmv44CCXHJcbiAgICAgKiDosIPnlKjmraTlh73mlbDlkI7vvIzmuLjmiI/lsIbkvJrph43mlrDlvIDlp4vvvIzlvZPliY3nmoTmuLjmiI/nirbmgIHlsIbkvJrooqvmuIXpmaTjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyDml6Dov5Tlm57lgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25SZWJvb3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnJlYm9vdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN5Ye95pWw55So5LqO5Zyo6L+35L2g5ri45oiP5Lit5a6e546w6YCA5Ye65Yqf6IO944CCXHJcbiAgICAgKiDlroPosIPnlKjkuoZNaW5pR2FtZVNka+aPkOS+m+eahEFQSeaWueazleadpeinpuWPkemAgOWHuuaTjeS9nOOAglxyXG4gICAgICog6K+l5pa55rOV6YCa5bi45Zyo6ZyA6KaB57uT5p2f5b2T5YmN6L+35L2g5ri45oiP5oiW6L+U5Zue5Yiw5LiK5LiA57qn6I+c5Y2V5pe26KKr6LCD55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uRXhpdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZXhpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65YiG5Lqr6I+c5Y2V44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5pa55rOV77yM6Kem5Y+R5pi+56S65YiG5Lqr6I+c5Y2V55qE5pON5L2c44CC5q2k5Ye95pWw5peo5Zyo5o+Q5L6b5LiA5Liq57uf5LiA55qE5YWl5Y+j77yMXHJcbiAgICAgKiDku6Xkvr/lnKjpnIDopoHml7bovbvmnb7osIPnlKjliIbkuqvlip/og73vvIzogIzml6DpnIDnm7TmjqXkuI7lhbfkvZPnmoRTREvmjqXlj6PkuqTkupLjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dTaGFyZU1lbnUoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dTaGFyZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWvvOiIquWIsOaMh+WumueahOWwj+a4uOaIj+OAglxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5Hlr7zoiKrliLDkuIDkuKrnibnlrprnmoTlsI/muLjmiI/jgILov5npnIDopoHmj5Dkvpvnm67moIflsI/muLjmiI/nmoRJRO+8jFxyXG4gICAgICog5Lul5L6/57O757uf6IO95aSf5q2j56Gu5Zyw5bCG55So5oi36YeN5a6a5ZCR5Yiw55uu5qCH5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOazqOaEj++8mui/memHjOeahCd4eHgn5piv5Y2g5L2N56ym77yM5a6e6ZmF5L2/55So5pe26ZyA6KaB5pu/5o2i5Li65YW35L2T55qE5bCP5ri45oiPSUTjgIJcclxuICAgICAqL1xyXG4gICAgb25OYXZpZ2F0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkubmF2aWdhdGVUbygneHh4Jyk7IC8vIHh4eOabv+aNouS4uuS9oOeahOWwj+a4uOaIj2lkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmv4DmtLvlrZfoioLot7PliqjlhaXlj6Pop4blm77jgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG5a2X6IqC6Lez5Yqo5YWl5Y+j6KeG5Zu+6K6+572u5Li65rS76LeD54q25oCB44CC5b2T6ZyA6KaB5Zyo55So5oi355WM6Z2i5Lit5pi+56S65a2X6IqC6Lez5Yqo55qE5YWl5Y+j5pe277yMXHJcbiAgICAgKiDlj6/ku6XosIPnlKjmraTmlrnms5XmnaXmv4DmtLvnm7jlupTnmoTop4blm77lhYPntKDvvIzkvb/lhbblr7nnlKjmiLflj6/op4HjgIJcclxuICAgICAqL1xyXG4gICAgb25CeXRlZGFuY2VFbnRyYW5jZVZpZXcoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOivt+axgueZu+W9leS7o+eggVxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5HlsI/nqIvluo/nmoTnmbvlvZXmtYHnqIvvvIzojrflj5blvq7kv6HmiJblpLTmnaHnrYnnrKzkuInmlrnlubPlj7DnmoTnmbvlvZXku6PnoIHjgIJcclxuICAgICAqIOi/meS6m+S7o+eggeWPr+S7peeUqOS6juWQjue7reeahOeUqOaIt+i6q+S7vemqjOivgeWSjOaVsOaNruWQjOatpea1geeoi+OAglxyXG4gICAgICovXHJcbiAgICBvbkdldExvZ2luQ29kZSgpIHtcclxuICAgICAgICAvLyDosIPnlKhNaW5pR2FtZVNka+eahEFQSeeZu+W9leaWueazle+8jOS8oOWFpeS4gOS4quWbnuiwg+WHveaVsOWkhOeQhueZu+W9lee7k+aenFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5b6u5L+h5oiW5aS05p2h55qE55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWNoYXQgT3IgQnl0ZWRhbmNlIENvZGU6JywgY29kZSk7XHJcbiAgICAgICAgICAgIC8vIOaJk+WNsOWktOadoeeahOWMv+WQjeeZu+W9leS7o+eggVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQnl0ZWRhbmNlIEFub255bW91cyBDb2RlOicsIGFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICBpZihjb2RlKXtcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJJZChjb2RlLCBkYXRhID0+IHRoaXMuc2V0VXNlcklkKGRhdGEpKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXRVc2VySWQoZGF0YSl7XHJcbiAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCA9IGRhdGEuZGF0YS51c2VySWQ7XHJcbiAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLmdldFVzZXJJbmZvKHRoaXMuc2V0VXNlckluZm8pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFVzZXJJbmZvKGRhdGEpe1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwi6I635Y+W5Yiw55qE55So5oi35L+h5oGvXCIsZGF0YS51c2VySW5mbyk7XHJcbiAgICAvLyAgICAgdmFyIHVzZURhdGEgPSB7XHJcbiAgICAvLyAgICAgICAgIFwiZ2FtZUlkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAvLyAgICAgICAgIFwibmlja05hbWVcIjpkYXRhLnVzZXJJbmZvLm5pY2tOYW1lLFxyXG4gICAgLy8gICAgICAgICBcInBpY1wiOiBkYXRhLnVzZXJJbmZvLmF2YXRhclVybFxyXG4gICAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOeUqOaIt+S/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLGRhdGEudXNlckluZm8ubmlja05hbWUsZGF0YS51c2VySW5mby5hdmF0YXJVcmwpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiUG9zdOaVsOaNrjpcIix1c2VEYXRhKTtcclxuICAgIC8vICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyh1c2VEYXRhLChyZXMpPT57XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5oiQ5YqfOlwiLHJlcyk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rlubbmmL7npLrmuLjmiI/lnIjmjInpkq5cclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRHYW1lQ2x1YuWunuS+i+aWueazle+8jOWunueOsOa4uOaIj+S/seS5kOmDqOeahOWIm+W7uuWSjOaYvuekuuOAglxyXG4gICAgICog5a6D6aaW5YWI6YWN572u5L+x5LmQ6YOo55qE5Zu+5qCH57G75Z6L5ZKM5L2N572u5aSn5bCP77yM54S25ZCO5Yib5bu65L+x5LmQ6YOo77yM5pyA5ZCO5pi+56S65L+x5LmQ6YOo44CCXHJcbiAgICAgKiDov5nmoLflgZrmmK/kuLrkuoblnKjlsI/muLjmiI/lhoXliJvlu7rlubblsZXnpLrkuIDkuKrmuLjmiI/kv7HkuZDpg6jnmoTlm77moIfvvIzkvpvnjqnlrrbliqDlhaXmiJbkupLliqjjgIJcclxuICAgICAqL1xyXG4gICAgb25DcmVhdGVDbHViKCkge1xyXG4gICAgICAgIC8vIOmFjee9ruS/seS5kOmDqOWbvuagh+S4uue7v+iJsu+8jOiuvue9ruWbvuagh+eahOS9jee9ruS4uumhtumDqDIwMOWDj+e0oO+8jOW3puS+pzDlg4/ntKBcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5jcmVhdGUoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkVHYW1lQ2x1Ykljb24uR1JFRU4sXHJcbiAgICAgICAgICAgIHsgdG9wOiAyMDAsIGxlZnQ6IDAgfSxcclxuICAgICAgICAgICAgeyB3aWR0aDogNTAsIGhlaWdodDogNTAgfSk7XHJcbiAgICAgICAgLy8g5pi+56S65ri45oiP5L+x5LmQ6YOo5Zu+5qCHXHJcbiAgICAgICAgTWluaUdhbWVTZGsuR2FtZUNsdWIuaW5zdGFuY2Uuc2hvdygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -412,7 +630,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js';
+ var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -420,807 +638,8 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite');
-// Script/TmoSprite.js
-
-"use strict";
-
-exports.__esModule = true;
-exports["default"] = void 0;
-var _TmoAssembler = require("./TmoAssembler");
-var _default = cc.Class({
- "extends": cc.Sprite,
- /**
- * 设置TextureIndex
- */
- setTextureIdx: function setTextureIdx(idx) {
- this._textureIdx = idx;
- this.setVertsDirty();
- },
- _getDefaultMaterial: function _getDefaultMaterial() {
- // 从TiledMap取得默认的材质
- return this._getTiledMap().getObjectMaterial();
- },
- _updateMaterial: function _updateMaterial() {
- // make sure material is belong to self.
- var material = this.getMaterial(0);
- if (material) {
- if (material.getDefine('USE_TEXTURE') !== undefined) {
- material.define('USE_TEXTURE', true);
- }
- // 手动设置哈希值,避免无法合批
- material.updateHash(999999);
-
- // 增加WITH_COLOR宏定义
- var noColor = this.isNoColor();
- material.define('WITH_COLOR', !noColor);
- }
- cc.BlendFunc.prototype._updateMaterial.call(this);
- },
- _resetAssembler: function _resetAssembler() {
- // 修改默认Assembler
- var assembler = this._assembler = new _TmoAssembler.TmoAssembler();
- assembler.init(this);
- this._updateColor();
- this.setVertsDirty();
- },
- _getTiledMap: function _getTiledMap() {
- return this.node._tiledMap;
- },
- isNoColor: function isNoColor() {
- return this._getTiledMap().isNoColor();
- }
-});
-exports["default"] = _default;
-module.exports = exports["default"];
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbIl9UbW9Bc3NlbWJsZXIiLCJyZXF1aXJlIiwiX2RlZmF1bHQiLCJjYyIsIkNsYXNzIiwiU3ByaXRlIiwic2V0VGV4dHVyZUlkeCIsImlkeCIsIl90ZXh0dXJlSWR4Iiwic2V0VmVydHNEaXJ0eSIsIl9nZXREZWZhdWx0TWF0ZXJpYWwiLCJfZ2V0VGlsZWRNYXAiLCJnZXRPYmplY3RNYXRlcmlhbCIsIl91cGRhdGVNYXRlcmlhbCIsIm1hdGVyaWFsIiwiZ2V0TWF0ZXJpYWwiLCJnZXREZWZpbmUiLCJ1bmRlZmluZWQiLCJkZWZpbmUiLCJ1cGRhdGVIYXNoIiwibm9Db2xvciIsImlzTm9Db2xvciIsIkJsZW5kRnVuYyIsInByb3RvdHlwZSIsImNhbGwiLCJfcmVzZXRBc3NlbWJsZXIiLCJhc3NlbWJsZXIiLCJfYXNzZW1ibGVyIiwiVG1vQXNzZW1ibGVyIiwiaW5pdCIsIl91cGRhdGVDb2xvciIsIm5vZGUiLCJfdGlsZWRNYXAiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQThDLElBQUFDLFFBQUEsR0FFL0JDLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3BCLFdBQVNELEVBQUUsQ0FBQ0UsTUFBTTtFQUVsQjtBQUNKO0FBQ0E7RUFDSUMsYUFBYSxXQUFBQSxjQUFDQyxHQUFHLEVBQUU7SUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0QsR0FBRztJQUN0QixJQUFJLENBQUNFLGFBQWEsRUFBRTtFQUN4QixDQUFDO0VBRURDLG1CQUFtQixXQUFBQSxvQkFBQSxFQUFHO0lBQ2xCO0lBQ0EsT0FBTyxJQUFJLENBQUNDLFlBQVksRUFBRSxDQUFDQyxpQkFBaUIsRUFBRTtFQUNsRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJRCxRQUFRLEVBQUU7TUFDVixJQUFJQSxRQUFRLENBQUNFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBS0MsU0FBUyxFQUFFO1FBQ2pESCxRQUFRLENBQUNJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO01BQ3hDO01BQ0E7TUFDQUosUUFBUSxDQUFDSyxVQUFVLENBQUMsTUFBTSxDQUFDOztNQUUzQjtNQUNBLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUNDLFNBQVMsRUFBRTtNQUM5QlAsUUFBUSxDQUFDSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUNFLE9BQU8sQ0FBQztJQUMzQztJQUVBakIsRUFBRSxDQUFDbUIsU0FBUyxDQUFDQyxTQUFTLENBQUNWLGVBQWUsQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztFQUNyRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUlDLDBCQUFZLEVBQUU7SUFDcERGLFNBQVMsQ0FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQztJQUVwQixJQUFJLENBQUNDLFlBQVksRUFBRTtJQUNuQixJQUFJLENBQUNyQixhQUFhLEVBQUU7RUFDeEIsQ0FBQztFQUVERSxZQUFZLFdBQUFBLGFBQUEsRUFBRztJQUNYLE9BQU8sSUFBSSxDQUFDb0IsSUFBSSxDQUFDQyxTQUFTO0VBQzlCLENBQUM7RUFFRFgsU0FBUyxXQUFBQSxVQUFBLEVBQUc7SUFDUixPQUFPLElBQUksQ0FBQ1YsWUFBWSxFQUFFLENBQUNVLFNBQVMsRUFBRTtFQUMxQztBQUNKLENBQUMsQ0FBQztBQUFBWSxPQUFBLGNBQUEvQixRQUFBO0FBQUFnQyxNQUFBLENBQUFELE9BQUEsR0FBQUEsT0FBQSIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG1vQXNzZW1ibGVyIH0gZnJvbSBcIi4vVG1vQXNzZW1ibGVyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5TcHJpdGUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDorr7nva5UZXh0dXJlSW5kZXhcclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZUlkeChpZHgpIHtcclxuICAgICAgICB0aGlzLl90ZXh0dXJlSWR4ID0gaWR4XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXREZWZhdWx0TWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8g5LuOVGlsZWRNYXDlj5blvpfpu5jorqTnmoTmnZDotKhcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5nZXRPYmplY3RNYXRlcmlhbCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfdXBkYXRlTWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8gbWFrZSBzdXJlIG1hdGVyaWFsIGlzIGJlbG9uZyB0byBzZWxmLlxyXG4gICAgICAgIGxldCBtYXRlcmlhbCA9IHRoaXMuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICAgICAgaWYgKG1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXRlcmlhbC5nZXREZWZpbmUoJ1VTRV9URVhUVVJFJykgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdVU0VfVEVYVFVSRScsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOaJi+WKqOiuvue9ruWTiOW4jOWAvO+8jOmBv+WFjeaXoOazleWQiOaJuVxyXG4gICAgICAgICAgICBtYXRlcmlhbC51cGRhdGVIYXNoKDk5OTk5OSk7XHJcblxyXG4gICAgICAgICAgICAvLyDlop7liqBXSVRIX0NPTE9S5a6P5a6a5LmJXHJcbiAgICAgICAgICAgIGxldCBub0NvbG9yID0gdGhpcy5pc05vQ29sb3IoKTtcclxuICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdXSVRIX0NPTE9SJywgIW5vQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2MuQmxlbmRGdW5jLnByb3RvdHlwZS5fdXBkYXRlTWF0ZXJpYWwuY2FsbCh0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3Jlc2V0QXNzZW1ibGVyKCkge1xyXG4gICAgICAgIC8vIOS/ruaUuem7mOiupEFzc2VtYmxlclxyXG4gICAgICAgIGxldCBhc3NlbWJsZXIgPSB0aGlzLl9hc3NlbWJsZXIgPSBuZXcgVG1vQXNzZW1ibGVyKCk7XHJcbiAgICAgICAgYXNzZW1ibGVyLmluaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yKCk7XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXRUaWxlZE1hcCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLl90aWxlZE1hcDtcclxuICAgIH0sXHJcblxyXG4gICAgaXNOb0NvbG9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRUaWxlZE1hcCgpLmlzTm9Db2xvcigpO1xyXG4gICAgfVxyXG59KTtcclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager');
-// Script/DynamicAtlasManager.js
-
-"use strict";
-
-cc.Class({
- "extends": cc.Component,
- properties: {},
- onLoad: function onLoad() {
- cc.dynamicAtlasManager.enabled = false;
- }
-});
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUUsQ0FDWixDQUFDO0VBRURDLE1BQU0sV0FBQUEsT0FBQSxFQUFJO0lBQ05KLEVBQUUsQ0FBQ0ssbUJBQW1CLENBQUNDLE9BQU8sR0FBRyxLQUFLO0VBQzFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgfSxcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgfSxcclxufSk7XHJcbiJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/shop/script/item.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'de906iE/HVHpI6VO7IMvKaI', 'item');
-// shop/script/item.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var NewClass = /** @class */ (function (_super) {
- __extends(NewClass, _super);
- function NewClass() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.label = null;
- _this.text = 'hello';
- return _this;
- // update (dt) {}
- }
- // LIFE-CYCLE CALLBACKS:
- // onLoad () {}
- NewClass.prototype.start = function () {
- };
- //购买商品道具
- NewClass.prototype.buyProp = function (propName) {
- // if(cc.fx.GameConfig.GM_INFO.coin < 1500){
- // MiniGameSdk.API.showToast("金币不足,无法购买道具");
- // return;
- // }
- // let propWindow = this.node.parent.parent.getChildByName("propWindow");
- // propWindow.active = false;
- // cc.fx.GameConfig.GM_INFO.coin -= 1500;
- };
- __decorate([
- property(cc.Label)
- ], NewClass.prototype, "label", void 0);
- __decorate([
- property
- ], NewClass.prototype, "text", void 0);
- NewClass = __decorate([
- ccclass
- ], NewClass);
- return NewClass;
-}(cc.Component));
-exports.default = NewClass;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMkJDO1FBeEJHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQzs7UUFvQnZCLGlCQUFpQjtJQUNyQixDQUFDO0lBcEJHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCxRQUFRO0lBQ1IsMEJBQU8sR0FBUCxVQUFRLFFBQVE7UUFDWiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELGNBQWM7UUFDZCxJQUFJO1FBQ0oseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3Qix5Q0FBeUM7SUFDN0MsQ0FBQztJQXJCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyQjVCO0lBQUQsZUFBQztDQTNCRCxBQTJCQyxDQTNCcUMsRUFBRSxDQUFDLFNBQVMsR0EyQmpEO2tCQTNCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ld0NsYXNzIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+i0reS5sOWVhuWTgemBk+WFt1xyXG4gICAgYnV5UHJvcChwcm9wTmFtZSkge1xyXG4gICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgLy8gICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgLy8gcHJvcFdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiAtPSAxNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1');
-// migration/use_v2.1-2.2.1_cc.Toggle_event_1.js
-
-"use strict";
-
-/*
- * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.
- * You do not need to manually add this script in any other project.
- * If you don't use cc.Toggle in your project, you can delete this script directly.
- * If your project is hosted in VCS such as git, submit this script together.
- *
- * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,
- * 你无需在任何其它项目中手动添加此脚本。
- * 如果你的项目中没用到 Toggle,可直接删除该脚本。
- * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。
- */
-
-if (cc.Toggle) {
- // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code
- // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件
- cc.Toggle._triggerEventInScript_isChecked = true;
-}
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQU0sRUFBRTtFQUNYO0VBQ0E7RUFDQUQsRUFBRSxDQUFDQyxNQUFNLENBQUNDLCtCQUErQixHQUFHLElBQUk7QUFDcEQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/prop/Lock.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '41cb8ugLSBH/5aNhnsJ5lX7', 'Lock');
-// Script/prop/Lock.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var NumberToImage_1 = require("../NumberToImage");
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Lock = /** @class */ (function (_super) {
- __extends(Lock, _super);
- function Lock() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.time = 0;
- return _this;
- // update (dt) {}
- }
- // mapInfo: number[][] = [];
- Lock.prototype.onLoad = function () {
- };
- Lock.prototype.start = function () {
- };
- Lock.prototype.init = function (time) {
- if (time)
- this.time = time;
- this.node.getChildByName("time").active = true;
- NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false);
- };
- Lock.prototype.reduce = function () {
- this.time -= 1;
- NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false);
- if (this.time <= 0) {
- this.node.parent.getComponent("Block").type = 0;
- this.node.destroy();
- this.node.removeFromParent();
- }
- };
- Lock = __decorate([
- ccclass
- ], Lock);
- return Lock;
-}(cc.Component));
-exports.default = Lock;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxMb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2xGLGtEQUE2QztBQUV2QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQStCQztRQTdCRyxVQUFJLEdBQVcsQ0FBQyxDQUFDOztRQTRCakIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcsNEJBQTRCO0lBRTVCLHFCQUFNLEdBQU47SUFFQSxDQUFDO0lBRUQsb0JBQUssR0FBTDtJQUNBLENBQUM7SUFFRCxtQkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBHLENBQUM7SUFFRCxxQkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDZix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQTVCZ0IsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQStCeEI7SUFBRCxXQUFDO0NBL0JELEFBK0JDLENBL0JpQyxFQUFFLENBQUMsU0FBUyxHQStCN0M7a0JBL0JvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4uL051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSAxO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView');
-// Script/Sdk/DouyinEntranceView.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.DouyinEntranceView = void 0;
-var MiniGameSdk_1 = require("./MiniGameSdk");
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var DouyinEntranceView = /** @class */ (function (_super) {
- __extends(DouyinEntranceView, _super);
- function DouyinEntranceView() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DouyinEntranceView.prototype.start = function () {
- };
- DouyinEntranceView.prototype.update = function (deltaTime) {
- };
- DouyinEntranceView.prototype.onCloseClick = function () {
- this.node.active = false;
- };
- DouyinEntranceView.prototype.onNavigateToDouyinClick = function () {
- MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) {
- if (success) {
- console.log('跳转成功');
- }
- else {
- console.log('跳转失败');
- }
- });
- };
- DouyinEntranceView = __decorate([
- ccclass
- ], DouyinEntranceView);
- return DouyinEntranceView;
-}(cc.Component));
-exports.DouyinEntranceView = DouyinEntranceView;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/effect/融化.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '341aezWi/BCGa2q28VO8ioy', '融化');
-// effect/融化.ts
-
-"use strict";
-// IceMelt.ts
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.IceMelt = void 0;
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var IceMelt = /** @class */ (function (_super) {
- __extends(IceMelt, _super);
- function IceMelt() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.speed = 1;
- //是否融化
- _this._isMelt = false;
- _this._time = 0;
- return _this;
- }
- IceMelt.prototype.start = function () {
- this._material = this.node.getComponent(cc.Sprite).getMaterial(0);
- };
- IceMelt.prototype.update = function (dt) {
- if (this._material && this._isMelt) {
- this._material.setProperty('u_time', this._time);
- this._time += dt * this.speed;
- }
- };
- //开始融化
- IceMelt.prototype.startMelt = function () {
- this._isMelt = true;
- this._time = 0;
- };
- IceMelt = __decorate([
- ccclass()
- ], IceMelt);
- return IceMelt;
-}(cc.Component));
-exports.IceMelt = IceMelt;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcZWZmZWN0XFzono3ljJYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJUCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUE2QiwyQkFBWTtJQUF6QztRQUFBLHFFQXlCQztRQXZCRyxXQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRWxCLE1BQU07UUFDRSxhQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQUssR0FBVyxDQUFDLENBQUM7O0lBbUI5QixDQUFDO0lBaEJHLHVCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELHdCQUFNLEdBQU4sVUFBTyxFQUFFO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELE1BQU07SUFDTiwyQkFBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQXhCUSxPQUFPO1FBRG5CLE9BQU8sRUFBRTtPQUNHLE9BQU8sQ0F5Qm5CO0lBQUQsY0FBQztDQXpCRCxBQXlCQyxDQXpCNEIsRUFBRSxDQUFDLFNBQVMsR0F5QnhDO0FBekJZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSWNlTWVsdC50c1xyXG5cclxuXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3MoKVxyXG5leHBvcnQgY2xhc3MgSWNlTWVsdCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgc3BlZWQ6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLy/mmK/lkKbono3ljJZcclxuICAgIHByaXZhdGUgX2lzTWVsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdGltZTogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgX21hdGVyaWFsOiBjYy5NYXRlcmlhbFZhcmlhbnQ7XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5fbWF0ZXJpYWwgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21hdGVyaWFsICYmIHRoaXMuX2lzTWVsdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eSgndV90aW1lJywgdGhpcy5fdGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWUgKz0gZHQgKiB0aGlzLnNwZWVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+iejeWMllxyXG4gICAgc3RhcnRNZWx0KCkge1xyXG4gICAgICAgIHRoaXMuX2lzTWVsdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fdGltZSA9IDA7XHJcbiAgICB9XHJcbn0iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_game_util.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '63c53CB9dhL/phFOPtTeuF7', 'lq_game_util');
-// Script/lq_base/util/lq_game_util.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQGameUtil = void 0;
-var director = cc.director;
-var tween = cc.tween;
-var visibleRect = cc.visibleRect;
-var find = cc.find;
-var LQGameUtil = /** @class */ (function () {
- function LQGameUtil() {
- }
- LQGameUtil.get_image = function (url, callback, cache) {
- if (cache === void 0) { cache = true; }
- if (!url || url === '') {
- callback(false, undefined);
- return;
- }
- if (this.image_cache[url]) {
- callback(true, this.image_cache[url]);
- return;
- }
- // cc.loader.load(
- // {url: url, type: 'png'},
- // (err: string, texture: Texture2D | undefined) => {
- // if (err) {
- // // console.error('err:' + err);
- // callback(false, undefined);
- // return;
- // }
- // const frame = new SpriteFrame(texture);
- // callback(true, frame);
- // if (cache) {
- // this.image_cache[url] = frame;
- // }
- // });
- };
- LQGameUtil.canvas_policy = function (c, width, height) {
- // @ts-ignore
- var ratio = visibleRect.height / visibleRect.width;
- if (ratio > height / width) {
- c.fitHeight = false;
- c.fitWidth = true;
- }
- else {
- c.fitHeight = true;
- c.fitWidth = false;
- }
- return c.fitHeight;
- };
- LQGameUtil.recursion_node_property = function (node, p) {
- if (node.parent) {
- // @ts-ignore
- p.value *= node.parent[p.key];
- this.recursion_node_property(node.parent, p);
- }
- };
- /**
- *
- * @param path
- * eg.'Canvas>node_main>btn_start'
- */
- LQGameUtil.find_node = function (path) {
- if (!path || path.length <= 0) {
- console.warn('路径不正确');
- return undefined;
- }
- var arr = path.split('/');
- var root = find(arr[0]);
- if (!root) {
- console.warn('没找到节点:' + arr[0]);
- return undefined;
- }
- var node = root;
- for (var i = 1; i < arr.length; i++) {
- var temp = node.getChildByName(arr[i]);
- if (!temp) {
- console.warn('没找到节点:' + arr[i]);
- return undefined;
- }
- node = temp;
- }
- return node;
- };
- LQGameUtil.wait = function (time) {
- return new Promise(function (resolve) {
- tween(director.getScene()).delay(time).call(function () {
- resolve();
- }).start();
- });
- };
- LQGameUtil.set_clip = function (clip, off, flip_x, flip_y) {
- var s = function (arr) {
- for (var i = 0; i < arr.length; i++) {
- if (i % 2 === 0) {
- if (flip_x) {
- arr[i] = -arr[i];
- }
- arr[i] += off.x;
- }
- else {
- if (flip_y) {
- arr[i] = -arr[i];
- }
- arr[i] += off.y;
- }
- }
- };
- var pos_arr = clip.curveData.props.position;
- for (var i = 0; i < pos_arr.length; i++) {
- var motionPath = pos_arr[i].motionPath;
- var value = pos_arr[i].value;
- if (motionPath) {
- for (var i_1 = 0; i_1 < motionPath.length; i_1++) {
- s(motionPath[i_1]);
- }
- }
- s(value);
- }
- };
- LQGameUtil.scroll_layout = function (layout, speed) {
- if (speed === void 0) { speed = 50; }
- layout.updateLayout();
- var len = layout.type === cc.Layout.Type.HORIZONTAL ? layout.node.width : layout.node.height;
- var time = len / speed;
- if (layout.type === cc.Layout.Type.HORIZONTAL) {
- var offset_1 = layout.node.anchorX === 1 ? layout.node.width * 0.5 : -layout.node.width * 0.5;
- layout.node.runAction(cc.repeatForever(cc.sequence(cc.moveBy(time, cc.v2(offset_1, 0)), cc.callFunc(function () {
- layout.node.x -= offset_1;
- }))));
- }
- else if (layout.type === cc.Layout.Type.VERTICAL || layout.type === cc.Layout.Type.GRID) {
- var offset_2 = layout.node.anchorY === 1 ? layout.node.height * 0.5 : -layout.node.height * 0.5;
- layout.node.runAction(cc.repeatForever(cc.sequence(cc.moveBy(time, cc.v2(0, offset_2)), cc.callFunc(function () {
- layout.node.y -= offset_2;
- }))));
- }
- };
- LQGameUtil.image_cache = {};
- return LQGameUtil;
-}());
-exports.LQGameUtil = LQGameUtil;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9nYW1lX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBR3hCLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFDcEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUd0QjtJQUFBO0lBeUlBLENBQUM7SUF0SWlCLG9CQUFTLEdBQXZCLFVBQXdCLEdBQVcsRUFBRSxRQUFpRSxFQUFFLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7UUFDaEgsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU87U0FDVjtRQUNELGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IseURBQXlEO1FBQ3pELHFCQUFxQjtRQUNyQiw4Q0FBOEM7UUFDOUMsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixZQUFZO1FBQ1osa0RBQWtEO1FBQ2xELGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsNkNBQTZDO1FBQzdDLFlBQVk7UUFDWixVQUFVO0lBQ2QsQ0FBQztJQUVhLHdCQUFhLEdBQTNCLFVBQTRCLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRSxhQUFhO1FBQ2IsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxD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LGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFNLENBQUMsQ0FBQyxFQUNqQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0wsQ0FBQztJQXRJYyxzQkFBVyxHQUFtQyxFQUFFLENBQUM7SUF3SXBFLGlCQUFDO0NBeklELEFBeUlDLElBQUE7QUF6SVksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3ByaXRlRnJhbWUgPSBjYy5TcHJpdGVGcmFtZTtcclxuaW1wb3J0IGRpcmVjdG9yID0gY2MuZGlyZWN0b3I7XHJcbmltcG9ydCB0d2VlbiA9IGNjLnR3ZWVuO1xyXG5pbXBvcnQgVGV4dHVyZTJEID0gY2MuVGV4dHVyZTJEO1xyXG5pbXBvcnQgQ2FudmFzID0gY2MuQ2FudmFzO1xyXG5pbXBvcnQgdmlzaWJsZVJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuaW1wb3J0IGZpbmQgPSBjYy5maW5kO1xyXG5pbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcblxyXG5leHBvcnQgY2xhc3MgTFFHYW1lVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpbWFnZV9jYWNoZTogeyBba2V5OiBzdHJpbmddOiBTcHJpdGVGcmFtZSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfaW1hZ2UodXJsOiBzdHJpbmcsIGNhbGxiYWNrOiAoc3VjY2VzczogYm9vbGVhbiwgc2Y6IFNwcml0ZUZyYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkLCBjYWNoZSA9IHRydWUpIHtcclxuICAgICAgICBpZiAoIXVybCB8fCB1cmwgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX2NhY2hlW3VybF0pIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgdGhpcy5pbWFnZV9jYWNoZVt1cmxdKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy5sb2FkZXIubG9hZChcclxuICAgICAgICAvLyAgICAge3VybDogdXJsLCB0eXBlOiAncG5nJ30sXHJcbiAgICAgICAgLy8gICAgIChlcnI6IHN0cmluZywgdGV4dHVyZTogVGV4dHVyZTJEIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignZXJyOicgKyBlcnIpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZyYW1lID0gbmV3IFNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIC8vICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgZnJhbWUpO1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5pbWFnZV9jYWNoZVt1cmxdID0gZnJhbWU7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2FudmFzX3BvbGljeShjOiBDYW52YXMsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gdmlzaWJsZVJlY3QuaGVpZ2h0IC8gdmlzaWJsZVJlY3Qud2lkdGg7XHJcbiAgICAgICAgaWYgKHJhdGlvID4gaGVpZ2h0IC8gd2lkdGgpIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYy5maXRXaWR0aCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjLmZpdFdpZHRoID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjLmZpdEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGU6IE5vZGUsIHA6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkge1xyXG4gICAgICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHAudmFsdWUgKj0gbm9kZS5wYXJlbnRbcC5rZXldO1xyXG4gICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGUucGFyZW50LCBwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGhcclxuICAgICAqIGVnLidDYW52YXM+bm9kZV9tYWluPmJ0bl9zdGFydCdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBmaW5kX25vZGUocGF0aDogc3RyaW5nKTogTm9kZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKCFwYXRoIHx8IHBhdGgubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCfot6/lvoTkuI3mraPnoa4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYXJyID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSBmaW5kKGFyclswXSk7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybign5rKh5om+5Yiw6IqC54K5OicgKyBhcnJbMF0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IHJvb3Q7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgdGVtcCA9IG5vZGUuZ2V0Q2hpbGRCeU5hbWUoYXJyW2ldKTtcclxuICAgICAgICAgICAgaWYgKCF0ZW1wKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+ayoeaJvuWIsOiKgueCuTonICsgYXJyW2ldKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZSA9IHRlbXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgd2FpdCh0aW1lOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgdHdlZW4oZGlyZWN0b3IuZ2V0U2NlbmUoKSkuZGVsYXkodGltZSkuY2FsbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pLnN0YXJ0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBzZXRfY2xpcChjbGlwOiBjYy5BbmltYXRpb25DbGlwLCBvZmY6IGNjLlZlYzIsIGZsaXBfeDogYm9vbGVhbiwgZmxpcF95OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHMgPSAoYXJyOiBudW1iZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgJSAyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsaXBfeCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJbaV0gPSAtYXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhcnJbaV0gKz0gb2ZmLng7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGlwX3kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyW2ldID0gLWFycltpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyW2ldICs9IG9mZi55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBwb3NfYXJyID0gY2xpcC5jdXJ2ZURhdGEucHJvcHMucG9zaXRpb247XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NfYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdGlvblBhdGggPSBwb3NfYXJyW2ldLm1vdGlvblBhdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcG9zX2FycltpXS52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKG1vdGlvblBhdGgpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW90aW9uUGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHMobW90aW9uUGF0aFtpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2Nyb2xsX2xheW91dChsYXlvdXQ6IGNjLkxheW91dCwgc3BlZWQ6IG51bWJlciA9IDUwKSB7XHJcbiAgICAgICAgbGF5b3V0LnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5IT1JJWk9OVEFMID8gbGF5b3V0Lm5vZGUud2lkdGggOiBsYXlvdXQubm9kZS5oZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgdGltZSA9IGxlbiAvIHNwZWVkO1xyXG4gICAgICAgIGlmIChsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuSE9SSVpPTlRBTCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWCA9PT0gMSA/IGxheW91dC5ub2RlLndpZHRoICogMC41IDogLWxheW91dC5ub2RlLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICBsYXlvdXQubm9kZS5ydW5BY3Rpb24oY2MucmVwZWF0Rm9yZXZlcihjYy5zZXF1ZW5jZShcclxuICAgICAgICAgICAgICAgIGNjLm1vdmVCeSh0aW1lLCBjYy52MihvZmZzZXQsIDApKSxcclxuICAgICAgICAgICAgICAgIGNjLmNhbGxGdW5jKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsYXlvdXQubm9kZS54IC09IG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5WRVJUSUNBTCB8fCBsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuR1JJRCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWSA9PT0gMSA/IGxheW91dC5ub2RlLmhlaWdodCAqIDAuNSA6IC1sYXlvdXQubm9kZS5oZWlnaHQgKiAwLjU7XHJcbiAgICAgICAgICAgIGxheW91dC5ub2RlLnJ1bkFjdGlvbihjYy5yZXBlYXRGb3JldmVyKGNjLnNlcXVlbmNlKFxyXG4gICAgICAgICAgICAgICAgY2MubW92ZUJ5KHRpbWUsIGNjLnYyKDAsIG9mZnNldCkpLFxyXG4gICAgICAgICAgICAgICAgY2MuY2FsbEZ1bmMoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxheW91dC5ub2RlLnkgLT0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/GameStart/GameAppStart.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart');
-// Script/module/GameStart/GameAppStart.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Storage_1 = require("../Storage/Storage");
-var GameConfig_1 = require("../Config/GameConfig");
-var HttpUtil_1 = require("../Crypto/HttpUtil");
-var AudioManager_1 = require("../Music/AudioManager");
-var Notification_1 = require("../Notification/Notification");
-var GameTool_1 = require("../Tool/GameTool");
-window.initMgr = function () {
- if (cc.fx) {
- return;
- }
- cc.fx = {};
- // console.log("1初始化");
- //基础状态信息
- cc.fx.StateInfo = {
- debugMode: true,
- networkConnected: true,
- networkType: 'none',
- isOnForeground: true //当前是否是在前台
- };
- //应用系统信息
- //配置文件
- cc.fx.StorageMessage = Storage_1.StorageMessage;
- cc.fx.AudioManager = AudioManager_1.default;
- cc.fx.GameConfig = GameConfig_1.GameConfig;
- cc.fx.HttpUtil = HttpUtil_1.default;
- cc.fx.GameTool = GameTool_1.GameTool;
- cc.fx.Notifications = Notification_1.Notifications;
- cc.fx.ShareInfo = {
- queryId: -1 //分享id
- };
- cc.fx.Message = {
- control: "10001",
- startGame: "10002",
- next: "10003",
- changePath: "10004",
- changeMap: "10005",
- nextWater: "10006",
- addEnd: "10007",
- setData: "10008",
- guideNext: "10009",
- showResult: "10010",
- removeTip: "10011" //执行撤回或者后退动作,移除提示
- };
- /*
- * 客户端埋点分享类型
- */
- cc.fx.BurialShareType = {
- Default: "default",
- Invite: "invite",
- DailyInviteRoomJoin: 'invite_join_room',
- DailyInviteFriend: 'invite_friend',
- DailyInviteGroup: 'invate_group',
- DailyInviteGroupAlive: 'invate_alive',
- DailyInviteGroupReward: 'invate_rewared',
- DailyInviteGroupBox: 'invate_box',
- DailyInviteGroupBall: 'invate_ball',
- MatchResult: 'matchResult',
- MatchFix5: 'MatchFix5',
- MatchFix20: 'MatchFix20',
- MatchFix100: 'MatchFix100',
- MatchFix500: 'MatchFix500',
- NewerRedEnvelope: 'newerRedEnvelope',
- CoinRoomResult: 'coinRoomResult',
- HighRate: "highRate",
- CoinRoomWinStreak: 'coinRoomWinStreak',
- CoinRoomBankruptcy1: 'coinRoomBankruptcy1',
- CoinRoomBankruptcy2: 'coinRoomBankruptcy2',
- CoinRoomBankruptcy3: 'coinRoomBankruptcy3',
- };
- /*
- * 分享到哪儿给奖励 group frined all
- */
- cc.fx.ShareWhereReward = {
- Group: "group",
- Friend: "friend",
- All: "all",
- };
- //用于存储消息的ID
- cc.fx.storageType = cc.Enum({
- storageTypeCustom: 1000101,
- });
- //用于存储提示语 按照步骤提示
- cc.fx.tipType = cc.Enum({
- tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',
- tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。',
- tipErrNew: '这是这局游戏第一次出现{植物}',
- tipErrOld: '{植物}刚才出现过呢',
- tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',
- tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',
- tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',
- });
-};
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXEdhbWVTdGFydFxcR2FtZUFwcFN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQW9EO0FBQ3BELG1EQUFrRDtBQUNsRCwrQ0FBMEM7QUFDMUMsc0RBQWlEO0FBQ2pELDZEQUE2RDtBQUM3RCw2Q0FBNEM7QUFHNUMsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNiLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFDUjtRQUNJLE9BQU87S0FDVjtJQUNELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ1gsdUJBQXVCO0lBRXZCLFFBQVE7SUFDUixFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixXQUFXLEVBQUUsTUFBTTtRQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFNLFVBQVU7S0FDdkMsQ0FBQztJQUVGLFFBQVE7SUFDUixNQUFNO0lBQ04sRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEdBQUcsd0JBQWMsQ0FBQztJQUN0QyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxzQkFBWSxDQUFDO0lBQ2xDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLHVCQUFVLENBQUM7SUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsa0JBQVEsQ0FBQztJQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxtQkFBUSxDQUFDO0lBQzFCLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLDRCQUFhLENBQUM7SUFHcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUc7UUFDZCxPQUFPLEVBQUcsQ0FBQyxDQUFDLENBQWMsTUFBTTtLQUNuQyxDQUFDO0lBRUYsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUc7UUFDWixPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUMsT0FBTztRQUNqQixJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFLE9BQU87UUFDaEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLE9BQU8sQ0FBVSxpQkFBaUI7S0FDaEQsQ0FBQTtJQUVEOztNQUVFO0lBQ0YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEdBQUc7UUFDcEIsT0FBTyxFQUFHLFNBQVM7UUFDbkIsTUFBTSxFQUFHLFFBQVE7UUFFakIsbUJBQW1CLEVBQUMsa0JBQWtCO1FBQ3RDLGlCQUFpQixFQUFHLGVBQWU7UUFDbkMsZ0JBQWdCLEVBQUcsY0FBYztRQUNqQyxxQkFBcUIsRUFBRSxjQUFjO1FBQ3JDLHNCQUFzQixFQUFFLGdCQUFnQjtRQUN4QyxtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLG9CQUFvQixFQUFFLGFBQWE7UUFFbkMsV0FBVyxFQUFHLGFBQWE7UUFDM0IsU0FBUyxFQUFFLFdBQVc7UUFDdEIsVUFBVSxFQUFFLFlBQVk7UUFDeEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsUUFBUSxFQUFHLFVBQVU7UUFDckIsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQ3RDLG1CQUFtQixFQUFFLHFCQUFxQjtRQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7UUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0tBQzdDLENBQUM7SUFFRjs7T0FFRztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEdBQUc7UUFDckIsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUcsUUFBUTtRQUNqQixHQUFHLEVBQUcsS0FBSztLQUNkLENBQUM7SUFFRixXQUFXO0lBQ1gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMzQixpQkFBaUIsRUFBRSxPQUFPO0tBQzdCLENBQUMsQ0FBQztJQUVBLGlCQUFpQjtJQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxpREFBaUQ7UUFDekQsTUFBTSxFQUFFLG1EQUFtRDtRQUMzRCxTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsU0FBUyxFQUFFLG9CQUFvQjtRQUMvQixVQUFVLEVBQUUsMkJBQTJCO0tBRTFDLENBQUMsQ0FBQztBQUVQLENBQUMsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH0gZnJvbSBcIi4uL1N0b3JhZ2UvU3RvcmFnZVwiO1xyXG5pbXBvcnQgeyBHYW1lQ29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZy9HYW1lQ29uZmlnXCI7XHJcbmltcG9ydCBIdHRwVXRpbCBmcm9tIFwiLi4vQ3J5cHRvL0h0dHBVdGlsXCI7XHJcbmltcG9ydCBBdWRpb01hbmFnZXIgZnJvbSBcIi4uL011c2ljL0F1ZGlvTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zIH0gZnJvbSBcIi4uL05vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25cIjtcclxuaW1wb3J0IHsgR2FtZVRvb2wgfSBmcm9tIFwiLi4vVG9vbC9HYW1lVG9vbFwiO1xyXG5cclxuXHJcbndpbmRvdy5pbml0TWdyID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZihjYy5meClcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjYy5meCA9IHt9O1xyXG4gICAgLy8gY29uc29sZS5sb2coXCIx5Yid5aeL5YyWXCIpO1xyXG5cclxuICAgIC8v5Z+656GA54q25oCB5L+h5oGvXHJcbiAgICBjYy5meC5TdGF0ZUluZm8gPSB7XHJcbiAgICAgICAgZGVidWdNb2RlOiB0cnVlLFxyXG4gICAgICAgIG5ldHdvcmtDb25uZWN0ZWQ6IHRydWUsICAgLy/nvZHnu5znirbmgIFcclxuICAgICAgICBuZXR3b3JrVHlwZTogJ25vbmUnLCAgICAgIC8v572R57uc57G75Z6LXHJcbiAgICAgICAgaXNPbkZvcmVncm91bmQ6IHRydWUgICAgICAvL+W9k+WJjeaYr+WQpuaYr+WcqOWJjeWPsFxyXG4gICAgfTtcclxuXHJcbiAgICAvL+W6lOeUqOezu+e7n+S/oeaBr1xyXG4gICAgLy/phY3nva7mlofku7ZcclxuICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlID0gU3RvcmFnZU1lc3NhZ2U7XHJcbiAgICBjYy5meC5BdWRpb01hbmFnZXIgPSBBdWRpb01hbmFnZXI7XHJcbiAgICBjYy5meC5HYW1lQ29uZmlnID0gR2FtZUNvbmZpZztcclxuICAgIGNjLmZ4Lkh0dHBVdGlsID0gSHR0cFV0aWw7XHJcbiAgICBjYy5meC5HYW1lVG9vbCA9IEdhbWVUb29sO1xyXG4gICAgY2MuZnguTm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbnM7XHJcbiAgXHJcblxyXG4gICAgY2MuZnguU2hhcmVJbmZvID0ge1xyXG4gICAgICAgIHF1ZXJ5SWQgOiAtMSAgICAgICAgICAgICAgLy/liIbkuqtpZFxyXG4gICAgfTtcclxuXHJcbiAgICBjYy5meC5NZXNzYWdlID0ge1xyXG4gICAgICAgIGNvbnRyb2w6IFwiMTAwMDFcIiwgICAgICAgLy/kvKDpgJLmk43kvZzmjqfliLZcclxuICAgICAgICBzdGFydEdhbWU6XCIxMDAwMlwiLCAgICAgIC8v5Lyg6YCS5byA5aeL5bu6562RXHJcbiAgICAgICAgbmV4dDogXCIxMDAwM1wiICwgICAgICAgICAgLy/kvKDpgJLmiafooYzkuIvkuIDkuKrmoLzlrZDmtKrmsLTmtYHov4dcclxuICAgICAgICBjaGFuZ2VQYXRoOiBcIjEwMDA0XCIsICAgICAgIC8v5Lyg6YCS5pON5L2c5o6n5Yi2XHJcbiAgICAgICAgY2hhbmdlTWFwOiBcIjEwMDA1XCIsICAgICAgICAgLy/mlLnlj5jpgqPlnLDlm75cclxuICAgICAgICBuZXh0V2F0ZXI6IFwiMTAwMDZcIiAsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgYWRkRW5kOiBcIjEwMDA3XCIgLCAgICAgICAgICAvL+a3u+WKoOe7k+adn+eCuVxyXG4gICAgICAgIHNldERhdGE6IFwiMTAwMDhcIiAsICAgICAgICAgLy/kuIrkvKDliIbmlbBcclxuICAgICAgICBndWlkZU5leHQ6IFwiMTAwMDlcIiAsICAgICAgICAvL+W8leWvvOi/m+WFpeS4i+S4gOatpVxyXG4gICAgICAgIHNob3dSZXN1bHQ6IFwiMTAwMTBcIiwgICAgICAgICAgLy/lsZXnpLrmsrvmsLTnu5PmnpxcclxuICAgICAgICByZW1vdmVUaXA6IFwiMTAwMTFcIiAgICAgICAgICAvL+aJp+ihjOaSpOWbnuaIluiAheWQjumAgOWKqOS9nO+8jOenu+mZpOaPkOekulxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgICAgKiDlrqLmiLfnq6/ln4vngrnliIbkuqvnsbvlnotcclxuICAgICovXHJcbiAgICBjYy5meC5CdXJpYWxTaGFyZVR5cGUgPSB7XHJcbiAgICAgICAgRGVmYXVsdCA6IFwiZGVmYXVsdFwiLCAgICAgICAgLy/pu5jorqTliIbkuqvnsbvlnoss5YiG5Lqr5Yiw576kXHJcbiAgICAgICAgSW52aXRlIDogXCJpbnZpdGVcIiwgICAgICAgICAgLy8g6YKA6K+35aW95Y+LXHJcblxyXG4gICAgICAgIERhaWx5SW52aXRlUm9vbUpvaW46J2ludml0ZV9qb2luX3Jvb20nLCAvL+mCgOivt+WlveWPi+WKoOWFpVxyXG4gICAgICAgIERhaWx5SW52aXRlRnJpZW5kIDogJ2ludml0ZV9mcmllbmQnLCAvLyDml6XluLjpgoDor7flpb3lj4tcclxuICAgICAgICBEYWlseUludml0ZUdyb3VwIDogJ2ludmF0ZV9ncm91cCcsIC8vIOaXpeW4uOWIhuS6q+e+pFxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBBbGl2ZTogJ2ludmF0ZV9hbGl2ZScsIC8v5pel5bi45YiG5Lqr576k5aSN5rS7XHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cFJld2FyZDogJ2ludmF0ZV9yZXdhcmVkJywvL+WIhuS6q+WlluWKsee/u+WAjVxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBCb3g6ICdpbnZhdGVfYm94JywgIC8v5a6d566x5YiG5Lqr5aWW5YqxXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cEJhbGw6ICdpbnZhdGVfYmFsbCcsICAvL+WIhuS6q+mihuWPlueQg+eQg1xyXG5cclxuICAgICAgICBNYXRjaFJlc3VsdCA6ICdtYXRjaFJlc3VsdCcsICAvLyDmr5TotZvnu5PnrpfliIbkuqtcclxuICAgICAgICBNYXRjaEZpeDU6ICdNYXRjaEZpeDUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNeWFg+e6ouWMhei1m1xyXG4gICAgICAgIE1hdGNoRml4MjA6ICdNYXRjaEZpeDIwJywgICAgICAgICAgICAgICAgICAgICAgICAvLyAyMOWFg+e6ouWMhei1m1xyXG4gICAgICAgIE1hdGNoRml4MTAwOiAnTWF0Y2hGaXgxMDAnLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMDDlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDUwMDogJ01hdGNoRml4NTAwJywgICAgICAgICAgICAgICAgICAgICAgLy8gNTAw5YWD57qi5YyF6LWbXHJcbiAgICAgICAgTmV3ZXJSZWRFbnZlbG9wZTogJ25ld2VyUmVkRW52ZWxvcGUnLCAgICAgICAgICAgIC8vIOaWsOaJi+e6ouWMhVxyXG4gICAgICAgIENvaW5Sb29tUmVzdWx0OiAnY29pblJvb21SZXN1bHQnLCAgICAgICAgICAgICAgICAvLyDph5HluIHmoYznu5PnrpdcclxuICAgICAgICBIaWdoUmF0ZSA6IFwiaGlnaFJhdGVcIiwvL+mrmOWAjeWIhuS6q1xyXG4gICAgICAgIENvaW5Sb29tV2luU3RyZWFrOiAnY29pblJvb21XaW5TdHJlYWsnLCAgICAgICAgIC8vIOi/nuiDnFxyXG4gICAgICAgIENvaW5Sb29tQmFua3J1cHRjeTE6ICdjb2luUm9vbUJhbmtydXB0Y3kxJywgICAgICAgICAvLyDph5HluIHmoYznoLTkuqdcclxuICAgICAgICBDb2luUm9vbUJhbmtydXB0Y3kyOiAnY29pblJvb21CYW5rcnVwdGN5MicsICAgICAgICAgLy8g6YeR5biB5qGM56C05LqnXHJcbiAgICAgICAgQ29pblJvb21CYW5rcnVwdGN5MzogJ2NvaW5Sb29tQmFua3J1cHRjeTMnLCAgICAgICAgIC8vIOmHkeW4geahjOegtOS6p1xyXG4gICAgfTtcclxuXHJcbiAgICAvKlxyXG4gICAgICog5YiG5Lqr5Yiw5ZOq5YS/57uZ5aWW5YqxIGdyb3VwIGZyaW5lZCBhbGxcclxuICAgICAqL1xyXG4gICAgY2MuZnguU2hhcmVXaGVyZVJld2FyZCA9IHtcclxuICAgICAgICBHcm91cCA6XCJncm91cFwiLCAvL+W+ruS/oee+pFxyXG4gICAgICAgIEZyaWVuZCA6IFwiZnJpZW5kXCIsLy/lpb3lj4tcclxuICAgICAgICBBbGwgOiBcImFsbFwiLCAvL+S4jeWMuuWIhlxyXG4gICAgfTtcclxuXHJcbiAgICAvL+eUqOS6juWtmOWCqOa2iOaBr+eahElEXHJcbiAgICBjYy5meC5zdG9yYWdlVHlwZSA9IGNjLkVudW0oe1xyXG5cdCAgICBzdG9yYWdlVHlwZUN1c3RvbTogMTAwMDEwMSwgLy/nlKjkuo7lrZjlgqjlhbPljaHnrYnnuqdcclxuXHR9KTtcclxuXHJcbiAgICAvL+eUqOS6juWtmOWCqOaPkOekuuivrSAg5oyJ54Wn5q2l6aqk5o+Q56S6XHJcbiAgICBjYy5meC50aXBUeXBlID0gY2MuRW51bSh7XHJcbiAgICAgICAgdGlwT25lOiAn56We5Yac5rCP5Zue5Yiw5a625Lit77yM5byA5aeL5pW055CG5LuK5aSp5pS26ZuG5p2l55qE54mp5ZOB44CC5b2T5LuW56ys5LiA5qyh5ou/5Ye65oiW6K+05Ye65LiA56eN5qSN54mp5pe277yM6K+35ZGK6K+J5LuW6L+Z5piv5paw5qSN54mp44CCJyxcclxuICAgICAgICB0aXBUd286ICflpoLmnpzku5bmi7/lh7rmiJbor7Tlh7rnmoTmpI3niankvaDku4rlpKnnnIvliLDov4fvvIzor7flkYror4nku5bkuIrmrKHmmK/nnIvliLDnmoTvvJvlpoLmnpzkvaDlkKzku5bor7Tov4fvvIzliJnor7flkYror4nku5bkuIrmrKHmmK/lkKzliLDnmoTjgIInLCAvL+eUqOS6juWtmOWCqOWFs+WNoeetiee6p1xyXG4gICAgICAgIHRpcEVyck5ldzogJ+i/meaYr+i/meWxgOa4uOaIj+esrOS4gOasoeWHuueOsHvmpI3nial9JyxcclxuICAgICAgICB0aXBFcnJPbGQ6ICd75qSN54mpfeWImuaJjeWHuueOsOi/h+WRoicsXHJcbiAgICAgICAgdGlwRXJySGVhcjogJ+S4iuasoemBh+WIsHvmpI3nial95pe277yM5Ly85LmO5LiN5piv5ZCs5Yiw55qE5ZCnJyxcclxuICAgICAgICB0aXBFcnJTZWU6ICfkuIrmrKHpgYfliLB75qSN54mpfeaXtu+8jOS8vOS5juS4jeaYr+eci+WIsOeahOWQpycsXHJcbiAgICAgICAgdGlwRXJyTGFzdDogJ+S5i+WJjeehruWunueci+WIsOi/h3vmpI3nial977yM5L2G5pyA6L+R5LiA5qyh5Ly85LmO5LiN5piv55yL5Yiw55qE5ZGiJyxcclxuXHJcbiAgICB9KTtcclxuXHJcbn07Il19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/animation/NewScript.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '2cd54+HgYFITpFe6QLlvqDB', 'NewScript');
-// animation/NewScript.js
+cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap');
+// Script/TmoTiledMap.js
"use strict";
@@ -1230,36 +649,143 @@ cc._RF.push(module, '2cd54+HgYFITpFe6QLlvqDB', 'NewScript');
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-
+var TmoTiledLayer = require("./TmoTiledLayer");
+var TmoObjectGroup = require("./TmoObjectGroup");
cc.Class({
- "extends": cc.Component,
+ "extends": cc.TiledMap,
properties: {
- sex: {
- type: cc.Enum({
- male: 0,
- female: 1
- }),
- "default": 0
- }
- // foo: {
- // // ATTRIBUTES:
- // default: null, // The default value will be used only when the component attaching
- // // to a node for the first time
- // type: cc.SpriteFrame, // optional, default is typeof default
- // serializable: true, // optional, default is true
- // },
- // bar: {
- // get () {
- // return this._bar;
- // },
- // set (value) {
- // this._bar = value;
- // }
- // },
+ objectMaterial: cc.Material,
+ noColor: true,
+ singleTexture: true,
+ _objectTextures: []
},
- // LIFE-CYCLE CALLBACKS:
- // onLoad () {},
- start: function start() {} // update (dt) {},
+ _applyFile: function _applyFile() {
+ if (!this.objectMaterial) {
+ cc.error("TiledmapOptimize: 未设置objectMaterial!");
+ return;
+ }
+ this._super();
+ },
+ _buildLayerAndGroup: function _buildLayerAndGroup() {
+ var tilesets = this._tilesets;
+ var texGrids = this._texGrids;
+ var animations = this._animations;
+ texGrids.length = 0;
+ for (var i = 0, l = tilesets.length; i < l; ++i) {
+ var tilesetInfo = tilesets[i];
+ if (!tilesetInfo) continue;
+ cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);
+ }
+ this._fillAniGrids(texGrids, animations);
+ var layers = this._layers;
+ var groups = this._groups;
+ var images = this._images;
+ var oldNodeNames = {};
+ for (var _i = 0, n = layers.length; _i < n; _i++) {
+ oldNodeNames[layers[_i].node._name] = true;
+ }
+ for (var _i2 = 0, _n = groups.length; _i2 < _n; _i2++) {
+ oldNodeNames[groups[_i2].node._name] = true;
+ }
+ for (var _i3 = 0, _n2 = images.length; _i3 < _n2; _i3++) {
+ oldNodeNames[images[_i3]._name] = true;
+ }
+ layers = this._layers = [];
+ groups = this._groups = [];
+ images = this._images = [];
+ var mapInfo = this._mapInfo;
+ var node = this.node;
+ var layerInfos = mapInfo.getAllChildren();
+ var textures = this._textures;
+ var maxWidth = 0;
+ var maxHeight = 0;
+ this._objectTextures = [];
+ var firstTmxLayer = null;
+ if (layerInfos && layerInfos.length > 0) {
+ for (var _i4 = 0, len = layerInfos.length; _i4 < len; _i4++) {
+ var layerInfo = layerInfos[_i4];
+ var name = layerInfo.name;
+ var child = this.node.getChildByName(name);
+ oldNodeNames[name] = false;
+ if (!child) {
+ child = new cc.Node();
+ child.name = name;
+ node.addChild(child);
+ }
+ child.setSiblingIndex(_i4);
+ child.active = layerInfo.visible;
+ if (layerInfo instanceof cc.TMXLayerInfo) {
+ // 此处修改 改为创建MyTiledLayer
+ var layer = child.getComponent(TmoTiledLayer);
+ if (!layer) {
+ layer = child.addComponent(TmoTiledLayer);
+ }
+ // 修改结束
+ // 此处修改 传递firstTmxLayer 记录firstTmxLayer
+ layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);
+ firstTmxLayer = firstTmxLayer || layer;
+ // 修改结束
+
+ // tell the layerinfo to release the ownership of the tiles map.
+ layerInfo.ownTiles = false;
+ layers.push(layer);
+ } else if (layerInfo instanceof cc.TMXObjectGroupInfo) {
+ var group = child.getComponent(TmoObjectGroup);
+ if (!group) {
+ group = child.addComponent(TmoObjectGroup);
+ }
+ group._init(layerInfo, mapInfo, texGrids, this);
+ groups.push(group);
+ } else if (layerInfo instanceof cc.TMXImageLayerInfo) {
+ var texture = layerInfo.sourceImage;
+ child.opacity = layerInfo.opacity;
+ child.layerInfo = layerInfo;
+ child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);
+ var image = child.getComponent(cc.Sprite);
+ if (!image) {
+ image = child.addComponent(cc.Sprite);
+ }
+ var spf = image.spriteFrame || new cc.SpriteFrame();
+ spf.setTexture(texture);
+ image.spriteFrame = spf;
+ child.width = texture.width;
+ child.height = texture.height;
+ images.push(child);
+ }
+ maxWidth = Math.max(maxWidth, child.width);
+ maxHeight = Math.max(maxHeight, child.height);
+ }
+ }
+
+ // 设置材质的texture属性
+ var objectTextures = this._objectTextures;
+ for (var _i5 = 0; _i5 < objectTextures.length; _i5++) {
+ var idx = _i5 === 0 ? '' : _i5;
+ this.objectMaterial.setProperty("texture" + idx, objectTextures[_i5], 0);
+ }
+ var children = node.children;
+ for (var _i6 = 0, _n3 = children.length; _i6 < _n3; _i6++) {
+ var c = children[_i6];
+ if (oldNodeNames[c._name]) {
+ c.destroy();
+ }
+ }
+ this.node.width = maxWidth;
+ this.node.height = maxHeight;
+ this._syncAnchorPoint();
+ },
+ getObjectMaterial: function getObjectMaterial() {
+ return this.objectMaterial;
+ },
+ isNoColor: function isNoColor() {
+ return this.noColor;
+ },
+ isSingleTexture: function isSingleTexture() {
+ return this.singleTexture;
+ },
+ getObjectTextures: function getObjectTextures() {
+ return this._objectTextures;
+ }
});
cc._RF.pop();
@@ -1273,13 +799,13 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUU7SUFDUkMsR0FBRyxFQUFDO01BQ0FDLElBQUksRUFBQ0wsRUFBRSxDQUFDTSxJQUFJLENBQUM7UUFDVEMsSUFBSSxFQUFDLENBQUM7UUFDTkMsTUFBTSxFQUFDO01BQ1gsQ0FBQyxDQUFDO01BQ0YsV0FBUTtJQUNaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0osQ0FBQztFQUVEO0VBRUE7RUFFQUMsS0FBSyxXQUFBQSxNQUFBLEVBQUksQ0FFVCxDQUFDLENBRUQ7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxyXG5cclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBzZXg6e1xyXG4gICAgICAgICAgICB0eXBlOmNjLkVudW0oe1xyXG4gICAgICAgICAgICAgICAgbWFsZTowLFxyXG4gICAgICAgICAgICAgICAgZmVtYWxlOjFcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6MFxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBmb286IHtcclxuICAgICAgICAvLyAgICAgLy8gQVRUUklCVVRFUzpcclxuICAgICAgICAvLyAgICAgZGVmYXVsdDogbnVsbCwgICAgICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gdGhlIGNvbXBvbmVudCBhdHRhY2hpbmdcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgbm9kZSBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICAvLyAgICAgdHlwZTogY2MuU3ByaXRlRnJhbWUsIC8vIG9wdGlvbmFsLCBkZWZhdWx0IGlzIHR5cGVvZiBkZWZhdWx0XHJcbiAgICAgICAgLy8gICAgIHNlcmlhbGl6YWJsZTogdHJ1ZSwgICAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0cnVlXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICAvLyBiYXI6IHtcclxuICAgICAgICAvLyAgICAgZ2V0ICgpIHtcclxuICAgICAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLl9iYXI7XHJcbiAgICAgICAgLy8gICAgIH0sXHJcbiAgICAgICAgLy8gICAgIHNldCAodmFsdWUpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX2JhciA9IHZhbHVlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSxcclxuICAgIH0sXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9LFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9LFxyXG59KTtcclxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDaEQsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDbERFLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxRQUFRO0VBQ3BCQyxVQUFVLEVBQUU7SUFDUkMsY0FBYyxFQUFFSixFQUFFLENBQUNLLFFBQVE7SUFDM0JDLE9BQU8sRUFBRSxJQUFJO0lBQ2JDLGFBQWEsRUFBRSxJQUFJO0lBRW5CQyxlQUFlLEVBQUU7RUFDckIsQ0FBQztFQUdEQyxVQUFVLEVBQUUsU0FBQUEsV0FBQSxFQUFZO0lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUNMLGNBQWMsRUFBRTtNQUN0QkosRUFBRSxDQUFDVSxLQUFLLENBQUMsc0NBQXNDLENBQUM7TUFDaEQ7SUFDSjtJQUVBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO0VBQ2pCLENBQUM7RUFFREMsbUJBQW1CLEVBQUUsU0FBQUEsb0JBQUEsRUFBWTtJQUM3QixJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxJQUFJLENBQUNDLFNBQVM7SUFDN0IsSUFBSUMsVUFBVSxHQUFHLElBQUksQ0FBQ0MsV0FBVztJQUNqQ0gsUUFBUSxDQUFDSSxNQUFNLEdBQUcsQ0FBQztJQUNuQixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVDLENBQUMsR0FBR1IsUUFBUSxDQUFDTSxNQUFNLEVBQUVDLENBQUMsR0FBR0MsQ0FBQyxFQUFFLEVBQUVELENBQUMsRUFBRTtNQUM3QyxJQUFJRSxXQUFXLEdBQUdULFFBQVEsQ0FBQ08sQ0FBQyxDQUFDO01BQzdCLElBQUksQ0FBQ0UsV0FBVyxFQUFFO01BQ2xCdEIsRUFBRSxDQUFDRSxRQUFRLENBQUNxQixnQkFBZ0IsQ0FBQ0QsV0FBVyxFQUFFUCxRQUFRLEVBQUVLLENBQUMsQ0FBQztJQUMxRDtJQUNBLElBQUksQ0FBQ0ksYUFBYSxDQUFDVCxRQUFRLEVBQUVFLFVBQVUsQ0FBQztJQUV4QyxJQUFJUSxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPO0lBQ3pCLElBQUlDLE1BQU0sR0FBRyxJQUFJLENBQUNDLE9BQU87SUFDekIsSUFBSUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsT0FBTztJQUN6QixJQUFJQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLEtBQUssSUFBSVgsRUFBQyxHQUFHLENBQUMsRUFBRVksQ0FBQyxHQUFHUCxNQUFNLENBQUNOLE1BQU0sRUFBRUMsRUFBQyxHQUFHWSxDQUFDLEVBQUVaLEVBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNOLE1BQU0sQ0FBQ0wsRUFBQyxDQUFDLENBQUNhLElBQUksQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsSUFBSTtJQUM3QztJQUNBLEtBQUssSUFBSWQsR0FBQyxHQUFHLENBQUMsRUFBRVksRUFBQyxHQUFHTCxNQUFNLENBQUNSLE1BQU0sRUFBRUMsR0FBQyxHQUFHWSxFQUFDLEVBQUVaLEdBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNKLE1BQU0sQ0FBQ1AsR0FBQyxDQUFDLENBQUNhLElBQUksQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsSUFBSTtJQUM3QztJQUNBLEtBQUssSUFBSWQsR0FBQyxHQUFHLENBQUMsRUFBRVksR0FBQyxHQUFHSCxNQUFNLENBQUNWLE1BQU0sRUFBRUMsR0FBQyxHQUFHWSxHQUFDLEVBQUVaLEdBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNGLE1BQU0sQ0FBQ1QsR0FBQyxDQUFDLENBQUNjLEtBQUssQ0FBQyxHQUFHLElBQUk7SUFDeEM7SUFFQVQsTUFBTSxHQUFHLElBQUksQ0FBQ0MsT0FBTyxHQUFHLEVBQUU7SUFDMUJDLE1BQU0sR0FBRyxJQUFJLENBQUNDLE9BQU8sR0FBRyxFQUFFO0lBQzFCQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPLEdBQUcsRUFBRTtJQUUxQixJQUFJSyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxRQUFRO0lBQzNCLElBQUlILElBQUksR0FBRyxJQUFJLENBQUNBLElBQUk7SUFDcEIsSUFBSUksVUFBVSxHQUFHRixPQUFPLENBQUNHLGNBQWMsRUFBRTtJQUN6QyxJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxDQUFDO0lBQ2hCLElBQUlDLFNBQVMsR0FBRyxDQUFDO0lBRWpCLElBQUksQ0FBQ2xDLGVBQWUsR0FBRyxFQUFFO0lBQ3pCLElBQUltQyxhQUFhLEdBQUcsSUFBSTtJQUV4QixJQUFJTixVQUFVLElBQUlBLFVBQVUsQ0FBQ2xCLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDckMsS0FBSyxJQUFJQyxHQUFDLEdBQUcsQ0FBQyxFQUFFd0IsR0FBRyxHQUFHUCxVQUFVLENBQUNsQixNQUFNLEVBQUVDLEdBQUMsR0FBR3dCLEdBQUcsRUFBRXhCLEdBQUMsRUFBRSxFQUFFO1FBQ25ELElBQUl5QixTQUFTLEdBQUdSLFVBQVUsQ0FBQ2pCLEdBQUMsQ0FBQztRQUM3QixJQUFJMEIsSUFBSSxHQUFHRCxTQUFTLENBQUNDLElBQUk7UUFFekIsSUFBSUMsS0FBSyxHQUFHLElBQUksQ0FBQ2QsSUFBSSxDQUFDZSxjQUFjLENBQUNGLElBQUksQ0FBQztRQUMxQ2YsWUFBWSxDQUFDZSxJQUFJLENBQUMsR0FBRyxLQUFLO1FBRTFCLElBQUksQ0FBQ0MsS0FBSyxFQUFFO1VBQ1JBLEtBQUssR0FBRyxJQUFJL0MsRUFBRSxDQUFDaUQsSUFBSSxFQUFFO1VBQ3JCRixLQUFLLENBQUNELElBQUksR0FBR0EsSUFBSTtVQUNqQmIsSUFBSSxDQUFDaUIsUUFBUSxDQUFDSCxLQUFLLENBQUM7UUFDeEI7UUFFQUEsS0FBSyxDQUFDSSxlQUFlLENBQUMvQixHQUFDLENBQUM7UUFDeEIyQixLQUFLLENBQUNLLE1BQU0sR0FBR1AsU0FBUyxDQUFDUSxPQUFPO1FBRWhDLElBQUlSLFNBQVMsWUFBWTdDLEVBQUUsQ0FBQ3NELFlBQVksRUFBRTtVQUN0QztVQUNBLElBQUlDLEtBQUssR0FBR1IsS0FBSyxDQUFDUyxZQUFZLENBQUMzRCxhQUFhLENBQUM7VUFDN0MsSUFBSSxDQUFDMEQsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR1IsS0FBSyxDQUFDVSxZQUFZLENBQUM1RCxhQUFhLENBQUM7VUFDN0M7VUFDQTtVQUNBO1VBQ0EwRCxLQUFLLENBQUNHLEtBQUssQ0FBQ2IsU0FBUyxFQUFFVixPQUFPLEVBQUV0QixRQUFRLEVBQUUwQixRQUFRLEVBQUV4QixRQUFRLEVBQUUsSUFBSSxFQUFFNEIsYUFBYSxDQUFDO1VBQ2xGQSxhQUFhLEdBQUdBLGFBQWEsSUFBSVksS0FBSztVQUN0Qzs7VUFFQTtVQUNBVixTQUFTLENBQUNjLFFBQVEsR0FBRyxLQUFLO1VBQzFCbEMsTUFBTSxDQUFDbUMsSUFBSSxDQUFDTCxLQUFLLENBQUM7UUFDdEIsQ0FBQyxNQUNJLElBQUlWLFNBQVMsWUFBWTdDLEVBQUUsQ0FBQzZELGtCQUFrQixFQUFFO1VBQ2pELElBQUlDLEtBQUssR0FBR2YsS0FBSyxDQUFDUyxZQUFZLENBQUN6RCxjQUFjLENBQUM7VUFDOUMsSUFBSSxDQUFDK0QsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR2YsS0FBSyxDQUFDVSxZQUFZLENBQUMxRCxjQUFjLENBQUM7VUFDOUM7VUFFQStELEtBQUssQ0FBQ0osS0FBSyxDQUFDYixTQUFTLEVBQUVWLE9BQU8sRUFBRXBCLFFBQVEsRUFBRSxJQUFJLENBQUM7VUFDL0NZLE1BQU0sQ0FBQ2lDLElBQUksQ0FBQ0UsS0FBSyxDQUFDO1FBQ3RCLENBQUMsTUFDSSxJQUFJakIsU0FBUyxZQUFZN0MsRUFBRSxDQUFDK0QsaUJBQWlCLEVBQUU7VUFDaEQsSUFBSUMsT0FBTyxHQUFHbkIsU0FBUyxDQUFDb0IsV0FBVztVQUNuQ2xCLEtBQUssQ0FBQ21CLE9BQU8sR0FBR3JCLFNBQVMsQ0FBQ3FCLE9BQU87VUFDakNuQixLQUFLLENBQUNGLFNBQVMsR0FBR0EsU0FBUztVQUMzQkUsS0FBSyxDQUFDb0IsT0FBTyxHQUFHbkUsRUFBRSxDQUFDb0UsRUFBRSxDQUFDdkIsU0FBUyxDQUFDd0IsTUFBTSxDQUFDQyxDQUFDLEVBQUUsQ0FBQ3pCLFNBQVMsQ0FBQ3dCLE1BQU0sQ0FBQ0UsQ0FBQyxDQUFDO1VBRTlELElBQUlDLEtBQUssR0FBR3pCLEtBQUssQ0FBQ1MsWUFBWSxDQUFDeEQsRUFBRSxDQUFDeUUsTUFBTSxDQUFDO1VBQ3pDLElBQUksQ0FBQ0QsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR3pCLEtBQUssQ0FBQ1UsWUFBWSxDQUFDekQsRUFBRSxDQUFDeUUsTUFBTSxDQUFDO1VBQ3pDO1VBRUEsSUFBSUMsR0FBRyxHQUFHRixLQUFLLENBQUNHLFdBQVcsSUFBSSxJQUFJM0UsRUFBRSxDQUFDNEUsV0FBVyxFQUFFO1VBQ25ERixHQUFHLENBQUNHLFVBQVUsQ0FBQ2IsT0FBTyxDQUFDO1VBQ3ZCUSxLQUFLLENBQUNHLFdBQVcsR0FBR0QsR0FBRztVQUV2QjNCLEtBQUssQ0FBQytCLEtBQUssR0FBR2QsT0FBTyxDQUFDYyxLQUFLO1VBQzNCL0IsS0FBSyxDQUFDZ0MsTUFBTSxHQUFHZixPQUFPLENBQUNlLE1BQU07VUFDN0JsRCxNQUFNLENBQUMrQixJQUFJLENBQUNiLEtBQUssQ0FBQztRQUN0QjtRQUVBTixRQUFRLEdBQUd1QyxJQUFJLENBQUNDLEdBQUcsQ0FBQ3hDLFFBQVEsRUFBRU0sS0FBSyxDQUFDK0IsS0FBSyxDQUFDO1FBQzFDcEMsU0FBUyxHQUFHc0MsSUFBSSxDQUFDQyxHQUFHLENBQUN2QyxTQUFTLEVBQUVLLEtBQUssQ0FBQ2dDLE1BQU0sQ0FBQztNQUNqRDtJQUNKOztJQUVBO0lBQ0EsSUFBSUcsY0FBYyxHQUFHLElBQUksQ0FBQzFFLGVBQWU7SUFDekMsS0FBSyxJQUFJWSxHQUFDLEdBQUcsQ0FBQyxFQUFFQSxHQUFDLEdBQUc4RCxjQUFjLENBQUMvRCxNQUFNLEVBQUVDLEdBQUMsRUFBRSxFQUFFO01BQzVDLElBQUkrRCxHQUFHLEdBQUcvRCxHQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBR0EsR0FBQztNQUMxQixJQUFJLENBQUNoQixjQUFjLENBQUNnRixXQUFXLGFBQVdELEdBQUcsRUFBSUQsY0FBYyxDQUFDOUQsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFO0lBRUEsSUFBSWlFLFFBQVEsR0FBR3BELElBQUksQ0FBQ29ELFFBQVE7SUFDNUIsS0FBSyxJQUFJakUsR0FBQyxHQUFHLENBQUMsRUFBRVksR0FBQyxHQUFHcUQsUUFBUSxDQUFDbEUsTUFBTSxFQUFFQyxHQUFDLEdBQUdZLEdBQUMsRUFBRVosR0FBQyxFQUFFLEVBQUU7TUFDN0MsSUFBSWtFLENBQUMsR0FBR0QsUUFBUSxDQUFDakUsR0FBQyxDQUFDO01BQ25CLElBQUlXLFlBQVksQ0FBQ3VELENBQUMsQ0FBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ3ZCb0QsQ0FBQyxDQUFDQyxPQUFPLEVBQUU7TUFDZjtJQUNKO0lBRUEsSUFBSSxDQUFDdEQsSUFBSSxDQUFDNkMsS0FBSyxHQUFHckMsUUFBUTtJQUMxQixJQUFJLENBQUNSLElBQUksQ0FBQzhDLE1BQU0sR0FBR3JDLFNBQVM7SUFDNUIsSUFBSSxDQUFDOEMsZ0JBQWdCLEVBQUU7RUFDM0IsQ0FBQztFQUVEQyxpQkFBaUIsRUFBRSxTQUFBQSxrQkFBQSxFQUFZO0lBQzNCLE9BQU8sSUFBSSxDQUFDckYsY0FBYztFQUM5QixDQUFDO0VBRURzRixTQUFTLEVBQUUsU0FBQUEsVUFBQSxFQUFZO0lBQ25CLE9BQU8sSUFBSSxDQUFDcEYsT0FBTztFQUN2QixDQUFDO0VBRURxRixlQUFlLEVBQUUsU0FBQUEsZ0JBQUEsRUFBWTtJQUN6QixPQUFPLElBQUksQ0FBQ3BGLGFBQWE7RUFDN0IsQ0FBQztFQUVEcUYsaUJBQWlCLEVBQUUsU0FBQUEsa0JBQUEsRUFBWTtJQUMzQixPQUFPLElBQUksQ0FBQ3BGLGVBQWU7RUFDL0I7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+572ub2JqZWN0TWF0ZXJpYWwhXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdXBlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfYnVpbGRMYXllckFuZEdyb3VwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRzID0gdGhpcy5fdGlsZXNldHM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSB0aGlzLl9hbmltYXRpb25zO1xyXG4gICAgICAgIHRleEdyaWRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aWxlc2V0cy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRpbGVzZXRJbmZvID0gdGlsZXNldHNbaV07XHJcbiAgICAgICAgICAgIGlmICghdGlsZXNldEluZm8pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjYy5UaWxlZE1hcC5maWxsVGV4dHVyZUdyaWRzKHRpbGVzZXRJbmZvLCB0ZXhHcmlkcywgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2ZpbGxBbmlHcmlkcyh0ZXhHcmlkcywgYW5pbWF0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBsYXllcnMgPSB0aGlzLl9sYXllcnM7XHJcbiAgICAgICAgbGV0IGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcclxuICAgICAgICBsZXQgaW1hZ2VzID0gdGhpcy5faW1hZ2VzO1xyXG4gICAgICAgIGxldCBvbGROb2RlTmFtZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheWVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgb2xkTm9kZU5hbWVzW2xheWVyc1tpXS5ub2RlLl9uYW1lXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBvbGROb2RlTmFtZXNbZ3JvdXBzW2ldLm5vZGUuX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBpbWFnZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tpbWFnZXNbaV0uX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxheWVycyA9IHRoaXMuX2xheWVycyA9IFtdO1xyXG4gICAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcyA9IFtdO1xyXG4gICAgICAgIGltYWdlcyA9IHRoaXMuX2ltYWdlcyA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbWFwSW5mbyA9IHRoaXMuX21hcEluZm87XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGxheWVySW5mb3MgPSBtYXBJbmZvLmdldEFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgbGV0IHRleHR1cmVzID0gdGhpcy5fdGV4dHVyZXM7XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb2JqZWN0VGV4dHVyZXMgPSBbXTtcclxuICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChsYXllckluZm9zICYmIGxheWVySW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5ZXJJbmZvcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxheWVySW5mbyA9IGxheWVySW5mb3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tuYW1lXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuYWN0aXZlID0gbGF5ZXJJbmZvLnZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxheWVySW5mbyBpbnN0YW5jZW9mIGNjLlRNWExheWVySW5mbykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDmlLnkuLrliJvlu7pNeVRpbGVkTGF5ZXJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXIgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vVGlsZWRMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllciA9IGNoaWxkLmFkZENvbXBvbmVudChUbW9UaWxlZExheWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS8oOmAkmZpcnN0VG14TGF5ZXIg6K6w5b2VZmlyc3RUbXhMYXllclxyXG4gICAgICAgICAgICAgICAgICAgIGxheWVyLl9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGhpcywgZmlyc3RUbXhMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RUbXhMYXllciA9IGZpcnN0VG14TGF5ZXIgfHwgbGF5ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgdGhlIGxheWVyaW5mbyB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgb2YgdGhlIHRpbGVzIG1hcC5cclxuICAgICAgICAgICAgICAgICAgICBsYXllckluZm8ub3duVGlsZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBsYXllcnMucHVzaChsYXllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllckluZm8gaW5zdGFuY2VvZiBjYy5UTVhPYmplY3RHcm91cEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBjaGlsZC5hZGRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuX2luaXQobGF5ZXJJbmZvLCBtYXBJbmZvLCB0ZXhHcmlkcywgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXJJbmZvIGluc3RhbmNlb2YgY2MuVE1YSW1hZ2VMYXllckluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGxheWVySW5mby5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5vcGFjaXR5ID0gbGF5ZXJJbmZvLm9wYWNpdHk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubGF5ZXJJbmZvID0gbGF5ZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBjaGlsZC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlID0gY2hpbGQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BmID0gaW1hZ2Uuc3ByaXRlRnJhbWUgfHwgbmV3IGNjLlNwcml0ZUZyYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldFRleHR1cmUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3ByaXRlRnJhbWUgPSBzcGY7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZHRoID0gdGV4dHVyZS53aWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5oZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgY2hpbGQud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZC5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7mnZDotKjnmoR0ZXh0dXJl5bGe5oCnXHJcbiAgICAgICAgbGV0IG9iamVjdFRleHR1cmVzID0gdGhpcy5fb2JqZWN0VGV4dHVyZXM7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RUZXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaWR4ID0gaSA9PT0gMCA/ICcnIDogaTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RNYXRlcmlhbC5zZXRQcm9wZXJ0eShgdGV4dHVyZSR7aWR4fWAsIG9iamVjdFRleHR1cmVzW2ldLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgaWYgKG9sZE5vZGVOYW1lc1tjLl9uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS53aWR0aCA9IG1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMubm9kZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5fc3luY0FuY2hvclBvaW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdE1hdGVyaWFsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0TWF0ZXJpYWw7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5vQ29sb3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzU2luZ2xlVGV4dHVyZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRleHR1cmU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdFRleHR1cmVzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFRleHR1cmVzO1xyXG4gICAgfVxyXG59KTsiXX0=
//------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/RankList/ItemRender.js';
+ var __filename = 'preview-scripts/assets/shop/script/shop.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -1287,8 +813,8 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender');
-// Script/module/RankList/ItemRender.ts
+cc._RF.push(module, '48bfeZuYFZE2qmgxbW2IigB', 'shop');
+// shop/script/shop.ts
"use strict";
var __extends = (this && this.__extends) || (function () {
@@ -1312,1104 +838,61 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
};
Object.defineProperty(exports, "__esModule", { value: true });
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var ItemRender = /** @class */ (function (_super) {
- __extends(ItemRender, _super);
- function ItemRender() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- /**数据 */
- _this.data = null;
- /**索引 0表示第一项*/
- _this.itemIndex = 0;
- return _this;
- }
- /**数据改变时调用 */
- ItemRender.prototype.dataChanged = function () {
- this.data.name = cc.fx.GameTool.subName(this.data.name, 6);
- this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + "";
- this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + "";
- this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total;
- var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time);
- // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + "";
- this.node.getChildByName("rank").getChildByName("one").active = false;
- this.node.getChildByName("rank").getChildByName("two").active = false;
- this.node.getChildByName("rank").getChildByName("three").active = false;
- if (this.data.rank == 1) {
- this.node.getChildByName("rank").getChildByName("one").active = true;
- this.node.getChildByName("rankLab").active = false;
- }
- else if (this.data.rank == 2) {
- this.node.getChildByName("rank").getChildByName("two").active = true;
- this.node.getChildByName("rankLab").active = false;
- }
- else if (this.data.rank == 3) {
- this.node.getChildByName("rank").getChildByName("three").active = true;
- this.node.getChildByName("rankLab").active = false;
- }
- else {
- this.node.getChildByName("rankLab").active = true;
- }
- this.setPic();
- };
- ItemRender.prototype.setPic = function () {
- var _this = this;
- this.node.getChildByName("pic").getChildByName("icon").active = false;
- this.node.getChildByName("pic").getChildByName("pic").active = false;
- var self = this;
- var url = this.data.pic;
- fetch(url)
- .then(function (response) {
- return response.headers.get('Content-Length');
- })
- .then(function (errNo) {
- // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值
- if (errNo == "5093") {
- // console.log(this.data.rank,"没头像");
- _this.node.getChildByName("pic").getChildByName("icon").active = true;
- }
- })
- .catch(function (error) {
- // console.error('Error fetching X-Info:', error);
- });
- cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) {
- if (texture) {
- _this.node.getChildByName("pic").getChildByName("pic").active = true;
- var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite);
- sprite.spriteFrame = new cc.SpriteFrame(texture);
- // console.log(this.data.rank,"设置头像成功",err);
- }
- else {
- // console.log("设置头像失败",url);
- console.log(err, texture);
- }
- });
- };
- ItemRender = __decorate([
- ccclass
- ], ItemRender);
- return ItemRender;
-}(cc.Component));
-exports.default = ItemRender;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBc0VDO1FBckVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWtFaEMsQ0FBQztJQWhFRyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxxRkFBcUY7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEUsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN0RDthQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdEQ7YUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3REO2FBQUk7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSwyQkFBTSxHQUFiO1FBQUEsaUJBZ0NDO1FBL0JHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUUsS0FBSyxDQUFDO1FBQ3BFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1QsSUFBSSxDQUFDLFVBQUEsUUFBUTtZQUNWLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUM7YUFFRCxJQUFJLENBQUMsVUFBQSxLQUFLO1lBQ1AsK0RBQStEO1lBQy9ELElBQUcsS0FBSyxJQUFJLE1BQU0sRUFBQztnQkFDZixxQ0FBcUM7Z0JBQ3JDLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3hFO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLFVBQUEsS0FBSztZQUNSLGtEQUFrRDtRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQW5FZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXNFOUI7SUFBRCxpQkFBQztDQXRFRCxBQXNFQyxDQXRFdUMsRUFBRSxDQUFDLFNBQVMsR0FzRW5EO2tCQXRFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICB0aGlzLmRhdGEubmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGhpcy5kYXRhLm5hbWUsNik7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/Notification/Notification.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification');
-// Script/module/Notification/Notification.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Notifications = void 0;
-//全局通知
-var Notifications = {
- _eventMap: [],
- on: function (masgId, callback, target) {
- if (this._eventMap[masgId] === undefined) {
- this._eventMap[masgId] = [];
- }
- this._eventMap[masgId].push({ callback: callback, target: target });
- },
- emit: function (masgId, parameter) {
- var array = this._eventMap[masgId];
- if (array === undefined)
- return;
- for (var i = 0; i < array.length; i++) {
- var element = array[i];
- if (element)
- element.callback.call(element.target, parameter);
- }
- },
- off: function (masgId, callback) {
- var array = this._eventMap[masgId];
- if (array === undefined)
- return;
- for (var i = 0; i < array.length; i++) {
- var element = array[i];
- if (element && element.callback === callback) {
- array[i] = undefined;
- break;
- }
- }
- },
- offMasgId: function (masgId) {
- this._eventMap[masgId] = undefined;
- },
- removeAllMsg: function () {
- for (var k in this._eventMap) {
- if (this._eventMap[k]) {
- this.offMasgId(k);
- }
- }
- }
-};
-exports.Notifications = Notifications;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXHJcbnZhciBOb3RpZmljYXRpb25zID0ge1xyXG4gICAgX2V2ZW50TWFwOiBbXSxcclxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0ucHVzaCh7IGNhbGxiYWNrOiBjYWxsYmFjaywgdGFyZ2V0OiB0YXJnZXQgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGVtaXQ6IGZ1bmN0aW9uIChtYXNnSWQsIHBhcmFtZXRlcikge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jYWxsYmFjay5jYWxsKGVsZW1lbnQudGFyZ2V0LCBwYXJhbWV0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgb2ZmOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2FsbGJhY2sgPT09IGNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBvZmZNYXNnSWQ6IGZ1bmN0aW9uIChtYXNnSWQpIHtcclxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xyXG4gICAgfSxcclxuXHJcbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmb3IgKGxldCBrIGluIHRoaXMuX2V2ZW50TWFwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFtrXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbnMgfTsiXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager');
-// Script/module/Music/AudioManager.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var AudioManager = /** @class */ (function (_super) {
- __extends(AudioManager, _super);
- function AudioManager() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- //背景音乐
- _this.audioGameBgm0 = null;
- _this.xiaochu = null;
- _this.hit = null;
- _this.down = null;
- _this.fangxiang = null;
- _this.build = null;
- _this.win = null;
- _this.lose = null;
- _this.anniu_Big = null;
- _this.anniu_little = null;
- _this.zhuan1 = null;
- _this.zhuan2 = null;
- return _this;
- }
- AudioManager_1 = AudioManager;
- AudioManager.prototype.onLoad = function () {
- if (AudioManager_1._instance == null) {
- AudioManager_1._instance = this;
- cc.game.addPersistRootNode(this.node);
- }
- else {
- return;
- }
- this.reward = false;
- this.finish = false;
- this.rewardCount = 0;
- this.ctor();
- this.preload();
- };
- AudioManager.prototype.ctor = function () {
- this.mAudioMap = {};
- /**
- * 默认音量大小
- * @type {number}
- */
- this.bgMusicVolume = 0.1;
- this.effectMusicVolume = 1;
- this.mMusicSwitch = 1;
- this.mEffectSwitch = 1;
- };
- AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) {
- // if (isBgMusic && !this.mMusicSwitch) return;
- // if (!isBgMusic && !this.mEffectSwitch) return;
- var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;
- // if (cc.sys.isBrowser) {
- // if(audioSource == this.brickSound){
- // volume = 0.1;
- // }
- volume = 1;
- cc.audioEngine.setEffectsVolume(1);
- cc.audioEngine.setMusicVolume(1);
- if (audioSource.name == "lose") {
- cc.audioEngine.setEffectsVolume(0.5);
- }
- else {
- cc.audioEngine.setEffectsVolume(1);
- }
- var context = cc.audioEngine.playEffect(audioSource, loop);
- if (callback) {
- cc.audioEngine.setFinishCallback(context, function () {
- callback.call(this);
- }.bind(this));
- }
- // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);
- this.mAudioMap[audioSource] = context;
- return audioSource;
- // } else {
- // return audioSource;
- // }
- };
- AudioManager.prototype.save = function () {
- // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);
- // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);
- };
- // static get Instance()
- // {
- // if (this._instance == null)
- // {
- // this._instance = new AudioManager();
- // }
- // return this._instance;
- // }
- AudioManager.prototype.preload = function () {
- if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) {
- return;
- }
- var musics = [
- this.audioGameBgm0,
- ];
- musics.forEach(function (path) {
- });
- };
- AudioManager.prototype.getAudioMusicSwitch = function () {
- return this.mMusicSwitch;
- };
- AudioManager.prototype.getAudioEffectSwitch = function () {
- return this.mEffectSwitch;
- };
- AudioManager.prototype.trunAudioSound = function (on) {
- this.switchMusic(on);
- this.switchEffect(on);
- };
- AudioManager.prototype.switchMusic = function (on) {
- if (this.mMusicSwitch != (on ? 1 : 0)) {
- this.mMusicSwitch = 1 - this.mMusicSwitch;
- // this.save();
- }
- if (on) {
- this.playMusicGame();
- }
- else {
- this.stopMusic();
- }
- };
- AudioManager.prototype.switchEffect = function (on) {
- if (this.mEffectSwitch != (on ? 1 : 0)) {
- this.mEffectSwitch = 1 - this.mEffectSwitch;
- // this.save();
- }
- };
- AudioManager.prototype.onHide = function () {
- cc.audioEngine.pauseAll();
- };
- AudioManager.prototype.onShow = function () {
- cc.audioEngine.resumeAll();
- };
- //播放音效
- AudioManager.prototype.playEffect = function (name, callback) {
- if (!cc.fx.GameConfig.GM_INFO.effectOpen) {
- return;
- }
- if (this[name])
- return this.play(this[name], false, callback, this.mEffectSwitch);
- };
- AudioManager.prototype.playMusic = function (key, callback, loop) {
- if (!cc.fx.GameConfig.GM_INFO.musicOpen) {
- return;
- }
- loop = typeof loop == 'undefined' || loop ? true : false;
- this.stopMusic();
- this.mMusicKey = this.play(key, loop, callback, true);
- };
- /**
- * 游戏背景音乐
- */
- AudioManager.prototype.playMusicGame = function () {
- this.stopMusic();
- this.playMusic(this.audioGameBgm0, {}, true);
- };
- /**
- * 停止背景音乐播放
- */
- AudioManager.prototype.stopMusic = function () {
- // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);
- cc.audioEngine.stopAll();
- };
- /**
- * 恢复被暂停的背景音乐播放
- */
- AudioManager.prototype.resumeMusic = function () {
- // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放
- cc.audioEngine.resumeMusic();
- };
- /*
- * 游戏开始音效
- *
- */
- AudioManager.prototype.playGameStart = function () {
- };
- /*
- * 失败的游戏结束
- */
- AudioManager.prototype.playGameOver = function () {
- };
- /*
- * 成功的游戏结束
- */
- AudioManager.prototype.playGameResultFailed = function () {
- };
- /*
- * 成功的游戏结束
- */
- AudioManager.prototype.playGameResultSuccess = function () {
- };
- /**
- * 报警的音效
- */
- /**
- * 按钮
- */
- AudioManager.prototype.playAudioButton = function () {
- // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);
- };
- var AudioManager_1;
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "audioGameBgm0", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "xiaochu", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "hit", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "down", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "fangxiang", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "build", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "win", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "lose", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "anniu_Big", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "anniu_little", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "zhuan1", void 0);
- __decorate([
- property(cc.AudioClip)
- ], AudioManager.prototype, "zhuan2", void 0);
- AudioManager = AudioManager_1 = __decorate([
- ccclass
- ], AudioManager);
- return AudioManager;
-}(cc.Component));
-exports.default = AudioManager;
-;
-// export { AudioManager };
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUF3UEM7UUF0UEcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBNk5oQyxDQUFDO3FCQXhQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUks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Qzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXdQaEM7SUFBRCxtQkFBQztDQXhQRCxBQXdQQyxDQXhQeUMsRUFBRSxDQUFDLFNBQVMsR0F3UHJEO2tCQXhQb0IsWUFBWTtBQXdQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZGlvTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICAvL+iDjOaZr+mfs+S5kFxyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGF1ZGlvR2FtZUJnbTA6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIHhpYW9jaHU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgaGl0OiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGRvd246IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgZmFuZ3hpYW5nOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGJ1aWxkOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIHdpbjogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBsb3NlOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGFubml1X0JpZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBhbm5pdV9saXR0bGU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgemh1YW4xOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIHpodWFuMjogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuXHJcbiAgICBtQXVkaW9NYXA6IHt9O1xyXG4gICAgYmdNdXNpY1ZvbHVtZTogbnVtYmVyO1xyXG4gICAgZWZmZWN0TXVzaWNWb2x1bWU6IG51bWJlcjtcclxuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xyXG4gICAgbUVmZmVjdFN3aXRjaDogbnVtYmVyO1xyXG4gICAgYnJpY2tTb3VuZDogYW55O1xyXG4gICAgcmV3YXJkOiBib29sZWFuO1xyXG4gICAgZmluaXNoOiBib29sZWFuO1xyXG4gICAgcmV3YXJkQ291bnQ6IG51bWJlcjtcclxuICAgIG1NdXNpY0tleTogYW55O1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBpZiAoQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZmluaXNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZXdhcmRDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5jdG9yKCk7XHJcblxyXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGN0b3IgKCkge1xyXG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcclxuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xyXG4gICAgfVxyXG4gICAgcGxheSAoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcclxuICAgICAgICAvLyBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIC8vIGlmICghaXNCZ011c2ljICYmICF0aGlzLm1FZmZlY3RTd2l0Y2gpIHJldHVybjtcclxuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcclxuXHJcbiAgICAgICAgLy8gaWYgKGNjLnN5cy5pc0Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgLy8gaWYoYXVkaW9Tb3VyY2UgPT0gdGhpcy5icmlja1NvdW5kKXtcclxuICAgICAgICAgICAgLy8gICAgIHZvbHVtZSA9IDAuMTtcclxuICAgICAgICAgICAgLy8gfSBcclxuICAgICAgICAgICAgdm9sdW1lID0gMTtcclxuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcclxuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0TXVzaWNWb2x1bWUoMSk7XHJcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpe1xyXG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgwLjUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChhdWRpb1NvdXJjZSwgbG9vcCk7XHJcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XHJcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCBpc0Jyb3dzZXI6ICcgKyBjb250ZXh0LnNyYyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xyXG4gICAgICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBzYXZlICgpIHtcclxuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgdGhpcy5tTXVzaWNTd2l0Y2gpO1xyXG4gICAgICAgIC8vIGNjLnd3eC5TdG9yYWdlLnNldEl0ZW0oY2Mud3d4LlN0b3JhZ2UuS2V5X1NldHRpbmdfRWZmZWN0X1ZvbHVtZSwgdGhpcy5tRWZmZWN0U3dpdGNoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdGF0aWMgZ2V0IEluc3RhbmNlKClcclxuICAgIC8vIHtcclxuICAgIC8vICAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbClcclxuICAgIC8vICAgICB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEF1ZGlvTWFuYWdlcigpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcHJlbG9hZCAoKSB7XHJcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB2YXIgbXVzaWNzID0gW1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBtdXNpY3MuZm9yRWFjaChmdW5jdGlvbihwYXRoKSB7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRBdWRpb011c2ljU3dpdGNoKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tTXVzaWNTd2l0Y2g7XHJcblxyXG4gICAgfVxyXG4gICAgZ2V0QXVkaW9FZmZlY3RTd2l0Y2goKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1FZmZlY3RTd2l0Y2g7XHJcbiAgICB9XHJcbiAgICB0cnVuQXVkaW9Tb3VuZChvbilcclxuICAgIHtcclxuICAgICAgICB0aGlzLnN3aXRjaE11c2ljKG9uKTtcclxuICAgICAgICB0aGlzLnN3aXRjaEVmZmVjdChvbilcclxuICAgIH1cclxuICAgIHN3aXRjaE11c2ljIChvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMS10aGlzLm1NdXNpY1N3aXRjaDtcclxuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc3dpdGNoRWZmZWN0IChvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uPzE6MCkpe1xyXG4gICAgICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxLXRoaXMubUVmZmVjdFN3aXRjaDtcclxuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uSGlkZSAoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZUFsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5pKt5pS+6Z+z5pWIXHJcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xyXG4gICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbil7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpc1tuYW1lXSlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzW25hbWVdLCBmYWxzZSxjYWxsYmFjayx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xyXG4gICAgfVxyXG4gICAgcGxheU11c2ljIChrZXksIGNhbGxiYWNrLCBsb29wKSB7XHJcbiAgICAgICAgaWYoIWNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4pe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyAgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIHRoaXMubU11c2ljS2V5ID0gdGhpcy5wbGF5KGtleSwgbG9vcCwgY2FsbGJhY2ssIHRydWUpO1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5ri45oiP6IOM5pmv6Z+z5LmQXHJcbiAgICAgKi9cclxuICAgIHBsYXlNdXNpY0dhbWUgKCkge1xyXG4gICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XHJcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cclxuICAgICAqL1xyXG4gICAgc3RvcE11c2ljICgpIHtcclxuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmgaLlpI3ooqvmmoLlgZznmoTog4zmma/pn7PkuZDmkq3mlL5cclxuICAgICAqL1xyXG4gICAgcmVzdW1lTXVzaWMgKCkge1xyXG4gICAgICAgIC8vIOiwg+eUqCBjYy5hdWRpb0VuZ2luZSDnmoQgcmVzdW1lTXVzaWMg5pa55rOV5oGi5aSN6Z+z5LmQ5pKt5pS+XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgKiDmuLjmiI/lvIDlp4vpn7PmlYhcclxuICAgICpcclxuICAgICovXHJcbiAgICBwbGF5R2FtZVN0YXJ0KClcclxuICAgIHtcclxuICAgIFxyXG4gICAgfVxyXG4gICAgLypcclxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXHJcbiAgICAqL1xyXG4gICAgcGxheUdhbWVPdmVyKClcclxuICAgIHtcclxuXHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgICAgICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXHJcbiAgICAgICAgKi9cclxuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcclxuICAgIHtcclxuXHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cclxuICAgICovXHJcbiAgICBwbGF5R2FtZVJlc3VsdFN1Y2Nlc3MoKVxyXG4gICAge1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5oql6K2m55qE6Z+z5pWIXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMiemSrlxyXG4gICAgICovXHJcbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xyXG4gICAgICAgIC8vIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0J1dHRvbkNsaWNrLCBmYWxzZSxudWxsLHRoaXMubUVmZmVjdFN3aXRjaCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vLyBleHBvcnQgeyBBdWRpb01hbmFnZXIgfTtcclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig');
-// Script/module/Config/GameConfig.ts
-
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.GameConfig = void 0;
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var GameConfig = /** @class */ (function () {
- function GameConfig() {
- }
- GameConfig_1 = GameConfig;
- Object.defineProperty(GameConfig, "Instance", {
- //游戏内信息
- get: function () {
- if (this._instance == null) {
- this._instance = new GameConfig_1();
- }
- return this._instance;
- },
- enumerable: false,
- configurable: true
- });
- //getSeedRandom
- GameConfig.init = function (Authentication) {
- //@ts-ignore
- if (typeof wx !== 'undefined' && wx !== null) {
- //@ts-ignore
- wx.cloud.init();
- }
- this.TA = null;
- this.CLICK_init();
- this.GM_INFO_init();
- this.LEVEL_INFO_init(false, 0);
- var self = this;
- //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次
- this.GAME_DATA = [];
- // if(!Authentication) self.Authentication();
- };
- GameConfig.generateUUID = function () {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = Math.random() * 16 | 0;
- var v = c === 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
- };
- // 版本比较函数
- GameConfig.compareVersion = function (v1, v2) {
- var arr1 = v1.split('.');
- var arr2 = v2.split('.');
- var len = Math.max(arr1.length, arr2.length);
- for (var i = 0; i < len; i++) {
- var num1 = parseInt(arr1[i] || '0', 10);
- var num2 = parseInt(arr2[i] || '0', 10);
- if (num1 > num2) {
- return 1;
- }
- else if (num1 < num2) {
- return -1;
- }
- }
- return 0;
- };
- GameConfig.GM_INFO_SET = function (key, value) {
- this.GM_INFO[key] = value;
- };
- GameConfig.CLICK_init = function () {
- this.CLICK_DATA =
- {
- type: 1,
- success: false,
- round: 0,
- getScore: 0,
- cumulativeScore: 0,
- mapId: "",
- difficulty: 0,
- optimizedSteps: 0,
- usedSteps: 0,
- stepList: [],
- startTime: -1,
- submitTime: -1,
- duration: 0,
- drawingBack: 0,
- drawingReset: 0,
- timer: 0 //测评倒计时剩余时间 去秒
- };
- };
- GameConfig.CLICK_SET = function (key, value) {
- this.CLICK_DATA[key] = value;
- };
- //数据备用
- GameConfig.GM_INFO_init = function () {
- var _this = this;
- this.GM_INFO = {
- // isEnd: false,
- mean_Time: 0,
- hp: 5,
- review: 0,
- currSeed: 200000,
- openid: "",
- gameId: "100001",
- userId: 0,
- scode: "",
- username: "user",
- useravatar: "",
- guide: true,
- url: "https://api.sparkus.cn",
- coin: 0,
- success: false,
- matchId: null,
- gameState: false,
- custom: 0,
- round: 0,
- level: 0,
- stepTimeList: 0,
- successList: [],
- first: false,
- score: 0,
- scale: 1,
- min_Steps: 0,
- min_Time: 0,
- freezeAmount: 0,
- hammerAmount: 0,
- magicAmount: 0,
- musicOpen: true,
- effectOpen: true,
- vibrateOpen: true,
- };
- // this.setCode(this.getKey("scode"));
- // this.GM_INFO.level = 0;
- cc.resources.load("Json/NEW_LEVEL", function (err, res) {
- if (err) {
- console.error("加载 NEW_LEVEL.JSON 失败:", err);
- return;
- }
- var newLevelData = res.json;
- _this.NEW_LEVEL = newLevelData.NEW_LEVEL;
- // 可以根据需求对 newLevelData 进行处理
- // //console.log("NEW_LEVEL.JSON 加载成功:", newLevelData);
- });
- };
- GameConfig.LEVEL_INFO_init = function (type, time) {
- // 示例 围墙会根据缺的地块自动生成
- // 带缺口 {"id":"1006","map":[10,11],"gap":[cc.v2(4,9),cc.v2(5,9)]},
- // 带升降地块 {"id":"1004","map":[7,8],"risefall":[{pos:cc.v2(5,4),color:2},{pos:cc.v2(5,5),color:5}]},
- // 如果普通的就 {"id":"1001","map":[6,7]}, 这个样子就可以了
- var self = this;
- if ((cc.fx.GameConfig.GM_INFO.level) > 156) {
- cc.fx.GameConfig.GM_INFO.level = 156;
- }
- var name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1);
- // //console.log("关卡名称:",name);
- // name = "Json/level" + 68;
- // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString());
- cc.resources.load(name, function (err, res) {
- if (err) {
- cc.fx.GameTool.addLevel();
- self.LEVEL_INFO_init(type, time);
- return;
- }
- var jsonData = res.json;
- self.BLOCK_INFO = jsonData["BLOCK_INFO"];
- self.LEVEL_INFO = jsonData["LEVEL_INFO"];
- self.WALL_INFO = jsonData["WALL_INFO"];
- // //console.log("配置加载完成");
- if (type) {
- cc.director.preloadScene("GameScene", function () {
- if (time == 0)
- cc.director.loadScene("GameScene");
- else {
- setTimeout(function () {
- cc.director.loadScene("GameScene");
- }, time);
- }
- });
- }
- });
- //道具位置信息
- this.PROP_INFO = [
- {
- "pos1": { "x": -66, "y": 60, "z": 0 },
- "pos2": { "x": -19, "y": 36, "z": 0 },
- "pos3": { "x": -34.362, "y": 13.246, "z": 0 },
- "pos4": { "x": -17, "y": 12, "z": 0 },
- "pos5": { "x": -85, "y": 70, "z": 0 },
- "pos6": { "x": -5, "y": 3, "z": 0 },
- },
- {
- "pos1": { "x": -126, "y": 61, "z": 0 },
- "pos2": { "x": -25.792, "y": 34.675, "z": 0 },
- "pos3": { "x": -94.792, "y": 21.675, "z": 0 },
- "pos4": { "x": -20, "y": 13, "z": 0 },
- "pos5": { "x": -140, "y": 68, "z": 0 },
- "pos6": { "x": -2, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -67, "y": 122, "z": 0 },
- "pos2": { "x": -20, "y": 94, "z": 0 },
- "pos3": { "x": -34.792, "y": 23.675, "z": 0 },
- "pos4": { "x": -14, "y": 24, "z": 0 },
- "pos5": { "x": -84, "y": 128, "z": 0 },
- "pos6": { "x": -5, "y": 3, "z": 0 },
- },
- {
- "pos1": { "x": -178, "y": 61, "z": 0 },
- "pos2": { "x": -34.792, "y": 37.675, "z": 0 },
- "pos3": { "x": -150, "y": 23.675, "z": 0 },
- "pos4": { "x": -22, "y": 16, "z": 0 },
- "pos5": { "x": -200, "y": 67, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -63, "y": 178, "z": 0 },
- "pos2": { "x": -17.792, "y": 166.675, "z": 0 },
- "pos3": { "x": -31.792, "y": 33.675, "z": 0 },
- "pos4": { "x": -14, "y": 37, "z": 0 },
- "pos5": { "x": -78, "y": 182, "z": 0 },
- "pos6": { "x": 0, "y": 2, "z": 0 },
- },
- {
- "pos1": { "x": -123, "y": 124, "z": 0 },
- "pos2": { "x": -25.792, "y": 99.675, "z": 0 },
- "pos3": { "x": -97.792, "y": 27.675, "z": 0 },
- "pos4": { "x": -27, "y": 19, "z": 0 },
- "pos5": { "x": -135, "y": 127, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -64, "y": 178, "z": 0 },
- "pos2": { "x": -24.792, "y": 275.675, "z": 0 },
- "pos3": { "x": -31.792, "y": 35.675, "z": 0 },
- "pos4": { "x": -7, "y": 39, "z": 0 },
- "pos5": { "x": -77, "y": 188, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -178, "y": 186, "z": 0 },
- "pos2": { "x": -31.792, "y": 163.675, "z": 0 },
- "pos3": { "x": -33.792, "y": 34.675, "z": 0 },
- "pos4": { "x": -18, "y": 30, "z": 0 },
- "pos5": { "x": -200, "y": 192, "z": 0 },
- "pos6": { "x": 0, "y": 5, "z": 0 },
- },
- {
- "pos1": { "x": -186, "y": 178, "z": 0 },
- "pos2": { "x": -25.792, "y": 38.675, "z": 0 },
- "pos3": { "x": -153.792, "y": 34.675, "z": 0 },
- "pos4": { "x": -23, "y": 14, "z": 0 },
- "pos5": { "x": -200, "y": 185, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -183, "y": 64, "z": 0 },
- "pos2": { "x": -37.792, "y": 37.675, "z": 0 },
- "pos3": { "x": -36.792, "y": 26.675, "z": 0 },
- "pos4": { "x": -24, "y": 17, "z": 0 },
- "pos5": { "x": -212, "y": 74, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -65, "y": 177, "z": 0 },
- "pos2": { "x": 93.208, "y": 276.675, "z": 0 },
- "pos3": { "x": -33.792, "y": 34.675, "z": 0 },
- "pos4": { "x": 3, "y": 31, "z": 0 },
- "pos5": { "x": -80, "y": 190, "z": 0 },
- "pos6": { "x": 0, "y": 3, "z": 0 },
- },
- {
- "pos1": { "x": 58, "y": 179, "z": 0 },
- "pos2": { "x": 205.225, "y": 154.034, "z": 0 },
- "pos3": { "x": -29.642, "y": 25.691, "z": 0 },
- "pos4": { "x": 7.218, "y": 29.765, "z": 0 },
- "pos5": { "x": 45, "y": 185, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -68, "y": 182, "z": 0 },
- "pos2": { "x": -25.792, "y": 37.675, "z": 0 },
- "pos3": { "x": -35.792, "y": 33.675, "z": 0 },
- "pos4": { "x": -14, "y": 12, "z": 0 },
- "pos5": { "x": -82, "y": 190, "z": 0 },
- "pos6": { "x": -2, "y": 1, "z": 0 },
- },
- {
- "pos1": { "x": -184, "y": 62, "z": 0 },
- "pos2": { "x": -35.792, "y": 36.675, "z": 0 },
- "pos3": { "x": -271.792, "y": 24.675, "z": 0 },
- "pos4": { "x": -17, "y": 20, "z": 0 },
- "pos5": { "x": -200, "y": 72, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -62, "y": 175, "z": 0 },
- "pos2": { "x": 87.208, "y": 164.675, "z": 0 },
- "pos3": { "x": -31.792, "y": 35.675, "z": 0 },
- "pos4": { "x": -6, "y": 24, "z": 0 },
- "pos5": { "x": -79, "y": 172, "z": 0 },
- "pos6": { "x": 0, "y": 5, "z": 0 },
- },
- {
- "pos1": { "x": -184, "y": 72, "z": 0 },
- "pos2": { "x": -33.792, "y": 38.675, "z": 0 },
- "pos3": { "x": -154.792, "y": 29.675, "z": 0 },
- "pos4": { "x": -29, "y": 16, "z": 0 },
- "pos5": { "x": -201, "y": 85, "z": 0 },
- "pos6": { "x": -1, "y": 3, "z": 0 },
- },
- {
- "pos1": { "x": -64, "y": 181, "z": 0 },
- "pos2": { "x": 95.208, "y": 155.675, "z": 0 },
- "pos3": { "x": -30.792, "y": 36.675, "z": 0 },
- "pos4": { "x": -12, "y": 32, "z": 0 },
- "pos5": { "x": -78, "y": 190, "z": 0 },
- "pos6": { "x": 0, "y": 3, "z": 0 },
- },
- {
- "pos1": { "x": -65, "y": 178, "z": 0 },
- "pos2": { "x": -21.792, "y": 156.675, "z": 0 },
- "pos3": { "x": -31.792, "y": 37.675, "z": 0 },
- "pos4": { "x": -12, "y": 32, "z": 0 },
- "pos5": { "x": -78, "y": 188, "z": 0 },
- "pos6": { "x": 0, "y": 2, "z": 0 },
- },
- {
- "pos1": { "x": -62, "y": 183, "z": 0 },
- "pos2": { "x": 88.208, "y": 162.675, "z": 0 },
- "pos3": { "x": -29.792, "y": 41.675, "z": 0 },
- "pos4": { "x": -12, "y": 18, "z": 0 },
- "pos5": { "x": -80, "y": 188, "z": 0 },
- "pos6": { "x": -4, "y": 2, "z": 0 },
- },
- {
- "pos1": { "x": -67, "y": 80, "z": 0 },
- "pos2": { "x": -26.792, "y": 32.675, "z": 0 },
- "pos3": { "x": -34.792, "y": 23.675, "z": 0 },
- "pos4": { "x": -12, "y": 18, "z": 0 },
- "pos5": { "x": -84, "y": 90, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -184, "y": 80, "z": 0 },
- "pos2": { "x": -25.792, "y": 34.675, "z": 0 },
- "pos3": { "x": -155.792, "y": 25.675, "z": 0 },
- "pos4": { "x": -18, "y": 26, "z": 0 },
- "pos5": { "x": -196, "y": 96, "z": 0 },
- "pos6": { "x": 0, "y": 0, "z": 0 },
- },
- {
- "pos1": { "x": -62, "y": 160, "z": 0 },
- "pos2": { "x": 95.208, "y": 158.675, "z": 0 },
- "pos3": { "x": -33.792, "y": 29.675, "z": 0 },
- "pos4": { "x": -18, "y": 26, "z": 0 },
- "pos5": { "x": -78, "y": 170, "z": 0 },
- "pos6": { "x": 0, "y": 2, "z": 0 },
- },
- {
- "pos1": { "x": -68, "y": 160, "z": 0 },
- "pos2": { "x": -25.792, "y": 156.675, "z": 0 },
- "pos3": { "x": -35.792, "y": 27.675, "z": 0 },
- "pos4": { "x": -25, "y": 40, "z": 0 },
- "pos5": { "x": -82, "y": 170, "z": 0 },
- "pos6": { "x": -2, "y": 2, "z": 0 },
- }
- ];
- // this.PROP_INFO = [{"pos1": {"x": -60,"y": 60,"z": 0},"pos2": {"x": -16.442,"y": 30,"z": 0},"pos3": {"x": -34.362,"y": 13.246,"z": 0},"pos4": {"x": -17,"y": 12,"z": 0}},{"pos1": {"x": -126,"y": 63,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -94.792,"y": 21.675,"z": 0},"pos4": {"x": -20,"y": 13,"z": 0}},{"pos1": {"x": -60,"y": 125,"z": 0},"pos2": {"x": -12.792,"y": 92.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -14,"y": 24,"z": 0}},{"pos1": {"x": -185,"y": 63,"z": 0},"pos2": {"x": -34.792,"y": 37.675,"z": 0},"pos3": {"x": -154.792,"y": 23.675,"z": 0},"pos4": {"x": -22,"y": 16,"z": 0}},{"pos1": {"x": -57,"y": 178,"z": 0},"pos2": {"x": -17.792,"y": 166.675,"z": 0},"pos3": {"x": -31.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 37,"z": 0}},{"pos1": {"x": -123,"y": 127,"z": 0},"pos2": {"x": -25.792,"y": 99.675,"z": 0},"pos3": {"x": -97.792,"y": 27.675,"z": 0},"pos4": {"x": -27,"y": 19,"z": 0}},{"pos1": {"x": -62,"y": 181,"z": 0},"pos2": {"x": -24.792,"y": 275.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -7,"y": 39,"z": 0}},{"pos1": {"x": -181,"y": 180,"z": 0},"pos2": {"x": -31.792,"y": 163.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": -18,"y": 30,"z": 0}},{"pos1": {"x": -182,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 38.675,"z": 0},"pos3": {"x": -153.792,"y": 34.675,"z": 0},"pos4": {"x": -23,"y": 14,"z": 0}},{"pos1": {"x": -186,"y": 61,"z": 0},"pos2": {"x": -37.792,"y": 37.675,"z": 0},"pos3": {"x": -36.792,"y": 26.675,"z": 0},"pos4": {"x": -24,"y": 17,"z": 0}},{"pos1": {"x": -62,"y": 177,"z": 0},"pos2": {"x": 93.208,"y": 276.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": 3,"y": 31,"z": 0}},{"pos1": {"x": 58,"y": 179,"z": 0},"pos2": {"x": 205.225,"y": 154.034,"z": 0},"pos3": {"x": -29.642,"y": 25.691,"z": 0},"pos4": {"x": 7.218,"y": 29.765,"z": 0}},{"pos1": {"x": -57,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 37.675,"z": 0},"pos3": {"x": -35.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 12,"z": 0}},{"pos1": {"x": -180,"y": 62,"z": 0},"pos2": {"x": -35.792,"y": 36.675,"z": 0},"pos3": {"x": -271.792,"y": 24.675,"z": 0},"pos4": {"x": -17,"y": 20,"z": 0}},{"pos1": {"x": -62,"y": 178,"z": 0},"pos2": {"x": 87.208,"y": 164.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -6,"y": 24,"z": 0}},{"pos1": {"x": -176,"y": 60,"z": 0},"pos2": {"x": -33.792,"y": 38.675,"z": 0},"pos3": {"x": -154.792,"y": 29.675,"z": 0},"pos4": {"x": -29,"y": 16,"z": 0}},{"pos1": {"x": -60,"y": 181,"z": 0},"pos2": {"x": 95.208,"y": 155.675,"z": 0},"pos3": {"x": -30.792,"y": 36.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -63,"y": 178,"z": 0},"pos2": {"x": -21.792,"y": 156.675,"z": 0},"pos3": {"x": -31.792,"y": 37.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -60,"y": 183,"z": 0},"pos2": {"x": 88.208,"y": 162.675,"z": 0},"pos3": {"x": -29.792,"y": 41.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -64,"y": 58,"z": 0},"pos2": {"x": -26.792,"y": 32.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -184,"y": 62,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -155.792,"y": 25.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -57,"y": 190,"z": 0},"pos2": {"x": 95.208,"y": 158.675,"z": 0},"pos3": {"x": -33.792,"y": 29.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -71,"y": 184,"z": 0},"pos2": {"x": -25.792,"y": 156.675,"z": 0},"pos3": {"x": -35.792,"y": 27.675,"z": 0},"pos4": {"x": -25,"y": 40,"z": 0}}];
- };
- GameConfig.setCode = function (code) {
- this.GM_INFO.scode = code;
- };
- GameConfig.getKey = function (key) {
- // var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i');
- // var r = window.location.search.substring(1).match(reg);
- // if (r != null) {
- // return unescape(r[2]);
- // }
- return "";
- };
- GameConfig.Authentication = function () {
- cc.fx.GameTool.Authentication();
- };
- var GameConfig_1;
- //所有控制信息都通过GameAppStart内控制
- GameConfig._instance = null;
- GameConfig = GameConfig_1 = __decorate([
- ccclass('GameConfig')
- ], GameConfig);
- return GameConfig;
-}());
-exports.GameConfig = GameConfig;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJTSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUU1QztJQUFBO0lBb2VBLENBQUM7bUJBcGVZLFVBQVU7SUF3Rm5CLHNCQUFXLHNCQUFRO1FBRm5CLE9BQU87YUFFUDtZQUVJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQzFCO2dCQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFVLEVBQUUsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUNELGVBQWU7SUFDUixlQUFJLEdBQVgsVUFBWSxjQUFjO1FBQ2YsWUFBWTtRQUNuQixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFDLFlBQVk7WUFDWixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBR25CO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUNoQixDQUFBO1FBR0QsNkNBQTZDO0lBQ2pELENBQUM7SUFJTSx1QkFBWSxHQUFuQjtRQUNJLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsSUFBTSxDQUFDLEdBQUcsSUFB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LENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDWjtnQkFDTCxDQUFDLENBQUMsQ0FBQTthQUNMO1FBRVQsQ0FBQyxDQUFDLENBQUE7UUFHSCxRQUFRO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNYO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUN0QztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7U0FDSixDQUFDO1FBQ0osNGdIQUE0Z0g7SUFDOWdILENBQUM7SUFJTSxrQkFBTyxHQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0saUJBQU0sR0FBYixVQUFjLEdBQUc7UUFDYiw4REFBOEQ7UUFDOUQsMERBQTBEO1FBQzFELG1CQUFtQjtRQUNuQiw2QkFBNkI7UUFDN0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdNLHlCQUFjLEdBQXJCO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7SUFsZUQsMEJBQTBCO0lBQ1gsb0JBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBRnBDLFVBQVU7UUFEdEIsT0FBTyxDQUFDLFlBQVksQ0FBQztPQUNULFVBQVUsQ0FvZXRCO0lBQUQsaUJBQUM7Q0FwZUQsQUFvZUMsSUFBQTtBQXBlWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3MoJ0dhbWVDb25maWcnKVxyXG5leHBvcnQgY2xhc3MgR2FtZUNvbmZpZyAge1xyXG4gICAgLy/miYDmnInmjqfliLbkv6Hmga/pg73pgJrov4dHYW1lQXBwU3RhcnTlhoXmjqfliLZcclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZSA6IEdhbWVDb25maWcgPSBudWxsO1xyXG5cclxuICAgIHN0YXRpYyBHQU1FX0RBVEE6IGFueVtdO1xyXG4gICAgLy/lhbPljaHmlbDmja5cclxuICAgIC8v55So5oi36ZyA6KaB5a2Y5YKo5Zyo5pys5Zyw55qE5pWw5o2u77yMIOmHkeW4ge+8jOWFs+WNoeetiee6p++8jOS9k+WKm+WAvOS7peWPiuaBouWkje+8jOmBk+WFt+aVsOmHj+OAglxyXG4gICAgXHJcblxyXG4gICAgc3RhdGljIENVU1RPTV9JTkZPOiB7XHJcbiAgICAgICAgbW92ZVNwZWVkOiBudW1iZXI7IC8v5rSq5bOw56e75Yqo6YCf5bqmXHJcbiAgICAgICAgd2FpdFRpbWU6IG51bWJlcjsgLy/mtKrls7DlhrLlh7vlgJLorqHml7ZcclxuICAgICAgICBmYXN0UGF0aDogbnVtYmVyOyAvL+acgOefrei3r+W+hFxyXG4gICAgfVtdO1xyXG4gICAgc3RhdGljIFRJTUVfSU5GTzoge1xyXG4gICAgICAgIHdhdGVyU3BlZWQ6IG51bWJlcltdOyAvL+a0quWzsOmAn+W6plxyXG4gICAgICAgIHRvdGFsVGltZTogbnVtYmVyOyAvL+a4uOaIj+aAu+aXtumVv1xyXG4gICAgICAgIHdhdGVyVGltZTogbnVtYmVyW107IC8v5rSq5bOw5p2l55qE5YCS6K6h5pe2XHJcbiAgICAgICAgcm9hZFNwZWVkOiBudW1iZXI7IC8v5rKz6YGT5L+u562R6YCf5bqmXHJcbiAgICAgICAgUmVpbmZvcmNlU3BlZWQ6IG51bWJlcjsgLy/liqDlm7rml7bpl7TpgJ/luqZcclxuICAgICAgICBYaV9Tb2lsU3BlZWQ6IG51bWJlcjtcclxuICAgIH07XHJcbiAgICAvL+eUqOS6juebm+aUvuWfi+eCueaVsOaNruS4iuS8oO+8jOavj+asoeS4iuS8oOWQjua4heepulxyXG4gICAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgICAgICB0eXBlOiBudW1iZXI7IC8v5LiK5Lyg5pWw5o2u57G75Z6LXHJcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbjsgLy/mraTlsYDmuLjmiI/mraPnoa7kuI7lkKZcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgICAgIGdldFNjb3JlOiBudW1iZXI7IC8v5pys6L2u5b6X5YiG77yM5aSx6LSl5Li6MOWIhlxyXG4gICAgICAgIGN1bXVsYXRpdmVTY29yZTogbnVtYmVyOyAvL+acrOWJp+a4uOaIj+aAu+iuoeW+l+WIhlxyXG4gICAgICAgIG1hcElkOiBzdHJpbmc7IC8v5Zyw5Zu+SURcclxuICAgICAgICBkaWZmaWN1bHR5OiBudW1iZXI7IC8v5Zyw5Zu+6Zq+5bqmXHJcbiAgICAgICAgb3B0aW1pemVkU3RlcHM6IG51bWJlcjsgLy/lhbPljaHmnIDnn63mraXmlbBcclxuICAgICAgICB1c2VkU3RlcHM6IG51bWJlcjsgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICBzdGVwTGlzdDogYW55W107IC8vVeOAgUTjgIFM44CBUiAgIFgg5oGv5aOkICAgRiDliqDlm7pcclxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcjsgLy/ku47muLjmiI/lvIDlp4vliLDnjqnlrrbmk43kvZznmoTnrKzkuIDmraXmiKrmraLml7bpl7QgIOWNleS9jeavq+enklxyXG4gICAgICAgIHN1Ym1pdFRpbWU6IG51bWJlcjsgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkdXJhdGlvbjogbnVtYmVyOyAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkcmF3aW5nQmFjazogbnVtYmVyOyAvL+WQjumAgOasoeaVsFxyXG4gICAgICAgIGRyYXdpbmdSZXNldDogbnVtYmVyOyAvL+a4heepuuasoeaVsFxyXG4gICAgICAgIHRpbWVyOiBudW1iZXI7ICAvL+a4uOaIj+WAkuiuoeaXtuWJqeS9meaXtumVvyDnp5JcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIFRJUF9FUlI6IHN0cmluZ1tdOyAgIC8v5L+u562R5aSx6LSl6ZSZ6K+v5o+Q56S6XHJcblxyXG4gICAgc3RhdGljIEJMT0NLX0lORk86IHt9W11bXTtcclxuICAgIC8vc3RhdGljIFdBTExfSU5GTzogKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHR5cGU6IG51bWJlcjsgc3BlY2lhbDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgfVtdIHwgeyBpZDogbnVtYmVyOyBudW06IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgY29sb3I6IG51bWJlcjsgdHlwZTogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IH1bXSlbXTtcclxuICAgIHN0YXRpYyBMRVZFTF9JTkZPOiAoeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbD86IHVuZGVmaW5lZDsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbDogeyBwb3M6IGNjLlZlYzI7IGNvbG9yOiBudW1iZXI7IH1bXTsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyBnYXA6IGNjLlZlYzJbXTsgcmlzZWZhbGw/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgV0FMTF9JTkZPOiAoKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGxvY2s/OiB1bmRlZmluZWQ7IH0gfCB7IGlkOiBudW1iZXI7IG51bTogbnVtYmVyOyBibG9jazogbnVtYmVyOyBjb2xvcjogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBsb2NrOiBib29sZWFuOyB9KVtdIHwgKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZT86IHVuZGVmaW5lZDsgfSB8IHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZTogbnVtYmVyOyB9KVtdKVtdO1xyXG4gICAgc3RhdGljIFBST1BfSU5GTzogKHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgfSB8IHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgTkVXX0xFVkVMOiBhbnk7XHJcbiAgICBzdGF0aWMgVEE6IGFueTtcclxuICAgIHN0YXRpYyBHTV9JTkZPOiB7XHJcbiAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLCAgICBcclxuICAgICAgICBtZWFuX1RpbWU6IG51bWJlcjsgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICBocDogbnVtYmVyOyAvL+S9k+WKm+WAvFxyXG4gICAgICAgIHJldmlldzogbnVtYmVyOyAvL+Wkjea0u+asoeaVsFxyXG4gICAgICAgIC8v5aSN5rS75qyh5pWwXHJcbiAgICAgICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgICAgICBvcGVuaWQ6IHN0cmluZzsgLy/lvq7kv6HnlKjmiLfllK/kuIBpZFxyXG4gICAgICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICAgICAgdXNlcklkOiBudW1iZXI7IC8v55So5oi3SURcclxuICAgICAgICBzY29kZTogc3RyaW5nOyAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgdXNlcm5hbWU6IHN0cmluZzsgLy/nlKjmiLflkI3np7BcclxuICAgICAgICB1c2VyYXZhdGFyOiBzdHJpbmc7IC8v55So5oi35aS05YOP5Zyw5Z2AXHJcbiAgICAgICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgdXJsOiBzdHJpbmc7IC8v6K6/6Zeu5Z+f5ZCNXHJcbiAgICAgICAgY29pbjogbnVtYmVyOyAvL+eUqOaIt+mHkeW4gVxyXG4gICAgICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICAgICAgbWF0Y2hJZDogYW55OyAvL+eUqOS6juWfi+eCueS4iuS8oOeahElEXHJcbiAgICAgICAgZ2FtZVN0YXRlOiBib29sZWFuOyBjdXN0b206IG51bWJlcjsgLy/nlKjkuo7mtYvor5Xot7PlhbPljaFcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsFxyXG4gICAgICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP5YaF6L+b6KGM5Yiw56ys5Yeg5q2lIFxyXG4gICAgICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgICAgIHN1Y2Nlc3NMaXN0OiBhbnlbXTsgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICBmaXJzdDogYm9vbGVhbjsgLy/mmK/lkKbpppbmrKHov5vlhaXmuLjmiI9cclxuICAgICAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgICAgIHNjYWxlOiBudW1iZXI7IC8v546p5a625oC76K6h5oiQ5Yqf54K554Gr5pWwXHJcbiAgICAgICAgbWluX1N0ZXBzOiBudW1iZXI7IC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgbWluX1RpbWU6IG51bWJlcjsgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICBmcmVlemVBbW91bnQ6IG51bWJlcjsgLy/lhrvnu5PpgZPlhbfmrKHmlbBcclxuICAgICAgICBoYW1tZXJBbW91bnQ6IG51bWJlcjsgLy/plKTlrZDpgZPlhbfmrKHmlbBcclxuICAgICAgICBtYWdpY0Ftb3VudDogbnVtYmVyOyAvL+mtlOazleajkumBk+WFt+asoeaVsFxyXG4gICAgICAgIG11c2ljT3BlbjogYm9vbGVhbjsgLy/pn7PkuZBcclxuICAgICAgICBlZmZlY3RPcGVuOiBib29sZWFuOyAvL+mfs+aViFxyXG4gICAgICAgIHZpYnJhdGVPcGVuOiBib29sZWFuO1xyXG4gICAgfTtcclxuICAgIC8v5ri45oiP5YaF5L+h5oGvXHJcblxyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgIFxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuVEEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuR01fSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOW6n+W8g+S6hu+8jOaaguaXtuS4jeWIoOmZpOS7pemYsuWQjumdouS/ruaUueWbniDkuIDmlbTlsYDkvKDkuIDmrKFcclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICBdXHJcbiAgIFxyXG5cclxuICAgICAgICAvLyBpZighQXV0aGVudGljYXRpb24pIHNlbGYuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBnZW5lcmF0ZVVVSUQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwO1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeJiOacrOavlOi+g+WHveaVsFxyXG4gICAgc3RhdGljIGNvbXBhcmVWZXJzaW9uKHYxOiBzdHJpbmcsIHYyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGFycjEgPSB2MS5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGFycjIgPSB2Mi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IE1hdGgubWF4KGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtMSA9IHBhcnNlSW50KGFycjFbaV0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUludChhcnIyW2ldIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBHTV9JTkZPX1NFVChrZXksdmFsdWUpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk9ba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIENMSUNLX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IDEsICAgICAgICAgICAgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsICAgICAvL+atpOWxgOa4uOaIj+ato+ehruS4juWQplxyXG4gICAgICAgICAgICByb3VuZDogMCwgICAgICAgICAgIC8v5Zue5ZCI5pWw6L2u5qyhXHJcbiAgICAgICAgICAgIGdldFNjb3JlOiAwLCAgICAgICAgLy/mnKzova7lvpfliIbvvIzlpLHotKXkuLow5YiGXHJcbiAgICAgICAgICAgIGN1bXVsYXRpdmVTY29yZTogMCwgLy/mnKzliafmuLjmiI/mgLvorqHlvpfliIZcclxuICAgICAgICAgICAgbWFwSWQ6IFwiXCIsICAgICAgICAgIC8v5Zyw5Zu+SURcclxuICAgICAgICAgICAgZGlmZmljdWx0eTogMCwgICAgICAvL+WcsOWbvumavuW6plxyXG4gICAgICAgICAgICBvcHRpbWl6ZWRTdGVwczogMCwgIC8v5YWz5Y2h5pyA55+t5q2l5pWwXHJcbiAgICAgICAgICAgIHVzZWRTdGVwczogMCwgICAgICAgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICAgICAgc3RlcExpc3Q6IFtdLCAgICAgICAvL1XjgIFE44CBTOOAgVIgICBYIOaBr+WjpCAgIEYg5Yqg5Zu6XHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgIC8v5LuO5ri45oiP5byA5aeL5Yiw546p5a625pON5L2c55qE56ys5LiA5q2l5oiq5q2i5pe26Ze0ICDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgc3VibWl0VGltZTotMSwgICAgICAgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5Ig5aaC5p6c5pyq5LuW56e75Lqk5YiZ5Li65pe26Ze05LiK6ZmQXHJcbiAgICAgICAgICAgIGRyYXdpbmdCYWNrOjAsICAgICAgLy/lkI7pgIDmrKHmlbBcclxuICAgICAgICAgICAgZHJhd2luZ1Jlc2V0OjAsICAgICAvL+a4heepuuasoeaVsFxyXG4gICAgICAgICAgICB0aW1lcjogMCAgICAgICAgICAgLy/mtYvor4TlgJLorqHml7bliankvZnml7bpl7Qg5Y6756eSXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ0xJQ0tfU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfREFUQVtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mlbDmja7lpIfnlKhcclxuICAgIHN0YXRpYyBHTV9JTkZPX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0ge1xyXG4gICAgICAgICAgICAvLyBpc0VuZDogZmFsc2UsICAgIFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6IDAsICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgaHA6IDUsICAgICAgICAgICAgICAgICAgICAgIC8v5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgIHJldmlldzowLCAgICAgICAgICAgICAgICAgICAgLy/lpI3mtLvmrKHmlbBcclxuICAgICAgICAgICAgY3VyclNlZWQ6IDIwMDAwMCwgICAgICAgICAgIC8v55So5LqO6ZqP5py65pWw56eN5a2QXHJcbiAgICAgICAgICAgIG9wZW5pZDpcIlwiLCAgICAgICAgICAgICAgICAgIC8v5b6u5L+h55So5oi35ZSv5LiAaWRcclxuICAgICAgICAgICAgZ2FtZUlkOiBcIjEwMDAwMVwiLCAgICAgICAgICAgLy/muLjmiI9JRFxyXG4gICAgICAgICAgICB1c2VySWQ6IDAsICAgICAgICAgICAgICAgICAgLy/nlKjmiLdJRFxyXG4gICAgICAgICAgICBzY29kZTogXCJcIiwgICAgICAgICAgICAgICAgICAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgICAgIHVzZXJuYW1lOlwidXNlclwiLCAgICAgICAgICAgICAgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICB1c2VyYXZhdGFyOlwiXCIsICAgICAgICAgICAgICAvL+eUqOaIt+WktOWDj+WcsOWdgFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSwgICAgICAgICAgICAgICAgIC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS5zcGFya3VzLmNuXCIsLy/orr/pl67ln5/lkI1cclxuICAgICAgICAgICAgY29pbjogMCwgICAgICAgICAgICAgICAgICAgIC8v55So5oi36YeR5biBXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLCAgICAgICAgICAgICAvL+eUqOaIt+a4uOaIj+aIkOWKn+S4juWQplxyXG4gICAgICAgICAgICBtYXRjaElkOiBudWxsLCAgICAgICAgICAgICAgLy/nlKjkuo7ln4vngrnkuIrkvKDnmoRJRFxyXG4gICAgICAgICAgICBnYW1lU3RhdGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbTogMCwgICAgICAgICAgICAgICAgICAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgICAgICAgICByb3VuZDowLCAgICAgICAgICAgICAgICAgICAgLy/lm57lkIjmlbBcclxuICAgICAgICAgICAgbGV2ZWw6IDAsICAgICAgICAgICAgICAgICAgICAvL+WFt+S9k+a4uOaIj+WGhei/m+ihjOWIsOesrOWHoOatpSBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmlyc3Q6ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgIC8v5piv5ZCm6aaW5qyh6L+b5YWl5ri45oiPXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBzY2FsZTogMSwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAsICAgICAgICAgICAgICAgICAgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgZnJlZXplQW1vdW50OjAsICAgICAgICAgICAgICAvL+WGu+e7k+mBk+WFt+asoeaVsFxyXG4gICAgICAgICAgICBoYW1tZXJBbW91bnQ6MCwgICAgICAgICAgICAgIC8v6ZSk5a2Q6YGT5YW35qyh5pWwXHJcbiAgICAgICAgICAgIG1hZ2ljQW1vdW50OjAsICAgICAgICAgICAgICAgLy/prZTms5Xmo5LpgZPlhbfmrKHmlbBcclxuICAgICAgICAgICAgbXVzaWNPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICBlZmZlY3RPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICB2aWJyYXRlT3BlbjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb2RlKHRoaXMuZ2V0S2V5KFwic2NvZGVcIikpO1xyXG4gICAgICAgIC8vIHRoaXMuR01fSU5GTy5sZXZlbCA9IDA7XHJcblxyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChcIkpzb24vTkVXX0xFVkVMXCIsIChlcnI6IGFueSwgcmVzOiBjYy5Kc29uQXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIuWKoOi9vSBORVdfTEVWRUwuSlNPTiDlpLHotKU6XCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbmV3TGV2ZWxEYXRhID0gcmVzLmpzb247XHJcbiAgICAgICAgICAgIHRoaXMuTkVXX0xFVkVMID0gbmV3TGV2ZWxEYXRhLk5FV19MRVZFTDtcclxuICAgICAgICAgICAgLy8g5Y+v5Lul5qC55o2u6ZyA5rGC5a+5IG5ld0xldmVsRGF0YSDov5vooYzlpITnkIZcclxuICAgICAgICAgICAgLy8gLy9jb25zb2xlLmxvZyhcIk5FV19MRVZFTC5KU09OIOWKoOi9veaIkOWKnzpcIiwgbmV3TGV2ZWxEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KHR5cGUsdGltZSkgeyBcclxuICAgICAgICAvLyDnpLrkvosgICAgICAgICDlm7TlopnkvJrmoLnmja7nvLrnmoTlnLDlnZfoh6rliqjnlJ/miJBcclxuICAgICAgICAvLyDluKbnvLrlj6MgICAgICAge1wiaWRcIjpcIjEwMDZcIixcIm1hcFwiOlsxMCwxMV0sXCJnYXBcIjpbY2MudjIoNCw5KSxjYy52Mig1LDkpXX0sXHJcbiAgICAgICAgLy8g5bim5Y2H6ZmN5Zyw5Z2XICAge1wiaWRcIjpcIjEwMDRcIixcIm1hcFwiOls3LDhdLFwicmlzZWZhbGxcIjpbe3BvczpjYy52Mig1LDQpLGNvbG9yOjJ9LHtwb3M6Y2MudjIoNSw1KSxjb2xvcjo1fV19LFxyXG4gICAgICAgIC8vIOWmguaenOaZrumAmueahOWwsSAge1wiaWRcIjpcIjEwMDFcIixcIm1hcFwiOls2LDddfSwg6L+Z5Liq5qC35a2Q5bCx5Y+v5Lul5LqGXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCkgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuYW1lID0gXCJKc29uL2xldmVsXCIgKyAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpO1xyXG5cclxuICAgICAgICAvLyAvL2NvbnNvbGUubG9nKFwi5YWz5Y2h5ZCN56ewOlwiLG5hbWUpO1xyXG4gICAgICAgIC8vIG5hbWUgPSBcIkpzb24vbGV2ZWxcIiArIDY4O1xyXG4gICAgICAgIC8vIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChuYW1lLCAoZXJyOiBhbnksIHJlczogY2MuSnNvbkFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLkxFVkVMX0lORk9faW5pdCh0eXBlLHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBqc29uRGF0YTogb2JqZWN0ID0gcmVzLmpzb24hO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5CTE9DS19JTkZPID0ganNvbkRhdGFbXCJCTE9DS19JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5MRVZFTF9JTkZPID0ganNvbkRhdGFbXCJMRVZFTF9JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5XQUxMX0lORk8gPSBqc29uRGF0YVtcIldBTExfSU5GT1wiXTtcclxuICAgICAgICAgICAgICAgIC8vIC8vY29uc29sZS5sb2coXCLphY3nva7liqDovb3lrozmiJBcIik7IFxyXG4gICAgICAgICAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPT0gMCkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgIC8v6YGT5YW35L2N572u5L+h5oGvXHJcbiAgICAgIHRoaXMuUFJPUF9JTkZPID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY2LCBcInlcIjogNjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE5LCBcInlcIjogMzYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0LjM2MiwgXCJ5XCI6IDEzLjI0NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTcsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODUsIFwieVwiOiA3MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtNSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTI2LCBcInlcIjogNjEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtOTQuNzkyLCBcInlcIjogMjEuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yMCwgXCJ5XCI6IDEzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xNDAsIFwieVwiOiA2OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMiwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjcsIFwieVwiOiAxMjIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTIwLCBcInlcIjogOTQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAyNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiAxMjgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTUsIFwieVwiOiAzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE3OCwgXCJ5XCI6IDYxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNC43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTE1MCwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjIsIFwieVwiOiAxNiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogNjcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjMsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE3Ljc5MiwgXCJ5XCI6IDE2Ni42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAzNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzgsIFwieVwiOiAxODIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTIzLCBcInlcIjogMTI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiA5OS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTk3Ljc5MiwgXCJ5XCI6IDI3LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjcsIFwieVwiOiAxOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMTM1LCBcInlcIjogMTI3LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY0LCBcInlcIjogMTc4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNC43OTIsIFwieVwiOiAyNzUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAzNS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTcsIFwieVwiOiAzOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzcsIFwieVwiOiAxODgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTc4LCBcInlcIjogMTg2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAxNjMuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAzNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMzAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDE5MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODYsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM4LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMTUzLjc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjMsIFwieVwiOiAxNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4MywgXCJ5XCI6IDY0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNy43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM2Ljc5MiwgXCJ5XCI6IDI2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjQsIFwieVwiOiAxNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjEyLCBcInlcIjogNzQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjUsIFwieVwiOiAxNzcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTMuMjA4LCBcInlcIjogMjc2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDMsIFwieVwiOiAzMSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODAsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiA1OCwgXCJ5XCI6IDE3OSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAyMDUuMjI1LCBcInlcIjogMTU0LjAzNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMjkuNjQyLCBcInlcIjogMjUuNjkxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDcuMjE4LCBcInlcIjogMjkuNzY1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IDQ1LCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTgyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM1Ljc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODIsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTIsIFwieVwiOiAxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4NCwgXCJ5XCI6IDYyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAzNi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTI3MS43OTIsIFwieVwiOiAyNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE3LCBcInlcIjogMjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDcyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTYyLCBcInlcIjogMTc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IDg3LjIwOCwgXCJ5XCI6IDE2NC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDM1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtNiwgXCJ5XCI6IDI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OSwgXCJ5XCI6IDE3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTQuNzkyLCBcInlcIjogMjkuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yOSwgXCJ5XCI6IDE2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0yMDEsIFwieVwiOiA4NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjQsIFwieVwiOiAxODEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTUuMjA4LCBcInlcIjogMTU1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzAuNzkyLCBcInlcIjogMzYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NSwgXCJ5XCI6IDE3OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjEuNzkyLCBcInlcIjogMTU2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzEuNzkyLCBcInlcIjogMzcuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE4OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE4MywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA4OC4yMDgsIFwieVwiOiAxNjIuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0yOS43OTIsIFwieVwiOiA0MS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTEyLCBcInlcIjogMTgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgwLCBcInlcIjogMTg4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC00LCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NywgXCJ5XCI6IDgwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNi43OTIsIFwieVwiOiAzMi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTIsIFwieVwiOiAxOCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiA5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA4MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjUuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTUuNzkyLCBcInlcIjogMjUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xOCwgXCJ5XCI6IDI2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xOTYsIFwieVwiOiA5NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE2MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA5NS4yMDgsIFwieVwiOiAxNTguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAyOS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMjYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTc4LCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTYwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAxNTYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAyNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTI1LCBcInlcIjogNDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgyLCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC0yLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgIC8vIHRoaXMuUFJPUF9JTkZPID0gW3tcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTYuNDQyLFwieVwiOiAzMCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0LjM2MixcInlcIjogMTMuMjQ2LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDEyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjYsXCJ5XCI6IDYzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05NC43OTIsXCJ5XCI6IDIxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIwLFwieVwiOiAxMyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDEyNSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTEyLjc5MixcInlcIjogOTIuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuNzkyLFwieVwiOiAyMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMjQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NSxcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTE1NC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIyLFwieVwiOiAxNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTE3Ljc5MixcInlcIjogMTY2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTQsXCJ5XCI6IDM3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjMsXCJ5XCI6IDEyNyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogOTkuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtOTcuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNyxcInlcIjogMTksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYyLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNC43OTIsXCJ5XCI6IDI3NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTcsXCJ5XCI6IDM5LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODEsXCJ5XCI6IDE4MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMTYzLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDMwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODIsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTUzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjMsXCJ5XCI6IDE0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODYsXCJ5XCI6IDYxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzcuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNi43OTIsXCJ5XCI6IDI2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI0LFwieVwiOiAxNyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3NyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogOTMuMjA4LFwieVwiOiAyNzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IDMsXCJ5XCI6IDMxLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IDU4LFwieVwiOiAxNzksXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDIwNS4yMjUsXCJ5XCI6IDE1NC4wMzQsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS42NDIsXCJ5XCI6IDI1LjY5MSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogNy4yMTgsXCJ5XCI6IDI5Ljc2NSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MCxcInlcIjogNjIsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI3MS43OTIsXCJ5XCI6IDI0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE3LFwieVwiOiAyMCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogODcuMjA4LFwieVwiOiAxNjQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC02LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTc2LFwieVwiOiA2MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjksXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMC43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAzMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjMsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTIxLjc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4OC4yMDgsXCJ5XCI6IDE2Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS43OTIsXCJ5XCI6IDQxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjQsXCJ5XCI6IDU4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjYuNzkyLFwieVwiOiAzMi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg0LFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU1Ljc5MixcInlcIjogMjUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTkwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1OC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDI5LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE4LFwieVwiOiAyNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNzEsXCJ5XCI6IDE4NCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMjcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjUsXCJ5XCI6IDQwLFwielwiOiAwfX1dO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIHNldENvZGUoY29kZSl7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPLnNjb2RlID0gY29kZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc3RhdGljIGdldEtleShrZXkpe1xyXG4gICAgICAgIC8vIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXnwmKScgKyBrZXkgKyAnPShbXiZdKikoJnwkKScsICdpJyk7XHJcbiAgICAgICAgLy8gdmFyIHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5tYXRjaChyZWcpO1xyXG4gICAgICAgIC8vIGlmIChyICE9IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHVuZXNjYXBlKHJbMl0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/ControlManager.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager');
-// Script/ControlManager.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var NewClass = /** @class */ (function (_super) {
__extends(NewClass, _super);
function NewClass() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.Map = null;
- _this.tip = null;
- _this.reinforce = null;
- _this.soil = null;
+ //商店界面
+ _this.shop = null;
+ //商品列表
+ _this.itemList = null;
return _this;
// update (dt) {}
}
- // LIFE-CYCLE CALLBACKS:
// onLoad () {}
NewClass.prototype.start = function () {
- this.tipArray = [];
- this.controlArray = [];
- this.canTouch = true;
- this.Reinforce = false;
- this.Soil = false;
- this.mapHeight = 0;
+ this.openShop();
};
- NewClass.prototype.setPosition = function (tip) {
- tip.setPosition(30, -25);
- if (this.tipArray.length > 0) {
- var length = this.tipArray.length + 1;
- var posY = Math.ceil(length / 8) - 1;
- var posX = length - Math.floor(posY) * 8 - 1;
- tip.setPosition(30 + 48 * posX, -25 - 48 * posY + this.mapHeight);
- }
- };
- //清空所有
- NewClass.prototype.removeAllTip = function () {
- if (!this.canTouch)
- return;
- if (this.tipArray.length > 0) {
- cc.fx.AudioManager._instance.playEffect("qingkong", null);
- for (var i = 0; i < this.tipArray.length; i++) {
- var tip = this.tipArray[i];
- tip.active = false;
- tip.removeFromParent(this.Map);
- tip = null;
+ //打开商店界面
+ NewClass.prototype.openShop = function () {
+ // 商品数据数组
+ var products = [
+ { product_id: "gold_pack_1", name: "金币包1", price: 600, title: "3x2六档金币" },
+ { product_id: "gold_pack_2", name: "金币包2", price: 3600, title: "" },
+ { product_id: "gold_pack_3", name: "金币包3", price: 6800, title: "" },
+ { product_id: "gold_pack_4", name: "金币包4", price: 12800, title: "" },
+ { product_id: "gold_pack_5", name: "金币包5", price: 32800, title: "" },
+ { product_id: "gold_pack_6", name: "金币包6", price: 64800, title: "" },
+ { product_id: "unlimited_health_bundle_1", name: "无限体力组合包1", price: 1800, title: "3个横版礼包" },
+ { product_id: "unlimited_health_bundle_2", name: "无限体力组合包2", price: 6600, title: "" }
+ ];
+ for (var i = 1; i <= 8 && i < this.itemList.children.length; i++) {
+ var spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);
+ var price = this.itemList.children[i].children[1].getComponent(cc.Label);
+ var title = this.itemList.children[i].children[2].getComponent(cc.Label);
+ var product = products[i - 1];
+ if (spriteComp && product) {
+ // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame
}
- this.tipArray = [];
- this.controlArray = [];
- var drawingReset = cc.fx.GameConfig.CLICK_DATA.drawingReset + 1;
- cc.fx.GameConfig.CLICK_SET("drawingReset", drawingReset);
- cc.fx.Notifications.emit(cc.fx.Message.removeTip, "remove");
- this.mapHeight = 0;
- }
- };
- //撤回一步
- NewClass.prototype.back_Click = function () {
- if (!this.canTouch)
- return;
- if (this.tipArray.length > 0) {
- cc.fx.AudioManager._instance.playEffect("chehui", null);
- var tip = this.tipArray[this.tipArray.length - 1];
- tip.active = false;
- tip.removeFromParent(this.Map);
- tip = null;
- this.tipArray.pop();
- this.controlArray.pop();
- var drawingBack = cc.fx.GameConfig.CLICK_DATA.drawingBack + 1;
- cc.fx.GameConfig.CLICK_SET("drawingBack", drawingBack);
- cc.fx.Notifications.emit(cc.fx.Message.removeTip, "back");
- if (this.tipArray.length >= 24) {
- if ((this.tipArray.length) % 8 == 0) {
- this.mapMove(false);
- }
+ if (price && product) {
+ price.string = (product.price / 100).toString() + "元";
+ }
+ if (title && product) {
+ title.string = product.name;
}
}
};
- //点击事件
- NewClass.prototype.btn_Click = function (target, data) {
- var GameManager = this.node.parent.getComponent("GameManager");
- if (GameManager.btnClick == true) {
- GameManager.btnClick = false;
- cc.fx.Notifications.emit(cc.fx.Message.guideNext);
- }
- cc.fx.Notifications.emit(cc.fx.Message.control, data);
- if (!this.canTouch)
- return;
- var prefab = this.tip;
- if (data == "reinforce" || data == "soil") {
- prefab = this[data];
- if (data == "reinforce") {
- if (this.Reinforce) {
- this.Reinforce = false;
- this.back_Click();
- return;
- }
- else {
- cc.fx.AudioManager._instance.playEffect("jineng", null);
- this.Reinforce = true;
- this.Soil = false;
- }
- }
- else if (data == "soil") {
- if (this.Soil) {
- this.Soil = false;
- this.back_Click();
- return;
- }
- else {
- cc.fx.AudioManager._instance.playEffect("jineng", null);
- this.Soil = true;
- this.Reinforce = false;
- }
- }
- }
- else {
- cc.fx.AudioManager._instance.playEffect("fangxiang", null);
- this.Reinforce = false;
- this.Soil = false;
- }
- var tip = cc.instantiate(prefab);
- if (data == "up")
- tip.angle = 180;
- if (data == "left")
- tip.angle = -90;
- if (data == "right")
- tip.angle = 90;
- tip.parent = this.Map;
- if (this.controlArray[this.controlArray.length - 1] == "reinforce" ||
- this.controlArray[this.controlArray.length - 1] == "soil") {
- if (data == "reinforce" || data == "soil") {
- this.tipArray[this.tipArray.length - 1].removeFromParent();
- this.tipArray[this.tipArray.length - 1] = null;
- this.tipArray.pop();
- this.controlArray.pop();
- }
- }
- this.setPosition(tip);
- this.tipArray.push(tip);
- this.controlArray.push(data);
- if (this.tipArray.length >= 25) {
- if ((this.tipArray.length - 1) % 8 == 0) {
- this.mapMove(true);
- }
- }
- };
- //地图放不下了上下移动
- NewClass.prototype.mapMove = function (type) {
- if (type)
- this.mapHeight += 48;
- else
- this.mapHeight -= 48;
- for (var i = 0; i < this.tipArray.length; i++) {
- var tip = this.tipArray[i];
- if (type)
- tip.y += 48;
- else
- tip.y -= 48;
- }
- };
- //点击开始 创建河道
- NewClass.prototype.start_Click = function () {
- if (!this.canTouch)
- return;
- this.canTouch = false;
- cc.fx.AudioManager._instance.playEffect("build", null);
- cc.fx.Notifications.emit(cc.fx.Message.startGame, this.controlArray);
+ //关闭商店界面
+ NewClass.prototype.closeShop = function () {
+ //销毁预制体
+ this.shop.destroy();
};
__decorate([
property(cc.Node)
- ], NewClass.prototype, "Map", void 0);
+ ], NewClass.prototype, "shop", void 0);
__decorate([
- property(cc.Prefab)
- ], NewClass.prototype, "tip", void 0);
- __decorate([
- property(cc.Prefab)
- ], NewClass.prototype, "reinforce", void 0);
- __decorate([
- property(cc.Prefab)
- ], NewClass.prototype, "soil", void 0);
+ property(cc.Node)
+ ], NewClass.prototype, "itemList", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -2428,37 +911,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVLQztRQXBLRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQTZKdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUFySkcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFB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QUFDOzBDQUNHO0lBVE4sUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVLNUI7SUFBRCxlQUFDO0NBdktELEFBdUtDLENBdktxQyxFQUFFLENBQUMsU0FBUyxHQXVLakQ7a0JBdktvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBNYXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHRpcDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICByZWluZm9yY2U6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgc29pbDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIFxyXG5cclxuICAgIHRpcEFycmF5OmFueTtcclxuICAgIGNvbnRyb2xBcnJheTphbnk7XHJcbiAgICBjYW5Ub3VjaDpib29sZWFuO1xyXG4gICAgUmVpbmZvcmNlOmJvb2xlYW47XHJcbiAgICBTb2lsOmJvb2xlYW47XHJcbiAgICBtYXBIZWlnaHQ6bnVtYmVyO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFBvc2l0aW9uKHRpcCl7XHJcbiAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwLC0yNSk7XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMudGlwQXJyYXkubGVuZ3RoKzE7XHJcbiAgICAgICAgICAgIGxldCBwb3NZID0gTWF0aC5jZWlsKGxlbmd0aC84KSAtIDE7XHJcbiAgICAgICAgICAgIGxldCBwb3NYID0gbGVuZ3RoIC0gTWF0aC5mbG9vcihwb3NZKSo4IC0gMTtcclxuICAgICAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwICsgNDgqcG9zWCwtMjUgLTQ4KnBvc1kgKyB0aGlzLm1hcEhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aSpOWbnuS4gOatpVxyXG4gICAgYmFja19DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiY2hlaHVpXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRpcC5yZW1vdmVGcm9tUGFyZW50KHRoaXMuTWFwKTtcclxuICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50aXBBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nQmFjayA9IGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5kcmF3aW5nQmFjayArIDE7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfU0VUKFwiZHJhd2luZ0JhY2tcIixkcmF3aW5nQmFjayk7XHJcbiAgICAgICAgICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChjYy5meC5NZXNzYWdlLnJlbW92ZVRpcCxcImJhY2tcIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID49IDI0KXtcclxuICAgICAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCApJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBNb3ZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+PSAyNSl7XHJcbiAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCAtIDEpJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE1vdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+WcsOWbvuaUvuS4jeS4i+S6huS4iuS4i+enu+WKqFxyXG4gICAgbWFwTW92ZSh0eXBlKXtcclxuICAgICAgICBpZih0eXBlKSB0aGlzLm1hcEhlaWdodCArPSA0ODtcclxuICAgICAgICBlbHNlIHRoaXMubWFwSGVpZ2h0IC09IDQ4O1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMudGlwQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZih0eXBlKXRpcC55ICs9IDQ4O1xyXG4gICAgICAgICAgICBlbHNlIHRpcC55IC09IDQ4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+W8gOWniyDliJvlu7rmsrPpgZNcclxuICAgIHN0YXJ0X0NsaWNrKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuY2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYnVpbGRcIixudWxsKTtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5zdGFydEdhbWUsdGhpcy5jb250cm9sQXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/Share/share.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share');
-// Script/module/Share/share.ts
-
-
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBa0RDO1FBakRHLE1BQU07UUFFTixVQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLE1BQU07UUFFTixjQUFRLEdBQVksSUFBSSxDQUFDOztRQTJDekIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQ0csZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7SUFDUiwyQkFBUSxHQUFSO1FBQ0ksU0FBUztRQUNULElBQU0sUUFBUSxHQUFHO1lBQ2IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNuRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDM0YsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDeEYsQ0FBQztRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDekQ7WUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzthQUMvQjtTQUNKO0lBQ0wsQ0FBQztJQUdELFFBQVE7SUFDUiw0QkFBUyxHQUFUO1FBQ0ksT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQTVDRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBR3JCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ087SUFOUixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBa0Q1QjtJQUFELGVBQUM7Q0FsREQsQUFrREMsQ0FsRHFDLEVBQUUsQ0FBQyxTQUFTLEdBa0RqRDtrQkFsRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/llYblupfnlYzpnaJcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2hvcDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvL+WVhuWTgeWIl+ihqFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBpdGVtTGlzdDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XHJcbiAgICB9XHJcbiAgICAvL+aJk+W8gOWVhuW6l+eVjOmdolxyXG4gICAgb3BlblNob3AoKSB7XHJcbiAgICAgICAgLy8g5ZWG5ZOB5pWw5o2u5pWw57uEXHJcbiAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18yXCIsIG5hbWU6IFwi6YeR5biB5YyFMlwiLCBwcmljZTogMzYwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18zXCIsIG5hbWU6IFwi6YeR5biB5YyFM1wiLCBwcmljZTogNjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNVwiLCBuYW1lOiBcIumHkeW4geWMhTVcIiwgcHJpY2U6IDMyODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzZcIiwgbmFtZTogXCLph5HluIHljIU2XCIsIHByaWNlOiA2NDgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzJcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUyXCIsIHByaWNlOiA2NjAwLCB0aXRsZTogXCJcIiB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZUNvbXAgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzBdLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb2R1Y3QgPSBwcm9kdWN0c1tpIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChzcHJpdGVDb21wICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHByaWNlICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIHByaWNlLnN0cmluZyA9IChwcm9kdWN0LnByaWNlIC8gMTAwKS50b1N0cmluZygpICsgXCLlhYNcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGl0bGUgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGl0bGUuc3RyaW5nID0gcHJvZHVjdC5uYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxyXG4gICAgY2xvc2VTaG9wKCkge1xyXG4gICAgICAgIC8v6ZSA5q+B6aKE5Yi25L2TXHJcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -2527,13 +980,11 @@ var GameManager = /** @class */ (function (_super) {
GameManager.prototype.onLoad = function () {
var _this = this;
window.initMgr();
- this.timeNumber = 3;
+ this.timeNumber = 1;
this.startTimeCutDown();
cc.fx.GameConfig.init(true);
cc.fx.GameConfig.GM_INFO.gameState = false;
this.readMusicConfig();
- console.log("音乐开关", cc.fx.GameConfig.GM_INFO.musicOpen);
- cc.fx.AudioManager._instance.playMusicGame();
this.load1 = this.load2 = this.load3 = this.load4 = this.load5 = false;
setTimeout(function () {
_this.readUserData();
@@ -2631,7 +1082,19 @@ var GameManager = /** @class */ (function (_super) {
};
GameManager.prototype.startGame = function () {
console.log("进入场景之前_____________", cc.fx.GameConfig.GM_INFO.first);
- cc.director.loadScene("HomeScene");
+ // 加载 music bundle
+ cc.assetManager.loadBundle('music', function (err, bundle) {
+ if (err) {
+ console.error('加载 music bundle 失败:', err);
+ // 加载失败时仍尝试进入 HomeScene
+ cc.director.loadScene("HomeScene");
+ }
+ else {
+ console.log('music bundle 加载成功');
+ // 加载成功后进入 HomeScene
+ cc.director.loadScene("HomeScene");
+ }
+ });
};
GameManager.prototype.returnHome = function () {
cc.tween(this.node.getChildByName("Game"))
@@ -2659,6 +1122,7 @@ var GameManager = /** @class */ (function (_super) {
if (retryCount === void 0) { retryCount = 0; }
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
+ MiniGameSdk_1.MiniGameSdk.API.shushu_Init();
var levelInfo = cc.fx.StorageMessage.getStorage("level");
//旧的读取数据设置数据方法,以强联网为主
if (levelInfo == undefined || levelInfo == "" || levelInfo == null) {
@@ -3105,7 +1569,7 @@ var GameManager = /** @class */ (function (_super) {
GameManager.prototype.update = function (dt) {
if (this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0) {
this.load1 = this.load2 = false;
- MiniGameSdk_1.MiniGameSdk.API.shushu_Init();
+ MiniGameSdk_1.MiniGameSdk.API.shushu_Login();
this.startGame();
}
};
@@ -3144,7 +1608,1829 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFHNUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUFpcEJDO1FBOW9CRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyxpQkFBVyxHQUEwQixFQUFFLENBQUM7UUFHeEMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBdW5CM0IsQ0FBQztvQkFqcEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQW1FQztRQWpFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7b0RBQ2Q7SUFHbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO29EQUNkO0lBaEJ2QixXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBaXBCL0I7SUFBRCxrQkFBQztDQWpwQkQsQUFpcEJDLENBanBCd0MsRUFBRSxDQUFDLFNBQVMsR0FpcEJwRDtrQkFqcEJvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IHsgTWluaUdhbWVNYW5hZ2VyIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVNYW5hZ2VyID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLlopnlo4HmlbDnu4RcIiB9KVxyXG4gICAgV2FsbF9QcmVmYWI6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgcGFydGljbGVFZmZlY3RzOiBjYy5QYXJ0aWNsZUFzc2V0W107XHJcbiAgICAvLyBAcHJvcGVydHkoe3R5cGU6IFtjYy5QYXJ0aWNsZVN5c3RlbV0sIHRvb2x0aXA6XCLnspLlrZDmlbDnu4RcIn0pXHJcbiAgICAvLyBwYXJ0aWNsZUVmZmVjdHMgOiBBcnJheTxjYy5QYXJ0aWNsZVN5c3RlbT4gPSBbXTtcclxuXHJcbiAgICBsb2FkMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkNDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNjaGVkdWxlQ2FsbGJhY2s6IGFueTtcclxuICAgIHRpbWVOdW1iZXI6IG51bWJlcjtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4pO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheU11c2ljR2FtZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWQxID0gdGhpcy5sb2FkMiA9IHRoaXMubG9hZDMgPSB0aGlzLmxvYWQ0ID0gdGhpcy5sb2FkNSA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlYWRVc2VyRGF0YSgpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcblxyXG5cclxuICAgICAgICBpZiAoR2FtZU1hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhdGggPSAncHJlZmFiL2Jsb2NrJztcclxuICAgICAgICBjb25zdCBwYXRoMiA9ICdwcmVmYWIvd2FsbCc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfliqjmgIHliqDovb0gYmxvY2sg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+aWueWdl+WKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMuQmxvY2tfQXJyYXkubGVuZ3RoLCAn5Liq5pa55Z2XJyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aDIsIGNjLlByZWZhYiwgKGVyciwgYXNzZXRzOiBjYy5QcmVmYWJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn5Yqo5oCB5Yqg6L29IHdhbGwg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCflopnliqDovb3miJDlip/vvIzlhbHliqDovb3kuoYnLCB0aGlzLldhbGxfUHJlZmFiLmxlbmd0aCwgJ+S4quWimScpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFdhbGxQcmVmYWJTb3J0KCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcE11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5wYXVzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2hvdygpIHtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucmVzdW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFBhcnRpY2xlRWZmZWN0cygpIHtcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsICdyaWdodCcsICd1cCcsICd1cExlZnQnLCAndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYXJ0aWNsZVNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ3RvcCcsICdib3QnLCAncmlnJywgJ2xlZiddO1xyXG4gICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRHYW1lKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6L+b5YWl5Zy65pmv5LmL5YmNX19fX19fX19fX19fX1wiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMTAwIH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDpooTliqDovb3miJDlip/lkI7liqDovb3lnLrmma9cclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqDovb0gSG9tZVNjZW5lIOWcuuaZr+Wksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMjU1IH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKSB7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgIGlmIChsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5paw55qE6K+75Y+W5pWw5o2u6K6+572u5pa55rOV77yM5Lul5pys5Zyw5Li65Li7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Y2z5bCG6K+75Y+W5L2T5Yqb5YC8XCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L2T5Yqb5YC85a6M5oiQ6L+b5YWl5ri45oiPXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCkge1xyXG4gICAgICAgIGxldCBhdWRpb0luZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwibXVzaWNcIik7XHJcbiAgICAgICAgaWYgKGF1ZGlvSW5mbyA9PSB1bmRlZmluZWQgfHwgYXVkaW9JbmZvID09IFwiXCIgfHwgYXVkaW9JbmZvID09IG51bGwpIHtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLCBhdWRpb0luZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbiA9IGF1ZGlvSW5mby5tdXNpY09wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5lZmZlY3RPcGVuID0gYXVkaW9JbmZvLmVmZmVjdE9wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiA9IGF1ZGlvSW5mby52aWJyYXRlT3BlbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mlrDnlKjmiLfvvIzmnInmnKzlnLDnvJPlrZjor7vlj5bphY3nva5cclxuICAgIG5ld1JlYWREYXRhKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5paw5L+h5oGvXCIpO1xyXG4gICAgICAgIGxldCBvcGVuaWQgPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwib3BlbmlkXCIpO1xyXG4gICAgICAgIGlmIChvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJb3BlbmlkXCIpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIgPSByZXMucmVzdWx0LmRhdGEudXNlcmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAob3BlbmlkKVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IG9wZW5pZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgICAgLy/nrYnnuqfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyTGV2ZWwoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDlhbPljaHmlbDmja5cIikge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmZvLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gbGV2ZWxJbmZvLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgLy/muLjmiI/liY3nq6/lrZjlgqgg5paw5LqO5pyN5Yqh5Zmo56uvLOS7pea4uOaIj+WJjeerr+S/oeaBr+S4uuS4u++8jOaUvuacjeWKoeWZqOWtmOWCqFxyXG4gICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnrYnnuqfml7bpl7Tlt646XCIsIHRlbXApO1xyXG4gICAgICAgICAgICAgICAgaWYgKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxldmVsSW5mby5sZXZlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLCBkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gbGV2ZWxJbmZvLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuetiee6p+S4ujpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajnrYnnuqfkuLrlh4ZcIiwgZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8ubGV2ZWwgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWxJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjExMTExMTHlrZjlgqjlhbPljaHmlbDmja46XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIiwgbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/ph5HluIHkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyQ29pbigoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDph5HluIHmlbDmja5cIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGNvaW5JbmZvLnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YeR5biB5pe26Ze05beuOlwiLCB0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmICgoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XliY3nq6/ph5HluaPkuLrlh4Y6XCIsIGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLmNvaW4gPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMTExMTExXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLCBjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pS55Y+Y5ZCO6YeR5biBOlwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsIGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLCBjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YGT5YW35pWw5o2uXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIy6YGT5YW35pWw5o2u5byC5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VuID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMTHkuIrkvKDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLCAwLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pys5Zyw5pe26Ze05oizXCIscHJvcEluZm8udGltZXN0YW1wLFwi5pyN5Yqh5Zmo5pe26Ze05oizXCIsZGF0YS5yZXN1bHQudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgIGlmICgoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gcHJvcEluZm8udGltZXN0YW1wKSA8IDEwMDAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XliY3nq6/pgZPlhbfkuLrkuLs6XCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMemBk+WFt+aVsOaNruW8guW4uFwiLCBkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMzMzMzMz5LiK5Lyg6YGT5YW35L+h5oGvOlwiLCBwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YGT5YW35pWw5o2u5q2j5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcHJvcEluZm8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwgMCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjLkuIrkvKDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvTmV3LCBkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL+aXp+eUqOaIt++8jOaXoOacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgb2xkUmVhZERhdGEocmV0cnlDb3VudDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLor7vlj5bml6fkv6Hmga9cIik7XHJcbiAgICAgICAgY29uc3QgTUFYX1JFVFJJRVMgPSAxNTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIOivu+WPlueUqOaIt+aVsOaNrlxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQub3BlbmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7IFwibGV2ZWxcIjogMCwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsIGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0geyBcImNvaW5cIjogMCwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzMzMzMzM1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLCBjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckluZm8oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOeUqOaIt+S/oeaBr+aIkOWKn1wiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5ZCO77yM6K+75Y+W55So5oi35L+h5oGv77yM5Li65LiK5oql5rOo5YaM5pe26Ze0XCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQodGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnI3liqHlmajkuZ/msqHmnInph5HluIHkv6Hmga9cIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLCAoZGF0YSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLCAwLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga/miJDlip9cIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi572R57uc5byC5bi477yM5q2j5Zyo5Yqq5Yqb5Yqg6L29XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcmVzLnJlc3VsdC5kYXRhLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IHJlcy5yZXN1bHQuZGF0YS5jb2luQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJDb2luKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHsgXCJjb2luXCI6IDAsIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcCB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLCBjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaciemHkeW4geS/oeaBr++8jOS7jumHkeW4geaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7IFwiY29pblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHkv6Hmga86XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjQ0NDQ0NDQ0NDRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIiwgY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeacieetiee6p+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7IFwibGV2ZWxcIjogMCwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzM+WtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLCBsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmi7/liLDnmoTmlbDmja5cIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInnrYnnuqfkv6Hmga/vvIzku47lhbPljaHmjqXlj6Pmi7/liLDmlbDmja5cIiwgZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHsgXCJsZXZlbFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwsIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcCB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCI0NDQ0NDTlrZjlgqjlhbPljaHkv6Hmga86XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLCBsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDpgZPlhbfmlbDmja5cIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwgMCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInpgZPlhbfkv6Hmga/vvIzku47pgZPlhbfmjqXlj6Pmi7/liLDmlbDmja5cIiwgZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIGlmIChyZXRyeUNvdW50IDwgTUFYX1JFVFJJRVMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGDor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIznrKwgJHtyZXRyeUNvdW50ICsgMX0g5qyh6YeN6K+V77yM6ZSZ6K+v5L+h5oGvOmAsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5bu26L+fIDIg56eS5ZCO6YeN6K+VXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSl77yM6L6+5Yiw5pyA5aSn6YeN6K+V5qyh5pWw77yM6YCA5Ye65ri45oiPJywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDpgIDlh7rmuLjmiI9cclxuICAgICAgICAgICAgICAgICAgICBjYy5nYW1lLmVuZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGF0YSgpIHtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdhbWVUb29sKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsIGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVOdW1iZXIgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZDEgJiYgdGhpcy5sb2FkMiAmJiB0aGlzLmxvYWQzICYmIHRoaXMubG9hZDQgJiYgdGhpcy5sb2FkNSAmJiB0aGlzLnRpbWVOdW1iZXIgPD0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdGhpcy5sb2FkMiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X0luaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFHNUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUE0cEJDO1FBenBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyxpQkFBVyxHQUEwQixFQUFFLENBQUM7UUFHeEMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBa29CM0IsQ0FBQztvQkE1cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQWtFQztRQWhFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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OztJQXBwQk0scUJBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBSnJDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7OENBQ0k7SUFHdkI7UUFEQyxRQUFROzZDQUNjO0lBSXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7b0RBQ2Q7SUFHbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO29EQUNkO0lBaEJ2QixXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBNHBCL0I7SUFBRCxrQkFBQztDQTVwQkQsQUE0cEJDLENBNXBCd0MsRUFBRSxDQUFDLFNBQVMsR0E0cEJwRDtrQkE1cEJvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IHsgTWluaUdhbWVNYW5hZ2VyIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVNYW5hZ2VyID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLlopnlo4HmlbDnu4RcIiB9KVxyXG4gICAgV2FsbF9QcmVmYWI6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgcGFydGljbGVFZmZlY3RzOiBjYy5QYXJ0aWNsZUFzc2V0W107XHJcbiAgICAvLyBAcHJvcGVydHkoe3R5cGU6IFtjYy5QYXJ0aWNsZVN5c3RlbV0sIHRvb2x0aXA6XCLnspLlrZDmlbDnu4RcIn0pXHJcbiAgICAvLyBwYXJ0aWNsZUVmZmVjdHMgOiBBcnJheTxjYy5QYXJ0aWNsZVN5c3RlbT4gPSBbXTtcclxuXHJcbiAgICBsb2FkMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkNDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNjaGVkdWxlQ2FsbGJhY2s6IGFueTtcclxuICAgIHRpbWVOdW1iZXI6IG51bWJlcjtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDE7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5sb2FkMSA9IHRoaXMubG9hZDIgPSB0aGlzLmxvYWQzID0gdGhpcy5sb2FkNCA9IHRoaXMubG9hZDUgPSBmYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG5cclxuXHJcbiAgICAgICAgaWYgKEdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIEdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICAgICAgICAgIGNjLmdhbWUuYWRkUGVyc2lzdFJvb3ROb2RlKHRoaXMubm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXRoID0gJ3ByZWZhYi9ibG9jayc7XHJcbiAgICAgICAgY29uc3QgcGF0aDIgPSAncHJlZmFiL3dhbGwnO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkRGlyKHBhdGgsIGNjLlByZWZhYiwgKGVyciwgYXNzZXRzOiBjYy5QcmVmYWJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn5Yqo5oCB5Yqg6L29IGJsb2NrIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWwhuWKoOi9veeahCBQcmVmYWIg6LWL5YC857uZIEJsb2NrX0FycmF5XHJcbiAgICAgICAgICAgIHRoaXMuQmxvY2tfQXJyYXkgPSBhc3NldHM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfmlrnlnZfliqDovb3miJDlip/vvIzlhbHliqDovb3kuoYnLCB0aGlzLkJsb2NrX0FycmF5Lmxlbmd0aCwgJ+S4quaWueWdlycpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFNvcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkRGlyKHBhdGgyLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+WKqOaAgeWKoOi9vSB3YWxsIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWwhuWKoOi9veeahCBQcmVmYWIg6LWL5YC857uZIEJsb2NrX0FycmF5XHJcbiAgICAgICAgICAgIHRoaXMuV2FsbF9QcmVmYWIgPSBhc3NldHM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDIgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn5aKZ5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5XYWxsX1ByZWZhYi5sZW5ndGgsICfkuKrlopknKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRXYWxsUHJlZmFiU29ydCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5YiH5Yiw5ZCO5Y+wXHJcbiAgICAgICAgaWYgKGNjLnN5cy5wbGF0Zm9ybSA9PT0gY2Muc3lzLldFQ0hBVF9HQU1FKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vbkhpZGUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkhpZGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIC8vIOajgOa1i+W+ruS/oeWwj+a4uOaIj+WbnuWIsOWJjeWPsFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gub25TaG93KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TaG93KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25IaWRlKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3coKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcclxuICAgICAgICBjYy5nYW1lLnJlc3VtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndXAnLCAndXBMZWZ0JywgJ3VwUmlnaHQnXTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLCAzKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lLnN1YnN0cigwLCAzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCkge1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KTtcclxuICAgICAgICAvLyDliqDovb0gbXVzaWMgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ211c2ljJywgKGVyciwgYnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBtdXNpYyBidW5kbGUg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAvLyDliqDovb3lpLHotKXml7bku43lsJ3or5Xov5vlhaUgSG9tZVNjZW5lXHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbXVzaWMgYnVuZGxlIOWKoOi9veaIkOWKnycpO1xyXG4gICAgICAgICAgICAgICAgLy8g5Yqg6L295oiQ5Yqf5ZCO6L+b5YWlIEhvbWVTY2VuZVxyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpKVxyXG4gICAgICAgICAgICAudG8oMC41LCB7IG9wYWNpdHk6IDEwMCB9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8g6aKE5Yqg6L295oiQ5Yqf5ZCO5Yqg6L295Zy65pmvXHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpKVxyXG4gICAgICAgICAgICAudG8oMC41LCB7IG9wYWNpdHk6IDI1NSB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgLy8gY2MubG9hZGVyLnJlbGVhc2VBbGwoKTtcclxuICAgICAgICAvLyDpooTliqDovb0gSG9tZVNjZW5lIOWcuuaZr1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHJlYWRVc2VyRGF0YShyZXRyeUNvdW50ID0gMCkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfSW5pdCgpO1xyXG4gICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAvL+aXp+eahOivu+WPluaVsOaNruiuvue9ruaVsOaNruaWueazlSzku6XlvLrogZTnvZHkuLrkuLtcclxuICAgICAgICAgICAgaWYgKGxldmVsSW5mbyA9PSB1bmRlZmluZWQgfHwgbGV2ZWxJbmZvID09IFwiXCIgfHwgbGV2ZWxJbmZvID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEocmV0cnlDb3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld1JlYWREYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlrZjlgqjnlKjmiLfmlbDmja5cclxuICAgIH1cclxuXHJcbiAgICByZWFkTXVzaWNDb25maWcoKSB7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZiAoYXVkaW9JbmZvID09IHVuZGVmaW5lZCB8fCBhdWRpb0luZm8gPT0gXCJcIiB8fCBhdWRpb0luZm8gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcIm11c2ljT3BlblwiOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICAgICAgXCJlZmZlY3RPcGVuXCI6IHRydWUsICAgICAgICAgICAgLy/pn7PmlYhcclxuICAgICAgICAgICAgICAgIFwidmlicmF0ZU9wZW5cIjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm11c2ljXCIsIGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gYXVkaW9JbmZvLm11c2ljT3BlbjtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4gPSBhdWRpb0luZm8uZWZmZWN0T3BlbjtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gYXVkaW9JbmZvLnZpYnJhdGVPcGVuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLor7vlj5bmlrDkv6Hmga9cIik7XHJcbiAgICAgICAgbGV0IG9wZW5pZCA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJvcGVuaWRcIik7XHJcbiAgICAgICAgaWYgKG9wZW5pZCA9PSBudWxsIHx8IG9wZW5pZCA9PSBcIlwiIHx8IG9wZW5pZCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+aVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcm5hbWUgPSByZXMucmVzdWx0LmRhdGEudXNlcm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0ZXJfdGltZSA9IHJlcy5yZXN1bHQuZGF0YS5yZWdpc3Rlcl90aW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm9wZW5pZFwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChvcGVuaWQpXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gb3BlbmlkO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICAvL+etiee6p+S/oeaBr1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuayoeacieetiee6p+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgIGlmIChsZXZlbEluZm8ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIiwgdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXApIDwgMTAwMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmZvLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5ri45oiP5YmN56uv562J57qn5Li65YeGXCIsIGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mnI3liqHlmajnq6/lrZjlgqjml7bpl7TmlrDkuo7muLjmiI/nq6/vvIzku6XmnI3liqHlmajnq6/kuLrkuLss5b6A5YmN56uv5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLCBkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLCBsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAvL+mHkeW4geS/oeaBr1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJDb2luKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJjb2luXCIpO1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsIHRlbXApO1xyXG4gICAgICAgICAgICAgICAgaWYgKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBjb2luSW5mby50aW1lc3RhbXApIDwgMTAwMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIiwgY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2luSW5mby5jb2luKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsIGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlLnlj5jlkI7ph5HluIE6XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mnI3liqHlmajnq6/lrZjlgqjml7bpl7TmlrDkuo7muLjmiI/nq6/vvIzku6XmnI3liqHlmajnq6/kuLrkuLss5b6A5YmN56uv5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOmHkeW5o+S4uuWHhjpcIiwgZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLmNvaW4gPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbjtcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMjIyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsIGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/pgZPlhbfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDpgZPlhbfmlbDmja5cIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8uaGFtbWVyQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5tYWdpY0Ftb3VudCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjIyMjIyMjLpgZPlhbfmlbDmja7lvILluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMeS4iuS8oOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsIDAsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnKzlnLDml7bpl7TmiLNcIixwcm9wSW5mby50aW1lc3RhbXAsXCLmnI3liqHlmajml7bpl7TmiLNcIixkYXRhLnJlc3VsdC50aW1lc3RhbXApO1xyXG4gICAgICAgICAgICAgICAgaWYgKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBwcm9wSW5mby50aW1lc3RhbXApIDwgMTAwMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mBk+WFt+S4uuS4uzpcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTEx6YGT5YW35pWw5o2u5byC5bi4XCIsIGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzPkuIrkvKDpgZPlhbfkv6Hmga86XCIsIHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLpgZPlhbfmlbDmja7mraPluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLCAwLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMuS4iuS8oOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm9OZXcsIGRhdGEucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8v5pen55So5oi377yM5peg5pys5Zyw57yT5a2Y6K+75Y+W6YWN572uXHJcbiAgICBvbGRSZWFkRGF0YShyZXRyeUNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaXp+S/oeaBr1wiKTtcclxuICAgICAgICBjb25zdCBNQVhfUkVUUklFUyA9IDE1O1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8g6K+75Y+W55So5oi35pWw5o2uXHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnJlc3VsdC5vcGVuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHsgXCJsZXZlbFwiOiAwLCBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIiwgbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7IFwiY29pblwiOiAwLCBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsIGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLCBwcm9wSW5mbyk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbygoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg55So5oi35L+h5oGv5oiQ5YqfXCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDlkI7vvIzor7vlj5bnlKjmiLfkv6Hmga/vvIzkuLrkuIrmiqXms6jlhozml7bpl7RcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldCh0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacjeWKoeWZqOS5n+ayoeaciemHkeW4geS/oeaBr1wiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIChkYXRhKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsIDAsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBr+aIkOWKn1wiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnvZHnu5zlvILluLjvvIzmraPlnKjliqrlipvliqDovb1cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0LmRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSByZXMucmVzdWx0LmRhdGEubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gcmVzLnJlc3VsdC5kYXRhLmNvaW5BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSByZXMucmVzdWx0LmRhdGEuZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcm5hbWUgPSByZXMucmVzdWx0LmRhdGEudXNlcm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0geyBcImNvaW5cIjogMCwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsIGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHsgXCJjb2luXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLCBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWtmOWCqOmHkeW4geS/oeaBrzpcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiNDQ0NDQ0NDQ0NFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLCBjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5YWz5Y2h5pWw5o2uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHsgXCJsZXZlbFwiOiAwLCBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMzMzMzMz5a2Y5YKo5YWz5Y2h5pWw5o2uOlwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsIGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaLv+WIsOeahOaVsOaNrlwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLCBkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0geyBcImxldmVsXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCwgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjQ0NDQ0NOWtmOWCqOWFs+WNoeS/oeaBrzpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsIGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJQcm9wKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLCAwLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaciemBk+WFt+S/oeaBr++8jOS7jumBk+WFt+aOpeWPo+aLv+WIsOaVsOaNrlwiLCBkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemUgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXIgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOiB0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOesrCAke3JldHJ5Q291bnQgKyAxfSDmrKHph43or5XvvIzplJnor6/kv6Hmga86YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDlu7bov58gMiDnp5LlkI7ph43or5VcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEocmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIzovr7liLDmnIDlpKfph43or5XmrKHmlbDvvIzpgIDlh7rmuLjmiI8nLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmAgOWHuua4uOaIj1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmdhbWUuZW5kKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEYXRhKCkge1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR2FtZVRvb2woKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKBcIiwgZGF0YSk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFRpbWVDdXREb3duKCkge1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZU51bWJlciA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTnVtYmVyIC09IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZUNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuICAgICAgICBpZiAodGhpcy5sb2FkMSAmJiB0aGlzLmxvYWQyICYmIHRoaXMubG9hZDMgJiYgdGhpcy5sb2FkNCAmJiB0aGlzLmxvYWQ1ICYmIHRoaXMudGltZU51bWJlciA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfTG9naW4oKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'c22a3wcU/tBdJ/qjn/Q6uuA', 'lq_collide_base');
+// Script/lq_collide_system/lq_collide_base.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQCollideBase = void 0;
+var ccclass = cc._decorator.ccclass;
+var executeInEditMode = cc._decorator.executeInEditMode;
+var PolygonCollider = cc.PolygonCollider;
+var property = cc._decorator.property;
+var lq_collide_1 = require("./lq_collide");
+var lq_const_1 = require("../lq_base/data/lq_const");
+var LQCollideBase = /** @class */ (function (_super) {
+ __extends(LQCollideBase, _super);
+ function LQCollideBase() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.auto_update_point = true;
+ return _this;
+ }
+ LQCollideBase.prototype.find_collide = function () {
+ var collide = this.node.getComponent(lq_collide_1.LQCollide);
+ if (!collide) {
+ console.error(this.node.name + ':没有找到LQCollide组件');
+ return undefined;
+ }
+ return collide;
+ };
+ LQCollideBase.prototype.onLoad = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ collide.init_lq_collide();
+ };
+ LQCollideBase.prototype.onEnable = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ collide.enable_lq_collide();
+ };
+ LQCollideBase.prototype.onDisable = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ collide.disable_lq_collide();
+ };
+ LQCollideBase.prototype.onDestroy = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ };
+ LQCollideBase.prototype.onFocusInEditor = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ };
+ LQCollideBase.prototype.onLostFocusInEditor = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ };
+ LQCollideBase.prototype.resetInEditor = function () {
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ };
+ LQCollideBase.prototype.update = function (dt) {
+ if (!CC_EDITOR || !this.auto_update_point) {
+ return;
+ }
+ var collide = this.find_collide();
+ if (!collide) {
+ return;
+ }
+ if (collide.collide_shape !== lq_const_1.LQCollideShape.Polygon) {
+ return;
+ }
+ var polygonCollider = this.node.getComponent(PolygonCollider);
+ if (!polygonCollider) {
+ return;
+ }
+ collide.polygon_points = polygonCollider.points;
+ };
+ __decorate([
+ property({ tooltip: '多边形自动同步cocos PolygonCollider 组件中的碰撞点' })
+ ], LQCollideBase.prototype, "auto_update_point", void 0);
+ LQCollideBase = __decorate([
+ ccclass,
+ executeInEditMode
+ ], LQCollideBase);
+ return LQCollideBase;
+}(cc.Component));
+exports.LQCollideBase = LQCollideBase;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFPLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztBQUN2QyxJQUFPLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7QUFDM0QsSUFBTyxlQUFlLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztBQUM1QyxJQUFPLFFBQVEsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztBQUN6QywyQ0FBdUM7QUFDdkMscURBQXdEO0FBSXhEO0lBQW1DLGlDQUFZO0lBQS9DO1FBQUEscUVBa0ZDO1FBaEZhLHVCQUFpQixHQUFZLElBQUksQ0FBQzs7SUFnRmhELENBQUM7SUE5RVcsb0NBQVksR0FBcEI7UUFDSSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztZQUNuRCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFUyw4QkFBTSxHQUFoQjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFUyxnQ0FBUSxHQUFsQjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVTLGlDQUFTLEdBQW5CO1FBQ0ksSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRVMsaUNBQVMsR0FBbkI7UUFDSSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU87U0FDVjtJQUNMLENBQUM7SUFFUyx1Q0FBZSxHQUF6QjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO0lBQ0wsQ0FBQztJQUVTLDJDQUFtQixHQUE3QjtRQUNJLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO0lBQ0wsQ0FBQztJQUVTLHFDQUFhLEdBQXZCO1FBQ0ksSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRVMsOEJBQU0sR0FBaEIsVUFBaUIsRUFBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZDLE9BQU87U0FDVjtRQUNELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsT0FBTyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUNELElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUM7SUEvRUQ7UUFEQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUUsc0NBQXNDLEVBQUMsQ0FBQzs0REFDaEI7SUFGbkMsYUFBYTtRQUZ6QixPQUFPO1FBQ1AsaUJBQWlCO09BQ0wsYUFBYSxDQWtGekI7SUFBRCxvQkFBQztDQWxGRCxBQWtGQyxDQWxGa0MsRUFBRSxDQUFDLFNBQVMsR0FrRjlDO0FBbEZZLHNDQUFhIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNjY2xhc3MgPSBjYy5fZGVjb3JhdG9yLmNjY2xhc3M7XHJcbmltcG9ydCBleGVjdXRlSW5FZGl0TW9kZSA9IGNjLl9kZWNvcmF0b3IuZXhlY3V0ZUluRWRpdE1vZGU7XHJcbmltcG9ydCBQb2x5Z29uQ29sbGlkZXIgPSBjYy5Qb2x5Z29uQ29sbGlkZXI7XHJcbmltcG9ydCBwcm9wZXJ0eSA9IGNjLl9kZWNvcmF0b3IucHJvcGVydHk7XHJcbmltcG9ydCB7TFFDb2xsaWRlfSBmcm9tIFwiLi9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlU2hhcGV9IGZyb20gXCIuLi9scV9iYXNlL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbkBjY2NsYXNzXHJcbkBleGVjdXRlSW5FZGl0TW9kZVxyXG5leHBvcnQgY2xhc3MgTFFDb2xsaWRlQmFzZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHkoe3Rvb2x0aXA6ICflpJrovrnlvaLoh6rliqjlkIzmraVjb2NvcyBQb2x5Z29uQ29sbGlkZXIg57uE5Lu25Lit55qE56Kw5pKe54K5J30pXHJcbiAgICBwcm90ZWN0ZWQgYXV0b191cGRhdGVfcG9pbnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgZmluZF9jb2xsaWRlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KExRQ29sbGlkZSk7XHJcbiAgICAgICAgaWYgKCFjb2xsaWRlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5ub2RlLm5hbWUgKyAnOuayoeacieaJvuWIsExRQ29sbGlkZee7hOS7ticpO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY29sbGlkZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Mb2FkKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuaW5pdF9scV9jb2xsaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRW5hYmxlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuZW5hYmxlX2xxX2NvbGxpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EaXNhYmxlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUuZGlzYWJsZV9scV9jb2xsaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpIHtcclxuICAgICAgICBjb25zdCBjb2xsaWRlID0gdGhpcy5maW5kX2NvbGxpZGUoKTtcclxuICAgICAgICBpZiAoIWNvbGxpZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Gb2N1c0luRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkxvc3RGb2N1c0luRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCByZXNldEluRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbGxpZGUgPSB0aGlzLmZpbmRfY29sbGlkZSgpO1xyXG4gICAgICAgIGlmICghY29sbGlkZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcikge1xyXG4gICAgICAgIGlmICghQ0NfRURJVE9SIHx8ICF0aGlzLmF1dG9fdXBkYXRlX3BvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29sbGlkZSA9IHRoaXMuZmluZF9jb2xsaWRlKCk7XHJcbiAgICAgICAgaWYgKCFjb2xsaWRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbGxpZGUuY29sbGlkZV9zaGFwZSAhPT0gTFFDb2xsaWRlU2hhcGUuUG9seWdvbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBvbHlnb25Db2xsaWRlciA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoUG9seWdvbkNvbGxpZGVyKTtcclxuICAgICAgICBpZiAoIXBvbHlnb25Db2xsaWRlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbGxpZGUucG9seWdvbl9wb2ludHMgPSBwb2x5Z29uQ29sbGlkZXIucG9pbnRzO1xyXG4gICAgfVxyXG59Il19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/prop/Freeze.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'ad8cbbzCohCR5uifssdRTf+', 'Freeze');
+// Script/prop/Freeze.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var NumberToImage_1 = require("../NumberToImage");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var Freeze = /** @class */ (function (_super) {
+ __extends(Freeze, _super);
+ function Freeze() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 60;
+ _this.freeze = null;
+ return _this;
+ // update (dt) {}
+ }
+ // mapInfo: number[][] = [];
+ Freeze.prototype.onLoad = function () {
+ };
+ Freeze.prototype.start = function () {
+ };
+ Freeze.prototype.init = function (time, type) {
+ if (time)
+ this.time = time;
+ this.node.getChildByName("time").active = true;
+ NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false);
+ // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ };
+ Freeze.prototype.reduce = function (number) {
+ var _this = this;
+ this.time -= number;
+ if (this.time <= 0)
+ this.time = 0;
+ NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false);
+ // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ if (this.time <= 0) {
+ this.node.getChildByName("bingkuai").active = true;
+ var skeleton = this.node.getChildByName("bingkuai").getComponent(sp.Skeleton);
+ skeleton.setAnimation(1, "bingkuai", false);
+ this.node.getChildByName("icon").active = true;
+ this.node.getChildByName("time").active = false;
+ cc.tween(this.node.getChildByName("icon"))
+ .to(0.5, { opacity: 0 })
+ .start();
+ // this.node.getChildByName("icon").getComponent(cc.Sprite).setMaterial(0,this.freeze);
+ // this.node.children.forEach(element => {
+ // element.destroy();
+ // });
+ setTimeout(function () {
+ _this.node.parent.getComponent("Block").resetFreeze();
+ _this.node.destroy();
+ _this.node.removeFromParent();
+ }, 600);
+ }
+ };
+ __decorate([
+ property(cc.Material)
+ ], Freeze.prototype, "freeze", void 0);
+ Freeze = __decorate([
+ ccclass
+ ], Freeze);
+ return Freeze;
+}(cc.Component));
+exports.default = Freeze;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxGcmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHbEYsa0RBQTZDO0FBRXZDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQW9DLDBCQUFZO0lBQWhEO1FBQUEscUVBc0RDO1FBcERHLFVBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsWUFBTSxHQUFnQixJQUFJLENBQUM7O1FBZ0QzQixpQkFBaUI7SUFDckIsQ0FBQztJQS9DRyw0QkFBNEI7SUFFNUIsdUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxzQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELHFCQUFJLEdBQUosVUFBSyxJQUFJLEVBQUMsSUFBSTtRQUNWLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLHlGQUF5RjtJQUU3RixDQUFDO0lBRUQsdUJBQU0sR0FBTixVQUFPLE1BQU07UUFBYixpQkF5QkM7UUF4QkcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNoQyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcseUZBQXlGO1FBQ3pGLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25ELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNoRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN6QyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUN2QixLQUFLLEVBQUUsQ0FBQztZQUVULHVGQUF1RjtZQUN2RiwwQ0FBMEM7WUFDMUMseUJBQXlCO1lBQ3pCLE1BQU07WUFDTixVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixLQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBN0NEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7MENBQ0s7SUFMVixNQUFNO1FBRDFCLE9BQU87T0FDYSxNQUFNLENBc0QxQjtJQUFELGFBQUM7Q0F0REQsQUFzREMsQ0F0RG1DLEVBQUUsQ0FBQyxTQUFTLEdBc0QvQztrQkF0RG9CLE1BQU0iLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWV6ZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTWF0ZXJpYWwpXHJcbiAgICBmcmVlemU6IGNjLk1hdGVyaWFsID0gbnVsbDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lLHR5cGUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSw0MCwyNSxcImljZV9cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZShudW1iZXIpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSBudW1iZXI7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApIHRoaXMudGltZSA9IDBcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsNDAsMjUsXCJpY2VfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmluZ2t1YWlcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2tlbGV0b24gPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiaW5na3VhaVwiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRBbmltYXRpb24oMSxcImJpbmdrdWFpXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc2V0TWF0ZXJpYWwoMCx0aGlzLmZyZWV6ZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgZWxlbWVudC5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB9LCA2MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/effect/融化.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '341aezWi/BCGa2q28VO8ioy', '融化');
+// effect/融化.ts
+
+"use strict";
+// IceMelt.ts
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.IceMelt = void 0;
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var IceMelt = /** @class */ (function (_super) {
+ __extends(IceMelt, _super);
+ function IceMelt() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.speed = 1;
+ //是否融化
+ _this._isMelt = false;
+ _this._time = 0;
+ return _this;
+ }
+ IceMelt.prototype.start = function () {
+ this._material = this.node.getComponent(cc.Sprite).getMaterial(0);
+ };
+ IceMelt.prototype.update = function (dt) {
+ if (this._material && this._isMelt) {
+ this._material.setProperty('u_time', this._time);
+ this._time += dt * this.speed;
+ }
+ };
+ //开始融化
+ IceMelt.prototype.startMelt = function () {
+ this._isMelt = true;
+ this._time = 0;
+ };
+ IceMelt = __decorate([
+ ccclass()
+ ], IceMelt);
+ return IceMelt;
+}(cc.Component));
+exports.IceMelt = IceMelt;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcZWZmZWN0XFzono3ljJYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJUCxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUE2QiwyQkFBWTtJQUF6QztRQUFBLHFFQXlCQztRQXZCRyxXQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRWxCLE1BQU07UUFDRSxhQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQUssR0FBVyxDQUFDLENBQUM7O0lBbUI5QixDQUFDO0lBaEJHLHVCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELHdCQUFNLEdBQU4sVUFBTyxFQUFFO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELE1BQU07SUFDTiwyQkFBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQXhCUSxPQUFPO1FBRG5CLE9BQU8sRUFBRTtPQUNHLE9BQU8sQ0F5Qm5CO0lBQUQsY0FBQztDQXpCRCxBQXlCQyxDQXpCNEIsRUFBRSxDQUFDLFNBQVMsR0F5QnhDO0FBekJZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSWNlTWVsdC50c1xyXG5cclxuXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3MoKVxyXG5leHBvcnQgY2xhc3MgSWNlTWVsdCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgc3BlZWQ6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLy/mmK/lkKbono3ljJZcclxuICAgIHByaXZhdGUgX2lzTWVsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdGltZTogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgX21hdGVyaWFsOiBjYy5NYXRlcmlhbFZhcmlhbnQ7XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5fbWF0ZXJpYWwgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21hdGVyaWFsICYmIHRoaXMuX2lzTWVsdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eSgndV90aW1lJywgdGhpcy5fdGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWUgKz0gZHQgKiB0aGlzLnNwZWVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+iejeWMllxyXG4gICAgc3RhcnRNZWx0KCkge1xyXG4gICAgICAgIHRoaXMuX2lzTWVsdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fdGltZSA9IDA7XHJcbiAgICB9XHJcbn0iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/animation/NewScript.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '2cd54+HgYFITpFe6QLlvqDB', 'NewScript');
+// animation/NewScript.js
+
+"use strict";
+
+// Learn cc.Class:
+// - https://docs.cocos.com/creator/manual/en/scripting/class.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+
+cc.Class({
+ "extends": cc.Component,
+ properties: {
+ sex: {
+ type: cc.Enum({
+ male: 0,
+ female: 1
+ }),
+ "default": 0
+ }
+ // foo: {
+ // // ATTRIBUTES:
+ // default: null, // The default value will be used only when the component attaching
+ // // to a node for the first time
+ // type: cc.SpriteFrame, // optional, default is typeof default
+ // serializable: true, // optional, default is true
+ // },
+ // bar: {
+ // get () {
+ // return this._bar;
+ // },
+ // set (value) {
+ // this._bar = value;
+ // }
+ // },
+ },
+ // LIFE-CYCLE CALLBACKS:
+ // onLoad () {},
+ start: function start() {} // update (dt) {},
+});
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUU7SUFDUkMsR0FBRyxFQUFDO01BQ0FDLElBQUksRUFBQ0wsRUFBRSxDQUFDTSxJQUFJLENBQUM7UUFDVEMsSUFBSSxFQUFDLENBQUM7UUFDTkMsTUFBTSxFQUFDO01BQ1gsQ0FBQyxDQUFDO01BQ0YsV0FBUTtJQUNaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0osQ0FBQztFQUVEO0VBRUE7RUFFQUMsS0FBSyxXQUFBQSxNQUFBLEVBQUksQ0FFVCxDQUFDLENBRUQ7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxyXG5cclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBzZXg6e1xyXG4gICAgICAgICAgICB0eXBlOmNjLkVudW0oe1xyXG4gICAgICAgICAgICAgICAgbWFsZTowLFxyXG4gICAgICAgICAgICAgICAgZmVtYWxlOjFcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6MFxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBmb286IHtcclxuICAgICAgICAvLyAgICAgLy8gQVRUUklCVVRFUzpcclxuICAgICAgICAvLyAgICAgZGVmYXVsdDogbnVsbCwgICAgICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gdGhlIGNvbXBvbmVudCBhdHRhY2hpbmdcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgbm9kZSBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICAvLyAgICAgdHlwZTogY2MuU3ByaXRlRnJhbWUsIC8vIG9wdGlvbmFsLCBkZWZhdWx0IGlzIHR5cGVvZiBkZWZhdWx0XHJcbiAgICAgICAgLy8gICAgIHNlcmlhbGl6YWJsZTogdHJ1ZSwgICAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0cnVlXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICAvLyBiYXI6IHtcclxuICAgICAgICAvLyAgICAgZ2V0ICgpIHtcclxuICAgICAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLl9iYXI7XHJcbiAgICAgICAgLy8gICAgIH0sXHJcbiAgICAgICAgLy8gICAgIHNldCAodmFsdWUpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX2JhciA9IHZhbHVlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSxcclxuICAgIH0sXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9LFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9LFxyXG59KTtcclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event');
+// migration/use_v2.1-2.2.1_cc.Toggle_event.js
+
+"use strict";
+
+/*
+ * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.
+ * You do not need to manually add this script in any other project.
+ * If you don't use cc.Toggle in your project, you can delete this script directly.
+ * If your project is hosted in VCS such as git, submit this script together.
+ *
+ * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,
+ * 你无需在任何其它项目中手动添加此脚本。
+ * 如果你的项目中没用到 Toggle,可直接删除该脚本。
+ * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。
+ */
+
+if (cc.Toggle) {
+ // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code
+ // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件
+ cc.Toggle._triggerEventInScript_isChecked = true;
+}
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsRUFBRSxDQUFDQyxNQUFNLEVBQUU7RUFDWDtFQUNBO0VBQ0FELEVBQUUsQ0FBQ0MsTUFBTSxDQUFDQywrQkFBK0IsR0FBRyxJQUFJO0FBQ3BEIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBUaGlzIHNjcmlwdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBDb2NvcyBDcmVhdG9yIGFuZCBpcyBvbmx5IHVzZWQgZm9yIHByb2plY3RzIGNvbXBhdGlibGUgd2l0aCB0aGUgdjIuMS4wIO+9niAyLjIuMSB2ZXJzaW9uLlxyXG4gKiBZb3UgZG8gbm90IG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoaXMgc2NyaXB0IGluIGFueSBvdGhlciBwcm9qZWN0LlxyXG4gKiBJZiB5b3UgZG9uJ3QgdXNlIGNjLlRvZ2dsZSBpbiB5b3VyIHByb2plY3QsIHlvdSBjYW4gZGVsZXRlIHRoaXMgc2NyaXB0IGRpcmVjdGx5LlxyXG4gKiBJZiB5b3VyIHByb2plY3QgaXMgaG9zdGVkIGluIFZDUyBzdWNoIGFzIGdpdCwgc3VibWl0IHRoaXMgc2NyaXB0IHRvZ2V0aGVyLlxyXG4gKlxyXG4gKiDmraTohJrmnKznlLEgQ29jb3MgQ3JlYXRvciDoh6rliqjnlJ/miJDvvIzku4XnlKjkuo7lhbzlrrkgdjIuMS4wIH4gMi4yLjEg54mI5pys55qE5bel56iL77yMXHJcbiAqIOS9oOaXoOmcgOWcqOS7u+S9leWFtuWug+mhueebruS4reaJi+WKqOa3u+WKoOatpOiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67kuK3msqHnlKjliLAgVG9nZ2xl77yM5Y+v55u05o6l5Yig6Zmk6K+l6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruacieaJmOeuoeS6jiBnaXQg562J54mI5pys5bqT77yM6K+35bCG5q2k6ISa5pys5LiA5bm25LiK5Lyg44CCXHJcbiAqL1xyXG5cclxuaWYgKGNjLlRvZ2dsZSkge1xyXG4gICAgLy8gV2hldGhlciB0byB0cmlnZ2VyICd0b2dnbGUnIGFuZCAnY2hlY2tFdmVudHMnIGV2ZW50cyB3aGVuIG1vZGlmeWluZyAndG9nZ2xlLmlzQ2hlY2tlZCcgaW4gdGhlIGNvZGVcclxuICAgIC8vIOWcqOS7o+eggeS4reS/ruaUuSAndG9nZ2xlLmlzQ2hlY2tlZCcg5pe25piv5ZCm6Kem5Y+RICd0b2dnbGUnIOS4jiAnY2hlY2tFdmVudHMnIOS6i+S7tlxyXG4gICAgY2MuVG9nZ2xlLl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQgPSB0cnVlO1xyXG59XHJcbiJdfQ==
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/GameStart/GameAppStart.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart');
+// Script/module/GameStart/GameAppStart.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Storage_1 = require("../Storage/Storage");
+var GameConfig_1 = require("../Config/GameConfig");
+var HttpUtil_1 = require("../Crypto/HttpUtil");
+var Notification_1 = require("../Notification/Notification");
+var GameTool_1 = require("../Tool/GameTool");
+window.initMgr = function () {
+ if (cc.fx) {
+ return;
+ }
+ cc.fx = {};
+ // console.log("1初始化");
+ //基础状态信息
+ cc.fx.StateInfo = {
+ debugMode: true,
+ networkConnected: true,
+ networkType: 'none',
+ isOnForeground: true //当前是否是在前台
+ };
+ //应用系统信息
+ //配置文件
+ cc.fx.StorageMessage = Storage_1.StorageMessage;
+ cc.fx.GameConfig = GameConfig_1.GameConfig;
+ cc.fx.HttpUtil = HttpUtil_1.default;
+ cc.fx.GameTool = GameTool_1.GameTool;
+ cc.fx.Notifications = Notification_1.Notifications;
+ cc.fx.ShareInfo = {
+ queryId: -1 //分享id
+ };
+ cc.fx.Message = {
+ control: "10001",
+ startGame: "10002",
+ next: "10003",
+ changePath: "10004",
+ changeMap: "10005",
+ nextWater: "10006",
+ addEnd: "10007",
+ setData: "10008",
+ guideNext: "10009",
+ showResult: "10010",
+ removeTip: "10011" //执行撤回或者后退动作,移除提示
+ };
+ /*
+ * 客户端埋点分享类型
+ */
+ cc.fx.BurialShareType = {
+ Default: "default",
+ Invite: "invite",
+ DailyInviteRoomJoin: 'invite_join_room',
+ DailyInviteFriend: 'invite_friend',
+ DailyInviteGroup: 'invate_group',
+ DailyInviteGroupAlive: 'invate_alive',
+ DailyInviteGroupReward: 'invate_rewared',
+ DailyInviteGroupBox: 'invate_box',
+ DailyInviteGroupBall: 'invate_ball',
+ MatchResult: 'matchResult',
+ MatchFix5: 'MatchFix5',
+ MatchFix20: 'MatchFix20',
+ MatchFix100: 'MatchFix100',
+ MatchFix500: 'MatchFix500',
+ NewerRedEnvelope: 'newerRedEnvelope',
+ CoinRoomResult: 'coinRoomResult',
+ HighRate: "highRate",
+ CoinRoomWinStreak: 'coinRoomWinStreak',
+ CoinRoomBankruptcy1: 'coinRoomBankruptcy1',
+ CoinRoomBankruptcy2: 'coinRoomBankruptcy2',
+ CoinRoomBankruptcy3: 'coinRoomBankruptcy3',
+ };
+ /*
+ * 分享到哪儿给奖励 group frined all
+ */
+ cc.fx.ShareWhereReward = {
+ Group: "group",
+ Friend: "friend",
+ All: "all",
+ };
+ //用于存储消息的ID
+ cc.fx.storageType = cc.Enum({
+ storageTypeCustom: 1000101,
+ });
+ //用于存储提示语 按照步骤提示
+ cc.fx.tipType = cc.Enum({
+ tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',
+ tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。',
+ tipErrNew: '这是这局游戏第一次出现{植物}',
+ tipErrOld: '{植物}刚才出现过呢',
+ tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',
+ tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',
+ tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',
+ });
+};
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXEdhbWVTdGFydFxcR2FtZUFwcFN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQW9EO0FBQ3BELG1EQUFrRDtBQUNsRCwrQ0FBMEM7QUFDMUMsNkRBQTZEO0FBQzdELDZDQUE0QztBQUc1QyxNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2IsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ1AsT0FBTztLQUNWO0lBQ0QsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDWCx1QkFBdUI7SUFFdkIsUUFBUTtJQUNSLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ2QsU0FBUyxFQUFFLElBQUk7UUFDZixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGNBQWMsRUFBRSxJQUFJLENBQU0sVUFBVTtLQUN2QyxDQUFDO0lBRUYsUUFBUTtJQUNSLE1BQU07SUFDTixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsR0FBRyx3QkFBYyxDQUFDO0lBRXRDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLHVCQUFVLENBQUM7SUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsa0JBQVEsQ0FBQztJQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxtQkFBUSxDQUFDO0lBQzFCLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLDRCQUFhLENBQUM7SUFHcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUc7UUFDZCxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQWMsTUFBTTtLQUNsQyxDQUFDO0lBRUYsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUc7UUFDWixPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUUsT0FBTztRQUNsQixJQUFJLEVBQUUsT0FBTztRQUNiLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFLE9BQU87UUFDaEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLE9BQU8sQ0FBVSxpQkFBaUI7S0FDaEQsQ0FBQTtJQUVEOztNQUVFO0lBQ0YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEdBQUc7UUFDcEIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsTUFBTSxFQUFFLFFBQVE7UUFFaEIsbUJBQW1CLEVBQUUsa0JBQWtCO1FBQ3ZDLGlCQUFpQixFQUFFLGVBQWU7UUFDbEMsZ0JBQWdCLEVBQUUsY0FBYztRQUNoQyxxQkFBcUIsRUFBRSxjQUFjO1FBQ3JDLHNCQUFzQixFQUFFLGdCQUFnQjtRQUN4QyxtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLG9CQUFvQixFQUFFLGFBQWE7UUFFbkMsV0FBVyxFQUFFLGFBQWE7UUFDMUIsU0FBUyxFQUFFLFdBQVc7UUFDdEIsVUFBVSxFQUFFLFlBQVk7UUFDeEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsUUFBUSxFQUFFLFVBQVU7UUFDcEIsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQ3RDLG1CQUFtQixFQUFFLHFCQUFxQjtRQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7UUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0tBQzdDLENBQUM7SUFFRjs7T0FFRztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEdBQUc7UUFDckIsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUUsUUFBUTtRQUNoQixHQUFHLEVBQUUsS0FBSztLQUNiLENBQUM7SUFFRixXQUFXO0lBQ1gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUN4QixpQkFBaUIsRUFBRSxPQUFPO0tBQzdCLENBQUMsQ0FBQztJQUVILGlCQUFpQjtJQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxpREFBaUQ7UUFDekQsTUFBTSxFQUFFLG1EQUFtRDtRQUMzRCxTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsU0FBUyxFQUFFLG9CQUFvQjtRQUMvQixVQUFVLEVBQUUsMkJBQTJCO0tBRTFDLENBQUMsQ0FBQztBQUVQLENBQUMsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH0gZnJvbSBcIi4uL1N0b3JhZ2UvU3RvcmFnZVwiO1xyXG5pbXBvcnQgeyBHYW1lQ29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZy9HYW1lQ29uZmlnXCI7XHJcbmltcG9ydCBIdHRwVXRpbCBmcm9tIFwiLi4vQ3J5cHRvL0h0dHBVdGlsXCI7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnMgfSBmcm9tIFwiLi4vTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblwiO1xyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcbmltcG9ydCBBdWRpb01hbmFnZXIgZnJvbSBcIi4uL011c2ljL0F1ZGlvTWFuYWdlclwiO1xyXG5cclxud2luZG93LmluaXRNZ3IgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAoY2MuZngpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjYy5meCA9IHt9O1xyXG4gICAgLy8gY29uc29sZS5sb2coXCIx5Yid5aeL5YyWXCIpO1xyXG5cclxuICAgIC8v5Z+656GA54q25oCB5L+h5oGvXHJcbiAgICBjYy5meC5TdGF0ZUluZm8gPSB7XHJcbiAgICAgICAgZGVidWdNb2RlOiB0cnVlLFxyXG4gICAgICAgIG5ldHdvcmtDb25uZWN0ZWQ6IHRydWUsICAgLy/nvZHnu5znirbmgIFcclxuICAgICAgICBuZXR3b3JrVHlwZTogJ25vbmUnLCAgICAgIC8v572R57uc57G75Z6LXHJcbiAgICAgICAgaXNPbkZvcmVncm91bmQ6IHRydWUgICAgICAvL+W9k+WJjeaYr+WQpuaYr+WcqOWJjeWPsFxyXG4gICAgfTtcclxuXHJcbiAgICAvL+W6lOeUqOezu+e7n+S/oeaBr1xyXG4gICAgLy/phY3nva7mlofku7ZcclxuICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlID0gU3RvcmFnZU1lc3NhZ2U7XHJcblxyXG4gICAgY2MuZnguR2FtZUNvbmZpZyA9IEdhbWVDb25maWc7XHJcbiAgICBjYy5meC5IdHRwVXRpbCA9IEh0dHBVdGlsO1xyXG4gICAgY2MuZnguR2FtZVRvb2wgPSBHYW1lVG9vbDtcclxuICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25zO1xyXG5cclxuXHJcbiAgICBjYy5meC5TaGFyZUluZm8gPSB7XHJcbiAgICAgICAgcXVlcnlJZDogLTEgICAgICAgICAgICAgIC8v5YiG5LqraWRcclxuICAgIH07XHJcblxyXG4gICAgY2MuZnguTWVzc2FnZSA9IHtcclxuICAgICAgICBjb250cm9sOiBcIjEwMDAxXCIsICAgICAgIC8v5Lyg6YCS5pON5L2c5o6n5Yi2XHJcbiAgICAgICAgc3RhcnRHYW1lOiBcIjEwMDAyXCIsICAgICAgLy/kvKDpgJLlvIDlp4vlu7rnrZFcclxuICAgICAgICBuZXh0OiBcIjEwMDAzXCIsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgY2hhbmdlUGF0aDogXCIxMDAwNFwiLCAgICAgICAvL+S8oOmAkuaTjeS9nOaOp+WItlxyXG4gICAgICAgIGNoYW5nZU1hcDogXCIxMDAwNVwiLCAgICAgICAgIC8v5pS55Y+Y6YKj5Zyw5Zu+XHJcbiAgICAgICAgbmV4dFdhdGVyOiBcIjEwMDA2XCIsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgYWRkRW5kOiBcIjEwMDA3XCIsICAgICAgICAgIC8v5re75Yqg57uT5p2f54K5XHJcbiAgICAgICAgc2V0RGF0YTogXCIxMDAwOFwiLCAgICAgICAgIC8v5LiK5Lyg5YiG5pWwXHJcbiAgICAgICAgZ3VpZGVOZXh0OiBcIjEwMDA5XCIsICAgICAgICAvL+W8leWvvOi/m+WFpeS4i+S4gOatpVxyXG4gICAgICAgIHNob3dSZXN1bHQ6IFwiMTAwMTBcIiwgICAgICAgICAgLy/lsZXnpLrmsrvmsLTnu5PmnpxcclxuICAgICAgICByZW1vdmVUaXA6IFwiMTAwMTFcIiAgICAgICAgICAvL+aJp+ihjOaSpOWbnuaIluiAheWQjumAgOWKqOS9nO+8jOenu+mZpOaPkOekulxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgICAgKiDlrqLmiLfnq6/ln4vngrnliIbkuqvnsbvlnotcclxuICAgICovXHJcbiAgICBjYy5meC5CdXJpYWxTaGFyZVR5cGUgPSB7XHJcbiAgICAgICAgRGVmYXVsdDogXCJkZWZhdWx0XCIsICAgICAgICAvL+m7mOiupOWIhuS6q+exu+WeiyzliIbkuqvliLDnvqRcclxuICAgICAgICBJbnZpdGU6IFwiaW52aXRlXCIsICAgICAgICAgIC8vIOmCgOivt+WlveWPi1xyXG5cclxuICAgICAgICBEYWlseUludml0ZVJvb21Kb2luOiAnaW52aXRlX2pvaW5fcm9vbScsIC8v6YKA6K+35aW95Y+L5Yqg5YWlXHJcbiAgICAgICAgRGFpbHlJbnZpdGVGcmllbmQ6ICdpbnZpdGVfZnJpZW5kJywgLy8g5pel5bi46YKA6K+35aW95Y+LXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cDogJ2ludmF0ZV9ncm91cCcsIC8vIOaXpeW4uOWIhuS6q+e+pFxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBBbGl2ZTogJ2ludmF0ZV9hbGl2ZScsIC8v5pel5bi45YiG5Lqr576k5aSN5rS7XHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cFJld2FyZDogJ2ludmF0ZV9yZXdhcmVkJywvL+WIhuS6q+WlluWKsee/u+WAjVxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBCb3g6ICdpbnZhdGVfYm94JywgIC8v5a6d566x5YiG5Lqr5aWW5YqxXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cEJhbGw6ICdpbnZhdGVfYmFsbCcsICAvL+WIhuS6q+mihuWPlueQg+eQg1xyXG5cclxuICAgICAgICBNYXRjaFJlc3VsdDogJ21hdGNoUmVzdWx0JywgIC8vIOavlOi1m+e7k+eul+WIhuS6q1xyXG4gICAgICAgIE1hdGNoRml4NTogJ01hdGNoRml4NScsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA15YWD57qi5YyF6LWbXHJcbiAgICAgICAgTWF0Y2hGaXgyMDogJ01hdGNoRml4MjAnLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDIw5YWD57qi5YyF6LWbXHJcbiAgICAgICAgTWF0Y2hGaXgxMDA6ICdNYXRjaEZpeDEwMCcsICAgICAgICAgICAgICAgICAgICAgIC8vIDEwMOWFg+e6ouWMhei1m1xyXG4gICAgICAgIE1hdGNoRml4NTAwOiAnTWF0Y2hGaXg1MDAnLCAgICAgICAgICAgICAgICAgICAgICAvLyA1MDDlhYPnuqLljIXotZtcclxuICAgICAgICBOZXdlclJlZEVudmVsb3BlOiAnbmV3ZXJSZWRFbnZlbG9wZScsICAgICAgICAgICAgLy8g5paw5omL57qi5YyFXHJcbiAgICAgICAgQ29pblJvb21SZXN1bHQ6ICdjb2luUm9vbVJlc3VsdCcsICAgICAgICAgICAgICAgIC8vIOmHkeW4geahjOe7k+eul1xyXG4gICAgICAgIEhpZ2hSYXRlOiBcImhpZ2hSYXRlXCIsLy/pq5jlgI3liIbkuqtcclxuICAgICAgICBDb2luUm9vbVdpblN0cmVhazogJ2NvaW5Sb29tV2luU3RyZWFrJywgICAgICAgICAvLyDov57og5xcclxuICAgICAgICBDb2luUm9vbUJhbmtydXB0Y3kxOiAnY29pblJvb21CYW5rcnVwdGN5MScsICAgICAgICAgLy8g6YeR5biB5qGM56C05LqnXHJcbiAgICAgICAgQ29pblJvb21CYW5rcnVwdGN5MjogJ2NvaW5Sb29tQmFua3J1cHRjeTInLCAgICAgICAgIC8vIOmHkeW4geahjOegtOS6p1xyXG4gICAgICAgIENvaW5Sb29tQmFua3J1cHRjeTM6ICdjb2luUm9vbUJhbmtydXB0Y3kzJywgICAgICAgICAvLyDph5HluIHmoYznoLTkuqdcclxuICAgIH07XHJcblxyXG4gICAgLypcclxuICAgICAqIOWIhuS6q+WIsOWTquWEv+e7meWlluWKsSBncm91cCBmcmluZWQgYWxsXHJcbiAgICAgKi9cclxuICAgIGNjLmZ4LlNoYXJlV2hlcmVSZXdhcmQgPSB7XHJcbiAgICAgICAgR3JvdXA6IFwiZ3JvdXBcIiwgLy/lvq7kv6HnvqRcclxuICAgICAgICBGcmllbmQ6IFwiZnJpZW5kXCIsLy/lpb3lj4tcclxuICAgICAgICBBbGw6IFwiYWxsXCIsIC8v5LiN5Yy65YiGXHJcbiAgICB9O1xyXG5cclxuICAgIC8v55So5LqO5a2Y5YKo5raI5oGv55qESURcclxuICAgIGNjLmZ4LnN0b3JhZ2VUeXBlID0gY2MuRW51bSh7XHJcbiAgICAgICAgc3RvcmFnZVR5cGVDdXN0b206IDEwMDAxMDEsIC8v55So5LqO5a2Y5YKo5YWz5Y2h562J57qnXHJcbiAgICB9KTtcclxuXHJcbiAgICAvL+eUqOS6juWtmOWCqOaPkOekuuivrSAg5oyJ54Wn5q2l6aqk5o+Q56S6XHJcbiAgICBjYy5meC50aXBUeXBlID0gY2MuRW51bSh7XHJcbiAgICAgICAgdGlwT25lOiAn56We5Yac5rCP5Zue5Yiw5a625Lit77yM5byA5aeL5pW055CG5LuK5aSp5pS26ZuG5p2l55qE54mp5ZOB44CC5b2T5LuW56ys5LiA5qyh5ou/5Ye65oiW6K+05Ye65LiA56eN5qSN54mp5pe277yM6K+35ZGK6K+J5LuW6L+Z5piv5paw5qSN54mp44CCJyxcclxuICAgICAgICB0aXBUd286ICflpoLmnpzku5bmi7/lh7rmiJbor7Tlh7rnmoTmpI3niankvaDku4rlpKnnnIvliLDov4fvvIzor7flkYror4nku5bkuIrmrKHmmK/nnIvliLDnmoTvvJvlpoLmnpzkvaDlkKzku5bor7Tov4fvvIzliJnor7flkYror4nku5bkuIrmrKHmmK/lkKzliLDnmoTjgIInLCAvL+eUqOS6juWtmOWCqOWFs+WNoeetiee6p1xyXG4gICAgICAgIHRpcEVyck5ldzogJ+i/meaYr+i/meWxgOa4uOaIj+esrOS4gOasoeWHuueOsHvmpI3nial9JyxcclxuICAgICAgICB0aXBFcnJPbGQ6ICd75qSN54mpfeWImuaJjeWHuueOsOi/h+WRoicsXHJcbiAgICAgICAgdGlwRXJySGVhcjogJ+S4iuasoemBh+WIsHvmpI3nial95pe277yM5Ly85LmO5LiN5piv5ZCs5Yiw55qE5ZCnJyxcclxuICAgICAgICB0aXBFcnJTZWU6ICfkuIrmrKHpgYfliLB75qSN54mpfeaXtu+8jOS8vOS5juS4jeaYr+eci+WIsOeahOWQpycsXHJcbiAgICAgICAgdGlwRXJyTGFzdDogJ+S5i+WJjeehruWunueci+WIsOi/h3vmpI3nial977yM5L2G5pyA6L+R5LiA5qyh5Ly85LmO5LiN5piv55yL5Yiw55qE5ZGiJyxcclxuXHJcbiAgICB9KTtcclxuXHJcbn07Il19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/RankList/List.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List');
+// Script/module/RankList/List.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StartAxisType = exports.ListType = void 0;
+var ItemRender_1 = require("./ItemRender");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+/**列表排列方式 */
+var ListType;
+(function (ListType) {
+ /**水平排列 */
+ ListType[ListType["Horizontal"] = 1] = "Horizontal";
+ /**垂直排列 */
+ ListType[ListType["Vertical"] = 2] = "Vertical";
+ /**网格排列 */
+ ListType[ListType["Grid"] = 3] = "Grid";
+})(ListType = exports.ListType || (exports.ListType = {}));
+/**网格布局中的方向 */
+var StartAxisType;
+(function (StartAxisType) {
+ /**水平排列 */
+ StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal";
+ /**垂直排列 */
+ StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical";
+})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {}));
+/**
+ * 列表
+ * 根据cocos_example的listView改动而来
+ * @author chenkai 2020.7.8
+ * @example
+ * 1.创建cocos的ScrollView组件,添加List,设置List属性即可
+ *
+ */
+var List = /** @class */ (function (_super) {
+ __extends(List, _super);
+ function List() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ //==================== 属性面板 =========================
+ /**列表选项 */
+ _this.itemRender = null;
+ /**排列方式 */
+ _this.type = ListType.Vertical;
+ /**网格布局中的方向 */
+ _this.startAxis = StartAxisType.Horizontal;
+ /**列表项之间X间隔 */
+ _this.spaceX = 0;
+ /**列表项之间Y间隔 */
+ _this.spaceY = 0;
+ /**上间距 */
+ _this.padding_top = 0;
+ /**下间距 */
+ _this.padding_buttom = 0;
+ /**左间距 */
+ _this.padding_left = 0;
+ _this._padding = 0;
+ /**右间距 */
+ _this.padding_right = 0;
+ //====================== 滚动容器 ===============================
+ /**列表滚动容器 */
+ _this.scrollView = null;
+ /**scrollView的内容容器 */
+ _this.content = null;
+ //======================== 列表项 ===========================
+ /**列表项数据 */
+ _this.itemDataList = [];
+ /**应创建的实例数量 */
+ _this.spawnCount = 0;
+ /**存放列表项实例的数组 */
+ _this.itemList = [];
+ /**item的高度 */
+ _this.itemHeight = 0;
+ /**item的宽度 */
+ _this.itemWidth = 0;
+ /**存放不再使用中的列表项 */
+ _this.itemPool = [];
+ //======================= 计算参数 ==========================
+ /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */
+ _this.halfScrollView = 0;
+ /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */
+ _this.lastContentPosX = 0;
+ /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */
+ _this.lastContentPosY = 0;
+ /**网格行数 */
+ _this.gridRow = 0;
+ /**网格列数 */
+ _this.gridCol = 0;
+ /**刷新时间,单位s */
+ _this.updateTimer = 0;
+ /**刷新间隔,单位s */
+ _this.updateInterval = 0.1;
+ /**是否滚动容器 */
+ _this.bScrolling = false;
+ /**刷新的函数 */
+ _this.updateFun = function () { };
+ return _this;
+ }
+ List.prototype.onLoad = function () {
+ this.itemHeight = this.itemRender.height;
+ this.itemWidth = this.itemRender.width;
+ this.scrollView = this.node.getComponent(cc.ScrollView);
+ this.content = this.scrollView.content;
+ this.content.anchorX = 0;
+ this.content.anchorY = 1;
+ this.content.removeAllChildren();
+ this.scrollView.node.on("scrolling", this.onScrolling, this);
+ };
+ /**
+ * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据)
+ * @param itemDataList item数据列表
+ */
+ List.prototype.setData = function (itemDataList) {
+ this.itemDataList = itemDataList.slice();
+ this.updateContent();
+ };
+ /**计算列表的各项参数 */
+ List.prototype.countListParam = function () {
+ var dataLen = this.itemDataList.length;
+ if (this.type == ListType.Vertical) {
+ this.scrollView.horizontal = false;
+ this.scrollView.vertical = true;
+ this.content.width = this.content.parent.width;
+ this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom;
+ this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个
+ this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围
+ this.updateFun = this.updateV;
+ }
+ else if (this.type == ListType.Horizontal) {
+ this.scrollView.horizontal = true;
+ this.scrollView.vertical = false;
+ this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right;
+ this.content.height = this.content.parent.height;
+ this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2;
+ this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;
+ this.updateFun = this.udpateH;
+ }
+ else if (this.type == ListType.Grid) {
+ if (this.startAxis == StartAxisType.Vertical) {
+ this.scrollView.horizontal = false;
+ this.scrollView.vertical = true;
+ this.content.width = this.content.parent.width;
+ //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效
+ if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) {
+ this.padding_left = 0;
+ this.padding_right = 0;
+ console.error("padding_left或padding_right过大");
+ }
+ this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX));
+ this.gridRow = Math.ceil(dataLen / this.gridCol);
+ this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom;
+ this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2;
+ this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY;
+ this.updateFun = this.updateGrid_V;
+ }
+ else if (this.startAxis == StartAxisType.Horizontal) {
+ this.scrollView.horizontal = true;
+ this.scrollView.vertical = false;
+ //计算高间隔
+ this.content.height = this.content.parent.height;
+ //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效
+ if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) {
+ this.padding_top = 0;
+ this.padding_buttom = 0;
+ console.error("padding_top或padding_buttom过大");
+ }
+ this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY));
+ this.gridCol = Math.ceil(dataLen / this.gridRow);
+ this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right;
+ this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2;
+ this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;
+ this.updateFun = this.updateGrid_H;
+ }
+ }
+ };
+ /**
+ * 创建列表
+ * @param startIndex 起始显示的数据索引 0表示第一项
+ * @param offset scrollView偏移量
+ */
+ List.prototype.createList = function (startIndex, offset) {
+ //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端
+ if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) {
+ startIndex = this.itemDataList.length - this.spawnCount;
+ offset = this.scrollView.getMaxScrollOffset();
+ //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项
+ }
+ else if (this.itemDataList.length <= this.spawnCount) {
+ startIndex = 0;
+ }
+ for (var i = 0; i < this.spawnCount; i++) {
+ var item = void 0;
+ //需要显示的数据索引在数据范围内,则item实例显示出来
+ if (i + startIndex < this.itemDataList.length) {
+ if (this.itemList[i] == null) {
+ item = this.getItem();
+ this.itemList.push(item);
+ item.parent = this.content;
+ }
+ else {
+ item = this.itemList[i];
+ }
+ //需要显示的数据索引超过了数据范围,则item实例隐藏起来
+ }
+ else {
+ //item实例数量 > 需要显示的数据量
+ if (this.itemList.length > (this.itemDataList.length - startIndex)) {
+ item = this.itemList.pop();
+ item.removeFromParent();
+ this.itemPool.push(item);
+ }
+ continue;
+ }
+ var itemRender = item.getComponent(ItemRender_1.default);
+ itemRender.itemIndex = i + startIndex;
+ itemRender.data = this.itemDataList[i + startIndex];
+ itemRender.dataChanged();
+ if (this.type == ListType.Vertical) {
+ //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。
+ item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top);
+ }
+ else if (this.type == ListType.Horizontal) {
+ item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2);
+ }
+ else if (this.type == ListType.Grid) {
+ if (this.startAxis == StartAxisType.Vertical) {
+ var row = Math.floor((i + startIndex) / this.gridCol);
+ var col = (i + startIndex) % this.gridCol;
+ item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);
+ item.opacity = 255;
+ }
+ else if (this.startAxis == StartAxisType.Horizontal) {
+ var row = (i + startIndex) % this.gridRow;
+ var col = Math.floor((i + startIndex) / this.gridRow);
+ item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);
+ item.opacity = 255;
+ }
+ }
+ }
+ this.scrollView.scrollToOffset(offset);
+ };
+ /**获取一个列表项 */
+ List.prototype.getItem = function () {
+ if (this.itemPool.length == 0) {
+ return cc.instantiate(this.itemRender);
+ }
+ else {
+ return this.itemPool.pop();
+ }
+ };
+ List.prototype.update = function (dt) {
+ if (this.bScrolling == false) {
+ return;
+ }
+ this.updateTimer += dt;
+ if (this.updateTimer < this.updateInterval) {
+ return;
+ }
+ this.updateTimer = 0;
+ this.bScrolling = false;
+ this.updateFun();
+ };
+ List.prototype.onScrolling = function () {
+ this.bScrolling = true;
+ };
+ /**垂直排列 */
+ List.prototype.updateV = function () {
+ var items = this.itemList;
+ var item;
+ var bufferZone = this.halfScrollView;
+ var isUp = this.scrollView.content.y > this.lastContentPosY;
+ var offset = (this.itemHeight + this.spaceY) * items.length;
+ for (var i = 0; i < items.length; i++) {
+ item = items[i];
+ var viewPos = this.getPositionInView(item);
+ if (isUp) {
+ //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界
+ if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex + items.length;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.y = item.y - offset;
+ }
+ }
+ else {
+ //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界
+ if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex - items.length;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.y = item.y + offset;
+ }
+ }
+ }
+ this.lastContentPosY = this.scrollView.content.y;
+ };
+ /**水平排列 */
+ List.prototype.udpateH = function () {
+ var items = this.itemList;
+ var item;
+ var bufferZone = this.halfScrollView;
+ var isRight = this.scrollView.content.x > this.lastContentPosX;
+ var offset = (this.itemWidth + this.spaceX) * items.length;
+ for (var i = 0; i < items.length; i++) {
+ item = items[i];
+ var viewPos = this.getPositionInView(item);
+ if (isRight) {
+ //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界
+ if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex - items.length;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.x = item.x - offset;
+ }
+ }
+ else {
+ //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界
+ if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex + items.length;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.x = item.x + offset;
+ }
+ }
+ }
+ this.lastContentPosX = this.scrollView.content.x;
+ };
+ /**网格垂直排列 */
+ List.prototype.updateGrid_V = function () {
+ var items = this.itemList;
+ var item;
+ var bufferZone = this.halfScrollView;
+ var isUp = this.scrollView.content.y > this.lastContentPosY;
+ var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol);
+ for (var i = 0; i < items.length; i++) {
+ item = items[i];
+ var viewPos = this.getPositionInView(item);
+ if (isUp) {
+ //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界
+ if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol;
+ if (this.itemDataList[itemIndex] != null) {
+ item.y = item.y - offset;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.opacity = 255;
+ }
+ else {
+ item.y = item.y - offset;
+ itemRender.itemIndex = itemIndex;
+ item.opacity = 0;
+ }
+ }
+ }
+ else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界
+ if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol;
+ if (this.itemDataList[itemIndex] != null) {
+ item.y = item.y + offset;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.opacity = 255;
+ }
+ else {
+ item.y = item.y + offset;
+ itemRender.itemIndex = itemIndex;
+ item.opacity = 0;
+ }
+ }
+ }
+ }
+ this.lastContentPosY = this.scrollView.content.y;
+ };
+ /**网格水平排列 */
+ List.prototype.updateGrid_H = function () {
+ var items = this.itemList;
+ var item;
+ var bufferZone = this.halfScrollView;
+ var isRight = this.scrollView.content.x > this.lastContentPosX;
+ var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow);
+ for (var i = 0; i < items.length; i++) {
+ item = items[i];
+ var viewPos = this.getPositionInView(item);
+ if (isRight) {
+ //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界
+ if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow;
+ if (this.itemDataList[itemIndex] != null) {
+ item.x = item.x - offset;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.opacity = 255;
+ }
+ else {
+ item.x = item.x - offset;
+ itemRender.itemIndex = itemIndex;
+ item.opacity = 0;
+ }
+ }
+ }
+ else {
+ //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界
+ if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {
+ var itemRender = item.getComponent(ItemRender_1.default);
+ var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow;
+ if (this.itemDataList[itemIndex] != null) {
+ item.x = item.x + offset;
+ itemRender.itemIndex = itemIndex;
+ itemRender.data = this.itemDataList[itemIndex];
+ itemRender.dataChanged();
+ item.opacity = 255;
+ }
+ else {
+ item.x = item.x + offset;
+ itemRender.itemIndex = itemIndex;
+ item.opacity = 0;
+ }
+ }
+ }
+ }
+ this.lastContentPosX = this.scrollView.content.x;
+ };
+ /**获取item在scrollView的局部坐标 */
+ List.prototype.getPositionInView = function (item) {
+ var worldPos = item.parent.convertToWorldSpaceAR(item.position);
+ var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos);
+ return viewPos;
+ };
+ /**获取列表数据 */
+ List.prototype.getListData = function () {
+ return this.itemDataList;
+ };
+ /**
+ * 增加一项数据到列表的末尾
+ * @param data 数据
+ */
+ List.prototype.addItem = function (data) {
+ this.itemDataList.push(data);
+ this.updateContent();
+ };
+ /**
+ * 增加一项数据到列表指定位置
+ * @param index 位置,0表示第1项
+ * @param data 数据
+ */
+ List.prototype.addItemAt = function (index, data) {
+ if (this.itemDataList[index] != null || this.itemDataList.length == index) {
+ this.itemDataList.splice(index, 1, data);
+ this.updateContent();
+ }
+ };
+ /**
+ * 删除一项数据
+ * @param index 删除项的位置 ,0表示第1项
+ */
+ List.prototype.deleteItem = function (index) {
+ if (this.itemDataList[index] != null) {
+ this.itemDataList.splice(index, 1);
+ this.updateContent();
+ }
+ };
+ /**
+ * 改变一项数据
+ * @param index 位置,0表示第1项
+ * @param data 替换的数据
+ */
+ List.prototype.changeItem = function (index, data) {
+ if (this.itemDataList[index] != null) {
+ this.itemDataList[index] = data;
+ this.updateContent();
+ }
+ };
+ /**获取第一个Item的位置 */
+ List.prototype.updateContent = function () {
+ //显示列表实例为0个
+ if (this.itemList.length == 0) {
+ this.countListParam();
+ this.createList(0, new cc.Vec2(0, 0));
+ //显示列表的实例不为0个,则需要重新排列item实例数组
+ }
+ else {
+ if (this.type == ListType.Vertical) {
+ this.itemList.sort(function (a, b) {
+ return b.y - a.y;
+ });
+ }
+ else if (this.type == ListType.Horizontal) {
+ this.itemList.sort(function (a, b) {
+ return a.x - b.x;
+ });
+ }
+ else if (this.type == ListType.Grid) {
+ if (this.startAxis == StartAxisType.Vertical) {
+ this.itemList.sort(function (a, b) {
+ return a.x - b.x;
+ });
+ this.itemList.sort(function (a, b) {
+ return b.y - a.y;
+ });
+ }
+ else if (this.startAxis == StartAxisType.Horizontal) {
+ this.itemList.sort(function (a, b) {
+ return b.y - a.y;
+ });
+ this.itemList.sort(function (a, b) {
+ return a.x - b.x;
+ });
+ }
+ }
+ this.countListParam();
+ //获取第一个item实例需要显示的数据索引
+ var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex;
+ if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) {
+ startIndex += (startIndex + this.spawnCount) % this.gridCol;
+ }
+ else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) {
+ startIndex += (startIndex + this.spawnCount) % this.gridRow;
+ }
+ //getScrollOffset()和scrollToOffset()的x值是相反的
+ var offset = this.scrollView.getScrollOffset();
+ offset.x = -offset.x;
+ this.createList(startIndex, offset);
+ }
+ };
+ /**销毁 */
+ List.prototype.onDestroy = function () {
+ //清理列表项
+ var len = this.itemList.length;
+ for (var i = 0; i < len; i++) {
+ if (cc.isValid(this.itemList[i], true)) {
+ this.itemList[i].destroy();
+ }
+ }
+ this.itemList.length = 0;
+ //清理对象池
+ len = this.itemPool.length;
+ for (var i = 0; i < len; i++) {
+ if (cc.isValid(this.itemPool[i], true)) {
+ this.itemPool[i].destroy();
+ }
+ }
+ this.itemPool.length = 0;
+ //清理列表数据
+ this.itemDataList.length = 0;
+ };
+ __decorate([
+ property({ type: cc.Node, tooltip: "列表项" })
+ ], List.prototype, "itemRender", void 0);
+ __decorate([
+ property({ type: cc.Enum(ListType), tooltip: "排列方式" })
+ ], List.prototype, "type", void 0);
+ __decorate([
+ property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } })
+ ], List.prototype, "startAxis", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
+ ], List.prototype, "spaceX", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } })
+ ], List.prototype, "spaceY", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } })
+ ], List.prototype, "padding_top", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } })
+ ], List.prototype, "padding_buttom", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
+ ], List.prototype, "padding_left", void 0);
+ __decorate([
+ property(cc.Integer)
+ ], List.prototype, "_padding", void 0);
+ __decorate([
+ property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
+ ], List.prototype, "padding_right", void 0);
+ List = __decorate([
+ ccclass
+ ], List);
+ return List;
+}(cc.Component));
+exports.default = List;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiwyQ0FBcUM7QUFFL0IsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUMsWUFBWTtBQUNaLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNoQixVQUFVO0lBQ1YsbURBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDViwrQ0FBWSxDQUFBO0lBQ1osVUFBVTtJQUNWLHVDQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkI7QUFFRCxjQUFjO0FBQ2QsSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLFVBQVU7SUFDViw2REFBYyxDQUFBO0lBQ2QsVUFBVTtJQUNWLHlEQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUxXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBS3hCO0FBRUQ7Ozs7Ozs7R0FPRztBQUVIO0lBQWtDLHdCQUFZO0lBQTlDO1FBQUEscUVBeWlCQztRQXZpQkcscURBQXFEO1FBQ3JELFVBQVU7UUFFSCxnQkFBVSxHQUFZLElBQUksQ0FBQztRQUVsQyxVQUFVO1FBRUgsVUFBSSxHQUFhLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFMUMsY0FBYztRQUVQLGVBQVMsR0FBa0IsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUUzRCxjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixTQUFTO1FBRUYsaUJBQVcsR0FBVyxDQUFDLENB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SSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs4Q0FDdEc7SUFLaEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTztJQUk1QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7K0NBQ3JHO0lBMUNoQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBeWlCeEI7SUFBRCxXQUFDO0NBemlCRCxBQXlpQkMsQ0F6aUJpQyxFQUFFLENBQUMsU0FBUyxHQXlpQjdDO2tCQXppQm9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgSXRlbVJlbmRlciBmcm9tIFwiLi9JdGVtUmVuZGVyXCJcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG4vKirliJfooajmjpLliJfmlrnlvI8gKi9cclxuZXhwb3J0IGVudW0gTGlzdFR5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG4gICAgLyoq572R5qC85o6S5YiXICovXHJcbiAgICBHcmlkID0gM1xyXG59XHJcblxyXG4vKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuZXhwb3J0IGVudW0gU3RhcnRBeGlzVHlwZSB7XHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIEhvcml6b250YWwgPSAxLFxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBWZXJ0aWNhbCA9IDIsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDliJfooahcclxuICog5qC55o2uY29jb3NfZXhhbXBsZeeahGxpc3RWaWV35pS55Yqo6ICM5p2lXHJcbiAqIEBhdXRob3IgY2hlbmthaSAyMDIwLjcuOFxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgMS7liJvlu7pjb2Nvc+eahFNjcm9sbFZpZXfnu4Tku7bvvIzmt7vliqBMaXN077yM6K6+572uTGlzdOWxnuaAp+WNs+WPr1xyXG4gKiAgXHJcbiAqL1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXN0IGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09IOWxnuaAp+mdouadvyA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpgInpobkgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIHRvb2x0aXA6IFwi5YiX6KGo6aG5XCIgfSlcclxuICAgIHB1YmxpYyBpdGVtUmVuZGVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvKirmjpLliJfmlrnlvI8gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oTGlzdFR5cGUpLCB0b29sdGlwOiBcIuaOkuWIl+aWueW8j1wiIH0pXHJcbiAgICBwdWJsaWMgdHlwZTogTGlzdFR5cGUgPSBMaXN0VHlwZS5WZXJ0aWNhbDtcclxuXHJcbiAgICAvKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oU3RhcnRBeGlzVHlwZSksIHRvb2x0aXA6IFwi572R5qC85biD5bGA5Lit55qE5pa55ZCRXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3RhcnRBeGlzOiBTdGFydEF4aXNUeXBlID0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFjpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WOmXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VYOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFnpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WemXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkIH0gfSlcclxuICAgIHB1YmxpYyBzcGFjZVk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5LiK6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuS4iumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHBhZGRpbmdfdG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4i+mXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIvpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2J1dHRvbTogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlt6bpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5bem6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2xlZnQ6IG51bWJlciA9IDA7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuSW50ZWdlcilcclxuICAgIHB1YmxpYyBfcGFkZGluZzogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlj7Ppl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5Y+z6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3JpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PSDmu5rliqjlrrnlmaggPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo5rua5Yqo5a655ZmoICovXHJcbiAgICBwdWJsaWMgc2Nyb2xsVmlldzogY2MuU2Nyb2xsVmlldyA9IG51bGw7XHJcbiAgICAvKipzY3JvbGxWaWV355qE5YaF5a655a655ZmoICovXHJcbiAgICBwcml2YXRlIGNvbnRlbnQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09IOWIl+ihqOmhuSA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOmhueaVsOaNriAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIC8qKuW6lOWIm+W7uueahOWunuS+i+aVsOmHjyAqL1xyXG4gICAgcHJpdmF0ZSBzcGF3bkNvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5YiX6KGo6aG55a6e5L6L55qE5pWw57uEICovXHJcbiAgICBwcml2YXRlIGl0ZW1MaXN0OiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG4gICAgLyoqaXRlbeeahOmrmOW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqaXRlbeeahOWuveW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICAvKirlrZjmlL7kuI3lho3kvb/nlKjkuK3nmoTliJfooajpobkgKi9cclxuICAgIHByaXZhdGUgaXRlbVBvb2w6IEFycmF5PGNjLk5vZGU+ID0gW107XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PT09PSDorqHnrpflj4LmlbAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKui3neemu3Njcm9sbFZpZXfkuK3lv4PngrnnmoTot53nprvvvIzotoXov4fov5nkuKrot53nprvnmoRpdGVt5Lya6KKr6YeN572u77yM5LiA6Iis6K6+572u5Li6IHNjcm9sbFZJZXcuaGVpZ2h0LzIgKyBpdGVtLmhlaWd0LzIgKyBzcGFjZe+8jOWboOS4uui/meS4qui3neemu2l0ZW3mraPlpb3otoXlh7pzY3JvbGxWaWV35pi+56S66IyD5Zu0ICovXHJcbiAgICBwcml2YXRlIGhhbGZTY3JvbGxWaWV3OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFjlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWOWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeW3pui/mOaYr+WQkeWPs+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1g6IG51bWJlciA9IDA7XHJcbiAgICAvKirkuIrkuIDmrKFjb250ZW5055qEWeWAvO+8jOeUqOS6juWSjOeOsOWcqGNvbnRlbnTnmoRZ5YC85q+U6L6D77yM5b6X5Ye65piv5ZCR5LiK6L+Y5piv5ZCR5LiL5rua5YqoICovXHJcbiAgICBwcml2YXRlIGxhc3RDb250ZW50UG9zWTogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOihjOaVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkUm93OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq572R5qC85YiX5pWwICovXHJcbiAgICBwcml2YXRlIGdyaWRDb2w6IG51bWJlciA9IDA7XHJcbiAgICAvKirliLfmlrDml7bpl7TvvIzljZXkvY1zICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVyOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw6Ze06ZqU77yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnRlcnZhbDogbnVtYmVyID0gMC4xO1xyXG4gICAgLyoq5piv5ZCm5rua5Yqo5a655ZmoICovXHJcbiAgICBwcml2YXRlIGJTY3JvbGxpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKuWIt+aWsOeahOWHveaVsCAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGdW46IEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLml0ZW1IZWlnaHQgPSB0aGlzLml0ZW1SZW5kZXIuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuaXRlbVdpZHRoID0gdGhpcy5pdGVtUmVuZGVyLndpZHRoO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU2Nyb2xsVmlldyk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQ7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LmFuY2hvclggPSAwO1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JZID0gMTtcclxuICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcubm9kZS5vbihcInNjcm9sbGluZ1wiLCB0aGlzLm9uU2Nyb2xsaW5nLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIl+ihqOaVsOaNriAo5YiX6KGo5pWw5o2u5aSN5Yi25L2/55So77yM5aaC5p6c5YiX6KGo5pWw5o2u5pS55Y+Y77yM5YiZ6ZyA6KaB6YeN5paw6K6+572u5LiA6YGN5pWw5o2uKVxyXG4gICAgICogQHBhcmFtIGl0ZW1EYXRhTGlzdCBpdGVt5pWw5o2u5YiX6KGoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREYXRhKGl0ZW1EYXRhTGlzdDogQXJyYXk8YW55Pikge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0ID0gaXRlbURhdGFMaXN0LnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvKirorqHnrpfliJfooajnmoTlkITpobnlj4LmlbAgKi9cclxuICAgIHByaXZhdGUgY291bnRMaXN0UGFyYW0oKSB7XHJcbiAgICAgICAgbGV0IGRhdGFMZW4gPSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmNvbnRlbnQucGFyZW50LndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gZGF0YUxlbiAqIHRoaXMuaXRlbUhlaWdodCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICsgMjsgLy/orqHnrpfliJvlu7rnmoRpdGVt5a6e5L6L5pWw6YeP77yM5q+U5b2T5YmNc2Nyb2xsVmlld+WuueWZqOiDveaUvuS4i+eahGl0ZW3mlbDph4/lho3liqDkuIoy5LiqXHJcbiAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZOyAvL+iuoeeul2J1ZmZlclpvbmXvvIxpdGVt55qE5pi+56S66IyD5Zu0XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVWO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gZGF0YUxlbiAqIHRoaXMuaXRlbVdpZHRoICsgKGRhdGFMZW4gLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSkgKyAyO1xyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51ZHBhdGVIO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodCArIHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVggPiB0aGlzLmNvbnRlbnQud2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfbGVmdCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX3JpZ2h0ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ19sZWZ05oiWcGFkZGluZ19yaWdodOi/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQud2lkdGggLSB0aGlzLnBhZGRpbmdfbGVmdCAtIHRoaXMucGFkZGluZ19yaWdodCkgLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkUm93ID0gTWF0aC5jZWlsKGRhdGFMZW4gLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IHRoaXMuZ3JpZFJvdyAqIHRoaXMuaXRlbUhlaWdodCArICh0aGlzLmdyaWRSb3cgLSAxKSAqIHRoaXMuc3BhY2VZICsgdGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b207XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICogdGhpcy5ncmlkQ29sICsgdGhpcy5ncmlkQ29sICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGdW4gPSB0aGlzLnVwZGF0ZUdyaWRfVjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy52ZXJ0aWNhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy/orqHnrpfpq5jpl7TpmpRcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbSArIHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZID4gdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ190b3AgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19idXR0b20gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJwYWRkaW5nX3RvcOaIlnBhZGRpbmdfYnV0dG9t6L+H5aSnXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguZmxvb3IoKHRoaXMuY29udGVudC5oZWlnaHQgLSB0aGlzLnBhZGRpbmdfdG9wIC0gdGhpcy5wYWRkaW5nX2J1dHRvbSkgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbCA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuZ3JpZENvbCAqIHRoaXMuaXRlbVdpZHRoICsgKHRoaXMuZ3JpZENvbCAtIDEpICogdGhpcy5zcGFjZVggKyB0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICogdGhpcy5ncmlkUm93ICsgdGhpcy5ncmlkUm93ICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvIDIgKyB0aGlzLml0ZW1XaWR0aCAvIDIgKyB0aGlzLnNwYWNlWDtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX0g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rliJfooaggXHJcbiAgICAgKiBAcGFyYW0gc3RhcnRJbmRleCDotbflp4vmmL7npLrnmoTmlbDmja7ntKLlvJUgMOihqOekuuesrOS4gOmhuVxyXG4gICAgICogQHBhcmFtIG9mZnNldCAgICAgc2Nyb2xsVmlld+WBj+enu+mHj1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZUxpc3Qoc3RhcnRJbmRleDogbnVtYmVyLCBvZmZzZXQ6IGNjLlZlYzIpIHtcclxuICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA+IOiZmuaLn+WIl+ihqOmVv+W6pu+8jCDliKDpmaTmnIDmnKvlsL7lh6DkuKrmlbDmja7ml7bvvIzliJfooajpnIDopoHph43nva7kvY3nva7liLBzY3JvbGxWaWV35pyA5bqV56uvXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA+IHRoaXMuc3Bhd25Db3VudCAmJiAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCAtIDEpID49IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gdGhpcy5zcGF3bkNvdW50O1xyXG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0TWF4U2Nyb2xsT2Zmc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA8PSDomZrmi5/liJfooajplb/luqbvvIwg6ZqQ6JeP5aSa5L2Z55qE6Jma5ouf5YiX6KGo6aG5IFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIDw9IHRoaXMuc3Bhd25Db3VudCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zcGF3bkNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV5Zyo5pWw5o2u6IyD5Zu05YaF77yM5YiZaXRlbeWunuS+i+aYvuekuuWHuuadpVxyXG4gICAgICAgICAgICBpZiAoaSArIHN0YXJ0SW5kZXggPCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1MaXN0W2ldID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5nZXRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV6LaF6L+H5LqG5pWw5o2u6IyD5Zu077yM5YiZaXRlbeWunuS+i+makOiXj+i1t+adpVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5a6e5L6L5pWw6YePID4g6ZyA6KaB5pi+56S655qE5pWw5o2u6YePXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdC5sZW5ndGggPiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gc3RhcnRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdC5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1Qb29sLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpICsgc3RhcnRJbmRleDtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaSArIHN0YXJ0SW5kZXhdO1xyXG4gICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAvL+WboOS4umNvbnRlbnTnmoTplJrngrlY5pivMO+8jOaJgOS7pWl0ZW3nmoR45YC85pivY29udGVudC53aXRoLzLooajnpLrlsYXkuK3vvIzplJrngrlZ5pivMe+8jOaJgOS7pWl0ZW3nmoR55YC85LuOY29udGVudOmhtumDqOWQkeS4i+aYrzDliLDotJ/ml6DnqbfjgILmiYDku6VpdGVtLnk9IC1pdGVtLmhlaWdodC8y5pe277yM5piv5ZyoY29udGVudOeahOmhtumDqOOAglxyXG4gICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbih0aGlzLmNvbnRlbnQud2lkdGggLyAyLCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5zcGFjZVkgKiAoaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBpICsgc3RhcnRJbmRleCkgKyB0aGlzLnNwYWNlWCAqIChpICsgc3RhcnRJbmRleCkgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLXRoaXMuY29udGVudC5oZWlnaHQgLyAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSAoaSArIHN0YXJ0SW5kZXgpICUgdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2wgPSBNYXRoLmZsb29yKChpICsgc3RhcnRJbmRleCkgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBjb2wpICsgdGhpcy5zcGFjZVggKiBjb2wgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIHJvdykgLSB0aGlzLnNwYWNlWSAqIHJvdyAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W5LiA5Liq5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGdldEl0ZW0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVBvb2wubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNjLmluc3RhbnRpYXRlKHRoaXMuaXRlbVJlbmRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbVBvb2wucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmJTY3JvbGxpbmcgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyICs9IGR0O1xyXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVyIDwgdGhpcy51cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSAwO1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRnVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5iU2Nyb2xsaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNVcCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiK5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4iui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIvmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiL5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4i+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA+IGJ1ZmZlclpvbmUgJiYgaXRlbS55IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2J1dHRvbSA+IC10aGlzLmNvbnRlbnQuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdWRwYXRlSCgpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNSaWdodCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnggPiB0aGlzLmxhc3RDb250ZW50UG9zWDtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpICogaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9WKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1VwID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueSA+IHRoaXMubGFzdENvbnRlbnRQb3NZO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpICogKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCkgKiB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHsvL2l0ZW3kuIvmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiL6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4iuaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIrmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiK6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS55ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3RvcCA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0Q29udGVudFBvc1kgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKue9keagvOawtOW5s+aOkuWIlyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkX0goKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpICogdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5ZpdGVt5Zyoc2Nyb2xsVmlld+eahOWxgOmDqOWdkOaghyAqL1xyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvbkluVmlldyhpdGVtKSB7XHJcbiAgICAgICAgbGV0IHdvcmxkUG9zID0gaXRlbS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuY29udmVydFRvTm9kZVNwYWNlQVIod29ybGRQb3MpO1xyXG4gICAgICAgIHJldHVybiB2aWV3UG9zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluWIl+ihqOaVsOaNriAqL1xyXG4gICAgcHVibGljIGdldExpc3REYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1EYXRhTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWinuWKoOS4gOmhueaVsOaNruWIsOWIl+ihqOeahOacq+WwvlxyXG4gICAgICogQHBhcmFtIGRhdGEg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnB1c2goZGF0YSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajmjIflrprkvY3nva5cclxuICAgICAqIEBwYXJhbSBpbmRleCAgIOS9jee9ru+8jDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtQXQoaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsIHx8IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9PSBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5zcGxpY2UoaW5kZXgsIDEsIGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTkuIDpobnmlbDmja5cclxuICAgICAqIEBwYXJhbSBpbmRleCDliKDpmaTpobnnmoTkvY3nva4gLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pS55Y+Y5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva4sMOihqOekuuesrDHpoblcclxuICAgICAqIEBwYXJhbSBkYXRhICDmm7/mjaLnmoTmlbDmja5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZUl0ZW0oaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bnrKzkuIDkuKpJdGVt55qE5L2N572uICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgLy/mmL7npLrliJfooajlrp7kvovkuLow5LiqXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoMCwgbmV3IGNjLlZlYzIoMCwgMCkpO1xyXG4gICAgICAgICAgICAvL+aYvuekuuWIl+ihqOeahOWunuS+i+S4jeS4ujDkuKrvvIzliJnpnIDopoHph43mlrDmjpLliJdpdGVt5a6e5L6L5pWw57uEXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvdW50TGlzdFBhcmFtKCk7XHJcblxyXG4gICAgICAgICAgICAvL+iOt+WPluesrOS4gOS4qml0ZW3lrp7kvovpnIDopoHmmL7npLrnmoTmlbDmja7ntKLlvJVcclxuICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSB0aGlzLml0ZW1MaXN0WzBdLmdldENvbXBvbmVudChJdGVtUmVuZGVyKS5pdGVtSW5kZXg7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ICs9IChzdGFydEluZGV4ICsgdGhpcy5zcGF3bkNvdW50KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9nZXRTY3JvbGxPZmZzZXQoKeWSjHNjcm9sbFRvT2Zmc2V0KCnnmoR45YC85piv55u45Y+N55qEXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQ6IGNjLlZlYzIgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0U2Nyb2xsT2Zmc2V0KCk7XHJcbiAgICAgICAgICAgIG9mZnNldC54ID0gLSBvZmZzZXQueDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGlzdChzdGFydEluZGV4LCBvZmZzZXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirplIDmr4EgKi9cclxuICAgIHB1YmxpYyBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy/muIXnkIbliJfooajpoblcclxuICAgICAgICBsZXQgbGVuID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1MaXN0W2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtTGlzdC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5a+56LGh5rGgXHJcbiAgICAgICAgbGVuID0gdGhpcy5pdGVtUG9vbC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1Qb29sW2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtUG9vbC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo5pWw5o2uXHJcbiAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_game_util.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '63c53CB9dhL/phFOPtTeuF7', 'lq_game_util');
+// Script/lq_base/util/lq_game_util.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQGameUtil = void 0;
+var director = cc.director;
+var tween = cc.tween;
+var visibleRect = cc.visibleRect;
+var find = cc.find;
+var LQGameUtil = /** @class */ (function () {
+ function LQGameUtil() {
+ }
+ LQGameUtil.get_image = function (url, callback, cache) {
+ if (cache === void 0) { cache = true; }
+ if (!url || url === '') {
+ callback(false, undefined);
+ return;
+ }
+ if (this.image_cache[url]) {
+ callback(true, this.image_cache[url]);
+ return;
+ }
+ // cc.loader.load(
+ // {url: url, type: 'png'},
+ // (err: string, texture: Texture2D | undefined) => {
+ // if (err) {
+ // // console.error('err:' + err);
+ // callback(false, undefined);
+ // return;
+ // }
+ // const frame = new SpriteFrame(texture);
+ // callback(true, frame);
+ // if (cache) {
+ // this.image_cache[url] = frame;
+ // }
+ // });
+ };
+ LQGameUtil.canvas_policy = function (c, width, height) {
+ // @ts-ignore
+ var ratio = visibleRect.height / visibleRect.width;
+ if (ratio > height / width) {
+ c.fitHeight = false;
+ c.fitWidth = true;
+ }
+ else {
+ c.fitHeight = true;
+ c.fitWidth = false;
+ }
+ return c.fitHeight;
+ };
+ LQGameUtil.recursion_node_property = function (node, p) {
+ if (node.parent) {
+ // @ts-ignore
+ p.value *= node.parent[p.key];
+ this.recursion_node_property(node.parent, p);
+ }
+ };
+ /**
+ *
+ * @param path
+ * eg.'Canvas>node_main>btn_start'
+ */
+ LQGameUtil.find_node = function (path) {
+ if (!path || path.length <= 0) {
+ console.warn('路径不正确');
+ return undefined;
+ }
+ var arr = path.split('/');
+ var root = find(arr[0]);
+ if (!root) {
+ console.warn('没找到节点:' + arr[0]);
+ return undefined;
+ }
+ var node = root;
+ for (var i = 1; i < arr.length; i++) {
+ var temp = node.getChildByName(arr[i]);
+ if (!temp) {
+ console.warn('没找到节点:' + arr[i]);
+ return undefined;
+ }
+ node = temp;
+ }
+ return node;
+ };
+ LQGameUtil.wait = function (time) {
+ return new Promise(function (resolve) {
+ tween(director.getScene()).delay(time).call(function () {
+ resolve();
+ }).start();
+ });
+ };
+ LQGameUtil.set_clip = function (clip, off, flip_x, flip_y) {
+ var s = function (arr) {
+ for (var i = 0; i < arr.length; i++) {
+ if (i % 2 === 0) {
+ if (flip_x) {
+ arr[i] = -arr[i];
+ }
+ arr[i] += off.x;
+ }
+ else {
+ if (flip_y) {
+ arr[i] = -arr[i];
+ }
+ arr[i] += off.y;
+ }
+ }
+ };
+ var pos_arr = clip.curveData.props.position;
+ for (var i = 0; i < pos_arr.length; i++) {
+ var motionPath = pos_arr[i].motionPath;
+ var value = pos_arr[i].value;
+ if (motionPath) {
+ for (var i_1 = 0; i_1 < motionPath.length; i_1++) {
+ s(motionPath[i_1]);
+ }
+ }
+ s(value);
+ }
+ };
+ LQGameUtil.scroll_layout = function (layout, speed) {
+ if (speed === void 0) { speed = 50; }
+ layout.updateLayout();
+ var len = layout.type === cc.Layout.Type.HORIZONTAL ? layout.node.width : layout.node.height;
+ var time = len / speed;
+ if (layout.type === cc.Layout.Type.HORIZONTAL) {
+ var offset_1 = layout.node.anchorX === 1 ? layout.node.width * 0.5 : -layout.node.width * 0.5;
+ layout.node.runAction(cc.repeatForever(cc.sequence(cc.moveBy(time, cc.v2(offset_1, 0)), cc.callFunc(function () {
+ layout.node.x -= offset_1;
+ }))));
+ }
+ else if (layout.type === cc.Layout.Type.VERTICAL || layout.type === cc.Layout.Type.GRID) {
+ var offset_2 = layout.node.anchorY === 1 ? layout.node.height * 0.5 : -layout.node.height * 0.5;
+ layout.node.runAction(cc.repeatForever(cc.sequence(cc.moveBy(time, cc.v2(0, offset_2)), cc.callFunc(function () {
+ layout.node.y -= offset_2;
+ }))));
+ }
+ };
+ LQGameUtil.image_cache = {};
+ return LQGameUtil;
+}());
+exports.LQGameUtil = LQGameUtil;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9nYW1lX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBR3hCLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFDcEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUd0QjtJQUFBO0lBeUlBLENBQUM7SUF0SWlCLG9CQUFTLEdBQXZCLFVBQXdCLEdBQVcsRUFBRSxRQUFpRSxFQUFFLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7UUFDaEgsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU87U0FDVjtRQUNELGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IseURBQXlEO1FBQ3pELHFCQUFxQjtRQUNyQiw4Q0FBOEM7UUFDOUMsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixZQUFZO1FBQ1osa0RBQWtEO1FBQ2xELGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsNkNBQTZDO1FBQzdDLFlBQVk7UUFDWixVQUFVO0lBQ2QsQ0FBQztJQUVhLHdCQUFhLEdBQTNCLFVBQTRCLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRSxhQUFhO1FBQ2IsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxD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LGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFNLENBQUMsQ0FBQyxFQUNqQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0wsQ0FBQztJQXRJYyxzQkFBVyxHQUFtQyxFQUFFLENBQUM7SUF3SXBFLGlCQUFDO0NBeklELEFBeUlDLElBQUE7QUF6SVksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3ByaXRlRnJhbWUgPSBjYy5TcHJpdGVGcmFtZTtcclxuaW1wb3J0IGRpcmVjdG9yID0gY2MuZGlyZWN0b3I7XHJcbmltcG9ydCB0d2VlbiA9IGNjLnR3ZWVuO1xyXG5pbXBvcnQgVGV4dHVyZTJEID0gY2MuVGV4dHVyZTJEO1xyXG5pbXBvcnQgQ2FudmFzID0gY2MuQ2FudmFzO1xyXG5pbXBvcnQgdmlzaWJsZVJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuaW1wb3J0IGZpbmQgPSBjYy5maW5kO1xyXG5pbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcblxyXG5leHBvcnQgY2xhc3MgTFFHYW1lVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpbWFnZV9jYWNoZTogeyBba2V5OiBzdHJpbmddOiBTcHJpdGVGcmFtZSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfaW1hZ2UodXJsOiBzdHJpbmcsIGNhbGxiYWNrOiAoc3VjY2VzczogYm9vbGVhbiwgc2Y6IFNwcml0ZUZyYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkLCBjYWNoZSA9IHRydWUpIHtcclxuICAgICAgICBpZiAoIXVybCB8fCB1cmwgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX2NhY2hlW3VybF0pIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgdGhpcy5pbWFnZV9jYWNoZVt1cmxdKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy5sb2FkZXIubG9hZChcclxuICAgICAgICAvLyAgICAge3VybDogdXJsLCB0eXBlOiAncG5nJ30sXHJcbiAgICAgICAgLy8gICAgIChlcnI6IHN0cmluZywgdGV4dHVyZTogVGV4dHVyZTJEIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignZXJyOicgKyBlcnIpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZyYW1lID0gbmV3IFNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIC8vICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgZnJhbWUpO1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5pbWFnZV9jYWNoZVt1cmxdID0gZnJhbWU7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2FudmFzX3BvbGljeShjOiBDYW52YXMsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gdmlzaWJsZVJlY3QuaGVpZ2h0IC8gdmlzaWJsZVJlY3Qud2lkdGg7XHJcbiAgICAgICAgaWYgKHJhdGlvID4gaGVpZ2h0IC8gd2lkdGgpIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYy5maXRXaWR0aCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjLmZpdFdpZHRoID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjLmZpdEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGU6IE5vZGUsIHA6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkge1xyXG4gICAgICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHAudmFsdWUgKj0gbm9kZS5wYXJlbnRbcC5rZXldO1xyXG4gICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGUucGFyZW50LCBwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGhcclxuICAgICAqIGVnLidDYW52YXM+bm9kZV9tYWluPmJ0bl9zdGFydCdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBmaW5kX25vZGUocGF0aDogc3RyaW5nKTogTm9kZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKCFwYXRoIHx8IHBhdGgubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCfot6/lvoTkuI3mraPnoa4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYXJyID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSBmaW5kKGFyclswXSk7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybign5rKh5om+5Yiw6IqC54K5OicgKyBhcnJbMF0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IHJvb3Q7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgdGVtcCA9IG5vZGUuZ2V0Q2hpbGRCeU5hbWUoYXJyW2ldKTtcclxuICAgICAgICAgICAgaWYgKCF0ZW1wKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+ayoeaJvuWIsOiKgueCuTonICsgYXJyW2ldKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZSA9IHRlbXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgd2FpdCh0aW1lOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgdHdlZW4oZGlyZWN0b3IuZ2V0U2NlbmUoKSkuZGVsYXkodGltZSkuY2FsbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pLnN0YXJ0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBzZXRfY2xpcChjbGlwOiBjYy5BbmltYXRpb25DbGlwLCBvZmY6IGNjLlZlYzIsIGZsaXBfeDogYm9vbGVhbiwgZmxpcF95OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHMgPSAoYXJyOiBudW1iZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgJSAyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsaXBfeCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJbaV0gPSAtYXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhcnJbaV0gKz0gb2ZmLng7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGlwX3kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyW2ldID0gLWFycltpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyW2ldICs9IG9mZi55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBwb3NfYXJyID0gY2xpcC5jdXJ2ZURhdGEucHJvcHMucG9zaXRpb247XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NfYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdGlvblBhdGggPSBwb3NfYXJyW2ldLm1vdGlvblBhdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcG9zX2FycltpXS52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKG1vdGlvblBhdGgpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW90aW9uUGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHMobW90aW9uUGF0aFtpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2Nyb2xsX2xheW91dChsYXlvdXQ6IGNjLkxheW91dCwgc3BlZWQ6IG51bWJlciA9IDUwKSB7XHJcbiAgICAgICAgbGF5b3V0LnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5IT1JJWk9OVEFMID8gbGF5b3V0Lm5vZGUud2lkdGggOiBsYXlvdXQubm9kZS5oZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgdGltZSA9IGxlbiAvIHNwZWVkO1xyXG4gICAgICAgIGlmIChsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuSE9SSVpPTlRBTCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWCA9PT0gMSA/IGxheW91dC5ub2RlLndpZHRoICogMC41IDogLWxheW91dC5ub2RlLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICBsYXlvdXQubm9kZS5ydW5BY3Rpb24oY2MucmVwZWF0Rm9yZXZlcihjYy5zZXF1ZW5jZShcclxuICAgICAgICAgICAgICAgIGNjLm1vdmVCeSh0aW1lLCBjYy52MihvZmZzZXQsIDApKSxcclxuICAgICAgICAgICAgICAgIGNjLmNhbGxGdW5jKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsYXlvdXQubm9kZS54IC09IG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5WRVJUSUNBTCB8fCBsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuR1JJRCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWSA9PT0gMSA/IGxheW91dC5ub2RlLmhlaWdodCAqIDAuNSA6IC1sYXlvdXQubm9kZS5oZWlnaHQgKiAwLjU7XHJcbiAgICAgICAgICAgIGxheW91dC5ub2RlLnJ1bkFjdGlvbihjYy5yZXBlYXRGb3JldmVyKGNjLnNlcXVlbmNlKFxyXG4gICAgICAgICAgICAgICAgY2MubW92ZUJ5KHRpbWUsIGNjLnYyKDAsIG9mZnNldCkpLFxyXG4gICAgICAgICAgICAgICAgY2MuY2FsbEZ1bmMoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxheW91dC5ub2RlLnkgLT0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager');
+// Script/module/Music/AudioManager.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var AudioManager = /** @class */ (function (_super) {
+ __extends(AudioManager, _super);
+ function AudioManager() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ //背景音乐
+ _this.audioGameBgm0 = null;
+ _this.xiaochu = null;
+ _this.hit = null;
+ _this.down = null;
+ _this.fangxiang = null;
+ _this.build = null;
+ _this.win = null;
+ _this.lose = null;
+ _this.anniu_Big = null;
+ _this.anniu_little = null;
+ _this.zhuan1 = null;
+ _this.zhuan2 = null;
+ return _this;
+ }
+ AudioManager_1 = AudioManager;
+ AudioManager.prototype.onLoad = function () {
+ if (AudioManager_1._instance == null) {
+ AudioManager_1._instance = this;
+ cc.fx.AudioManager = AudioManager_1;
+ cc.game.addPersistRootNode(this.node);
+ }
+ else {
+ return;
+ }
+ this.reward = false;
+ this.finish = false;
+ this.rewardCount = 0;
+ this.ctor();
+ this.preload();
+ };
+ AudioManager.prototype.ctor = function () {
+ this.mAudioMap = {};
+ /**
+ * 默认音量大小
+ * @type {number}
+ */
+ this.bgMusicVolume = 0.1;
+ this.effectMusicVolume = 1;
+ this.mMusicSwitch = 1;
+ this.mEffectSwitch = 1;
+ };
+ AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) {
+ // if (isBgMusic && !this.mMusicSwitch) return;
+ // if (!isBgMusic && !this.mEffectSwitch) return;
+ var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;
+ // if (cc.sys.isBrowser) {
+ // if(audioSource == this.brickSound){
+ // volume = 0.1;
+ // }
+ volume = 1;
+ cc.audioEngine.setEffectsVolume(1);
+ cc.audioEngine.setMusicVolume(1);
+ if (audioSource.name == "lose") {
+ cc.audioEngine.setEffectsVolume(0.5);
+ }
+ else {
+ cc.audioEngine.setEffectsVolume(1);
+ }
+ var context = cc.audioEngine.playEffect(audioSource, loop);
+ if (callback) {
+ cc.audioEngine.setFinishCallback(context, function () {
+ callback.call(this);
+ }.bind(this));
+ }
+ // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);
+ this.mAudioMap[audioSource] = context;
+ return audioSource;
+ // } else {
+ // return audioSource;
+ // }
+ };
+ AudioManager.prototype.save = function () {
+ // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);
+ // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);
+ };
+ // static get Instance()
+ // {
+ // if (this._instance == null)
+ // {
+ // this._instance = new AudioManager();
+ // }
+ // return this._instance;
+ // }
+ AudioManager.prototype.preload = function () {
+ if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) {
+ return;
+ }
+ var musics = [
+ this.audioGameBgm0,
+ ];
+ musics.forEach(function (path) {
+ });
+ console.log("音乐开关", cc.fx.GameConfig.GM_INFO.musicOpen);
+ this.playMusicGame();
+ };
+ AudioManager.prototype.getAudioMusicSwitch = function () {
+ return this.mMusicSwitch;
+ };
+ AudioManager.prototype.getAudioEffectSwitch = function () {
+ return this.mEffectSwitch;
+ };
+ AudioManager.prototype.trunAudioSound = function (on) {
+ this.switchMusic(on);
+ this.switchEffect(on);
+ };
+ AudioManager.prototype.switchMusic = function (on) {
+ if (this.mMusicSwitch != (on ? 1 : 0)) {
+ this.mMusicSwitch = 1 - this.mMusicSwitch;
+ // this.save();
+ }
+ if (on) {
+ this.playMusicGame();
+ }
+ else {
+ this.stopMusic();
+ }
+ };
+ AudioManager.prototype.switchEffect = function (on) {
+ if (this.mEffectSwitch != (on ? 1 : 0)) {
+ this.mEffectSwitch = 1 - this.mEffectSwitch;
+ // this.save();
+ }
+ };
+ AudioManager.prototype.onHide = function () {
+ cc.audioEngine.pauseAll();
+ };
+ AudioManager.prototype.onShow = function () {
+ cc.audioEngine.resumeAll();
+ };
+ //播放音效
+ AudioManager.prototype.playEffect = function (name, callback) {
+ if (!cc.fx.GameConfig.GM_INFO.effectOpen) {
+ return;
+ }
+ if (this[name])
+ return this.play(this[name], false, callback, this.mEffectSwitch);
+ };
+ AudioManager.prototype.playMusic = function (key, callback, loop) {
+ if (!cc.fx.GameConfig.GM_INFO.musicOpen) {
+ return;
+ }
+ loop = typeof loop == 'undefined' || loop ? true : false;
+ this.stopMusic();
+ this.mMusicKey = this.play(key, loop, callback, true);
+ };
+ /**
+ * 游戏背景音乐
+ */
+ AudioManager.prototype.playMusicGame = function () {
+ this.stopMusic();
+ this.playMusic(this.audioGameBgm0, {}, true);
+ };
+ /**
+ * 停止背景音乐播放
+ */
+ AudioManager.prototype.stopMusic = function () {
+ // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);
+ cc.audioEngine.stopAll();
+ };
+ /**
+ * 恢复被暂停的背景音乐播放
+ */
+ AudioManager.prototype.resumeMusic = function () {
+ // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放
+ cc.audioEngine.resumeMusic();
+ };
+ /*
+ * 游戏开始音效
+ *
+ */
+ AudioManager.prototype.playGameStart = function () {
+ };
+ /*
+ * 失败的游戏结束
+ */
+ AudioManager.prototype.playGameOver = function () {
+ };
+ /*
+ * 成功的游戏结束
+ */
+ AudioManager.prototype.playGameResultFailed = function () {
+ };
+ /*
+ * 成功的游戏结束
+ */
+ AudioManager.prototype.playGameResultSuccess = function () {
+ };
+ /**
+ * 报警的音效
+ */
+ /**
+ * 按钮
+ */
+ AudioManager.prototype.playAudioButton = function () {
+ // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);
+ };
+ var AudioManager_1;
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "audioGameBgm0", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "xiaochu", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "hit", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "down", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "fangxiang", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "build", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "win", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "lose", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "anniu_Big", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "anniu_little", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "zhuan1", void 0);
+ __decorate([
+ property(cc.AudioClip)
+ ], AudioManager.prototype, "zhuan2", void 0);
+ AudioManager = AudioManager_1 = __decorate([
+ ccclass
+ ], AudioManager);
+ return AudioManager;
+}(cc.Component));
+exports.default = AudioManager;
+;
+// export { AudioManager };
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUFpUEM7UUEvT0csTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBc05oQyxDQUFDO3FCQWpQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsY0FBWSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO2FBQ0k7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELDJCQUFJLEdBQUo7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCwyQkFBSSxHQUFKLFVBQUssV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUztRQUN2QywrQ0FBK0M7UUFDL0MsaURBQWlEO1FBQ2pELElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRXJFLDBCQUEwQjtRQUMxQixzQ0FBc0M7UUFDdEMsb0JBQW9CO1FBQ3BCLEtBQUs7UUFDTCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFO1lBQzVCLEVBQUUsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDeEM7YUFDSTtZQUNELEVBQUUsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxRQUFRLEVBQUU7WUFDVixFQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtnQkFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFDRCxvRUFBb0U7UUFFcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDdEMsT0FBTyxXQUFXLENBQUM7UUFDbkIsV0FBVztRQUNYLDBCQUEwQjtRQUMxQixJQUFJO0lBQ1IsQ0FBQztJQUVELDJCQUFJLEdBQUo7UUFDSSxzRkFBc0Y7UUFDdEYsd0ZBQXdGO0lBQzVGLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsSUFBSTtJQUNKLGtDQUFrQztJQUNsQyxRQUFRO0lBQ1IsK0NBQStDO0lBQy9DLFFBQVE7SUFDUiw2QkFBNkI7SUFDN0IsSUFBSTtJQUVKLDhCQUFPLEdBQVA7UUFDSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBRTFELElBQUksTUFBTSxHQUFHO1lBQ1QsSUFBSSxDQUFDLGFBQWE7U0FDckIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJO1FBQzdCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBQ0ksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBRTdCLENBQUM7SUFDRCwyQ0FBb0IsR0FBcEI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELHFDQUFjLEdBQWQsVUFBZSxFQUFFO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxrQ0FBVyxHQUFYLFVBQVksRUFBRTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzFDLGVBQWU7U0FDbEI7UUFDRCxJQUFJLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjthQUNJO1lBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNELG1DQUFZLEdBQVosVUFBYSxFQUFFO1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsZUFBZTtTQUVsQjtJQUNMLENBQUM7SUFDRCw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsNkJBQU0sR0FBTjtRQUNJLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07SUFDTixpQ0FBVSxHQUFWLFVBQVcsSUFBSSxFQUFFLFFBQVE7UUFDckIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsZ0NBQVMsR0FBVCxVQUFVLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNyQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLEdBQUcsT0FBTyxJQUFJLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUxRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxvQ0FBYSxHQUFiO1FBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZ0NBQVMsR0FBVDtRQUNJLHFFQUFxRTtRQUNyRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGtDQUFXLEdBQVg7UUFDSSwyQ0FBMkM7UUFDM0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztNQUdFO0lBQ0Ysb0NBQWEsR0FBYjtJQUVBLENBQUM7SUFDRDs7TUFFRTtJQUNGLG1DQUFZLEdBQVo7SUFFQSxDQUFDO0lBQ0Q7O1VBRU07SUFDTiwyQ0FBb0IsR0FBcEI7SUFFQSxDQUFDO0lBQ0Q7O01BRUU7SUFDRiw0Q0FBcUIsR0FBckI7SUFFQSxDQUFDO0lBQ0Q7O09BRUc7SUFFSDs7T0FFRztJQUNILHNDQUFlLEdBQWY7UUFDSSwwRUFBMEU7SUFDOUUsQ0FBQzs7SUE1T0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQWlQaEM7SUFBRCxtQkFBQztDQWpQRCxBQWlQQyxDQWpQeUMsRUFBRSxDQUFDLFNBQVMsR0FpUHJEO2tCQWpQb0IsWUFBWTtBQWlQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXVkaW9NYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIC8v6IOM5pmv6Z+z5LmQXHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBoaXQ6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgZG93bjogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYnVpbGQ6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgd2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYW5uaXVfQmlnOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGFubml1X2xpdHRsZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgemh1YW4yOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG5cclxuICAgIG1BdWRpb01hcDoge307XHJcbiAgICBiZ011c2ljVm9sdW1lOiBudW1iZXI7XHJcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xyXG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XHJcbiAgICBtRWZmZWN0U3dpdGNoOiBudW1iZXI7XHJcbiAgICBicmlja1NvdW5kOiBhbnk7XHJcbiAgICByZXdhcmQ6IGJvb2xlYW47XHJcbiAgICBmaW5pc2g6IGJvb2xlYW47XHJcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xyXG4gICAgbU11c2ljS2V5OiBhbnk7XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgICAgICAgQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlciA9IEF1ZGlvTWFuYWdlcjtcclxuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmV3YXJkQ291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMuY3RvcigpO1xyXG5cclxuICAgICAgICB0aGlzLnByZWxvYWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcclxuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xyXG4gICAgfVxyXG4gICAgcGxheShhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xyXG4gICAgICAgIC8vIGlmIChpc0JnTXVzaWMgJiYgIXRoaXMubU11c2ljU3dpdGNoKSByZXR1cm47XHJcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xyXG5cclxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgIC8vIGlmKGF1ZGlvU291cmNlID09IHRoaXMuYnJpY2tTb3VuZCl7XHJcbiAgICAgICAgLy8gICAgIHZvbHVtZSA9IDAuMTtcclxuICAgICAgICAvLyB9IFxyXG4gICAgICAgIHZvbHVtZSA9IDE7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcclxuICAgICAgICBpZiAoYXVkaW9Tb3VyY2UubmFtZSA9PSBcImxvc2VcIikge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udGV4dCA9IGNjLmF1ZGlvRW5naW5lLnBsYXlFZmZlY3QoYXVkaW9Tb3VyY2UsIGxvb3ApO1xyXG4gICAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXMpO1xyXG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygncGxheSBhdWRpbyBlZmZlY3QgaXNCcm93c2VyOiAnICsgY29udGV4dC5zcmMpO1xyXG5cclxuICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xyXG4gICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKSB7XHJcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcclxuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX0VmZmVjdF9Wb2x1bWUsIHRoaXMubUVmZmVjdFN3aXRjaCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICAvLyB7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAvLyAgICAge1xyXG4gICAgLy8gICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBBdWRpb01hbmFnZXIoKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB2YXIgbXVzaWNzID0gW1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBtdXNpY3MuZm9yRWFjaChmdW5jdGlvbiAocGF0aCkge1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLpn7PkuZDlvIDlhbNcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXVkaW9NdXNpY1N3aXRjaCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tTXVzaWNTd2l0Y2g7XHJcblxyXG4gICAgfVxyXG4gICAgZ2V0QXVkaW9FZmZlY3RTd2l0Y2goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubUVmZmVjdFN3aXRjaDtcclxuICAgIH1cclxuICAgIHRydW5BdWRpb1NvdW5kKG9uKSB7XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hNdXNpYyhvbik7XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXHJcbiAgICB9XHJcbiAgICBzd2l0Y2hNdXNpYyhvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24gPyAxIDogMCkpIHtcclxuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxIC0gdGhpcy5tTXVzaWNTd2l0Y2g7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob24pIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHN3aXRjaEVmZmVjdChvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uID8gMSA6IDApKSB7XHJcbiAgICAgICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDEgLSB0aGlzLm1FZmZlY3RTd2l0Y2g7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkhpZGUoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3coKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mkq3mlL7pn7PmlYhcclxuICAgIHBsYXlFZmZlY3QobmFtZSwgY2FsbGJhY2spIHtcclxuICAgICAgICBpZiAoIWNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5lZmZlY3RPcGVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNbbmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpc1tuYW1lXSwgZmFsc2UsIGNhbGxiYWNrLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xyXG4gICAgfVxyXG4gICAgcGxheU11c2ljKGtleSwgY2FsbGJhY2ssIGxvb3ApIHtcclxuICAgICAgICBpZiAoIWNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsb29wID0gdHlwZW9mIGxvb3AgPT0gJ3VuZGVmaW5lZCcgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIHRoaXMubU11c2ljS2V5ID0gdGhpcy5wbGF5KGtleSwgbG9vcCwgY2FsbGJhY2ssIHRydWUpO1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5ri45oiP6IOM5pmv6Z+z5LmQXHJcbiAgICAgKi9cclxuICAgIHBsYXlNdXNpY0dhbWUoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcclxuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTAsIHt9LCB0cnVlKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5YGc5q2i6IOM5pmv6Z+z5LmQ5pKt5pS+XHJcbiAgICAgKi9cclxuICAgIHN0b3BNdXNpYygpIHtcclxuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmgaLlpI3ooqvmmoLlgZznmoTog4zmma/pn7PkuZDmkq3mlL5cclxuICAgICAqL1xyXG4gICAgcmVzdW1lTXVzaWMoKSB7XHJcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVNdXNpYygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxyXG4gICAgKlxyXG4gICAgKi9cclxuICAgIHBsYXlHYW1lU3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgLypcclxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXHJcbiAgICAqL1xyXG4gICAgcGxheUdhbWVPdmVyKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8qXHJcbiAgICAgICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cclxuICAgICAgICAqL1xyXG4gICAgcGxheUdhbWVSZXN1bHRGYWlsZWQoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgLypcclxuICAgICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXHJcbiAgICAqL1xyXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5oql6K2m55qE6Z+z5pWIXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMiemSrlxyXG4gICAgICovXHJcbiAgICBwbGF5QXVkaW9CdXR0b24oKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvQnV0dG9uQ2xpY2ssIGZhbHNlLG51bGwsdGhpcy5tRWZmZWN0U3dpdGNoKTtcclxuICAgIH1cclxufTtcclxuXHJcbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/Notification/Notification.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification');
+// Script/module/Notification/Notification.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Notifications = void 0;
+//全局通知
+var Notifications = {
+ _eventMap: [],
+ on: function (masgId, callback, target) {
+ if (this._eventMap[masgId] === undefined) {
+ this._eventMap[masgId] = [];
+ }
+ this._eventMap[masgId].push({ callback: callback, target: target });
+ },
+ emit: function (masgId, parameter) {
+ var array = this._eventMap[masgId];
+ if (array === undefined)
+ return;
+ for (var i = 0; i < array.length; i++) {
+ var element = array[i];
+ if (element)
+ element.callback.call(element.target, parameter);
+ }
+ },
+ off: function (masgId, callback) {
+ var array = this._eventMap[masgId];
+ if (array === undefined)
+ return;
+ for (var i = 0; i < array.length; i++) {
+ var element = array[i];
+ if (element && element.callback === callback) {
+ array[i] = undefined;
+ break;
+ }
+ }
+ },
+ offMasgId: function (masgId) {
+ this._eventMap[masgId] = undefined;
+ },
+ removeAllMsg: function () {
+ for (var k in this._eventMap) {
+ if (this._eventMap[k]) {
+ this.offMasgId(k);
+ }
+ }
+ }
+};
+exports.Notifications = Notifications;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXHJcbnZhciBOb3RpZmljYXRpb25zID0ge1xyXG4gICAgX2V2ZW50TWFwOiBbXSxcclxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0ucHVzaCh7IGNhbGxiYWNrOiBjYWxsYmFjaywgdGFyZ2V0OiB0YXJnZXQgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGVtaXQ6IGZ1bmN0aW9uIChtYXNnSWQsIHBhcmFtZXRlcikge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jYWxsYmFjay5jYWxsKGVsZW1lbnQudGFyZ2V0LCBwYXJhbWV0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgb2ZmOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2FsbGJhY2sgPT09IGNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBvZmZNYXNnSWQ6IGZ1bmN0aW9uIChtYXNnSWQpIHtcclxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xyXG4gICAgfSxcclxuXHJcbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmb3IgKGxldCBrIGluIHRoaXMuX2V2ZW50TWFwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFtrXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbnMgfTsiXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage');
+// Script/module/Storage/Storage.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StorageMessage = void 0;
+//缓存浏览器数据
+var StorageMessage = {
+ getStorage: function (key) {
+ var result = null;
+ if (cc.sys.localStorage.getItem(key)) {
+ var result = cc.sys.localStorage.getItem(key);
+ }
+ if (result) {
+ result = JSON.parse(result);
+ }
+ return result;
+ },
+ setStorage: function (key, value) {
+ //主动拉起分享接口
+ var temp = JSON.stringify(value);
+ cc.sys.localStorage.setItem(key, temp);
+ },
+ removeStorage: function (key) {
+ //主动删除消息接口
+ if (cc.sys.localStorage.getItem(key)) {
+ cc.sys.localStorage.removeItem(key);
+ }
+ },
+};
+exports.StorageMessage = StorageMessage;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXHJcbnZhciBTdG9yYWdlTWVzc2FnZSA9IHtcclxuICAgIGdldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXkpe1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICAgIHZhciByZXN1bHQgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0sXHJcbiAgICBzZXRTdG9yYWdlIDogZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAvL+S4u+WKqOaLiei1t+WIhuS6q+aOpeWPo1xyXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRlbXApXHJcbiAgICB9LFxyXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XHJcbiAgICAgIC8v5Li75Yqo5Yig6Zmk5raI5oGv5o6l5Y+jXHJcbiAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgU3RvcmFnZU1lc3NhZ2UgfTsiXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -4025,7 +4311,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/JiaZai.js';
+ var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -4033,8 +4319,496 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '1dc93b4fehOrpGgTkihBH4g', 'JiaZai');
-// Script/JiaZai.ts
+cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager');
+// Script/DynamicAtlasManager.js
+
+"use strict";
+
+cc.Class({
+ "extends": cc.Component,
+ properties: {},
+ onLoad: function onLoad() {
+ cc.dynamicAtlasManager.enabled = false;
+ }
+});
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUUsQ0FDWixDQUFDO0VBRURDLE1BQU0sV0FBQUEsT0FBQSxFQUFJO0lBQ05KLEVBQUUsQ0FBQ0ssbUJBQW1CLENBQUNDLE9BQU8sR0FBRyxLQUFLO0VBQzFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgfSxcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgfSxcclxufSk7XHJcbiJdfQ==
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig');
+// Script/module/Config/GameConfig.ts
+
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GameConfig = void 0;
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var GameConfig = /** @class */ (function () {
+ function GameConfig() {
+ }
+ GameConfig_1 = GameConfig;
+ Object.defineProperty(GameConfig, "Instance", {
+ //游戏内信息
+ get: function () {
+ if (this._instance == null) {
+ this._instance = new GameConfig_1();
+ }
+ return this._instance;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ //getSeedRandom
+ GameConfig.init = function (Authentication) {
+ //@ts-ignore
+ if (typeof wx !== 'undefined' && wx !== null) {
+ //@ts-ignore
+ wx.cloud.init();
+ }
+ this.TA = null;
+ this.CLICK_init();
+ this.GM_INFO_init();
+ this.LEVEL_INFO_init(false, 0);
+ var self = this;
+ //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次
+ this.GAME_DATA = [];
+ // if(!Authentication) self.Authentication();
+ };
+ GameConfig.generateUUID = function () {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0;
+ var v = c === 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ };
+ // 版本比较函数
+ GameConfig.compareVersion = function (v1, v2) {
+ var arr1 = v1.split('.');
+ var arr2 = v2.split('.');
+ var len = Math.max(arr1.length, arr2.length);
+ for (var i = 0; i < len; i++) {
+ var num1 = parseInt(arr1[i] || '0', 10);
+ var num2 = parseInt(arr2[i] || '0', 10);
+ if (num1 > num2) {
+ return 1;
+ }
+ else if (num1 < num2) {
+ return -1;
+ }
+ }
+ return 0;
+ };
+ GameConfig.GM_INFO_SET = function (key, value) {
+ this.GM_INFO[key] = value;
+ };
+ GameConfig.CLICK_init = function () {
+ this.CLICK_DATA =
+ {
+ type: 1,
+ success: false,
+ round: 0,
+ getScore: 0,
+ cumulativeScore: 0,
+ mapId: "",
+ difficulty: 0,
+ optimizedSteps: 0,
+ usedSteps: 0,
+ stepList: [],
+ startTime: -1,
+ submitTime: -1,
+ duration: 0,
+ drawingBack: 0,
+ drawingReset: 0,
+ timer: 0 //测评倒计时剩余时间 去秒
+ };
+ };
+ GameConfig.CLICK_SET = function (key, value) {
+ this.CLICK_DATA[key] = value;
+ };
+ //数据备用
+ GameConfig.GM_INFO_init = function () {
+ var _this = this;
+ this.GM_INFO = {
+ // isEnd: false,
+ mean_Time: 0,
+ hp: 5,
+ review: 0,
+ currSeed: 200000,
+ openid: "",
+ gameId: "100001",
+ userId: 0,
+ scode: "",
+ username: "user",
+ useravatar: "",
+ guide: true,
+ url: "https://api.sparkus.cn",
+ coin: 0,
+ success: false,
+ matchId: null,
+ gameState: false,
+ custom: 0,
+ round: 0,
+ level: 0,
+ stepTimeList: 0,
+ successList: [],
+ first: false,
+ score: 0,
+ scale: 1,
+ min_Steps: 0,
+ min_Time: 0,
+ freezeAmount: 0,
+ hammerAmount: 0,
+ magicAmount: 0,
+ musicOpen: true,
+ effectOpen: true,
+ vibrateOpen: true,
+ };
+ // this.setCode(this.getKey("scode"));
+ // this.GM_INFO.level = 0;
+ cc.resources.load("Json/NEW_LEVEL", function (err, res) {
+ if (err) {
+ console.error("加载 NEW_LEVEL.JSON 失败:", err);
+ return;
+ }
+ var newLevelData = res.json;
+ _this.NEW_LEVEL = newLevelData.NEW_LEVEL;
+ // 可以根据需求对 newLevelData 进行处理
+ // //console.log("NEW_LEVEL.JSON 加载成功:", newLevelData);
+ });
+ };
+ GameConfig.LEVEL_INFO_init = function (type, time) {
+ // 示例 围墙会根据缺的地块自动生成
+ // 带缺口 {"id":"1006","map":[10,11],"gap":[cc.v2(4,9),cc.v2(5,9)]},
+ // 带升降地块 {"id":"1004","map":[7,8],"risefall":[{pos:cc.v2(5,4),color:2},{pos:cc.v2(5,5),color:5}]},
+ // 如果普通的就 {"id":"1001","map":[6,7]}, 这个样子就可以了
+ var self = this;
+ if ((cc.fx.GameConfig.GM_INFO.level) > 156) {
+ cc.fx.GameConfig.GM_INFO.level = 156;
+ }
+ var name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1);
+ // //console.log("关卡名称:",name);
+ // name = "Json/level" + 68;
+ // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString());
+ cc.resources.load(name, function (err, res) {
+ if (err) {
+ cc.fx.GameTool.addLevel();
+ self.LEVEL_INFO_init(type, time);
+ return;
+ }
+ var jsonData = res.json;
+ self.BLOCK_INFO = jsonData["BLOCK_INFO"];
+ self.LEVEL_INFO = jsonData["LEVEL_INFO"];
+ self.WALL_INFO = jsonData["WALL_INFO"];
+ // //console.log("配置加载完成");
+ if (type) {
+ cc.director.preloadScene("GameScene", function () {
+ if (time == 0)
+ cc.director.loadScene("GameScene");
+ else {
+ setTimeout(function () {
+ cc.director.loadScene("GameScene");
+ }, time);
+ }
+ });
+ }
+ });
+ //道具位置信息
+ this.PROP_INFO = [
+ {
+ "pos1": { "x": -66, "y": 60, "z": 0 },
+ "pos2": { "x": -19, "y": 36, "z": 0 },
+ "pos3": { "x": -34.362, "y": 13.246, "z": 0 },
+ "pos4": { "x": -17, "y": 12, "z": 0 },
+ "pos5": { "x": -85, "y": 70, "z": 0 },
+ "pos6": { "x": -5, "y": 3, "z": 0 },
+ },
+ {
+ "pos1": { "x": -126, "y": 61, "z": 0 },
+ "pos2": { "x": -25.792, "y": 34.675, "z": 0 },
+ "pos3": { "x": -94.792, "y": 21.675, "z": 0 },
+ "pos4": { "x": -20, "y": 13, "z": 0 },
+ "pos5": { "x": -140, "y": 68, "z": 0 },
+ "pos6": { "x": -2, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -67, "y": 122, "z": 0 },
+ "pos2": { "x": -20, "y": 94, "z": 0 },
+ "pos3": { "x": -34.792, "y": 23.675, "z": 0 },
+ "pos4": { "x": -14, "y": 24, "z": 0 },
+ "pos5": { "x": -84, "y": 128, "z": 0 },
+ "pos6": { "x": -5, "y": 3, "z": 0 },
+ },
+ {
+ "pos1": { "x": -178, "y": 61, "z": 0 },
+ "pos2": { "x": -34.792, "y": 37.675, "z": 0 },
+ "pos3": { "x": -150, "y": 23.675, "z": 0 },
+ "pos4": { "x": -22, "y": 16, "z": 0 },
+ "pos5": { "x": -200, "y": 67, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -63, "y": 178, "z": 0 },
+ "pos2": { "x": -17.792, "y": 166.675, "z": 0 },
+ "pos3": { "x": -31.792, "y": 33.675, "z": 0 },
+ "pos4": { "x": -14, "y": 37, "z": 0 },
+ "pos5": { "x": -78, "y": 182, "z": 0 },
+ "pos6": { "x": 0, "y": 2, "z": 0 },
+ },
+ {
+ "pos1": { "x": -123, "y": 124, "z": 0 },
+ "pos2": { "x": -25.792, "y": 99.675, "z": 0 },
+ "pos3": { "x": -97.792, "y": 27.675, "z": 0 },
+ "pos4": { "x": -27, "y": 19, "z": 0 },
+ "pos5": { "x": -135, "y": 127, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -64, "y": 178, "z": 0 },
+ "pos2": { "x": -24.792, "y": 275.675, "z": 0 },
+ "pos3": { "x": -31.792, "y": 35.675, "z": 0 },
+ "pos4": { "x": -7, "y": 39, "z": 0 },
+ "pos5": { "x": -77, "y": 188, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -178, "y": 186, "z": 0 },
+ "pos2": { "x": -31.792, "y": 163.675, "z": 0 },
+ "pos3": { "x": -33.792, "y": 34.675, "z": 0 },
+ "pos4": { "x": -18, "y": 30, "z": 0 },
+ "pos5": { "x": -200, "y": 192, "z": 0 },
+ "pos6": { "x": 0, "y": 5, "z": 0 },
+ },
+ {
+ "pos1": { "x": -186, "y": 178, "z": 0 },
+ "pos2": { "x": -25.792, "y": 38.675, "z": 0 },
+ "pos3": { "x": -153.792, "y": 34.675, "z": 0 },
+ "pos4": { "x": -23, "y": 14, "z": 0 },
+ "pos5": { "x": -200, "y": 185, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -183, "y": 64, "z": 0 },
+ "pos2": { "x": -37.792, "y": 37.675, "z": 0 },
+ "pos3": { "x": -36.792, "y": 26.675, "z": 0 },
+ "pos4": { "x": -24, "y": 17, "z": 0 },
+ "pos5": { "x": -212, "y": 74, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -65, "y": 177, "z": 0 },
+ "pos2": { "x": 93.208, "y": 276.675, "z": 0 },
+ "pos3": { "x": -33.792, "y": 34.675, "z": 0 },
+ "pos4": { "x": 3, "y": 31, "z": 0 },
+ "pos5": { "x": -80, "y": 190, "z": 0 },
+ "pos6": { "x": 0, "y": 3, "z": 0 },
+ },
+ {
+ "pos1": { "x": 58, "y": 179, "z": 0 },
+ "pos2": { "x": 205.225, "y": 154.034, "z": 0 },
+ "pos3": { "x": -29.642, "y": 25.691, "z": 0 },
+ "pos4": { "x": 7.218, "y": 29.765, "z": 0 },
+ "pos5": { "x": 45, "y": 185, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -68, "y": 182, "z": 0 },
+ "pos2": { "x": -25.792, "y": 37.675, "z": 0 },
+ "pos3": { "x": -35.792, "y": 33.675, "z": 0 },
+ "pos4": { "x": -14, "y": 12, "z": 0 },
+ "pos5": { "x": -82, "y": 190, "z": 0 },
+ "pos6": { "x": -2, "y": 1, "z": 0 },
+ },
+ {
+ "pos1": { "x": -184, "y": 62, "z": 0 },
+ "pos2": { "x": -35.792, "y": 36.675, "z": 0 },
+ "pos3": { "x": -271.792, "y": 24.675, "z": 0 },
+ "pos4": { "x": -17, "y": 20, "z": 0 },
+ "pos5": { "x": -200, "y": 72, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -62, "y": 175, "z": 0 },
+ "pos2": { "x": 87.208, "y": 164.675, "z": 0 },
+ "pos3": { "x": -31.792, "y": 35.675, "z": 0 },
+ "pos4": { "x": -6, "y": 24, "z": 0 },
+ "pos5": { "x": -79, "y": 172, "z": 0 },
+ "pos6": { "x": 0, "y": 5, "z": 0 },
+ },
+ {
+ "pos1": { "x": -184, "y": 72, "z": 0 },
+ "pos2": { "x": -33.792, "y": 38.675, "z": 0 },
+ "pos3": { "x": -154.792, "y": 29.675, "z": 0 },
+ "pos4": { "x": -29, "y": 16, "z": 0 },
+ "pos5": { "x": -201, "y": 85, "z": 0 },
+ "pos6": { "x": -1, "y": 3, "z": 0 },
+ },
+ {
+ "pos1": { "x": -64, "y": 181, "z": 0 },
+ "pos2": { "x": 95.208, "y": 155.675, "z": 0 },
+ "pos3": { "x": -30.792, "y": 36.675, "z": 0 },
+ "pos4": { "x": -12, "y": 32, "z": 0 },
+ "pos5": { "x": -78, "y": 190, "z": 0 },
+ "pos6": { "x": 0, "y": 3, "z": 0 },
+ },
+ {
+ "pos1": { "x": -65, "y": 178, "z": 0 },
+ "pos2": { "x": -21.792, "y": 156.675, "z": 0 },
+ "pos3": { "x": -31.792, "y": 37.675, "z": 0 },
+ "pos4": { "x": -12, "y": 32, "z": 0 },
+ "pos5": { "x": -78, "y": 188, "z": 0 },
+ "pos6": { "x": 0, "y": 2, "z": 0 },
+ },
+ {
+ "pos1": { "x": -62, "y": 183, "z": 0 },
+ "pos2": { "x": 88.208, "y": 162.675, "z": 0 },
+ "pos3": { "x": -29.792, "y": 41.675, "z": 0 },
+ "pos4": { "x": -12, "y": 18, "z": 0 },
+ "pos5": { "x": -80, "y": 188, "z": 0 },
+ "pos6": { "x": -4, "y": 2, "z": 0 },
+ },
+ {
+ "pos1": { "x": -67, "y": 80, "z": 0 },
+ "pos2": { "x": -26.792, "y": 32.675, "z": 0 },
+ "pos3": { "x": -34.792, "y": 23.675, "z": 0 },
+ "pos4": { "x": -12, "y": 18, "z": 0 },
+ "pos5": { "x": -84, "y": 90, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -184, "y": 80, "z": 0 },
+ "pos2": { "x": -25.792, "y": 34.675, "z": 0 },
+ "pos3": { "x": -155.792, "y": 25.675, "z": 0 },
+ "pos4": { "x": -18, "y": 26, "z": 0 },
+ "pos5": { "x": -196, "y": 96, "z": 0 },
+ "pos6": { "x": 0, "y": 0, "z": 0 },
+ },
+ {
+ "pos1": { "x": -62, "y": 160, "z": 0 },
+ "pos2": { "x": 95.208, "y": 158.675, "z": 0 },
+ "pos3": { "x": -33.792, "y": 29.675, "z": 0 },
+ "pos4": { "x": -18, "y": 26, "z": 0 },
+ "pos5": { "x": -78, "y": 170, "z": 0 },
+ "pos6": { "x": 0, "y": 2, "z": 0 },
+ },
+ {
+ "pos1": { "x": -68, "y": 160, "z": 0 },
+ "pos2": { "x": -25.792, "y": 156.675, "z": 0 },
+ "pos3": { "x": -35.792, "y": 27.675, "z": 0 },
+ "pos4": { "x": -25, "y": 40, "z": 0 },
+ "pos5": { "x": -82, "y": 170, "z": 0 },
+ "pos6": { "x": -2, "y": 2, "z": 0 },
+ }
+ ];
+ // this.PROP_INFO = [{"pos1": {"x": -60,"y": 60,"z": 0},"pos2": {"x": -16.442,"y": 30,"z": 0},"pos3": {"x": -34.362,"y": 13.246,"z": 0},"pos4": {"x": -17,"y": 12,"z": 0}},{"pos1": {"x": -126,"y": 63,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -94.792,"y": 21.675,"z": 0},"pos4": {"x": -20,"y": 13,"z": 0}},{"pos1": {"x": -60,"y": 125,"z": 0},"pos2": {"x": -12.792,"y": 92.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -14,"y": 24,"z": 0}},{"pos1": {"x": -185,"y": 63,"z": 0},"pos2": {"x": -34.792,"y": 37.675,"z": 0},"pos3": {"x": -154.792,"y": 23.675,"z": 0},"pos4": {"x": -22,"y": 16,"z": 0}},{"pos1": {"x": -57,"y": 178,"z": 0},"pos2": {"x": -17.792,"y": 166.675,"z": 0},"pos3": {"x": -31.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 37,"z": 0}},{"pos1": {"x": -123,"y": 127,"z": 0},"pos2": {"x": -25.792,"y": 99.675,"z": 0},"pos3": {"x": -97.792,"y": 27.675,"z": 0},"pos4": {"x": -27,"y": 19,"z": 0}},{"pos1": {"x": -62,"y": 181,"z": 0},"pos2": {"x": -24.792,"y": 275.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -7,"y": 39,"z": 0}},{"pos1": {"x": -181,"y": 180,"z": 0},"pos2": {"x": -31.792,"y": 163.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": -18,"y": 30,"z": 0}},{"pos1": {"x": -182,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 38.675,"z": 0},"pos3": {"x": -153.792,"y": 34.675,"z": 0},"pos4": {"x": -23,"y": 14,"z": 0}},{"pos1": {"x": -186,"y": 61,"z": 0},"pos2": {"x": -37.792,"y": 37.675,"z": 0},"pos3": {"x": -36.792,"y": 26.675,"z": 0},"pos4": {"x": -24,"y": 17,"z": 0}},{"pos1": {"x": -62,"y": 177,"z": 0},"pos2": {"x": 93.208,"y": 276.675,"z": 0},"pos3": {"x": -33.792,"y": 34.675,"z": 0},"pos4": {"x": 3,"y": 31,"z": 0}},{"pos1": {"x": 58,"y": 179,"z": 0},"pos2": {"x": 205.225,"y": 154.034,"z": 0},"pos3": {"x": -29.642,"y": 25.691,"z": 0},"pos4": {"x": 7.218,"y": 29.765,"z": 0}},{"pos1": {"x": -57,"y": 182,"z": 0},"pos2": {"x": -25.792,"y": 37.675,"z": 0},"pos3": {"x": -35.792,"y": 33.675,"z": 0},"pos4": {"x": -14,"y": 12,"z": 0}},{"pos1": {"x": -180,"y": 62,"z": 0},"pos2": {"x": -35.792,"y": 36.675,"z": 0},"pos3": {"x": -271.792,"y": 24.675,"z": 0},"pos4": {"x": -17,"y": 20,"z": 0}},{"pos1": {"x": -62,"y": 178,"z": 0},"pos2": {"x": 87.208,"y": 164.675,"z": 0},"pos3": {"x": -31.792,"y": 35.675,"z": 0},"pos4": {"x": -6,"y": 24,"z": 0}},{"pos1": {"x": -176,"y": 60,"z": 0},"pos2": {"x": -33.792,"y": 38.675,"z": 0},"pos3": {"x": -154.792,"y": 29.675,"z": 0},"pos4": {"x": -29,"y": 16,"z": 0}},{"pos1": {"x": -60,"y": 181,"z": 0},"pos2": {"x": 95.208,"y": 155.675,"z": 0},"pos3": {"x": -30.792,"y": 36.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -63,"y": 178,"z": 0},"pos2": {"x": -21.792,"y": 156.675,"z": 0},"pos3": {"x": -31.792,"y": 37.675,"z": 0},"pos4": {"x": -12,"y": 32,"z": 0}},{"pos1": {"x": -60,"y": 183,"z": 0},"pos2": {"x": 88.208,"y": 162.675,"z": 0},"pos3": {"x": -29.792,"y": 41.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -64,"y": 58,"z": 0},"pos2": {"x": -26.792,"y": 32.675,"z": 0},"pos3": {"x": -34.792,"y": 23.675,"z": 0},"pos4": {"x": -12,"y": 18,"z": 0}},{"pos1": {"x": -184,"y": 62,"z": 0},"pos2": {"x": -25.792,"y": 34.675,"z": 0},"pos3": {"x": -155.792,"y": 25.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -57,"y": 190,"z": 0},"pos2": {"x": 95.208,"y": 158.675,"z": 0},"pos3": {"x": -33.792,"y": 29.675,"z": 0},"pos4": {"x": -18,"y": 26,"z": 0}},{"pos1": {"x": -71,"y": 184,"z": 0},"pos2": {"x": -25.792,"y": 156.675,"z": 0},"pos3": {"x": -35.792,"y": 27.675,"z": 0},"pos4": {"x": -25,"y": 40,"z": 0}}];
+ };
+ GameConfig.setCode = function (code) {
+ this.GM_INFO.scode = code;
+ };
+ GameConfig.getKey = function (key) {
+ // var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i');
+ // var r = window.location.search.substring(1).match(reg);
+ // if (r != null) {
+ // return unescape(r[2]);
+ // }
+ return "";
+ };
+ GameConfig.Authentication = function () {
+ cc.fx.GameTool.Authentication();
+ };
+ var GameConfig_1;
+ //所有控制信息都通过GameAppStart内控制
+ GameConfig._instance = null;
+ GameConfig = GameConfig_1 = __decorate([
+ ccclass('GameConfig')
+ ], GameConfig);
+ return GameConfig;
+}());
+exports.GameConfig = GameConfig;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJTSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUU1QztJQUFBO0lBb2VBLENBQUM7bUJBcGVZLFVBQVU7SUF3Rm5CLHNCQUFXLHNCQUFRO1FBRm5CLE9BQU87YUFFUDtZQUVJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQzFCO2dCQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFVLEVBQUUsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUNELGVBQWU7SUFDUixlQUFJLEdBQVgsVUFBWSxjQUFjO1FBQ2YsWUFBWTtRQUNuQixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFDLFlBQVk7WUFDWixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBR25CO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUNoQixDQUFBO1FBR0QsNkNBQTZDO0lBQ2pELENBQUM7SUFJTSx1QkFBWSxHQUFuQjtRQUNJLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsSUFBTSxDQUFDLEdBQUcsSUFB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LENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDWjtnQkFDTCxDQUFDLENBQUMsQ0FBQTthQUNMO1FBRVQsQ0FBQyxDQUFDLENBQUE7UUFHSCxRQUFRO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNYO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUN0QztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3JDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQ3RDO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDckM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNyQztZQUNEO2dCQUNJLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7YUFDdEM7U0FDSixDQUFDO1FBQ0osNGdIQUE0Z0g7SUFDOWdILENBQUM7SUFJTSxrQkFBTyxHQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0saUJBQU0sR0FBYixVQUFjLEdBQUc7UUFDYiw4REFBOEQ7UUFDOUQsMERBQTBEO1FBQzFELG1CQUFtQjtRQUNuQiw2QkFBNkI7UUFDN0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdNLHlCQUFjLEdBQXJCO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7SUFsZUQsMEJBQTBCO0lBQ1gsb0JBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBRnBDLFVBQVU7UUFEdEIsT0FBTyxDQUFDLFlBQVksQ0FBQztPQUNULFVBQVUsQ0FvZXRCO0lBQUQsaUJBQUM7Q0FwZUQsQUFvZUMsSUFBQTtBQXBlWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3MoJ0dhbWVDb25maWcnKVxyXG5leHBvcnQgY2xhc3MgR2FtZUNvbmZpZyAge1xyXG4gICAgLy/miYDmnInmjqfliLbkv6Hmga/pg73pgJrov4dHYW1lQXBwU3RhcnTlhoXmjqfliLZcclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZSA6IEdhbWVDb25maWcgPSBudWxsO1xyXG5cclxuICAgIHN0YXRpYyBHQU1FX0RBVEE6IGFueVtdO1xyXG4gICAgLy/lhbPljaHmlbDmja5cclxuICAgIC8v55So5oi36ZyA6KaB5a2Y5YKo5Zyo5pys5Zyw55qE5pWw5o2u77yMIOmHkeW4ge+8jOWFs+WNoeetiee6p++8jOS9k+WKm+WAvOS7peWPiuaBouWkje+8jOmBk+WFt+aVsOmHj+OAglxyXG4gICAgXHJcblxyXG4gICAgc3RhdGljIENVU1RPTV9JTkZPOiB7XHJcbiAgICAgICAgbW92ZVNwZWVkOiBudW1iZXI7IC8v5rSq5bOw56e75Yqo6YCf5bqmXHJcbiAgICAgICAgd2FpdFRpbWU6IG51bWJlcjsgLy/mtKrls7DlhrLlh7vlgJLorqHml7ZcclxuICAgICAgICBmYXN0UGF0aDogbnVtYmVyOyAvL+acgOefrei3r+W+hFxyXG4gICAgfVtdO1xyXG4gICAgc3RhdGljIFRJTUVfSU5GTzoge1xyXG4gICAgICAgIHdhdGVyU3BlZWQ6IG51bWJlcltdOyAvL+a0quWzsOmAn+W6plxyXG4gICAgICAgIHRvdGFsVGltZTogbnVtYmVyOyAvL+a4uOaIj+aAu+aXtumVv1xyXG4gICAgICAgIHdhdGVyVGltZTogbnVtYmVyW107IC8v5rSq5bOw5p2l55qE5YCS6K6h5pe2XHJcbiAgICAgICAgcm9hZFNwZWVkOiBudW1iZXI7IC8v5rKz6YGT5L+u562R6YCf5bqmXHJcbiAgICAgICAgUmVpbmZvcmNlU3BlZWQ6IG51bWJlcjsgLy/liqDlm7rml7bpl7TpgJ/luqZcclxuICAgICAgICBYaV9Tb2lsU3BlZWQ6IG51bWJlcjtcclxuICAgIH07XHJcbiAgICAvL+eUqOS6juebm+aUvuWfi+eCueaVsOaNruS4iuS8oO+8jOavj+asoeS4iuS8oOWQjua4heepulxyXG4gICAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgICAgICB0eXBlOiBudW1iZXI7IC8v5LiK5Lyg5pWw5o2u57G75Z6LXHJcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbjsgLy/mraTlsYDmuLjmiI/mraPnoa7kuI7lkKZcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgICAgIGdldFNjb3JlOiBudW1iZXI7IC8v5pys6L2u5b6X5YiG77yM5aSx6LSl5Li6MOWIhlxyXG4gICAgICAgIGN1bXVsYXRpdmVTY29yZTogbnVtYmVyOyAvL+acrOWJp+a4uOaIj+aAu+iuoeW+l+WIhlxyXG4gICAgICAgIG1hcElkOiBzdHJpbmc7IC8v5Zyw5Zu+SURcclxuICAgICAgICBkaWZmaWN1bHR5OiBudW1iZXI7IC8v5Zyw5Zu+6Zq+5bqmXHJcbiAgICAgICAgb3B0aW1pemVkU3RlcHM6IG51bWJlcjsgLy/lhbPljaHmnIDnn63mraXmlbBcclxuICAgICAgICB1c2VkU3RlcHM6IG51bWJlcjsgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICBzdGVwTGlzdDogYW55W107IC8vVeOAgUTjgIFM44CBUiAgIFgg5oGv5aOkICAgRiDliqDlm7pcclxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcjsgLy/ku47muLjmiI/lvIDlp4vliLDnjqnlrrbmk43kvZznmoTnrKzkuIDmraXmiKrmraLml7bpl7QgIOWNleS9jeavq+enklxyXG4gICAgICAgIHN1Ym1pdFRpbWU6IG51bWJlcjsgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkdXJhdGlvbjogbnVtYmVyOyAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5JcclxuICAgICAgICBkcmF3aW5nQmFjazogbnVtYmVyOyAvL+WQjumAgOasoeaVsFxyXG4gICAgICAgIGRyYXdpbmdSZXNldDogbnVtYmVyOyAvL+a4heepuuasoeaVsFxyXG4gICAgICAgIHRpbWVyOiBudW1iZXI7ICAvL+a4uOaIj+WAkuiuoeaXtuWJqeS9meaXtumVvyDnp5JcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIFRJUF9FUlI6IHN0cmluZ1tdOyAgIC8v5L+u562R5aSx6LSl6ZSZ6K+v5o+Q56S6XHJcblxyXG4gICAgc3RhdGljIEJMT0NLX0lORk86IHt9W11bXTtcclxuICAgIC8vc3RhdGljIFdBTExfSU5GTzogKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHR5cGU6IG51bWJlcjsgc3BlY2lhbDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgfVtdIHwgeyBpZDogbnVtYmVyOyBudW06IG51bWJlcjsgYmxvY2s6IG51bWJlcjsgY29sb3I6IG51bWJlcjsgdHlwZTogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IH1bXSlbXTtcclxuICAgIHN0YXRpYyBMRVZFTF9JTkZPOiAoeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbD86IHVuZGVmaW5lZDsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyByaXNlZmFsbDogeyBwb3M6IGNjLlZlYzI7IGNvbG9yOiBudW1iZXI7IH1bXTsgZ2FwPzogdW5kZWZpbmVkOyB9IHwgeyBpZDogc3RyaW5nOyBtYXA6IG51bWJlcltdOyBnYXA6IGNjLlZlYzJbXTsgcmlzZWZhbGw/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgV0FMTF9JTkZPOiAoKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGxvY2s/OiB1bmRlZmluZWQ7IH0gfCB7IGlkOiBudW1iZXI7IG51bTogbnVtYmVyOyBibG9jazogbnVtYmVyOyBjb2xvcjogbnVtYmVyOyBzcGVjaWFsOiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBsb2NrOiBib29sZWFuOyB9KVtdIHwgKHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZT86IHVuZGVmaW5lZDsgfSB8IHsgaWQ6IG51bWJlcjsgbnVtOiBudW1iZXI7IGJsb2NrOiBudW1iZXI7IGNvbG9yOiBudW1iZXI7IHNwZWNpYWw6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGZyZWV6ZTogbnVtYmVyOyB9KVtdKVtdO1xyXG4gICAgc3RhdGljIFBST1BfSU5GTzogKHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgfSB8IHsgcG9zMTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3MyOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTsgcG9zNDogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9OyBwb3M1OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07IHBvczY/OiB1bmRlZmluZWQ7IH0pW107XHJcbiAgICBzdGF0aWMgTkVXX0xFVkVMOiBhbnk7XHJcbiAgICBzdGF0aWMgVEE6IGFueTtcclxuICAgIHN0YXRpYyBHTV9JTkZPOiB7XHJcbiAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLCAgICBcclxuICAgICAgICBtZWFuX1RpbWU6IG51bWJlcjsgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICBocDogbnVtYmVyOyAvL+S9k+WKm+WAvFxyXG4gICAgICAgIHJldmlldzogbnVtYmVyOyAvL+Wkjea0u+asoeaVsFxyXG4gICAgICAgIC8v5aSN5rS75qyh5pWwXHJcbiAgICAgICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgICAgICBvcGVuaWQ6IHN0cmluZzsgLy/lvq7kv6HnlKjmiLfllK/kuIBpZFxyXG4gICAgICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICAgICAgdXNlcklkOiBudW1iZXI7IC8v55So5oi3SURcclxuICAgICAgICBzY29kZTogc3RyaW5nOyAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgdXNlcm5hbWU6IHN0cmluZzsgLy/nlKjmiLflkI3np7BcclxuICAgICAgICB1c2VyYXZhdGFyOiBzdHJpbmc7IC8v55So5oi35aS05YOP5Zyw5Z2AXHJcbiAgICAgICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgdXJsOiBzdHJpbmc7IC8v6K6/6Zeu5Z+f5ZCNXHJcbiAgICAgICAgY29pbjogbnVtYmVyOyAvL+eUqOaIt+mHkeW4gVxyXG4gICAgICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICAgICAgbWF0Y2hJZDogYW55OyAvL+eUqOS6juWfi+eCueS4iuS8oOeahElEXHJcbiAgICAgICAgZ2FtZVN0YXRlOiBib29sZWFuOyBjdXN0b206IG51bWJlcjsgLy/nlKjkuo7mtYvor5Xot7PlhbPljaFcclxuICAgICAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsFxyXG4gICAgICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP5YaF6L+b6KGM5Yiw56ys5Yeg5q2lIFxyXG4gICAgICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgICAgIHN1Y2Nlc3NMaXN0OiBhbnlbXTsgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICBmaXJzdDogYm9vbGVhbjsgLy/mmK/lkKbpppbmrKHov5vlhaXmuLjmiI9cclxuICAgICAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgICAgIHNjYWxlOiBudW1iZXI7IC8v546p5a625oC76K6h5oiQ5Yqf54K554Gr5pWwXHJcbiAgICAgICAgbWluX1N0ZXBzOiBudW1iZXI7IC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgbWluX1RpbWU6IG51bWJlcjsgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICBmcmVlemVBbW91bnQ6IG51bWJlcjsgLy/lhrvnu5PpgZPlhbfmrKHmlbBcclxuICAgICAgICBoYW1tZXJBbW91bnQ6IG51bWJlcjsgLy/plKTlrZDpgZPlhbfmrKHmlbBcclxuICAgICAgICBtYWdpY0Ftb3VudDogbnVtYmVyOyAvL+mtlOazleajkumBk+WFt+asoeaVsFxyXG4gICAgICAgIG11c2ljT3BlbjogYm9vbGVhbjsgLy/pn7PkuZBcclxuICAgICAgICBlZmZlY3RPcGVuOiBib29sZWFuOyAvL+mfs+aViFxyXG4gICAgICAgIHZpYnJhdGVPcGVuOiBib29sZWFuO1xyXG4gICAgfTtcclxuICAgIC8v5ri45oiP5YaF5L+h5oGvXHJcblxyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgIFxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuVEEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuR01fSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOW6n+W8g+S6hu+8jOaaguaXtuS4jeWIoOmZpOS7pemYsuWQjumdouS/ruaUueWbniDkuIDmlbTlsYDkvKDkuIDmrKFcclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICBdXHJcbiAgIFxyXG5cclxuICAgICAgICAvLyBpZighQXV0aGVudGljYXRpb24pIHNlbGYuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBnZW5lcmF0ZVVVSUQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwO1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeJiOacrOavlOi+g+WHveaVsFxyXG4gICAgc3RhdGljIGNvbXBhcmVWZXJzaW9uKHYxOiBzdHJpbmcsIHYyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGFycjEgPSB2MS5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGFycjIgPSB2Mi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IE1hdGgubWF4KGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtMSA9IHBhcnNlSW50KGFycjFbaV0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUludChhcnIyW2ldIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBHTV9JTkZPX1NFVChrZXksdmFsdWUpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk9ba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIENMSUNLX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IDEsICAgICAgICAgICAgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsICAgICAvL+atpOWxgOa4uOaIj+ato+ehruS4juWQplxyXG4gICAgICAgICAgICByb3VuZDogMCwgICAgICAgICAgIC8v5Zue5ZCI5pWw6L2u5qyhXHJcbiAgICAgICAgICAgIGdldFNjb3JlOiAwLCAgICAgICAgLy/mnKzova7lvpfliIbvvIzlpLHotKXkuLow5YiGXHJcbiAgICAgICAgICAgIGN1bXVsYXRpdmVTY29yZTogMCwgLy/mnKzliafmuLjmiI/mgLvorqHlvpfliIZcclxuICAgICAgICAgICAgbWFwSWQ6IFwiXCIsICAgICAgICAgIC8v5Zyw5Zu+SURcclxuICAgICAgICAgICAgZGlmZmljdWx0eTogMCwgICAgICAvL+WcsOWbvumavuW6plxyXG4gICAgICAgICAgICBvcHRpbWl6ZWRTdGVwczogMCwgIC8v5YWz5Y2h5pyA55+t5q2l5pWwXHJcbiAgICAgICAgICAgIHVzZWRTdGVwczogMCwgICAgICAgLy/njqnlrrbkv67lu7rmgLvmraXmlbBcclxuICAgICAgICAgICAgc3RlcExpc3Q6IFtdLCAgICAgICAvL1XjgIFE44CBTOOAgVIgICBYIOaBr+WjpCAgIEYg5Yqg5Zu6XHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgIC8v5LuO5ri45oiP5byA5aeL5Yiw546p5a625pON5L2c55qE56ys5LiA5q2l5oiq5q2i5pe26Ze0ICDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgc3VibWl0VGltZTotMSwgICAgICAgLy/ku47nrKzkuIDmraXmk43kvZzliLDmj5DkuqTml7bpl7TvvIzlpoLmnpzmnKrmj5DkuqTkuLotMSDljZXkvY3mr6vnp5JcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+a4uOaIj+aAu+eUqOaXtu+8iOaIquatouWIsOaPkOS6pO+8iSDljZXkvY3mr6vnp5Ig5aaC5p6c5pyq5LuW56e75Lqk5YiZ5Li65pe26Ze05LiK6ZmQXHJcbiAgICAgICAgICAgIGRyYXdpbmdCYWNrOjAsICAgICAgLy/lkI7pgIDmrKHmlbBcclxuICAgICAgICAgICAgZHJhd2luZ1Jlc2V0OjAsICAgICAvL+a4heepuuasoeaVsFxyXG4gICAgICAgICAgICB0aW1lcjogMCAgICAgICAgICAgLy/mtYvor4TlgJLorqHml7bliankvZnml7bpl7Qg5Y6756eSXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ0xJQ0tfU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfREFUQVtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mlbDmja7lpIfnlKhcclxuICAgIHN0YXRpYyBHTV9JTkZPX2luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0ge1xyXG4gICAgICAgICAgICAvLyBpc0VuZDogZmFsc2UsICAgIFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6IDAsICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgaHA6IDUsICAgICAgICAgICAgICAgICAgICAgIC8v5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgIHJldmlldzowLCAgICAgICAgICAgICAgICAgICAgLy/lpI3mtLvmrKHmlbBcclxuICAgICAgICAgICAgY3VyclNlZWQ6IDIwMDAwMCwgICAgICAgICAgIC8v55So5LqO6ZqP5py65pWw56eN5a2QXHJcbiAgICAgICAgICAgIG9wZW5pZDpcIlwiLCAgICAgICAgICAgICAgICAgIC8v5b6u5L+h55So5oi35ZSv5LiAaWRcclxuICAgICAgICAgICAgZ2FtZUlkOiBcIjEwMDAwMVwiLCAgICAgICAgICAgLy/muLjmiI9JRFxyXG4gICAgICAgICAgICB1c2VySWQ6IDAsICAgICAgICAgICAgICAgICAgLy/nlKjmiLdJRFxyXG4gICAgICAgICAgICBzY29kZTogXCJcIiwgICAgICAgICAgICAgICAgICAvL+eUqOaIt2NvZGUs5LuO572R6aG15ZCO57yA6I635Y+WXHJcbiAgICAgICAgICAgIHVzZXJuYW1lOlwidXNlclwiLCAgICAgICAgICAgICAgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICB1c2VyYXZhdGFyOlwiXCIsICAgICAgICAgICAgICAvL+eUqOaIt+WktOWDj+WcsOWdgFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSwgICAgICAgICAgICAgICAgIC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS5zcGFya3VzLmNuXCIsLy/orr/pl67ln5/lkI1cclxuICAgICAgICAgICAgY29pbjogMCwgICAgICAgICAgICAgICAgICAgIC8v55So5oi36YeR5biBXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLCAgICAgICAgICAgICAvL+eUqOaIt+a4uOaIj+aIkOWKn+S4juWQplxyXG4gICAgICAgICAgICBtYXRjaElkOiBudWxsLCAgICAgICAgICAgICAgLy/nlKjkuo7ln4vngrnkuIrkvKDnmoRJRFxyXG4gICAgICAgICAgICBnYW1lU3RhdGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbTogMCwgICAgICAgICAgICAgICAgICAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgICAgICAgICByb3VuZDowLCAgICAgICAgICAgICAgICAgICAgLy/lm57lkIjmlbBcclxuICAgICAgICAgICAgbGV2ZWw6IDAsICAgICAgICAgICAgICAgICAgICAvL+WFt+S9k+a4uOaIj+WGhei/m+ihjOWIsOesrOWHoOatpSBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmlyc3Q6ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgIC8v5piv5ZCm6aaW5qyh6L+b5YWl5ri45oiPXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBzY2FsZTogMSwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAsICAgICAgICAgICAgICAgICAgLy/kvZPlipvmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgZnJlZXplQW1vdW50OjAsICAgICAgICAgICAgICAvL+WGu+e7k+mBk+WFt+asoeaVsFxyXG4gICAgICAgICAgICBoYW1tZXJBbW91bnQ6MCwgICAgICAgICAgICAgIC8v6ZSk5a2Q6YGT5YW35qyh5pWwXHJcbiAgICAgICAgICAgIG1hZ2ljQW1vdW50OjAsICAgICAgICAgICAgICAgLy/prZTms5Xmo5LpgZPlhbfmrKHmlbBcclxuICAgICAgICAgICAgbXVzaWNPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICBlZmZlY3RPcGVuOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICB2aWJyYXRlT3BlbjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb2RlKHRoaXMuZ2V0S2V5KFwic2NvZGVcIikpO1xyXG4gICAgICAgIC8vIHRoaXMuR01fSU5GTy5sZXZlbCA9IDA7XHJcblxyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChcIkpzb24vTkVXX0xFVkVMXCIsIChlcnI6IGFueSwgcmVzOiBjYy5Kc29uQXNzZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIuWKoOi9vSBORVdfTEVWRUwuSlNPTiDlpLHotKU6XCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbmV3TGV2ZWxEYXRhID0gcmVzLmpzb247XHJcbiAgICAgICAgICAgIHRoaXMuTkVXX0xFVkVMID0gbmV3TGV2ZWxEYXRhLk5FV19MRVZFTDtcclxuICAgICAgICAgICAgLy8g5Y+v5Lul5qC55o2u6ZyA5rGC5a+5IG5ld0xldmVsRGF0YSDov5vooYzlpITnkIZcclxuICAgICAgICAgICAgLy8gLy9jb25zb2xlLmxvZyhcIk5FV19MRVZFTC5KU09OIOWKoOi9veaIkOWKnzpcIiwgbmV3TGV2ZWxEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KHR5cGUsdGltZSkgeyBcclxuICAgICAgICAvLyDnpLrkvosgICAgICAgICDlm7TlopnkvJrmoLnmja7nvLrnmoTlnLDlnZfoh6rliqjnlJ/miJBcclxuICAgICAgICAvLyDluKbnvLrlj6MgICAgICAge1wiaWRcIjpcIjEwMDZcIixcIm1hcFwiOlsxMCwxMV0sXCJnYXBcIjpbY2MudjIoNCw5KSxjYy52Mig1LDkpXX0sXHJcbiAgICAgICAgLy8g5bim5Y2H6ZmN5Zyw5Z2XICAge1wiaWRcIjpcIjEwMDRcIixcIm1hcFwiOls3LDhdLFwicmlzZWZhbGxcIjpbe3BvczpjYy52Mig1LDQpLGNvbG9yOjJ9LHtwb3M6Y2MudjIoNSw1KSxjb2xvcjo1fV19LFxyXG4gICAgICAgIC8vIOWmguaenOaZrumAmueahOWwsSAge1wiaWRcIjpcIjEwMDFcIixcIm1hcFwiOls2LDddfSwg6L+Z5Liq5qC35a2Q5bCx5Y+v5Lul5LqGXHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCkgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuYW1lID0gXCJKc29uL2xldmVsXCIgKyAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpO1xyXG5cclxuICAgICAgICAvLyAvL2NvbnNvbGUubG9nKFwi5YWz5Y2h5ZCN56ewOlwiLG5hbWUpO1xyXG4gICAgICAgIC8vIG5hbWUgPSBcIkpzb24vbGV2ZWxcIiArIDY4O1xyXG4gICAgICAgIC8vIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChuYW1lLCAoZXJyOiBhbnksIHJlczogY2MuSnNvbkFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLkxFVkVMX0lORk9faW5pdCh0eXBlLHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBqc29uRGF0YTogb2JqZWN0ID0gcmVzLmpzb24hO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5CTE9DS19JTkZPID0ganNvbkRhdGFbXCJCTE9DS19JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5MRVZFTF9JTkZPID0ganNvbkRhdGFbXCJMRVZFTF9JTkZPXCJdO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5XQUxMX0lORk8gPSBqc29uRGF0YVtcIldBTExfSU5GT1wiXTtcclxuICAgICAgICAgICAgICAgIC8vIC8vY29uc29sZS5sb2coXCLphY3nva7liqDovb3lrozmiJBcIik7IFxyXG4gICAgICAgICAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRpbWUgPT0gMCkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgIC8v6YGT5YW35L2N572u5L+h5oGvXHJcbiAgICAgIHRoaXMuUFJPUF9JTkZPID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY2LCBcInlcIjogNjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE5LCBcInlcIjogMzYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0LjM2MiwgXCJ5XCI6IDEzLjI0NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTcsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODUsIFwieVwiOiA3MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtNSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTI2LCBcInlcIjogNjEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtOTQuNzkyLCBcInlcIjogMjEuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yMCwgXCJ5XCI6IDEzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xNDAsIFwieVwiOiA2OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMiwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjcsIFwieVwiOiAxMjIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTIwLCBcInlcIjogOTQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAyNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiAxMjgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTUsIFwieVwiOiAzLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE3OCwgXCJ5XCI6IDYxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNC43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTE1MCwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjIsIFwieVwiOiAxNiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogNjcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjMsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTE3Ljc5MiwgXCJ5XCI6IDE2Ni42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAzNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzgsIFwieVwiOiAxODIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDIsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTIzLCBcInlcIjogMTI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiA5OS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTk3Ljc5MiwgXCJ5XCI6IDI3LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjcsIFwieVwiOiAxOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMTM1LCBcInlcIjogMTI3LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY0LCBcInlcIjogMTc4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNC43OTIsIFwieVwiOiAyNzUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAzNS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTcsIFwieVwiOiAzOSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtNzcsIFwieVwiOiAxODgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtMTc4LCBcInlcIjogMTg2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zMS43OTIsIFwieVwiOiAxNjMuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAzNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMzAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDE5MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODYsIFwieVwiOiAxNzgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogLTI1Ljc5MiwgXCJ5XCI6IDM4LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMTUzLjc5MiwgXCJ5XCI6IDM0LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjMsIFwieVwiOiAxNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjAwLCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4MywgXCJ5XCI6IDY0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNy43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM2Ljc5MiwgXCJ5XCI6IDI2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMjQsIFwieVwiOiAxNywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtMjEyLCBcInlcIjogNzQsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjUsIFwieVwiOiAxNzcsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTMuMjA4LCBcInlcIjogMjc2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDMsIFwieVwiOiAzMSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODAsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogMCwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiA1OCwgXCJ5XCI6IDE3OSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAyMDUuMjI1LCBcInlcIjogMTU0LjAzNCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMjkuNjQyLCBcInlcIjogMjUuNjkxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IDcuMjE4LCBcInlcIjogMjkuNzY1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IDQ1LCBcInlcIjogMTg1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTgyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAzNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM1Ljc5MiwgXCJ5XCI6IDMzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTQsIFwieVwiOiAxMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODIsIFwieVwiOiAxOTAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczZcIjogeyBcInhcIjogLTIsIFwieVwiOiAxLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTE4NCwgXCJ5XCI6IDYyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAzNi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTI3MS43OTIsIFwieVwiOiAyNC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE3LCBcInlcIjogMjAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTIwMCwgXCJ5XCI6IDcyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTYyLCBcInlcIjogMTc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IDg3LjIwOCwgXCJ5XCI6IDE2NC42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTMxLjc5MiwgXCJ5XCI6IDM1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtNiwgXCJ5XCI6IDI0LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OSwgXCJ5XCI6IDE3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogNSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA3MiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMzMuNzkyLCBcInlcIjogMzguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTQuNzkyLCBcInlcIjogMjkuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0yOSwgXCJ5XCI6IDE2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0yMDEsIFwieVwiOiA4NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAtMSwgXCJ5XCI6IDMsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwicG9zMVwiOiB7IFwieFwiOiAtNjQsIFwieVwiOiAxODEsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczJcIjogeyBcInhcIjogOTUuMjA4LCBcInlcIjogMTU1LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzAuNzkyLCBcInlcIjogMzYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NSwgXCJ5XCI6IDE3OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjEuNzkyLCBcInlcIjogMTU2LjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zM1wiOiB7IFwieFwiOiAtMzEuNzkyLCBcInlcIjogMzcuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xMiwgXCJ5XCI6IDMyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC03OCwgXCJ5XCI6IDE4OCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE4MywgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA4OC4yMDgsIFwieVwiOiAxNjIuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0yOS43OTIsIFwieVwiOiA0MS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTEyLCBcInlcIjogMTgsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgwLCBcInlcIjogMTg4LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC00LCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02NywgXCJ5XCI6IDgwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNi43OTIsIFwieVwiOiAzMi42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczNcIjogeyBcInhcIjogLTM0Ljc5MiwgXCJ5XCI6IDIzLjY3NSwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNFwiOiB7IFwieFwiOiAtMTIsIFwieVwiOiAxOCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNVwiOiB7IFwieFwiOiAtODQsIFwieVwiOiA5MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC0xODQsIFwieVwiOiA4MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiAtMjUuNzkyLCBcInlcIjogMzQuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0xNTUuNzkyLCBcInlcIjogMjUuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M0XCI6IHsgXCJ4XCI6IC0xOCwgXCJ5XCI6IDI2LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M1XCI6IHsgXCJ4XCI6IC0xOTYsIFwieVwiOiA5NiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zNlwiOiB7IFwieFwiOiAwLCBcInlcIjogMCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJwb3MxXCI6IHsgXCJ4XCI6IC02MiwgXCJ5XCI6IDE2MCwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgICAgIFwicG9zMlwiOiB7IFwieFwiOiA5NS4yMDgsIFwieVwiOiAxNTguNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zMy43OTIsIFwieVwiOiAyOS42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTE4LCBcInlcIjogMjYsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTc4LCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IDAsIFwieVwiOiAyLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInBvczFcIjogeyBcInhcIjogLTY4LCBcInlcIjogMTYwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MyXCI6IHsgXCJ4XCI6IC0yNS43OTIsIFwieVwiOiAxNTYuNjc1LCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3MzXCI6IHsgXCJ4XCI6IC0zNS43OTIsIFwieVwiOiAyNy42NzUsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczRcIjogeyBcInhcIjogLTI1LCBcInlcIjogNDAsIFwielwiOiAwIH0sXHJcbiAgICAgICAgICAgICAgICBcInBvczVcIjogeyBcInhcIjogLTgyLCBcInlcIjogMTcwLCBcInpcIjogMCB9LFxyXG4gICAgICAgICAgICAgICAgXCJwb3M2XCI6IHsgXCJ4XCI6IC0yLCBcInlcIjogMiwgXCJ6XCI6IDAgfSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgIC8vIHRoaXMuUFJPUF9JTkZPID0gW3tcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTYuNDQyLFwieVwiOiAzMCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0LjM2MixcInlcIjogMTMuMjQ2LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDEyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjYsXCJ5XCI6IDYzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05NC43OTIsXCJ5XCI6IDIxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIwLFwieVwiOiAxMyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjAsXCJ5XCI6IDEyNSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTEyLjc5MixcInlcIjogOTIuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuNzkyLFwieVwiOiAyMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMjQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NSxcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTE1NC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTIyLFwieVwiOiAxNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTE3Ljc5MixcInlcIjogMTY2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTQsXCJ5XCI6IDM3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xMjMsXCJ5XCI6IDEyNyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogOTkuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtOTcuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNyxcInlcIjogMTksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYyLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNC43OTIsXCJ5XCI6IDI3NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTcsXCJ5XCI6IDM5LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODEsXCJ5XCI6IDE4MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMTYzLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDMwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODIsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTUzLjc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjMsXCJ5XCI6IDE0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODYsXCJ5XCI6IDYxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzcuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNi43OTIsXCJ5XCI6IDI2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI0LFwieVwiOiAxNyxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3NyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogOTMuMjA4LFwieVwiOiAyNzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IDMsXCJ5XCI6IDMxLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IDU4LFwieVwiOiAxNzksXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDIwNS4yMjUsXCJ5XCI6IDE1NC4wMzQsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS42NDIsXCJ5XCI6IDI1LjY5MSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogNy4yMTgsXCJ5XCI6IDI5Ljc2NSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNTcsXCJ5XCI6IDE4MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MCxcInlcIjogNjIsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI3MS43OTIsXCJ5XCI6IDI0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE3LFwieVwiOiAyMCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogODcuMjA4LFwieVwiOiAxNjQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC02LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTc2LFwieVwiOiA2MCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMzguNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjksXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgxLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1NS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMC43OTIsXCJ5XCI6IDM2LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAzMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjMsXCJ5XCI6IDE3OCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTIxLjc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTgzLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4OC4yMDgsXCJ5XCI6IDE2Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yOS43OTIsXCJ5XCI6IDQxLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjQsXCJ5XCI6IDU4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjYuNzkyLFwieVwiOiAzMi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNC43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTEyLFwieVwiOiAxOCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg0LFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMzQuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU1Ljc5MixcInlcIjogMjUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTkwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5NS4yMDgsXCJ5XCI6IDE1OC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDI5LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE4LFwieVwiOiAyNixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNzEsXCJ5XCI6IDE4NCxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI1Ljc5MixcInlcIjogMTU2LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMjcuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjUsXCJ5XCI6IDQwLFwielwiOiAwfX1dO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIHNldENvZGUoY29kZSl7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPLnNjb2RlID0gY29kZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc3RhdGljIGdldEtleShrZXkpe1xyXG4gICAgICAgIC8vIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXnwmKScgKyBrZXkgKyAnPShbXiZdKikoJnwkKScsICdpJyk7XHJcbiAgICAgICAgLy8gdmFyIHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5tYXRjaChyZWcpO1xyXG4gICAgICAgIC8vIGlmIChyICE9IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHVuZXNjYXBlKHJbMl0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/Share/share.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share');
+// Script/module/Share/share.ts
+
+
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/ControlManager.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager');
+// Script/ControlManager.ts
"use strict";
// Learn TypeScript:
@@ -4063,267 +4837,182 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var GameManager_1 = require("./GameManager");
-var NumberToImage_1 = require("./NumberToImage");
-var MiniGameSdk_1 = require("./Sdk/MiniGameSdk");
-var lq_collide_system_1 = require("./lq_collide_system/lq_collide_system");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var NewClass = /** @class */ (function (_super) {
__extends(NewClass, _super);
function NewClass() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.node1 = null;
- _this.node2 = null;
- _this.node3 = null;
- _this.Block_Color = [];
- _this.custom = null;
- _this.level = null;
- _this.coin = null;
- _this.Stamina = null;
+ _this.Map = null;
+ _this.tip = null;
+ _this.reinforce = null;
+ _this.soil = null;
return _this;
// update (dt) {}
}
// LIFE-CYCLE CALLBACKS:
- NewClass.prototype.onLoad = function () {
- cc.game.setFrameRate(63);
- lq_collide_system_1.LQCollideSystem.is_enable = true;
- // console.log("加载关卡配置2");
- // window.initMgr();
- GameManager_1.default._instance.Block_Color = this.Block_Color;
- if (cc.fx.GameConfig.GM_INFO.first) {
- console.log("————————准备注册事件", cc.fx.GameConfig.GM_INFO.openid);
- if (cc.fx.GameConfig.GM_INFO.openid != "") {
- console.log("————————发送注册事件");
- cc.fx.GameTool.shushu_Track("register");
- }
- cc.fx.AudioManager._instance.playEffect("zhuan1", null);
- this.node.getChildByName("zhuanchang").active = true;
- this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
- setTimeout(function () {
- cc.fx.GameConfig.GM_INFO.first = false;
- cc.director.loadScene("GameScene");
- }, 1000);
- }
- };
+ // onLoad () {}
NewClass.prototype.start = function () {
- // console.log("已经进入Home界面");
- // console.log("金币",cc.fx.GameConfig.GM_INFO.coin);
- // console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1);
- var _this = this;
- cc.fx.GameTool.getHealth(null);
- // cc.fx.GameConfig.LEVEL_INFO_init(false,0);
- setTimeout(function () {
- NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, "big_", _this.level, false);
- NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", _this.coin, true);
- _this.setHealthInfo();
- }, 0);
- if (cc.fx.GameConfig.GM_INFO.gameState) {
- this.node.getChildByName("zhuanchang").active = true;
- setTimeout(function () {
- cc.fx.AudioManager._instance.playEffect("zhuan2", null);
- _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false);
- _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function (entry) {
- if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) {
- // 动画播放结束后执行的逻辑
- _this.node.getChildByName("zhuanchang").active = false;
- }
- });
- }, 500);
- }
- else {
- if (!cc.fx.GameConfig.GM_INFO.first)
- this.node.getChildByName("zhuanchang").active = false;
+ this.tipArray = [];
+ this.controlArray = [];
+ this.canTouch = true;
+ this.Reinforce = false;
+ this.Soil = false;
+ this.mapHeight = 0;
+ };
+ NewClass.prototype.setPosition = function (tip) {
+ tip.setPosition(30, -25);
+ if (this.tipArray.length > 0) {
+ var length = this.tipArray.length + 1;
+ var posY = Math.ceil(length / 8) - 1;
+ var posX = length - Math.floor(posY) * 8 - 1;
+ tip.setPosition(30 + 48 * posX, -25 - 48 * posY + this.mapHeight);
}
};
- //开始倒计时
- NewClass.prototype.startTimeCutDown = function () {
- this.scheduleCallback = function () {
- var _this = this;
- if (this.pause)
- return;
- if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {
- this.stopTimeCutDown();
- var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
- this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp;
- cc.fx.GameTool.setUserHealth(1, function (data) {
- cc.fx.GameTool.getHealth(null);
- _this.setHealthInfo();
- });
- }
- else {
- cc.fx.GameConfig.GM_INFO.min_Time -= 1;
- var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
- this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp;
- }
- }.bind(this);
- this.schedule(this.scheduleCallback, 1);
- };
- // 停止倒计时
- NewClass.prototype.stopTimeCutDown = function () {
- if (this.scheduleCallback) {
- this.unschedule(this.scheduleCallback);
- }
- };
- NewClass.prototype.setHealthInfo = function () {
- if (cc.fx.GameConfig.GM_INFO.hp == 5) {
- this.Stamina.getChildByName("man").active = true;
- this.Stamina.getChildByName("health").active = false;
- this.Stamina.getChildByName("time").active = false;
- }
- else {
- this.Stamina.getChildByName("man").active = false;
- this.Stamina.getChildByName("health").active = true;
- NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, "coin_", this.Stamina.getChildByName("health"), false);
- this.Stamina.getChildByName("time").active = true;
- if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {
- var time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
- this.Stamina.getChildByName("time").getComponent(cc.Label).string = time;
- this.startTimeCutDown();
- }
- }
- };
- NewClass.prototype.startGame = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_Big", null);
- if (cc.fx.GameConfig.GM_INFO.hp < 1) {
- MiniGameSdk_1.MiniGameSdk.API.showToast("体力值不足");
+ //清空所有
+ NewClass.prototype.removeAllTip = function () {
+ if (!this.canTouch)
return;
- }
- if (this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch) {
- this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(false);
- // if(this.custom.string != ""){
- // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;
- // // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString());
- // cc.fx.GameConfig.LEVEL_INFO_init(true);
- // }
- // else{
- cc.fx.AudioManager._instance.playEffect("zhuan1", null);
- this.node.getChildByName("zhuanchang").active = true;
- this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
- cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);
- // }
+ if (this.tipArray.length > 0) {
+ cc.fx.AudioManager._instance.playEffect("qingkong", null);
+ for (var i = 0; i < this.tipArray.length; i++) {
+ var tip = this.tipArray[i];
+ tip.active = false;
+ tip.removeFromParent(this.Map);
+ tip = null;
+ }
+ this.tipArray = [];
+ this.controlArray = [];
+ var drawingReset = cc.fx.GameConfig.CLICK_DATA.drawingReset + 1;
+ cc.fx.GameConfig.CLICK_SET("drawingReset", drawingReset);
+ cc.fx.Notifications.emit(cc.fx.Message.removeTip, "remove");
+ this.mapHeight = 0;
}
};
- //打开商店
- NewClass.prototype.openShop = function () {
- var _this = this;
- // 加载 shop bundle
- cc.assetManager.loadBundle('shop', function (err, bundle) {
- bundle.load('prefab/shop', cc.Prefab, function (err, prefab) {
- if (err) {
- cc.error(err.message || err);
+ //撤回一步
+ NewClass.prototype.back_Click = function () {
+ if (!this.canTouch)
+ return;
+ if (this.tipArray.length > 0) {
+ cc.fx.AudioManager._instance.playEffect("chehui", null);
+ var tip = this.tipArray[this.tipArray.length - 1];
+ tip.active = false;
+ tip.removeFromParent(this.Map);
+ tip = null;
+ this.tipArray.pop();
+ this.controlArray.pop();
+ var drawingBack = cc.fx.GameConfig.CLICK_DATA.drawingBack + 1;
+ cc.fx.GameConfig.CLICK_SET("drawingBack", drawingBack);
+ cc.fx.Notifications.emit(cc.fx.Message.removeTip, "back");
+ if (this.tipArray.length >= 24) {
+ if ((this.tipArray.length) % 8 == 0) {
+ this.mapMove(false);
+ }
+ }
+ }
+ };
+ //点击事件
+ NewClass.prototype.btn_Click = function (target, data) {
+ var GameManager = this.node.parent.getComponent("GameManager");
+ if (GameManager.btnClick == true) {
+ GameManager.btnClick = false;
+ cc.fx.Notifications.emit(cc.fx.Message.guideNext);
+ }
+ cc.fx.Notifications.emit(cc.fx.Message.control, data);
+ if (!this.canTouch)
+ return;
+ var prefab = this.tip;
+ if (data == "reinforce" || data == "soil") {
+ prefab = this[data];
+ if (data == "reinforce") {
+ if (this.Reinforce) {
+ this.Reinforce = false;
+ this.back_Click();
return;
}
- if (prefab) {
- var shopNode = cc.instantiate(prefab);
- _this.node.addChild(shopNode);
- console.log("shopNode parent:", shopNode.parent);
+ else {
+ cc.fx.AudioManager._instance.playEffect("jineng", null);
+ this.Reinforce = true;
+ this.Soil = false;
}
- });
- });
- };
- NewClass.prototype.closeRank = function () {
- this.node.getChildByName("Rank").active = false;
- };
- NewClass.prototype.openRank = function () {
- this.node.getChildByName("Rank").active = true;
- };
- NewClass.prototype.openReward = function () {
- this.node.getChildByName("Reward").active = true;
- };
- NewClass.prototype.clickShop = function () {
- // 假设已经获取到了 userId 和 productId
- var userId = cc.fx.GameConfig.GM_INFO.openid;
- var productId = '1';
- console.log("即将创建createorder");
- //@ts-ignore
- wx.cloud.callFunction({
- name: "createOrder",
- data: {
- "userId": userId,
- "productId": productId,
- },
- success: function (res) {
- // 取得云函数返回的订单信息
- console.log("createOrder结果:", res.result);
- var payment = res.result.paymentResult.payment;
- console.log("payment:", payment);
- // 调起微信客户端支付
- //@ts-ignore
- // 调起微信客户端支付
- //@ts-ignore
- wx.requestPayment({
- // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间
- timeStamp: payment.timeStamp,
- // 随机字符串,长度为32个字符以下
- nonceStr: payment.nonceStr,
- // 统一下单接口返回的 prepay_id 参数值
- package: payment.package,
- // 签名算法,暂支持 MD5、HMAC-SHA256
- signType: payment.signType || 'MD5',
- // 支付签名
- paySign: payment.paySign,
- success: function (res) {
- /* 成功回调 */
- console.log("支付成功", res);
- },
- fail: function (res) {
- /* 失败回调 */
- console.log("支付失败", res);
- },
- complete: function (res) {
- console.log("支付完成", res);
- }
- });
- },
- });
- };
- NewClass.prototype.openPause = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_little", null);
- console.log(cc.fx.GameConfig.GM_INFO);
- if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
- console.log(cc.fx.GameConfig.GM_INFO.openid);
- cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ else if (data == "soil") {
+ if (this.Soil) {
+ this.Soil = false;
+ this.back_Click();
+ return;
+ }
+ else {
+ cc.fx.AudioManager._instance.playEffect("jineng", null);
+ this.Soil = true;
+ this.Reinforce = false;
+ }
+ }
+ }
+ else {
+ cc.fx.AudioManager._instance.playEffect("fangxiang", null);
+ this.Reinforce = false;
+ this.Soil = false;
+ }
+ var tip = cc.instantiate(prefab);
+ if (data == "up")
+ tip.angle = 180;
+ if (data == "left")
+ tip.angle = -90;
+ if (data == "right")
+ tip.angle = 90;
+ tip.parent = this.Map;
+ if (this.controlArray[this.controlArray.length - 1] == "reinforce" ||
+ this.controlArray[this.controlArray.length - 1] == "soil") {
+ if (data == "reinforce" || data == "soil") {
+ this.tipArray[this.tipArray.length - 1].removeFromParent();
+ this.tipArray[this.tipArray.length - 1] = null;
+ this.tipArray.pop();
+ this.controlArray.pop();
+ }
+ }
+ this.setPosition(tip);
+ this.tipArray.push(tip);
+ this.controlArray.push(data);
+ if (this.tipArray.length >= 25) {
+ if ((this.tipArray.length - 1) % 8 == 0) {
+ this.mapMove(true);
+ }
}
- this.node.getChildByName("Pause").active = true;
- this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;
};
- NewClass.prototype.closePause = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_little", null);
- this.node.getChildByName("Pause").active = false;
+ //地图放不下了上下移动
+ NewClass.prototype.mapMove = function (type) {
+ if (type)
+ this.mapHeight += 48;
+ else
+ this.mapHeight -= 48;
+ for (var i = 0; i < this.tipArray.length; i++) {
+ var tip = this.tipArray[i];
+ if (type)
+ tip.y += 48;
+ else
+ tip.y -= 48;
+ }
};
- NewClass.prototype.closeReward = function () {
- this.node.getChildByName("Reward").active = false;
- };
- NewClass.prototype.openStamina = function () {
- this.node.getChildByName("Stamina").active = true;
- };
- NewClass.prototype.closeStamina = function () {
- this.node.getChildByName("Stamina").active = false;
+ //点击开始 创建河道
+ NewClass.prototype.start_Click = function () {
+ if (!this.canTouch)
+ return;
+ this.canTouch = false;
+ cc.fx.AudioManager._instance.playEffect("build", null);
+ cc.fx.Notifications.emit(cc.fx.Message.startGame, this.controlArray);
};
__decorate([
property(cc.Node)
- ], NewClass.prototype, "node1", void 0);
+ ], NewClass.prototype, "Map", void 0);
__decorate([
- property(cc.Node)
- ], NewClass.prototype, "node2", void 0);
+ property(cc.Prefab)
+ ], NewClass.prototype, "tip", void 0);
__decorate([
- property(cc.Node)
- ], NewClass.prototype, "node3", void 0);
+ property(cc.Prefab)
+ ], NewClass.prototype, "reinforce", void 0);
__decorate([
- property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" })
- ], NewClass.prototype, "Block_Color", void 0);
- __decorate([
- property(cc.EditBox)
- ], NewClass.prototype, "custom", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "level", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "coin", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "Stamina", void 0);
+ property(cc.Prefab)
+ ], NewClass.prototype, "soil", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -4342,7 +5031,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXdFO0FBQ2xFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBaVJDO1FBOVFHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUd4QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQW9QeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUFsUEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFD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R0FBRyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELDhCQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCwrQkFBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBMVFEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBS3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztpREFDZDtJQUd4QztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDOzRDQUNLO0lBSzFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNNO0lBNUJQLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FpUjVCO0lBQUQsZUFBQztDQWpSRCxBQWlSQyxDQWpScUMsRUFBRSxDQUFDLFNBQVMsR0FpUmpEO2tCQWpSb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi9OdW1iZXJUb0ltYWdlXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZVN5c3RlbSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVfc3lzdGVtXCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkVkaXRCb3gpXHJcbiAgICBjdXN0b206IGNjLkVkaXRCb3ggPSBudWxsO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmlzX2VuYWJsZSA9IHRydWU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLliqDovb3lhbPljaHphY3nva4yXCIpO1xyXG4gICAgICAgIC8vIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yID0gdGhpcy5CbG9ja19Db2xvcjtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5YeG5aSH5rOo5YaM5LqL5Lu2XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWPkemAgeazqOWGjOS6i+S7tlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlZ2lzdGVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bey57uP6L+b5YWlSG9tZeeVjOmdolwiKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumHkeW4gVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWFs+WNoVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKTtcclxuXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDI1LCAxNSwgXCJiaWdfXCIsIHRoaXMubGV2ZWwsIGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEhlYWx0aEluZm8oKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIiAmJiAhY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIC09IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SGVhbHRoSW5mbygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID09IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcIm1hblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLCAyNSwgMTUsIFwiY29pbl9cIiwgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTG9hZFwiKS5nZXRDaGlsZEJ5TmFtZShcInN0YXJ0QnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5ZWG5bqXXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDliqDovb0gc2hvcCAgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ3Nob3AnLCAoZXJyOiBFcnJvciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGJ1bmRsZS5sb2FkKCdwcmVmYWIvc2hvcCcsIGNjLlByZWZhYiwgKGVycjogRXJyb3IsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcE5vZGUgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChzaG9wTm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzaG9wTm9kZSBwYXJlbnQ6XCIsIHNob3BOb2RlLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmFuaygpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrU2hvcCgpIHtcclxuICAgICAgICAvLyDlgYforr7lt7Lnu4/ojrflj5bliLDkuoYgdXNlcklkIOWSjCBwcm9kdWN0SWRcclxuICAgICAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgXCJ1c2VySWRcIjogdXNlcklkLFxyXG4gICAgICAgICAgICAgICAgXCJwcm9kdWN0SWRcIjogcHJvZHVjdElkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDlj5blvpfkupHlh73mlbDov5Tlm57nmoTorqLljZXkv6Hmga9cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIsIHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudCA9IHJlcy5yZXN1bHQucGF5bWVudFJlc3VsdC5wYXltZW50O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLCBwYXltZW50KTtcclxuICAgICAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOaXtumXtOaIs++8jOS7jiAxOTcwIOW5tCAxIOaciCAxIOaXpSAwMDowMDowMCDoh7Pku4rnmoTnp5LmlbDvvIzljbPlvZPliY3nmoTml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICB0aW1lU3RhbXA6IHBheW1lbnQudGltZVN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICAgICAgbm9uY2VTdHI6IHBheW1lbnQubm9uY2VTdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57uf5LiA5LiL5Y2V5o6l5Y+j6L+U5Zue55qEIHByZXBheV9pZCDlj4LmlbDlgLxcclxuICAgICAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g562+5ZCN566X5rOV77yM5pqC5pSv5oyBIE1ENeOAgUhNQUMtU0hBMjU2XHJcbiAgICAgICAgICAgICAgICAgICAgc2lnblR5cGU6IHBheW1lbnQuc2lnblR5cGUgfHwgJ01ENScsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5U2lnbjogcGF5bWVudC5wYXlTaWduLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOaIkOWKn1wiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyog5aSx6LSl5Zue6LCDICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlK/ku5jlrozmiJBcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvcGVuSURcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVJld2FyZCgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSZXdhcmRcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblN0YW1pbmEoKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlU3RhbWluYSgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVLQztRQXBLRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQTZKdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUFySkcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFB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QUFDOzBDQUNHO0lBVE4sUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVLNUI7SUFBRCxlQUFDO0NBdktELEFBdUtDLENBdktxQyxFQUFFLENBQUMsU0FBUyxHQXVLakQ7a0JBdktvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBNYXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHRpcDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICByZWluZm9yY2U6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgc29pbDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIFxyXG5cclxuICAgIHRpcEFycmF5OmFueTtcclxuICAgIGNvbnRyb2xBcnJheTphbnk7XHJcbiAgICBjYW5Ub3VjaDpib29sZWFuO1xyXG4gICAgUmVpbmZvcmNlOmJvb2xlYW47XHJcbiAgICBTb2lsOmJvb2xlYW47XHJcbiAgICBtYXBIZWlnaHQ6bnVtYmVyO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFBvc2l0aW9uKHRpcCl7XHJcbiAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwLC0yNSk7XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMudGlwQXJyYXkubGVuZ3RoKzE7XHJcbiAgICAgICAgICAgIGxldCBwb3NZID0gTWF0aC5jZWlsKGxlbmd0aC84KSAtIDE7XHJcbiAgICAgICAgICAgIGxldCBwb3NYID0gbGVuZ3RoIC0gTWF0aC5mbG9vcihwb3NZKSo4IC0gMTtcclxuICAgICAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwICsgNDgqcG9zWCwtMjUgLTQ4KnBvc1kgKyB0aGlzLm1hcEhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aSpOWbnuS4gOatpVxyXG4gICAgYmFja19DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiY2hlaHVpXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRpcC5yZW1vdmVGcm9tUGFyZW50KHRoaXMuTWFwKTtcclxuICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50aXBBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nQmFjayA9IGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5kcmF3aW5nQmFjayArIDE7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfU0VUKFwiZHJhd2luZ0JhY2tcIixkcmF3aW5nQmFjayk7XHJcbiAgICAgICAgICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChjYy5meC5NZXNzYWdlLnJlbW92ZVRpcCxcImJhY2tcIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID49IDI0KXtcclxuICAgICAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCApJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBNb3ZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+PSAyNSl7XHJcbiAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCAtIDEpJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE1vdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+WcsOWbvuaUvuS4jeS4i+S6huS4iuS4i+enu+WKqFxyXG4gICAgbWFwTW92ZSh0eXBlKXtcclxuICAgICAgICBpZih0eXBlKSB0aGlzLm1hcEhlaWdodCArPSA0ODtcclxuICAgICAgICBlbHNlIHRoaXMubWFwSGVpZ2h0IC09IDQ4O1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMudGlwQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZih0eXBlKXRpcC55ICs9IDQ4O1xyXG4gICAgICAgICAgICBlbHNlIHRpcC55IC09IDQ4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+W8gOWniyDliJvlu7rmsrPpgZNcclxuICAgIHN0YXJ0X0NsaWNrKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuY2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYnVpbGRcIixudWxsKTtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5zdGFydEdhbWUsdGhpcy5jb250cm9sQXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
//------QC-SOURCE-SPLIT------
(function() {
@@ -4420,211 +5109,6 @@ cc._RF.pop();
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lU2NlbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUdBOztBQUVBOztBQUVBOztBQUVBO0FBQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjYy5DbGFzcyh7XHJcbi8vICAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcbi8vICAgICBwcm9wZXJ0aWVzOiB7XHJcbi8vICAgICAgICAgbG9jYWxUZXN0OiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn5pys5Zyw5rWL6K+V5pe25Yu+6YCJ77yM6YG/5YWNdHpfdXJs5ZKMQ29uZmlndXJl5oql6ZSZ77yM5o+Q5Lqk5YmN5Yu+5o6JJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgY2xpZW50VGVzdDoge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcclxuLy8gICAgICAgICAgICAgdG9vbHRpcDogJ+WuouaIt+err+a1i+ivleaXtuWLvumAie+8jOWxleekuueJiOacrOagh+iusOaWueS+v+a1i+ivleWMuuWIhu+8jOS4iue6v+WJjeWLvuaOiSdcclxuLy8gICAgICAgICB9LFxyXG4vLyAgICAgICAgIGNsaWVudFRlc3RWZXJzaW9uOiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn54mI5pys5qCH6K6wJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgdGVzdFZlcnNpb246IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHNjb3JlOiBjYy5MYWJlbCxcclxuLy8gICAgICAgICBkb3VibGVfaGl0OiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGFkZDogY2MuTm9kZSxcclxuLy8gICAgICAgICBhZGQyOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGRvdWJsZV90aXRsZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBjb3VudF90aW1lOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGJlZ2luTm9kZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBiYWxsX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJnX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJhbGxfbGlnaHQ6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAga3VhbmdfRnJhbWU6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAgZGFvamlzaGk6IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHBhdXNlX2Fubml1OiBjYy5TcHJpdGUsXHJcbi8vICAgICAgICAgbWFzazogY2MuTm9kZSxcclxuXHJcbi8vICAgICAgICAgZmxhc2hVSToge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBudWxsLFxyXG4vLyAgICAgICAgICAgICB0eXBlOiBjYy5TcHJpdGVBdGxhc1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICB9LFxyXG5cclxuLy8gICAgIG9uTG9hZCgpIHtcclxuXHJcblxyXG4vLyAgICAgfSxcclxuXHJcbi8vICAgICB1cGRhdGUoZHQpIHtcclxuXHJcbi8vICAgICB9LFxyXG5cclxuLy8gfSk7Il19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Reduce.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'ca599IU5hFEYYrzoN59YOpT', 'Reduce');
-// Script/Reduce.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var NewClass = /** @class */ (function (_super) {
- __extends(NewClass, _super);
- function NewClass() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.Block_Color = [];
- _this.level = null;
- return _this;
- // update (dt) {}
- }
- // LIFE-CYCLE CALLBACKS:
- NewClass.prototype.onLoad = function () {
- };
- NewClass.prototype.start = function () {
- };
- __decorate([
- property({ type: [cc.SpriteFrame], tooltip: "方块颜色图片" })
- ], NewClass.prototype, "Block_Color", void 0);
- __decorate([
- property(cc.Label)
- ], NewClass.prototype, "level", void 0);
- NewClass = __decorate([
- ccclass
- ], NewClass);
- return NewClass;
-}(cc.Component));
-exports.default = NewClass;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSZWR1Y2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUF1QkM7UUFwQkcsaUJBQVcsR0FBMkIsRUFBRSxDQUFDO1FBSXpDLFdBQUssR0FBYSxJQUFJLENBQUM7O1FBZXZCLGlCQUFpQjtJQUNyQixDQUFDO0lBZEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47SUFFQSxDQUFDO0lBQ0Qsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFiRDtRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLENBQUM7aURBQ1o7SUFJekM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQVBOLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1QjVCO0lBQUQsZUFBQztDQXZCRCxBQXVCQyxDQXZCcUMsRUFBRSxDQUFDLFNBQVMsR0F1QmpEO2tCQXZCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlNwcml0ZUZyYW1lXSwgdG9vbHRpcDpcIuaWueWdl+minOiJsuWbvueJh1wifSlcclxuICAgIEJsb2NrX0NvbG9yIDogQXJyYXk8Y2MuU3ByaXRlRnJhbWU+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgXHJcblxyXG5cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/CollisionDetection.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'f1883pXzMVIp5/ARDAWfZ7j', 'CollisionDetection');
-// Script/CollisionDetection.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent;
-var CollisionDetection = /** @class */ (function (_super) {
- __extends(CollisionDetection, _super);
- function CollisionDetection() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- CollisionDetection_1 = CollisionDetection;
- CollisionDetection.prototype.onLoad = function () {
- if (CollisionDetection_1._instance == null) {
- CollisionDetection_1._instance = this;
- // cc.game.addPersistRootNode(this.node);
- }
- else {
- return;
- }
- };
- //碰撞检测函数
- CollisionDetection.prototype.isColliding = function (rect1, rect2) {
- // 快速排除:检查边界框是否相交
- if (rect1.xMax < rect2.xMin || rect2.xMax < rect1.xMin || rect1.yMax < rect2.yMin || rect2.yMax < rect1.yMin) {
- return { isColliding: false };
- }
- // 调用原始的 intersects 方法
- var isColliding = rect1.intersects(rect2);
- return { isColliding: isColliding };
- };
- // 获取多边形的所有边的法线
- CollisionDetection.prototype.getNormals = function (polygon) {
- var normals = [];
- var length = polygon.length;
- for (var i = 0; i < length; i++) {
- var p1 = polygon[i];
- var p2 = polygon[(i + 1) % length];
- var edge = new cc.Vec2(p2.x - p1.x, p2.y - p1.y);
- var normal = new cc.Vec2(-edge.y, edge.x);
- normal.normalize();
- normals.push(normal);
- }
- return normals;
- };
- // 将多边形投影到轴上
- CollisionDetection.prototype.project = function (polygon, axis) {
- var min = cc.Vec2.dot(polygon[0], axis);
- var max = min;
- for (var i = 1; i < polygon.length; i++) {
- var dotProduct = cc.Vec2.dot(polygon[i], axis);
- if (dotProduct < min) {
- min = dotProduct;
- }
- else if (dotProduct > max) {
- max = dotProduct;
- }
- }
- return { min: min, max: max };
- };
- // 检查两个投影是否重叠
- CollisionDetection.prototype.overlap = function (projection1, projection2) {
- return !(projection1.max < projection2.min || projection2.max < projection1.min);
- };
- var CollisionDetection_1;
- CollisionDetection = CollisionDetection_1 = __decorate([
- ccclass
- ], CollisionDetection);
- return CollisionDetection;
-}(cc.Component));
-exports.default = CollisionDetection;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb2xsaXNpb25EZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHNUUsSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBZ0Qsc0NBQVk7SUFBNUQ7O0lBNkRBLENBQUM7MkJBN0RvQixrQkFBa0I7SUFDUCxtQ0FBTSxHQUFOO1FBQ3hCLElBQUksb0JBQWtCLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUN0QyxvQkFBa0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLHlDQUF5QztTQUM1QzthQUNJO1lBQ0QsT0FBTztTQUNWO0lBRUwsQ0FBQztJQUNELFFBQVE7SUFDRCx3Q0FBVyxHQUFsQixVQUFtQixLQUFjLEVBQUUsS0FBYztRQUM3QyxpQkFBaUI7UUFDakIsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNqQztRQUVELHNCQUFzQjtRQUN0QixJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE9BQU8sRUFBRSxXQUFXLGFBQUEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxlQUFlO0lBQ1AsdUNBQVUsR0FBbEIsVUFBbUIsT0FBa0I7UUFDakMsSUFBTSxPQUFPLEdBQWMsRUFBRSxDQUFDO1FBQzlCLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLElBQU0sSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNKLG9DQUFPLEdBQWYsVUFBZ0IsT0FBa0IsRUFBRSxJQUFhO1FBQzdDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFO2dCQUNsQixHQUFHLEdBQUcsVUFBVSxDQUFDO2FBQ3BCO2lCQUFNLElBQUksVUFBVSxHQUFHLEdBQUcsRUFBRTtnQkFDekIsR0FBRyxHQUFHLFVBQVUsQ0FBQzthQUNwQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBQSxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWE7SUFDTCxvQ0FBTyxHQUFmLFVBQWdCLFdBQXlDLEVBQUUsV0FBeUM7UUFDaEcsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O0lBMURnQixrQkFBa0I7UUFEdEMsT0FBTztPQUNhLGtCQUFrQixDQTZEdEM7SUFBRCx5QkFBQztDQTdERCxBQTZEQyxDQTdEK0MsRUFBRSxDQUFDLFNBQVMsR0E2RDNEO2tCQTdEb0Isa0JBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGlzaW9uRGV0ZWN0aW9uIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTsgICAgICBvbkxvYWQoKSB7XHJcbiAgICAgICAgaWYgKENvbGxpc2lvbkRldGVjdGlvbi5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBDb2xsaXNpb25EZXRlY3Rpb24uX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy/norDmkp7mo4DmtYvlh73mlbBcclxuICAgIHB1YmxpYyBpc0NvbGxpZGluZyhyZWN0MTogY2MuUmVjdCwgcmVjdDI6IGNjLlJlY3QpOiB7IGlzQ29sbGlkaW5nOiBib29sZWFuIH0ge1xyXG4gICAgICAgIC8vIOW/q+mAn+aOkumZpO+8muajgOafpei+ueeVjOahhuaYr+WQpuebuOS6pFxyXG4gICAgICAgIGlmIChyZWN0MS54TWF4IDwgcmVjdDIueE1pbiB8fCByZWN0Mi54TWF4IDwgcmVjdDEueE1pbiB8fCByZWN0MS55TWF4IDwgcmVjdDIueU1pbiB8fCByZWN0Mi55TWF4IDwgcmVjdDEueU1pbikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBpc0NvbGxpZGluZzogZmFsc2UgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOiwg+eUqOWOn+Wni+eahCBpbnRlcnNlY3RzIOaWueazlVxyXG4gICAgICAgIGNvbnN0IGlzQ29sbGlkaW5nID0gcmVjdDEuaW50ZXJzZWN0cyhyZWN0Mik7XHJcblxyXG4gICAgICAgIHJldHVybiB7IGlzQ29sbGlkaW5nIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIOiOt+WPluWkmui+ueW9oueahOaJgOaciei+ueeahOazlee6v1xyXG4gICAgcHJpdmF0ZSBnZXROb3JtYWxzKHBvbHlnb246IGNjLlZlYzJbXSk6IGNjLlZlYzJbXSB7XHJcbiAgICAgICAgY29uc3Qgbm9ybWFsczogY2MuVmVjMltdID0gW107XHJcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwMSA9IHBvbHlnb25baV07XHJcbiAgICAgICAgICAgIGNvbnN0IHAyID0gcG9seWdvblsoaSArIDEpICUgbGVuZ3RoXTtcclxuICAgICAgICAgICAgY29uc3QgZWRnZSA9IG5ldyBjYy5WZWMyKHAyLnggLSBwMS54LCBwMi55IC0gcDEueSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbCA9IG5ldyBjYy5WZWMyKC1lZGdlLnksIGVkZ2UueCk7XHJcbiAgICAgICAgICAgIG5vcm1hbC5ub3JtYWxpemUoKTtcclxuICAgICAgICAgICAgbm9ybWFscy5wdXNoKG5vcm1hbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub3JtYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWwhuWkmui+ueW9ouaKleW9seWIsOi9tOS4ilxyXG4gICAgcHJpdmF0ZSBwcm9qZWN0KHBvbHlnb246IGNjLlZlYzJbXSwgYXhpczogY2MuVmVjMik6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0ge1xyXG4gICAgICAgIGxldCBtaW4gPSBjYy5WZWMyLmRvdChwb2x5Z29uWzBdLCBheGlzKTtcclxuICAgICAgICBsZXQgbWF4ID0gbWluO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcG9seWdvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkb3RQcm9kdWN0ID0gY2MuVmVjMi5kb3QocG9seWdvbltpXSwgYXhpcyk7XHJcbiAgICAgICAgICAgIGlmIChkb3RQcm9kdWN0IDwgbWluKSB7XHJcbiAgICAgICAgICAgICAgICBtaW4gPSBkb3RQcm9kdWN0O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvdFByb2R1Y3QgPiBtYXgpIHtcclxuICAgICAgICAgICAgICAgIG1heCA9IGRvdFByb2R1Y3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbWluLCBtYXggfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmo4Dmn6XkuKTkuKrmipXlvbHmmK/lkKbph43lj6BcclxuICAgIHByaXZhdGUgb3ZlcmxhcChwcm9qZWN0aW9uMTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSwgcHJvamVjdGlvbjI6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIShwcm9qZWN0aW9uMS5tYXggPCBwcm9qZWN0aW9uMi5taW4gfHwgcHJvamVjdGlvbjIubWF4IDwgcHJvamVjdGlvbjEubWluKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -4882,7 +5366,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/RankManager.js';
+ var __filename = 'preview-scripts/assets/Script/JiaZai.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -4890,10 +5374,16 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager');
-// Script/RankManager.ts
+cc._RF.push(module, '1dc93b4fehOrpGgTkihBH4g', 'JiaZai');
+// Script/JiaZai.ts
"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
@@ -4914,146 +5404,299 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var List_1 = require("./module/RankList/List");
+var GameManager_1 = require("./GameManager");
+var NumberToImage_1 = require("./NumberToImage");
+var MiniGameSdk_1 = require("./Sdk/MiniGameSdk");
+var lq_collide_system_1 = require("./lq_collide_system/lq_collide_system");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-//排行榜
-var RankManager = /** @class */ (function (_super) {
- __extends(RankManager, _super);
- function RankManager() {
+var NewClass = /** @class */ (function (_super) {
+ __extends(NewClass, _super);
+ function NewClass() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.Player = null;
- _this.selfNode = null;
- _this.phone = null;
+ _this.node1 = null;
+ _this.node2 = null;
+ _this.node3 = null;
+ _this.Block_Color = [];
+ _this.custom = null;
+ _this.level = null;
+ _this.coin = null;
+ _this.Stamina = null;
+ _this.lastPauseClickTime = 0; // 用于记录上次点击的时间戳
+ _this.setUi = null;
return _this;
+ // update (dt) {}
}
- RankManager.prototype.onLoad = function () {
- this.init();
- };
- //初始化数据
- RankManager.prototype.init = function () {
- this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default);
- this.Player.getChildByName("rank").active = false;
- this.listData = [];
- this.selfData = null;
- this.rankNumber = 100;
- this.rankTotal = 100;
- this.selfNode.opacity = 0;
- };
- RankManager.prototype.start = function () {
- this.Player.active = false;
- this.getRank();
- };
- //调用获取排行榜接口
- RankManager.prototype.getRank = function () {
- var _this = this;
- var dataFile = {
- length: 100
- };
- cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); });
- };
- //实际设置排行数据
- RankManager.prototype.getRankData = function (data) {
- if (data) {
- // console.log(data);
- cc.fx.GameTool.getRankData(data, this, 6);
- this.setPic(this.selfData.pic);
- }
- };
- //返回按钮
- RankManager.prototype.backClick = function () {
- cc.director.loadScene("LoadScene");
- };
- //最上方用户动画
- RankManager.prototype.playerAction = function () {
- var _this = this;
- //-254 377 210 453
- this.Player.getChildByName("rank").active = false;
- var time = 1;
- this.tween = cc.tween(this.Player)
- .to(2, { position: cc.v3(215, 525, 0) })
- .call(function () {
- _this.Player.getChildByName("rank").active = true;
- _this.Player.getChildByName("rank").getChildByName("number")
- .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%";
- })
- .start();
- time = (this.listData.length - this.rankNumber) / this.listData.length;
- if (this.listData.length >= 99) {
- if (this.rankNumber >= 99) {
- time = (Math.random() * 49 + 1) / 100;
- var matchId = cc.sys.localStorage.getItem("matchNumber");
- if (matchId == null || matchId == undefined) {
- time = 0;
- }
+ // LIFE-CYCLE CALLBACKS:
+ NewClass.prototype.onLoad = function () {
+ cc.game.setFrameRate(63);
+ lq_collide_system_1.LQCollideSystem.is_enable = true;
+ // console.log("加载关卡配置2");
+ // window.initMgr();
+ GameManager_1.default._instance.Block_Color = this.Block_Color;
+ if (cc.fx.GameConfig.GM_INFO.first) {
+ console.log("————————准备注册事件", cc.fx.GameConfig.GM_INFO.openid);
+ if (cc.fx.GameConfig.GM_INFO.openid != "") {
+ console.log("————————发送注册事件");
+ cc.fx.GameTool.shushu_Track("register");
}
+ cc.fx.AudioManager._instance.playEffect("zhuan1", null);
+ this.node.getChildByName("zhuanchang").active = true;
+ this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
+ setTimeout(function () {
+ cc.fx.GameConfig.GM_INFO.first = false;
+ cc.director.loadScene("GameScene");
+ }, 1000);
}
+ };
+ NewClass.prototype.start = function () {
+ // console.log("已经进入Home界面");
+ // console.log("金币",cc.fx.GameConfig.GM_INFO.coin);
+ // console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1);
+ var _this = this;
+ cc.fx.GameTool.getHealth(null);
+ // cc.fx.GameConfig.LEVEL_INFO_init(false,0);
setTimeout(function () {
- if (_this.tween)
- _this.tween.stop();
- _this.Player.getChildByName("rank").active = true;
- _this.Player.getChildByName("rank").getChildByName("number")
- .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%";
- }, time * 2000);
+ NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, "big_", _this.level, false);
+ NumberToImage_1.default.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", _this.coin, true);
+ _this.setHealthInfo();
+ }, 0);
+ if (cc.fx.GameConfig.GM_INFO.gameState) {
+ this.node.getChildByName("zhuanchang").active = true;
+ setTimeout(function () {
+ cc.fx.AudioManager._instance.playEffect("zhuan2", null);
+ _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false);
+ _this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener(function (entry) {
+ if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) {
+ // 动画播放结束后执行的逻辑
+ _this.node.getChildByName("zhuanchang").active = false;
+ }
+ });
+ }, 500);
+ }
+ else {
+ if (!cc.fx.GameConfig.GM_INFO.first)
+ this.node.getChildByName("zhuanchang").active = false;
+ }
};
- //设置头像 处理的逻辑比较多,不用公共类的了
- RankManager.prototype.setPic = function (pic) {
- var _this = this;
- this.phone.node.parent.getChildByName("icon").active = false;
- this.phone.node.active = false;
- this.Player.active = true;
- this.Player.opacity = 0;
- this.Player.getChildByName("mask").getChildByName("icon").active = false;
- this.Player.getChildByName("mask").getChildByName("phone").active = false;
- fetch(pic)
- .then(function (response) {
- return response.headers.get('Content-Length');
- })
- .then(function (errNo) {
- if (errNo == "5093") {
- _this.phone.node.parent.getChildByName("icon").active = true;
- _this.Player.getChildByName("mask").getChildByName("icon").active = true;
- }
- })
- .catch(function (error) {
- // console.error('Error fetching X-Info:', error);
- });
- var self = this;
- cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) {
- self.Player.opacity = 255;
- if (texture) {
- self.phone.node.active = true;
- self.phone.spriteFrame = new cc.SpriteFrame(texture);
- self.Player.getChildByName("mask").getChildByName("icon").active = false;
- self.Player.getChildByName("mask").getChildByName("phone").active = true;
- self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite)
- .spriteFrame = new cc.SpriteFrame(texture);
- setTimeout(function () {
- self.playerAction();
- }, 500);
+ //开始倒计时
+ NewClass.prototype.startTimeCutDown = function () {
+ this.scheduleCallback = function () {
+ var _this = this;
+ if (this.pause)
+ return;
+ if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {
+ this.stopTimeCutDown();
+ var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
+ this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp;
+ cc.fx.GameTool.setUserHealth(1, function (data) {
+ cc.fx.GameTool.getHealth(null);
+ _this.setHealthInfo();
+ });
}
else {
- self.Player.getChildByName("mask").getChildByName("icon").active = true;
- setTimeout(function () {
- self.playerAction();
- }, 500);
+ cc.fx.GameConfig.GM_INFO.min_Time -= 1;
+ var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
+ this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp;
}
+ }.bind(this);
+ this.schedule(this.scheduleCallback, 1);
+ };
+ // 停止倒计时
+ NewClass.prototype.stopTimeCutDown = function () {
+ if (this.scheduleCallback) {
+ this.unschedule(this.scheduleCallback);
+ }
+ };
+ NewClass.prototype.setHealthInfo = function () {
+ if (cc.fx.GameConfig.GM_INFO.hp == 5) {
+ this.Stamina.getChildByName("man").active = true;
+ this.Stamina.getChildByName("health").active = false;
+ this.Stamina.getChildByName("time").active = false;
+ }
+ else {
+ this.Stamina.getChildByName("man").active = false;
+ this.Stamina.getChildByName("health").active = true;
+ NumberToImage_1.default.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, "coin_", this.Stamina.getChildByName("health"), false);
+ this.Stamina.getChildByName("time").active = true;
+ if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {
+ var time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);
+ this.Stamina.getChildByName("time").getComponent(cc.Label).string = time;
+ this.startTimeCutDown();
+ }
+ }
+ };
+ NewClass.prototype.startGame = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_Big", null);
+ if (cc.fx.GameConfig.GM_INFO.hp < 1) {
+ MiniGameSdk_1.MiniGameSdk.API.showToast("体力值不足");
+ return;
+ }
+ if (this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch) {
+ this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(false);
+ // if(this.custom.string != ""){
+ // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;
+ // // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString());
+ // cc.fx.GameConfig.LEVEL_INFO_init(true);
+ // }
+ // else{
+ cc.fx.AudioManager._instance.playEffect("zhuan1", null);
+ this.node.getChildByName("zhuanchang").active = true;
+ this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
+ cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);
+ // }
+ }
+ };
+ //打开商店
+ NewClass.prototype.openShop = function () {
+ var _this = this;
+ // 加载 shop bundle
+ cc.assetManager.loadBundle('shop', function (err, bundle) {
+ bundle.load('prefab/shop', cc.Prefab, function (err, prefab) {
+ if (err) {
+ cc.error(err.message || err);
+ return;
+ }
+ if (prefab) {
+ var shopNode = cc.instantiate(prefab);
+ _this.node.addChild(shopNode);
+ console.log("shopNode parent:", shopNode.parent);
+ }
+ });
});
};
+ NewClass.prototype.closeRank = function () {
+ this.node.getChildByName("Rank").active = false;
+ };
+ NewClass.prototype.openRank = function () {
+ this.node.getChildByName("Rank").active = true;
+ };
+ NewClass.prototype.openReward = function () {
+ this.node.getChildByName("Reward").active = true;
+ };
+ NewClass.prototype.clickShop = function () {
+ // 假设已经获取到了 userId 和 productId
+ var userId = cc.fx.GameConfig.GM_INFO.openid;
+ var productId = '1';
+ console.log("即将创建createorder");
+ //@ts-ignore
+ wx.cloud.callFunction({
+ name: "createOrder",
+ data: {
+ "userId": userId,
+ "productId": productId,
+ },
+ success: function (res) {
+ // 取得云函数返回的订单信息
+ console.log("createOrder结果:", res.result);
+ var payment = res.result.paymentResult.payment;
+ console.log("payment:", payment);
+ // 调起微信客户端支付
+ //@ts-ignore
+ // 调起微信客户端支付
+ //@ts-ignore
+ wx.requestPayment({
+ // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间
+ timeStamp: payment.timeStamp,
+ // 随机字符串,长度为32个字符以下
+ nonceStr: payment.nonceStr,
+ // 统一下单接口返回的 prepay_id 参数值
+ package: payment.package,
+ // 签名算法,暂支持 MD5、HMAC-SHA256
+ signType: payment.signType || 'MD5',
+ // 支付签名
+ paySign: payment.paySign,
+ success: function (res) {
+ /* 成功回调 */
+ console.log("支付成功", res);
+ },
+ fail: function (res) {
+ /* 失败回调 */
+ console.log("支付失败", res);
+ },
+ complete: function (res) {
+ console.log("支付完成", res);
+ }
+ });
+ },
+ });
+ };
+ NewClass.prototype.openPause = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ console.log(cc.fx.GameConfig.GM_INFO);
+ if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
+ console.log(cc.fx.GameConfig.GM_INFO.openid);
+ cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ this.node.getChildByName("Pause").active = true;
+ this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;
+ };
+ NewClass.prototype.closePause = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ this.node.getChildByName("Pause").active = false;
+ };
+ NewClass.prototype.openSet = function () {
+ var now = Date.now();
+ if (now - this.lastPauseClickTime < 300) {
+ // 0.3秒内禁止再次点击
+ return;
+ }
+ this.lastPauseClickTime = now;
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
+ cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ if (!this.setUi.active) {
+ // 第一次点击,打开并播放动画
+ this.setUi.active = true;
+ this.setUi.getComponent(cc.Animation).play();
+ }
+ else {
+ // 再次点击,关闭节点
+ this.setUi.active = false;
+ }
+ };
+ NewClass.prototype.closeReward = function () {
+ this.node.getChildByName("Reward").active = false;
+ };
+ NewClass.prototype.openStamina = function () {
+ this.node.getChildByName("Stamina").active = true;
+ };
+ NewClass.prototype.closeStamina = function () {
+ this.node.getChildByName("Stamina").active = false;
+ };
__decorate([
- property(cc.Node) //用户上方头像
- ], RankManager.prototype, "Player", void 0);
+ property(cc.Node)
+ ], NewClass.prototype, "node1", void 0);
__decorate([
- property(cc.Node) //用户最下方个人信息
- ], RankManager.prototype, "selfNode", void 0);
+ property(cc.Node)
+ ], NewClass.prototype, "node2", void 0);
__decorate([
- property(cc.Sprite) //用户头像换图
- ], RankManager.prototype, "phone", void 0);
- RankManager = __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "node3", void 0);
+ __decorate([
+ property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" })
+ ], NewClass.prototype, "Block_Color", void 0);
+ __decorate([
+ property(cc.EditBox)
+ ], NewClass.prototype, "custom", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "level", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "coin", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "Stamina", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "setUi", void 0);
+ NewClass = __decorate([
ccclass
- ], RankManager);
- return RankManager;
+ ], NewClass);
+ return NewClass;
}(cc.Component));
-exports.default = RankManager;
+exports.default = NewClass;
cc._RF.pop();
}
@@ -5066,7 +5709,395 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSYW5rTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBMEM7QUFDcEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFDNUMsS0FBSztBQUVMO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBK0hDO1FBN0hHLFlBQU0sR0FBWSxJQUFJLENBQUM7UUFFdkIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixXQUFLLEdBQWMsSUFBSSxDQUFDOztJQXlINUIsQ0FBQztJQWpIRyw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO0lBQ1AsMEJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJ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QUM7Z0JBQzNDLFVBQVUsQ0FBQztvQkFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUNHO2dCQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUN4RSxVQUFVLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtRQUVMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsUUFBUTsrQ0FDYjtJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsV0FBVztpREFDZDtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQVEsUUFBUTs4Q0FDWjtJQU5QLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0ErSC9CO0lBQUQsa0JBQUM7Q0EvSEQsQUErSEMsQ0EvSHdDLEVBQUUsQ0FBQyxTQUFTLEdBK0hwRDtrQkEvSG9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IExpc3QgZnJvbSBcIi4vbW9kdWxlL1JhbmtMaXN0L0xpc3RcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuLy/mjpLooYzmppxcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFua01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35LiK5pa55aS05YOPXHJcbiAgICBQbGF5ZXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35pyA5LiL5pa55Liq5Lq65L+h5oGvXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlKSAgICAgICAgLy/nlKjmiLflpLTlg4/mjaLlm75cclxuICAgIHBob25lOiBjYy5TcHJpdGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSByYW5rTGlzdDogTGlzdDsgICAgIC8v5o6S6KGM5qacXHJcbiAgICB0d2VlbjogY2MuVHdlZW48Y2MuTm9kZT47ICAgLy/mnIDkuIrmlrnnlKjmiLflpLTlg4/liqjnlLtcclxuICAgIGxpc3REYXRhOiBhbnk7ICAgICAgICAgICAgICAvL+aAu+WIl+ihqOS/oeaBr1xyXG4gICAgc2VsZkRhdGE6IGFueTsgICAgICAgICAgICAgIC8v6Ieq5bex5L+h5oGvXHJcbiAgICByYW5rTnVtYmVyOiBudW1iZXI7ICAgICAgICAgLy/nlKjmiLfoh6rlt7HmjpLlkI0g5pyJ5Y+v6IO95LiN5Zyo5o6S6KGM5qac5YaFOTkrXHJcbiAgICByYW5rVG90YWw6IG51bWJlcjsgICAgICAgICAgLy/ojrflj5bmjpLooYzmppznlKjmiLfmlbDph48g546w5Zyo5Li6MTAwXHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgLy/liJ3lp4vljJbmlbDmja5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGZEYXRhID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSAxMDA7XHJcbiAgICAgICAgdGhpcy5yYW5rVG90YWw9IDEwMDtcclxuICAgICAgICB0aGlzLnNlbGZOb2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG4gICAgLy/osIPnlKjojrflj5bmjpLooYzmppzmjqXlj6NcclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDoxMDBcclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFJhbmsoZGF0YUZpbGUsZGF0YSA9PnRoaXMuZ2V0UmFua0RhdGEoZGF0YSkpO1xyXG4gICAgfVxyXG4gICAgLy/lrp7pmYXorr7nva7mjpLooYzmlbDmja5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0UmFua0RhdGEoZGF0YSx0aGlzLDYpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBpYyh0aGlzLnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/ov5Tlm57mjInpkq5cclxuICAgIGJhY2tDbGljaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5pyA5LiK5pa555So5oi35Yqo55S7XHJcbiAgICBwbGF5ZXJBY3Rpb24oKXtcclxuICAgICAgICAvLy0yNTQgMzc3ICAyMTAgNDUzXHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB0aW1lID0gMTtcclxuICAgICAgICB0aGlzLnR3ZWVuID0gY2MudHdlZW4odGhpcy5QbGF5ZXIpXHJcbiAgICAgICAgLnRvKDIse3Bvc2l0aW9uOmNjLnYzKDIxNSw1MjUsMCl9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB0aW1lID0gKHRoaXMubGlzdERhdGEubGVuZ3RoIC0gdGhpcy5yYW5rTnVtYmVyKS90aGlzLmxpc3REYXRhLmxlbmd0aDtcclxuICAgICAgICBpZih0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSA5OSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmFua051bWJlciA+PSA5OSl7XHJcbiAgICAgICAgICAgICAgICB0aW1lID0gKE1hdGgucmFuZG9tKCkqNDkrMSkvMTAwXHJcbiAgICAgICAgICAgICAgICB2YXIgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoTnVtYmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobWF0Y2hJZCA9PSBudWxsIHx8IG1hdGNoSWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy50d2Vlbil0aGlzLnR3ZWVuLnN0b3AoKTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm51bWJlclwiKVxyXG4gICAgICAgICAgICAuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSAgcGFyc2VJbnQodGltZSoxMDAgKyBcIlwiKSArIFwiJVwiO1xyXG4gICAgICAgIH0sIHRpbWUqMjAwMCk7XHJcblxyXG4gICAgfVxyXG4gICAgLy/orr7nva7lpLTlg48gIOWkhOeQhueahOmAu+i+keavlOi+g+Wkmu+8jOS4jeeUqOWFrOWFseexu+eahOS6hlxyXG4gICAgcHVibGljIHNldFBpYyhwaWMpe1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlBsYXllci5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgZmV0Y2gocGljKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShwaWMsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBzZWxmLlBsYXllci5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHNlbGYucGhvbmUubm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSlcclxuICAgICAgICAgICAgICAgIC5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucGxheWVyQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXdFO0FBQ2xFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMFNDO1FBdlNHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUd4QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDO1FBRWhCLHdCQUFrQixHQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWU7UUFHdkQsV0FBSyxHQUFZLElBQUksQ0FBQzs7UUF3UXRCLGlCQUFpQjtJQUNyQixDQUFDO0lBdlFHLHdCQUF3QjtJQUV4Qix5QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsbUNBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FB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LFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQW5TRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUt0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7aURBQ2Q7SUFHeEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzs0Q0FDSztJQUsxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQUt4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBakNMLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EwUzVCO0lBQUQsZUFBQztDQTFTRCxBQTBTQyxDQTFTcUMsRUFBRSxDQUFDLFNBQVMsR0EwU2pEO2tCQTFTb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi9OdW1iZXJUb0ltYWdlXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZVN5c3RlbSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVfc3lzdGVtXCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkVkaXRCb3gpXHJcbiAgICBjdXN0b206IGNjLkVkaXRCb3ggPSBudWxsO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG4gICAgcHJpdmF0ZSBsYXN0UGF1c2VDbGlja1RpbWU6IG51bWJlciA9IDA7IC8vIOeUqOS6juiusOW9leS4iuasoeeCueWHu+eahOaXtumXtOaIs1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2V0VWk6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmlzX2VuYWJsZSA9IHRydWU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLliqDovb3lhbPljaHphY3nva4yXCIpO1xyXG4gICAgICAgIC8vIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yID0gdGhpcy5CbG9ja19Db2xvcjtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5YeG5aSH5rOo5YaM5LqL5Lu2XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWPkemAgeazqOWGjOS6i+S7tlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlZ2lzdGVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bey57uP6L+b5YWlSG9tZeeVjOmdolwiKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumHkeW4gVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWFs+WNoVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKTtcclxuXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDI1LCAxNSwgXCJiaWdfXCIsIHRoaXMubGV2ZWwsIGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEhlYWx0aEluZm8oKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIiAmJiAhY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIC09IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SGVhbHRoSW5mbygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID09IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcIm1hblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLCAyNSwgMTUsIFwiY29pbl9cIiwgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTG9hZFwiKS5nZXRDaGlsZEJ5TmFtZShcInN0YXJ0QnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5ZWG5bqXXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDliqDovb0gc2hvcCAgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ3Nob3AnLCAoZXJyOiBFcnJvciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGJ1bmRsZS5sb2FkKCdwcmVmYWIvc2hvcCcsIGNjLlByZWZhYiwgKGVycjogRXJyb3IsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcE5vZGUgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChzaG9wTm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzaG9wTm9kZSBwYXJlbnQ6XCIsIHNob3BOb2RlLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmFuaygpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrU2hvcCgpIHtcclxuICAgICAgICAvLyDlgYforr7lt7Lnu4/ojrflj5bliLDkuoYgdXNlcklkIOWSjCBwcm9kdWN0SWRcclxuICAgICAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgXCJ1c2VySWRcIjogdXNlcklkLFxyXG4gICAgICAgICAgICAgICAgXCJwcm9kdWN0SWRcIjogcHJvZHVjdElkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDlj5blvpfkupHlh73mlbDov5Tlm57nmoTorqLljZXkv6Hmga9cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIsIHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudCA9IHJlcy5yZXN1bHQucGF5bWVudFJlc3VsdC5wYXltZW50O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLCBwYXltZW50KTtcclxuICAgICAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOaXtumXtOaIs++8jOS7jiAxOTcwIOW5tCAxIOaciCAxIOaXpSAwMDowMDowMCDoh7Pku4rnmoTnp5LmlbDvvIzljbPlvZPliY3nmoTml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICB0aW1lU3RhbXA6IHBheW1lbnQudGltZVN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICAgICAgbm9uY2VTdHI6IHBheW1lbnQubm9uY2VTdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57uf5LiA5LiL5Y2V5o6l5Y+j6L+U5Zue55qEIHByZXBheV9pZCDlj4LmlbDlgLxcclxuICAgICAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g562+5ZCN566X5rOV77yM5pqC5pSv5oyBIE1ENeOAgUhNQUMtU0hBMjU2XHJcbiAgICAgICAgICAgICAgICAgICAgc2lnblR5cGU6IHBheW1lbnQuc2lnblR5cGUgfHwgJ01ENScsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5U2lnbjogcGF5bWVudC5wYXlTaWduLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOaIkOWKn1wiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyog5aSx6LSl5Zue6LCDICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlK/ku5jlrozmiJBcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvcGVuSURcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvcGVuU2V0KCkge1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKG5vdyAtIHRoaXMubGFzdFBhdXNlQ2xpY2tUaW1lIDwgMzAwKSB7XHJcbiAgICAgICAgICAgIC8vIDAuM+enkuWGheemgeatouWGjeasoeeCueWHu1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFBhdXNlQ2xpY2tUaW1lID0gbm93O1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zZXRVaS5hY3RpdmUpIHtcclxuICAgICAgICAgICAgLy8g56ys5LiA5qyh54K55Ye777yM5omT5byA5bm25pKt5pS+5Yqo55S7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VWkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRVaS5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKS5wbGF5KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8g5YaN5qyh54K55Ye777yM5YWz6Zet6IqC54K5XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VWkuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuU3RhbWluYSgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTdGFtaW5hKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN0YW1pbmFcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/CollisionDetection.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'f1883pXzMVIp5/ARDAWfZ7j', 'CollisionDetection');
+// Script/CollisionDetection.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent;
+var CollisionDetection = /** @class */ (function (_super) {
+ __extends(CollisionDetection, _super);
+ function CollisionDetection() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ CollisionDetection_1 = CollisionDetection;
+ CollisionDetection.prototype.onLoad = function () {
+ if (CollisionDetection_1._instance == null) {
+ CollisionDetection_1._instance = this;
+ // cc.game.addPersistRootNode(this.node);
+ }
+ else {
+ return;
+ }
+ };
+ //碰撞检测函数
+ CollisionDetection.prototype.isColliding = function (rect1, rect2) {
+ // 快速排除:检查边界框是否相交
+ if (rect1.xMax < rect2.xMin || rect2.xMax < rect1.xMin || rect1.yMax < rect2.yMin || rect2.yMax < rect1.yMin) {
+ return { isColliding: false };
+ }
+ // 调用原始的 intersects 方法
+ var isColliding = rect1.intersects(rect2);
+ return { isColliding: isColliding };
+ };
+ // 获取多边形的所有边的法线
+ CollisionDetection.prototype.getNormals = function (polygon) {
+ var normals = [];
+ var length = polygon.length;
+ for (var i = 0; i < length; i++) {
+ var p1 = polygon[i];
+ var p2 = polygon[(i + 1) % length];
+ var edge = new cc.Vec2(p2.x - p1.x, p2.y - p1.y);
+ var normal = new cc.Vec2(-edge.y, edge.x);
+ normal.normalize();
+ normals.push(normal);
+ }
+ return normals;
+ };
+ // 将多边形投影到轴上
+ CollisionDetection.prototype.project = function (polygon, axis) {
+ var min = cc.Vec2.dot(polygon[0], axis);
+ var max = min;
+ for (var i = 1; i < polygon.length; i++) {
+ var dotProduct = cc.Vec2.dot(polygon[i], axis);
+ if (dotProduct < min) {
+ min = dotProduct;
+ }
+ else if (dotProduct > max) {
+ max = dotProduct;
+ }
+ }
+ return { min: min, max: max };
+ };
+ // 检查两个投影是否重叠
+ CollisionDetection.prototype.overlap = function (projection1, projection2) {
+ return !(projection1.max < projection2.min || projection2.max < projection1.min);
+ };
+ var CollisionDetection_1;
+ CollisionDetection = CollisionDetection_1 = __decorate([
+ ccclass
+ ], CollisionDetection);
+ return CollisionDetection;
+}(cc.Component));
+exports.default = CollisionDetection;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb2xsaXNpb25EZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHNUUsSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBZ0Qsc0NBQVk7SUFBNUQ7O0lBNkRBLENBQUM7MkJBN0RvQixrQkFBa0I7SUFDUCxtQ0FBTSxHQUFOO1FBQ3hCLElBQUksb0JBQWtCLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUN0QyxvQkFBa0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLHlDQUF5QztTQUM1QzthQUNJO1lBQ0QsT0FBTztTQUNWO0lBRUwsQ0FBQztJQUNELFFBQVE7SUFDRCx3Q0FBVyxHQUFsQixVQUFtQixLQUFjLEVBQUUsS0FBYztRQUM3QyxpQkFBaUI7UUFDakIsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNqQztRQUVELHNCQUFzQjtRQUN0QixJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE9BQU8sRUFBRSxXQUFXLGFBQUEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxlQUFlO0lBQ1AsdUNBQVUsR0FBbEIsVUFBbUIsT0FBa0I7UUFDakMsSUFBTSxPQUFPLEdBQWMsRUFBRSxDQUFDO1FBQzlCLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLElBQU0sSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNKLG9DQUFPLEdBQWYsVUFBZ0IsT0FBa0IsRUFBRSxJQUFhO1FBQzdDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFO2dCQUNsQixHQUFHLEdBQUcsVUFBVSxDQUFDO2FBQ3BCO2lCQUFNLElBQUksVUFBVSxHQUFHLEdBQUcsRUFBRTtnQkFDekIsR0FBRyxHQUFHLFVBQVUsQ0FBQzthQUNwQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBQSxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWE7SUFDTCxvQ0FBTyxHQUFmLFVBQWdCLFdBQXlDLEVBQUUsV0FBeUM7UUFDaEcsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O0lBMURnQixrQkFBa0I7UUFEdEMsT0FBTztPQUNhLGtCQUFrQixDQTZEdEM7SUFBRCx5QkFBQztDQTdERCxBQTZEQyxDQTdEK0MsRUFBRSxDQUFDLFNBQVMsR0E2RDNEO2tCQTdEb0Isa0JBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGlzaW9uRGV0ZWN0aW9uIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTsgICAgICBvbkxvYWQoKSB7XHJcbiAgICAgICAgaWYgKENvbGxpc2lvbkRldGVjdGlvbi5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBDb2xsaXNpb25EZXRlY3Rpb24uX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy/norDmkp7mo4DmtYvlh73mlbBcclxuICAgIHB1YmxpYyBpc0NvbGxpZGluZyhyZWN0MTogY2MuUmVjdCwgcmVjdDI6IGNjLlJlY3QpOiB7IGlzQ29sbGlkaW5nOiBib29sZWFuIH0ge1xyXG4gICAgICAgIC8vIOW/q+mAn+aOkumZpO+8muajgOafpei+ueeVjOahhuaYr+WQpuebuOS6pFxyXG4gICAgICAgIGlmIChyZWN0MS54TWF4IDwgcmVjdDIueE1pbiB8fCByZWN0Mi54TWF4IDwgcmVjdDEueE1pbiB8fCByZWN0MS55TWF4IDwgcmVjdDIueU1pbiB8fCByZWN0Mi55TWF4IDwgcmVjdDEueU1pbikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBpc0NvbGxpZGluZzogZmFsc2UgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOiwg+eUqOWOn+Wni+eahCBpbnRlcnNlY3RzIOaWueazlVxyXG4gICAgICAgIGNvbnN0IGlzQ29sbGlkaW5nID0gcmVjdDEuaW50ZXJzZWN0cyhyZWN0Mik7XHJcblxyXG4gICAgICAgIHJldHVybiB7IGlzQ29sbGlkaW5nIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIOiOt+WPluWkmui+ueW9oueahOaJgOaciei+ueeahOazlee6v1xyXG4gICAgcHJpdmF0ZSBnZXROb3JtYWxzKHBvbHlnb246IGNjLlZlYzJbXSk6IGNjLlZlYzJbXSB7XHJcbiAgICAgICAgY29uc3Qgbm9ybWFsczogY2MuVmVjMltdID0gW107XHJcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwMSA9IHBvbHlnb25baV07XHJcbiAgICAgICAgICAgIGNvbnN0IHAyID0gcG9seWdvblsoaSArIDEpICUgbGVuZ3RoXTtcclxuICAgICAgICAgICAgY29uc3QgZWRnZSA9IG5ldyBjYy5WZWMyKHAyLnggLSBwMS54LCBwMi55IC0gcDEueSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbCA9IG5ldyBjYy5WZWMyKC1lZGdlLnksIGVkZ2UueCk7XHJcbiAgICAgICAgICAgIG5vcm1hbC5ub3JtYWxpemUoKTtcclxuICAgICAgICAgICAgbm9ybWFscy5wdXNoKG5vcm1hbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub3JtYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWwhuWkmui+ueW9ouaKleW9seWIsOi9tOS4ilxyXG4gICAgcHJpdmF0ZSBwcm9qZWN0KHBvbHlnb246IGNjLlZlYzJbXSwgYXhpczogY2MuVmVjMik6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0ge1xyXG4gICAgICAgIGxldCBtaW4gPSBjYy5WZWMyLmRvdChwb2x5Z29uWzBdLCBheGlzKTtcclxuICAgICAgICBsZXQgbWF4ID0gbWluO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcG9seWdvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkb3RQcm9kdWN0ID0gY2MuVmVjMi5kb3QocG9seWdvbltpXSwgYXhpcyk7XHJcbiAgICAgICAgICAgIGlmIChkb3RQcm9kdWN0IDwgbWluKSB7XHJcbiAgICAgICAgICAgICAgICBtaW4gPSBkb3RQcm9kdWN0O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvdFByb2R1Y3QgPiBtYXgpIHtcclxuICAgICAgICAgICAgICAgIG1heCA9IGRvdFByb2R1Y3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbWluLCBtYXggfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmo4Dmn6XkuKTkuKrmipXlvbHmmK/lkKbph43lj6BcclxuICAgIHByaXZhdGUgb3ZlcmxhcChwcm9qZWN0aW9uMTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSwgcHJvamVjdGlvbjI6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIShwcm9qZWN0aW9uMS5tYXggPCBwcm9qZWN0aW9uMi5taW4gfHwgcHJvamVjdGlvbjIubWF4IDwgcHJvamVjdGlvbjEubWluKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/MapBlock.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '52958xsurVAp54WMo+xFDo6', 'MapBlock');
+// Script/MapBlock.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var NewClass = /** @class */ (function (_super) {
+ __extends(NewClass, _super);
+ function NewClass() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.label = null;
+ _this.block_Id = '';
+ // LIFE-CYCLE CALLBACKS:
+ _this.posX = 0; //地图块的X坐标
+ _this.posY = 0; //地图块的Y坐标
+ _this.direction = ""; //地图块的方向
+ return _this;
+ // update (dt) {}
+ }
+ // onLoad () {}
+ NewClass.prototype.start = function () {
+ this.direction = "";
+ this.block_Id = "";
+ // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction;
+ };
+ NewClass.prototype.setDiraction = function (direction) {
+ this.direction = direction;
+ // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction;
+ };
+ NewClass.prototype.init = function (posX, posY) {
+ this.posX = posX;
+ this.posY = posY;
+ };
+ __decorate([
+ property(cc.Label)
+ ], NewClass.prototype, "label", void 0);
+ __decorate([
+ property
+ ], NewClass.prototype, "block_Id", void 0);
+ NewClass = __decorate([
+ ccclass
+ ], NewClass);
+ return NewClass;
+}(cc.Component));
+exports.default = NewClass;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXBCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQWdDQztRQTdCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsd0JBQXdCO1FBRXhCLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLGVBQVMsR0FBVyxFQUFFLENBQUMsQ0FBVSxRQUFROztRQW1CekMsaUJBQWlCO0lBQ3JCLENBQUM7SUFuQkcsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrRkFBa0Y7SUFDdEYsQ0FBQztJQUVELCtCQUFZLEdBQVosVUFBYSxTQUFTO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLGtGQUFrRjtJQUN0RixDQUFDO0lBRUQsdUJBQUksR0FBSixVQUFLLElBQUksRUFBQyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQTFCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYTtJQU5MLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FnQzVCO0lBQUQsZUFBQztDQWhDRCxBQWdDQyxDQWhDcUMsRUFBRSxDQUFDLFNBQVMsR0FnQ2pEO2tCQWhDb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBibG9ja19JZDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBkaXJlY3Rpb246IHN0cmluZyA9IFwiXCI7ICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qE5pa55ZCRXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpcmFjdGlvbihkaXJlY3Rpb24pe1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uOyAgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQocG9zWCxwb3NZKXtcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/NumberToImage.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '669f4SuSl9ORqawBcbwCNpG', 'NumberToImage');
+// Script/NumberToImage.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var NumberToImage = /** @class */ (function (_super) {
+ __extends(NumberToImage, _super);
+ function NumberToImage() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.fontUI = null;
+ return _this;
+ // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] {
+ // let result: number;
+ // switch (operator) {
+ // case '+':
+ // result = num1 + num2;
+ // break;
+ // case '-':
+ // result = num1 - num2;
+ // break;
+ // case '*':
+ // result = num1 * num2;
+ // break;
+ // case '/':
+ // result = num1 / num2;
+ // break;
+ // default:
+ // throw new Error('不支持的运算符');
+ // }
+ // // 处理结果为小数的情况,这里简单取整
+ // result = Math.floor(result);
+ // return this.numberToImageNodes(result, spriteFrames);
+ // }
+ // update (dt) {}
+ }
+ NumberToImage_1 = NumberToImage;
+ // LIFE-CYCLE CALLBACKS:
+ NumberToImage.prototype.onLoad = function () {
+ if (this.fontUI != null) {
+ NumberToImage_1.font = this.fontUI;
+ }
+ };
+ //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点
+ NumberToImage.numberToImageNodes = function (number, width, posX, name, targetNode, middle) {
+ if (middle === void 0) { middle = false; }
+ var numStr = number.toString();
+ var cha = 0;
+ if (number > 99)
+ cha = -posX;
+ else if (number < 10)
+ cha = posX;
+ if (targetNode.children.length > 0)
+ targetNode.removeAllChildren();
+ for (var i = 0; i < numStr.length; i++) {
+ var digit = parseInt(numStr[i], 10);
+ var node = new cc.Node();
+ var sprite = node.addComponent(cc.Sprite);
+ // debugger;
+ sprite.spriteFrame = this.font._spriteFrames[name + digit + ""];
+ // 将节点添加到目标节点下
+ node.x = i * width + cha;
+ node.parent = targetNode;
+ }
+ if (middle) {
+ targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2;
+ }
+ };
+ NumberToImage.getTimeMargin = function (number, width, name, targetNode) {
+ var timeArr = [];
+ var total = 0;
+ total = number;
+ var hour = 0;
+ hour = parseInt((total / 3600) + ""); //计算整数小时数
+ var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数
+ var min = parseInt((afterHour / 60) + ""); //计算整数分
+ var m = "" + min;
+ if (min < 10)
+ m = "0" + min;
+ var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数
+ var miao = afterMin + "";
+ if (afterMin < 10)
+ miao = "0" + afterMin;
+ var result = m + miao;
+ for (var i = 0; i < result.length; i++) {
+ var digit = parseInt(result[i], 10);
+ timeArr.push(digit);
+ }
+ if (targetNode.children.length > 0) {
+ for (var i = 0; i < targetNode.children.length; i++) {
+ targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + ""];
+ }
+ }
+ else {
+ for (var i = 0; i < 4; i++) {
+ var node = new cc.Node();
+ var sprite = node.addComponent(cc.Sprite);
+ var digit = timeArr[i];
+ // debugger;
+ sprite.spriteFrame = this.font._spriteFrames[name + digit + ""];
+ // 将节点添加到目标节点下
+ node.x = i * width;
+ if (i > 1)
+ node.x += 35;
+ node.parent = targetNode;
+ }
+ }
+ };
+ var NumberToImage_1;
+ NumberToImage.font = null;
+ __decorate([
+ property(cc.SpriteAtlas)
+ ], NumberToImage.prototype, "fontUI", void 0);
+ NumberToImage = NumberToImage_1 = __decorate([
+ ccclass
+ ], NumberToImage);
+ return NumberToImage;
+}(cc.Component));
+exports.default = NumberToImage;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# 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==
//------QC-SOURCE-SPLIT------
(function() {
@@ -5189,7 +6220,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/SceneManager.js';
+ var __filename = 'preview-scripts/assets/Script/Load.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -5197,16 +6228,10 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '80998T1AYNNRZdRxsVvXR65', 'SceneManager');
-// Script/SceneManager.ts
+cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load');
+// Script/Load.ts
"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
@@ -5227,281 +6252,169 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var Map_1 = require("./Map");
-var MiniGameSdk_1 = require("./Sdk/MiniGameSdk");
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var SceneManager = /** @class */ (function (_super) {
- __extends(SceneManager, _super);
- function SceneManager() {
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent;
+var NewClass = /** @class */ (function (_super) {
+ __extends(NewClass, _super);
+ function NewClass() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.label = null;
- _this.text = 'hello';
- _this.freeze = null;
- _this.hammer = null;
- _this.magic_wand = null;
- _this.pause = null;
- _this.Block_Array = [];
- _this.Wall_Prefab = [];
- // @property({type: [cc.ParticleSystem], tooltip:"粒子数组"})
- // particleEffects : Array = [];
- _this.load1 = false;
- _this.load2 = false;
- _this.load3 = false;
- _this.btnName = '';
+ _this.node1 = null;
+ _this.node2 = null;
+ _this.node3 = null;
+ _this.localTest = false;
+ _this.clientTestVersion = "1.0.0";
+ _this.testVersion = null;
return _this;
+ // 3月17日 - 3月21日 工作完成内容
+ // 1:游戏框架搭建
+ // 2:制作18个基础方块预制体 (方块可编辑颜色与道具和状态)
+ // 3:完成地图的搭建,可配置8*8以内,任意组合,包括可缺口和障碍物配置
+ // 4:完成地图墙面建立,根据 ↑3上面构建的地图自动生成墙体。
+ // 5:做完方块的基础移动,跟随手指,遇到方块或者墙壁或者障碍物阻碍移动。
+ // 6:方块的自动落点做完11个基础方块的(未做完还差11个)
+ // 3月24日 - 3月28日 预计完成目标
+ // 1:完成全部方块的落点。
+ // 2:完成门的搭建,门可选颜色,可选开关或者星星等特殊状态
+ // 3:完成方块通过门的游戏逻辑,使游戏可以最基础运行玩起来
+ // 4:出5关版本,配合小白备案审核。
+ // 5:根据方块,地图,以及道具,制作地图编辑器 (方块和地图制作的时候都已经考虑到编辑器的需求了)
+ // 优先制作,后续开发拓展玩法功能时,小白可同步进行制作关卡。
}
- // LIFE-CYCLE CALLBACKS:
- SceneManager.prototype.onLoad = function () {
- cc.game.setFrameRate(63);
- this.changeBg();
- setTimeout(function () {
- cc.director.preloadScene("HomeScene", function (err) {
- if (err) {
- // console.error('预加载 HomeScene 场景失败:', err);
- return;
- }
- // console.log('成功预加载 HomeScene 场景');
+ NewClass.prototype.onLoad = function () {
+ // cc.director.getPhysicsManager().enabled = true;
+ // cc.director.getPhysicsManager().debugDrawFlags = 1;
+ // cc.director.getPhysicsManager().enabledAccumulator = true;
+ // cc.PhysicsManager.VELOCITY_ITERATIONS = 20;
+ // cc.PhysicsManager.FIXED_TIME_STEP = 1 / 120;
+ // cc.PhysicsManager.POSITION_ITERATIONS = 20;
+ //@ts-ignore
+ cc.internal.inputManager._maxTouches = 1;
+ var manager = cc.director.getCollisionManager();
+ manager.enabled = true;
+ this.setWX();
+ cc.debug.setDisplayStats(false);
+ cc.tween(this.node1)
+ .delay(0 * 0.3)
+ .to(0.3, { scale: 1 })
+ .to(0.3, { scale: 1.3 })
+ .to(0.3, { scale: 1 })
+ .union()
+ .repeatForever()
+ .start();
+ cc.tween(this.node2)
+ .delay(1 * 0.3)
+ .to(0.3, { scale: 1 })
+ .to(0.3, { scale: 1.3 })
+ .to(0.3, { scale: 1 })
+ .union()
+ .repeatForever()
+ .start();
+ cc.tween(this.node3)
+ .delay(2 * 0.3)
+ .to(0.3, { scale: 1 })
+ .to(0.3, { scale: 1.3 })
+ .to(0.3, { scale: 1 })
+ .union()
+ .repeatForever()
+ .start();
+ };
+ NewClass.prototype.setWX = function () {
+ //@ts-ignore
+ if (typeof wx !== 'undefined' && wx !== null) { // 判断是否在微信环境
+ wx.setPreferredFramesPerSecond(60);
+ // // 设置转发按钮点击后的回调
+ // wx.onShareAppMessage(() => {
+ // return {
+ // title: '你想玩上怎样的游戏?',
+ // imageUrl: '',
+ // query: ''
+ // };
+ // });
+ wx.onShareAppMessage(function () {
+ // 用户点击了“转发”按钮
+ return {
+ title: '你想玩上怎样的游戏?'
+ };
});
- }, 1000);
- };
- SceneManager.prototype.changeBg = function () {
- var _this = this;
- var number = Math.floor(Math.random() * 8) + 1;
- var path = 'bg/bg' + number;
- cc.resources.load(path, cc.SpriteFrame, function (err, spriteFrame) {
- if (err) {
- console.error('动态加载背景图失败:', err);
- return;
- }
- _this.node.getChildByName("Game").getChildByName("bg").getComponent(cc.Sprite).spriteFrame = spriteFrame;
- });
- };
- SceneManager.prototype.loadParticleEffects = function () {
- var _this = this;
- var path = 'Particle';
- cc.resources.loadDir(path, cc.ParticleAsset, function (err, assets) {
- if (err) {
- console.error('动态加载粒子特效失败:', err);
- return;
- }
- _this.particleEffects = assets;
- _this.setParticleSort();
- _this.load3 = true;
- //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');
- });
- };
- SceneManager.prototype.setWallPrefabSort = function () {
- var order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];
- this.Wall_Prefab.sort(function (a, b) {
- var indexA = order.indexOf(a.name);
- var indexB = order.indexOf(b.name);
- if (indexA === -1)
- return 1;
- if (indexB === -1)
- return -1;
- return indexA - indexB;
- });
- };
- SceneManager.prototype.setParticleSort = function () {
- var order = ['top', 'bot', 'rig', 'lef'];
- this.particleEffects.sort(function (a, b) {
- // console.log(a.name.substr(0,3),b.name.substr(0,3));
- var indexA = order.indexOf(a.name.substr(0, 3));
- var indexB = order.indexOf(b.name.substr(0, 3));
- if (indexA === -1)
- return 1;
- if (indexB === -1)
- return -1;
- return indexA - indexB;
- });
- };
- SceneManager.prototype.setSort = function () {
- this.Block_Array.sort(function (a, b) {
- var _a, _b;
- // 从名称中提取数字部分
- var numberA = parseInt(((_a = a.name.match(/\d+/)) === null || _a === void 0 ? void 0 : _a[0]) || '0', 10);
- var numberB = parseInt(((_b = b.name.match(/\d+/)) === null || _b === void 0 ? void 0 : _b[0]) || '0', 10);
- return numberA - numberB;
- });
- };
- SceneManager.prototype.start = function () {
- };
- SceneManager.prototype.startGame = function () {
- cc.director.loadScene("HomeScene", function (err) {
- if (err) {
- console.error('加载 HomeScene 场景失败:', err);
- }
- else {
- // console.log('成功切换到 HomeScene 场景');
- cc.director.loadScene("HomeScene");
- }
- });
- };
- SceneManager.prototype.returnHome = function () {
- if (this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch) {
- if (Map_1.default._instance.gameStart == true) {
- MiniGameSdk_1.MiniGameSdk.API.showToast("体力值减少");
- cc.fx.GameTool.setUserHealth(-1, function (data) {
- });
- if (Map_1.default._instance.count_Time) {
- var count_Time = Map_1.default._instance.count_Time;
- var add_Time = Map_1.default._instance.add_Time;
- var data = {
- time: count_Time,
- add_Time: add_Time,
- result: "give_up"
- };
- cc.fx.GameTool.shushu_Track("finish_stage", data);
- }
- }
- this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false);
- cc.fx.AudioManager._instance.playEffect("zhuan1", null);
- this.node.getChildByName("zhuanchang").active = true;
- this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
- cc.director.preloadScene("HomeScene", function (err, asset) {
- if (err) {
- console.error('动态加载 Prefab 失败:', err);
- return;
- }
+ // 监听分享到朋友圈事件
+ //@ts-ignore
+ wx.onShareTimeline(function () {
+ return {
+ title: '你想玩上怎样的游戏?'
+ };
+ });
+ wx.showShareMenu(function () {
+ return {
+ title: '你想玩上怎样的游戏?',
+ imageUrl: '',
+ query: ''
+ };
});
setTimeout(function () {
- cc.director.loadScene("HomeScene");
- }, 1200);
+ wx.showShareMenu({
+ menus: ['shareAppMessage', 'shareTimeline']
+ });
+ }, 2000);
+ // 设置分享到朋友圈
+ //@ts-ignore
+ // wx.updateShareMenu({
+ // withShareTicket: true,
+ // success: (data) => {
+ // console.log('更新分享菜单成功', data);
+ // },
+ // fail: (data) => {
+ // console.log('更新分享菜单失败', data);
+ // },
+ // complete: (data) => {
+ // console.log('更新分享菜单完成', data);
+ // }
+ // });
+ //@ts-ignore
}
};
- SceneManager.prototype.destroyNodesInFrames = function (nodes, callback) {
- var _this = this;
- var BATCH_SIZE = 10; // 每帧销毁的节点数量
- var index = 0;
- var destroyBatch = function () {
- var count = 0;
- while (index < nodes.length && count < BATCH_SIZE) {
- var node = nodes[index];
- if (node) {
- node.active = false;
- }
- index++;
- count++;
- }
- if (index < nodes.length) {
- _this.scheduleOnce(destroyBatch, 6);
- }
- else {
- callback();
- }
- };
- destroyBatch();
+ //判断来源
+ NewClass.prototype.containsTrain = function (str) {
+ return /from=train/i.test(str);
};
- // 改进后的切换场景方法
- SceneManager.prototype.switchToEmptyScene = function () {
- var allNodes = cc.director.getScene().children;
- this.destroyNodesInFrames(allNodes, function () {
- cc.director.loadScene("HomeScene");
- });
+ //开始游戏,跳转至引导页面
+ NewClass.prototype.startGame = function () {
+ cc.director.loadScene("GameScene");
+ // cc.director.loadScene("GuideScene");
};
- SceneManager.prototype.openPause = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_little", null);
- if (this.pause.getComponent("btnControl")._touch) {
- this.pause.getComponent("btnControl").setTouch(false);
- this.node.getChildByName("Pause").active = true;
- Map_1.default._instance.pause = true;
- }
+ //备用,用来测试跳转 指定关卡
+ NewClass.prototype.clickBtn = function (event, data) {
+ cc.fx.GameConfig.GM_INFO.custom = parseInt(data);
+ cc.director.loadScene("GameScene");
};
- SceneManager.prototype.closePause = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_little", null);
- this.pause.getComponent("btnControl").setTouch(true);
- this.node.getChildByName("Pause").active = false;
- if (Map_1.default._instance.node.parent.getChildByName("Ice").active == false) {
- Map_1.default._instance.pause = false;
- }
+ //打开排行榜
+ NewClass.prototype.openRank = function () {
+ cc.director.loadScene("RankScene");
};
- SceneManager.prototype.openPropBuy = function (name) {
- Map_1.default._instance.pause = true;
- this.btnName = name;
- var propWindow = this.node.getChildByName("Game").getChildByName("propWindow");
- propWindow.active = true;
- propWindow.getChildByName("freeze").active = false;
- propWindow.getChildByName("hammer").active = false;
- propWindow.getChildByName("magic").active = false;
- propWindow.getChildByName("buy_Btn").getComponent("btnControl").setTouch(true);
- propWindow.getChildByName(name).active = true;
- };
- SceneManager.prototype.clickBtn = function () {
- cc.fx.AudioManager._instance.playEffect("anniu_Big", null);
- var propWindow = this.node.getChildByName("Game").getChildByName("propWindow");
- if (propWindow.getChildByName("buy_Btn").getComponent("btnControl")._touch) {
- propWindow.getChildByName("buy_Btn").getComponent("btnControl").setTouch(false);
- if (this.btnName == "freeze")
- Map_1.default._instance.buyFreeze();
- else if (this.btnName == "hammer")
- Map_1.default._instance.buyHammer();
- else if (this.btnName == "magic")
- Map_1.default._instance.buyMagic();
- }
- };
- //打开商店
- SceneManager.prototype.openShop = function () {
- var _this = this;
- // 加载 shop bundle
- cc.assetManager.loadBundle('shop', function (err, bundle) {
- bundle.load('prefab/shop', cc.Prefab, function (err, prefab) {
- if (err) {
- cc.error(err.message || err);
- return;
- }
- if (prefab) {
- var shopNode = cc.instantiate(prefab);
- _this.node.addChild(shopNode);
- console.log("shopNode parent:", shopNode.parent);
- }
- });
- });
- };
- SceneManager.prototype.closePropBuy = function () {
- Map_1.default._instance.pause = false;
- var freezeBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("timeBtn");
- var hammerBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("destroyBtn");
- var magicBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("magicBtn");
- if (this.btnName == "freeze")
- freezeBtn.getComponent("btnControl").setTouch(true);
- else if (this.btnName == "hammer")
- hammerBtn.getComponent("btnControl").setTouch(true);
- else if (this.btnName == "magic")
- magicBtn.getComponent("btnControl").setTouch(true);
- this.node.getChildByName("Game").getChildByName("propWindow").active = false;
- };
- SceneManager.prototype.update = function (dt) {
+ NewClass.prototype.update = function (dt) {
};
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "node1", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "node2", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "node3", void 0);
+ __decorate([
+ property(false)
+ ], NewClass.prototype, "localTest", void 0);
+ __decorate([
+ property("")
+ ], NewClass.prototype, "clientTestVersion", void 0);
__decorate([
property(cc.Label)
- ], SceneManager.prototype, "label", void 0);
- __decorate([
- property
- ], SceneManager.prototype, "text", void 0);
- __decorate([
- property(cc.Node)
- ], SceneManager.prototype, "freeze", void 0);
- __decorate([
- property(cc.Node)
- ], SceneManager.prototype, "hammer", void 0);
- __decorate([
- property(cc.Node)
- ], SceneManager.prototype, "magic_wand", void 0);
- __decorate([
- property(cc.Node)
- ], SceneManager.prototype, "pause", void 0);
- __decorate([
- property({ type: [cc.Prefab], tooltip: "方块数组" })
- ], SceneManager.prototype, "Block_Array", void 0);
- __decorate([
- property({ type: [cc.Prefab], tooltip: "墙壁数组" })
- ], SceneManager.prototype, "Wall_Prefab", void 0);
- SceneManager = __decorate([
+ ], NewClass.prototype, "testVersion", void 0);
+ NewClass = __decorate([
ccclass
- ], SceneManager);
- return SceneManager;
+ ], NewClass);
+ return NewClass;
}(cc.Component));
-exports.default = SceneManager;
+exports.default = NewClass;
cc._RF.pop();
}
@@ -5514,7 +6427,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQWdTQztRQTdSRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBOFB6QixDQUFDO0lBMVBHLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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QkFBTSxHQUFOLFVBQU8sRUFBRTtJQUVULENBQUM7SUE1UkQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsrQ0FDSTtJQUd2QjtRQURDLFFBQVE7OENBQ2M7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ1M7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsrQ0FDSTtJQUl0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7cURBQ2Q7SUFHbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FEQUNkO0lBekJsQixZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBZ1NoQztJQUFELG1CQUFDO0NBaFNELEFBZ1NDLENBaFN5QyxFQUFFLENBQUMsU0FBUyxHQWdTckQ7a0JBaFNvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuL01hcFwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLlopnlo4HmlbDnu4RcIiB9KVxyXG4gICAgV2FsbF9QcmVmYWI6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBwYXJ0aWNsZUVmZmVjdHM6IGNjLlBhcnRpY2xlQXNzZXRbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlBhcnRpY2xlU3lzdGVtXSwgdG9vbHRpcDpcIueykuWtkOaVsOe7hFwifSlcclxuICAgIC8vIHBhcnRpY2xlRWZmZWN0cyA6IEFycmF5PGNjLlBhcnRpY2xlU3lzdGVtPiA9IFtdO1xyXG5cclxuICAgIGxvYWQxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGJ0bk5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgY2FsbEJhY2s6IGFueTtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUJnKCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+aIkOWKn+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VCZygpIHtcclxuICAgICAgICBsZXQgbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnYmcvYmcnICsgbnVtYmVyO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkKHBhdGgsIGNjLlNwcml0ZUZyYW1lLCAoZXJyLCBzcHJpdGVGcmFtZTogY2MuU3ByaXRlRnJhbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L296IOM5pmv5Zu+5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJnXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnUGFydGljbGUnO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkRGlyKHBhdGgsIGNjLlBhcnRpY2xlQXNzZXQsIChlcnIsIGFzc2V0czogY2MuUGFydGljbGVBc3NldFtdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veeykuWtkOeJueaViOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cyA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRQYXJ0aWNsZVNvcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ+eykuWtkOeJueaViOWKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMucGFydGljbGVFZmZlY3RzLmxlbmd0aCwgJ+S4queykuWtkOeJueaViCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFdhbGxQcmVmYWJTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydkb3duJywgJ2Rvd25MZWZ0JywgJ2Rvd25SaWdodCcsICdsZWZ0JywgJ3JpZ2h0JywgJ3VwJywgJ3VwTGVmdCcsICd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRHYW1lKCkge1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbjw8PDw8PDwgSEVBRFxyXG4gICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmNvdW50X1RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFkZF9UaW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLmFkZF9UaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lOmNvdW50X1RpbWUsICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9UaW1lOmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6XCJnaXZlX3VwXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbj09PT09PT1cclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWU6IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGFkZF9UaW1lOiBNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBcImdpdmVfdXBcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsIGRhdGEpO1xyXG4+Pj4+Pj4+IDBhMzFhN2E1YWJjMmM1MDViZjc0M2FhNTk2ZTFjNzY1YTA0MDUxNTJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRlc3Ryb3lOb2Rlc0luRnJhbWVzKG5vZGVzOiBjYy5Ob2RlW10sIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgY29uc3QgQkFUQ0hfU0laRSA9IDEwOyAvLyDmr4/luKfplIDmr4HnmoToioLngrnmlbDph49cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG5cclxuICAgICAgICBjb25zdCBkZXN0cm95QmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IG5vZGVzLmxlbmd0aCAmJiBjb3VudCA8IEJBVENIX1NJWkUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJhdGNoLCA2KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBkZXN0cm95QmF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmlLnov5vlkI7nmoTliIfmjaLlnLrmma/mlrnms5VcclxuICAgIHN3aXRjaFRvRW1wdHlTY2VuZSgpIHtcclxuICAgICAgICBjb25zdCBhbGxOb2RlcyA9IGNjLmRpcmVjdG9yLmdldFNjZW5lKCkuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5kZXN0cm95Tm9kZXNJbkZyYW1lcyhhbGxOb2RlcywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBpZiAodGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQYXVzZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvcGVuUHJvcEJ1eShuYW1lKSB7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ0bk5hbWUgPSBuYW1lO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImhhbW1lclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwibWFnaWNcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKG5hbWUpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tCdG4oKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgaWYgKHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUhhbW1lcigpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eU1hZ2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/miZPlvIDllYblupdcclxuICAgIG9wZW5TaG9wKCkge1xyXG4gICAgICAgIC8vIOWKoOi9vSBzaG9wICBidW5kbGVcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZEJ1bmRsZSgnc2hvcCcsIChlcnI6IEVycm9yLCBidW5kbGU6IGNjLkFzc2V0TWFuYWdlci5CdW5kbGUpID0+IHtcclxuICAgICAgICAgICAgYnVuZGxlLmxvYWQoJ3ByZWZhYi9zaG9wJywgY2MuUHJlZmFiLCAoZXJyOiBFcnJvciwgcHJlZmFiOiBjYy5QcmVmYWIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5lcnJvcihlcnIubWVzc2FnZSB8fCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwcmVmYWIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9wTm9kZSA9IGNjLmluc3RhbnRpYXRlKHByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmFkZENoaWxkKHNob3BOb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3BOb2RlIHBhcmVudDpcIiwgc2hvcE5vZGUucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNsb3NlUHJvcEJ1eSgpIHtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKSBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUxOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUzOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoZmFsc2UpXHJcbiAgICBsb2NhbFRlc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAcHJvcGVydHkoXCJcIilcclxuICAgIGNsaWVudFRlc3RWZXJzaW9uOiBzdHJpbmcgPSBcIjEuMC4wXCI7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IuZ2V0UGh5c2ljc01hbmFnZXIoKS5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmRlYnVnRHJhd0ZsYWdzID0gMTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmVuYWJsZWRBY2N1bXVsYXRvciA9IHRydWU7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuVkVMT0NJVFlfSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vIGNjLlBoeXNpY3NNYW5hZ2VyLkZJWEVEX1RJTUVfU1RFUCA9IDEgLyAxMjA7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuUE9TSVRJT05fSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIFxyXG4gICAgICAgIGNjLmludGVybmFsLmlucHV0TWFuYWdlci5fbWF4VG91Y2hlcyA9IDFcclxuXHJcbiAgICAgICAgbGV0IG1hbmFnZXIgPSBjYy5kaXJlY3Rvci5nZXRDb2xsaXNpb25NYW5hZ2VyKCk7XHJcbiAgICAgICAgbWFuYWdlci5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFdYKCk7XHJcblxyXG4gICAgICAgIGNjLmRlYnVnLnNldERpc3BsYXlTdGF0cyhmYWxzZSk7XHJcblxyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUxKVxyXG4gICAgICAgIC5kZWxheSgwICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUyKVxyXG4gICAgICAgIC5kZWxheSgxICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUzKVxyXG4gICAgICAgIC5kZWxheSgyICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRXWCgpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgIHd4LnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCg2MCk7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAvLyAvLyDorr7nva7ovazlj5HmjInpkq7ngrnlh7vlkI7nmoTlm57osINcclxuICAgICAgICAgICAgLy8gd3gub25TaGFyZUFwcE1lc3NhZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aXRsZTogJ+S9oOaDs+eOqeS4iuaAjuagt+eahOa4uOaIj++8nycsXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgaW1hZ2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHF1ZXJ5OiAnJ1xyXG4gICAgICAgICAgICAvLyAgICAgfTtcclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICB3eC5vblNoYXJlQXBwTWVzc2FnZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIC8vIOeUqOaIt+eCueWHu+S6huKAnOi9rOWPkeKAneaMiemSrlxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgICAgICAvLyDnm5HlkKzliIbkuqvliLDmnIvlj4vlnIjkuovku7ZcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uU2hhcmVUaW1lbGluZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L2g5oOz546p5LiK5oCO5qC355qE5ri45oiP77yfJ1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogJydcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgd3guc2hvd1NoYXJlTWVudSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwgMjAwMCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIOiuvue9ruWIhuS6q+WIsOaci+WPi+WciFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgLy8gd3gudXBkYXRlU2hhcmVNZW51KHtcclxuICAgICAgICAgICAgLy8gICAgIHdpdGhTaGFyZVRpY2tldDogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gICAgIHN1Y2Nlc3M6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleaIkOWKnycsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGZhaWw6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleWksei0pScsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGNvbXBsZXRlOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCfmm7TmlrDliIbkuqvoj5zljZXlrozmiJAnLCBkYXRhKTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+86aG16Z2iXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5aSH55So77yM55So5p2l5rWL6K+V6Lez6L2sIOaMh+WumuWFs+WNoVxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBvcGVuUmFuaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG4gICAgXHJcbi8vICAgICAz5pyIMTfml6UgLSAz5pyIMjHml6Ug5bel5L2c5a6M5oiQ5YaF5a65XHJcblxyXG4vLyAx77ya5ri45oiP5qGG5p625pCt5bu6XHJcbi8vIDLvvJrliLbkvZwxOOS4quWfuuehgOaWueWdl+mihOWItuS9kyAo5pa55Z2X5Y+v57yW6L6R6aKc6Imy5LiO6YGT5YW35ZKM54q25oCBKVxyXG4vLyAz77ya5a6M5oiQ5Zyw5Zu+55qE5pCt5bu677yM5Y+v6YWN572uOCo45Lul5YaF77yM5Lu75oSP57uE5ZCI77yM5YyF5ous5Y+v57y65Y+j5ZKM6Zqc56KN54mp6YWN572uXHJcbi8vIDTvvJrlrozmiJDlnLDlm77lopnpnaLlu7rnq4vvvIzmoLnmja4g4oaRM+S4iumdouaehOW7uueahOWcsOWbvuiHquWKqOeUn+aIkOWimeS9k+OAglxyXG4vLyA177ya5YGa5a6M5pa55Z2X55qE5Z+656GA56e75Yqo77yM6Lef6ZqP5omL5oyH77yM6YGH5Yiw5pa55Z2X5oiW6ICF5aKZ5aOB5oiW6ICF6Zqc56KN54mp6Zi756KN56e75Yqo44CCXHJcbi8vIDbvvJrmlrnlnZfnmoToh6rliqjokL3ngrnlgZrlrowxMeS4quWfuuehgOaWueWdl+eahO+8iOacquWBmuWujOi/mOW3rjEx5Liq77yJXHJcblxyXG4vLyAz5pyIMjTml6UgLSAz5pyIMjjml6Ug6aKE6K6h5a6M5oiQ55uu5qCHXHJcblxyXG4vLyAx77ya5a6M5oiQ5YWo6YOo5pa55Z2X55qE6JC954K544CCXHJcbi8vIDLvvJrlrozmiJDpl6jnmoTmkK3lu7rvvIzpl6jlj6/pgInpopzoibLvvIzlj6/pgInlvIDlhbPmiJbogIXmmJ/mmJ/nrYnnibnmrornirbmgIFcclxuLy8gM++8muWujOaIkOaWueWdl+mAmui/h+mXqOeahOa4uOaIj+mAu+i+ke+8jOS9v+a4uOaIj+WPr+S7peacgOWfuuehgOi/kOihjOeOqei1t+adpVxyXG4vLyA077ya5Ye6NeWFs+eJiOacrO+8jOmFjeWQiOWwj+eZveWkh+ahiOWuoeaguOOAglxyXG4vLyA177ya5qC55o2u5pa55Z2X77yM5Zyw5Zu+77yM5Lul5Y+K6YGT5YW377yM5Yi25L2c5Zyw5Zu+57yW6L6R5ZmoICjmlrnlnZflkozlnLDlm77liLbkvZznmoTml7blgJnpg73lt7Lnu4/ogIPomZHliLDnvJbovpHlmajnmoTpnIDmsYLkuoYpIFxyXG4vLyBcdOS8mOWFiOWItuS9nO+8jOWQjue7reW8gOWPkeaLk+WxleeOqeazleWKn+iDveaXtu+8jOWwj+eZveWPr+WQjOatpei/m+ihjOWItuS9nOWFs+WNoeOAglxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -5674,12 +6587,14 @@ var MapConroler = /** @class */ (function (_super) {
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
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);
// 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);
+ console.log("当前关卡", cc.fx.GameConfig.GM_INFO.level + 1);
//this.startTimeCutDown();
this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];
this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];
@@ -7459,13 +8374,13 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFHbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FB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QUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBcStEL0I7SUFBRCxrQkFBQztDQXIrREQsQUFxK0RDLENBcitEd0MsRUFBRSxDQUFDLFNBQVMsR0FxK0RwRDtrQkFyK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+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+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcblxyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgLy8gdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCA1MCwgMjAsIFwibGV2ZWxfXCIsIHRoaXMubGV2ZWxMYWJlbCwgZmFsc2UpXHJcblxyXG4gICAgICAgIC8vdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwV2lkdGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzBdO1xyXG4gICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFsxXTtcclxuICAgICAgICBsZXQgZ2FwID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLmdhcDtcclxuICAgICAgICBsZXQgcmlzZWZhbGwgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ucmlzZWZhbGw7XHJcblxyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FsbE51bSA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy5vcGVuV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubG9hY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcblxyXG5cclxuICAgICAgICBsZXQgc3RhcnRYID0gdGhpcy5tYXBXaWR0aCAlIDIgPT0gMCA/IC0odGhpcy5tYXBXaWR0aCAtIDEpICogNjAgOiAtKHRoaXMubWFwV2lkdGggLSAxKSAqIDYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSB0aGlzLm1hcEhlaWdodCAlIDIgPT0gMCA/IC0odGhpcy5tYXBIZWlnaHQgLSAxKSAqIDYwIDogLSh0aGlzLm1hcEhlaWdodCAtIDEpICogNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWFwV2lkdGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5tYXBIZWlnaHQ7IGorKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5NYXBCbG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJtYXBCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmluaXQoaSwgaik7XHJcbiAgICAgICAgICAgICAgICAvLyBibG9jay5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGkgKyBcIjpcIiArIGo7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihzdGFydFggKyBpICogMTIwLCBzdGFydFkgKyBqICogMTIwKSlcclxuICAgICAgICAgICAgICAgIGlmIChyaXNlZmFsbCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwUmlzZUZhbGwoY2MudjIoaSwgaiksIHJpc2VmYWxsLCBibG9jaykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChnYXAgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYXBHYXAoY2MudjIoaSwgaiksIGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXS5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy53YWxsSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tJbml0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuICAgIGJsb2NrSW5pdCgpIHtcclxuICAgICAgICBsZXQgYmxvY2tBcnJheSA9IGNjLmZ4LkdhbWVDb25maWcuQkxPQ0tfSU5GT1swXTtcclxuICAgICAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLliJvlu7rmlrnlnZdcIiwgYmxvY2tBcnJheSk7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5pa55Z2X57Si5byVXHJcbiAgICAgICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICAgICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS1NfUEVSX0ZSQU1FICYmIGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2tQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2Jsb2NrSW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZShibG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihibG9ja0luZm8ucG9zaXRpb24ueCwgYmxvY2tJbmZvLnBvc2l0aW9uLnkpKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8uYmxvY2sgIT0gMjMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby50eXBlID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYmxvY2tJbmZvLmlkICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja0luZm8uYmxvY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYmxvY2tJbmZvLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2spO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYmxvY2tJbmZvLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgICAgICBpZiAoZnJhbWVUaW1lID4gMTYpIHtcclxuICAgICAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1heChCTE9DS1NfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vIOS9v+eUqCBzY2hlZHVsZU9uY2Ug5Zyo5LiL5LiA5bin5omn6KGMIGNyZWF0ZUJsb2Nrc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin5Yib5bu65pa55Z2XXHJcbiAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICB9XHJcbiAgICAvL+e7meWIm+W7uuaWueWdl+aOkuW6j++8jOeUqOadpemZjeS9jmRyYXdjYWxsIOWQiOaJuVxyXG4gICAgc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICAgICAgcmV0dXJuIGFsbEJsb2Nrcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWFiOWkhOeQhiB0eXBlIOS4uiAxIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWQjlxyXG4gICAgICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYS50eXBlIC0gYi50eXBlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDAgJiYgYi50eXBlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlID09PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlho3lpITnkIYgYmxvY2sg5Li6IDIzIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWJjemdolxyXG4gICAgICAgICAgICBpZiAoYS5ibG9jayA9PT0gMjMgJiYgYi5ibG9jayAhPT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS5ibG9jayAhPT0gMjMgJiYgYi5ibG9jayA9PT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlhbbkvZnmjIkgY29sb3Ig5Y2H5bqP5o6S5YiXXHJcbiAgICAgICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/liJvlu7rlopnlo4FcclxuXHJcbiAgICB3YWxsSW5pdCgpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTlopnlo4HntKLlvJVcclxuICAgICAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICAgICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgICAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXQUxMU19QRVJfRlJBTUUgJiYgaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGxldCBkaXIgPSB0aGlzLmdldFdsbERpcmFjdGlvbihcIndhbGxcIiwgY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgICAgICBpZiAoZnJhbWVUaW1lID4gMTYpIHtcclxuICAgICAgICAgICAgICAgIFdBTExTX1BFUl9GUkFNRSA9IE1hdGgubWF4KFdBTExTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieWimeWjgeacquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIOaJgOacieWimeWjgeWIm+W7uuWujOaIkOWQju+8jOWIm+W7uuaLkOinkuiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICAgICAgY3JlYXRlV2FsbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLCBwb2ludEEpIHtcclxuICAgICAgICBsZXQgZGlyID0gW107XHJcbiAgICAgICAgbGV0IHBvaW50QiA9IGNjLnYyKHBvaW50QS54ICsgMSwgcG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEsIHBvaW50QS55KTtcclxuICAgICAgICBsZXQgcG9pbnREID0gY2MudjIocG9pbnRBLngsIHBvaW50QS55ICsgMSk7XHJcbiAgICAgICAgbGV0IHBvaW50RSA9IGNjLnYyKHBvaW50QS54LCBwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIndhbGxcIikgb3BhY2l0eSA9IDI1NTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIikgb3BhY2l0eSA9IDI1MDtcclxuXHJcbiAgICAgICAgaWYgKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEMueCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEQueSA8IHRoaXMubWFwSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInVwXCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50RS55ID49IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwiZG93blwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImRvd25cIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpci5sZW5ndGggPiAyKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXIubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRpclswXSArIGRpclsxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlQ29ybmVyTm9kZXMoKSB7XHJcbiAgICAgICAgLy8g5a6a5LmJ5ouQ6KeS5L2N572uXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baV07XHJcbiAgICAgICAgICAgIGlmIChibG9jay5vcGFjaXR5ICE9IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVR1cm4oZGlyLCBibG9jaywgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVXYWxsKGRpcmVjdGlvbiwgbm9kZSkge1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzNdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNV0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCI6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls3XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCI6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzZdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIjogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCI6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLy8gaWYod2FsbFR1cm4pe1xyXG4gICAgICAgIC8vICAgICB3YWxsVHVybi5nZXRDb21wb25lbnQoXCJ3YWxsVHVuclwiKS5pbml0KHdhbGwpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXREb29ySW5mbyh3YWxsKSB7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmIChkb29ySW5mbykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG9vckluZm9bal0ubnVtID09IHRoaXMud2FsbE51bSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLCBudWxsLCBudWxsLCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUdXJuKGRpcmVjdGlvbiwgbm9kZSwgcG9zWCwgcG9zWSkge1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCI6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC05MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggLT0gMS4zO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIjogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDI3MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTI3MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gMi41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3dubGVmdFwiOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IGRpcmVjdGlvbiA9PSBcImxlZnR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwbGVmdFwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMTAwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJyaWdodHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXByaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwibGVmdFwiIHx8IGRpcmVjdGlvbiA9PSBcImxlZnRkb3duXCIpIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG5cclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsIGdhcCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2FwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQsIHJpc2VmYWxsLCBibG9jaykge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmlzZWZhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHBvaW50LnggPT0gcmlzZWZhbGxbaV0ucG9zLnggJiYgcG9pbnQueSA9PSByaXNlZmFsbFtpXS5wb3MueSkge1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHJpc2VmYWxsW2ldLmNvbG9yICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpLnNpemUgPSBjYy5zaXplKDExMCwgMTEwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2XXHJcbiAgICBjaGFuZ2VSaXNlRmFsbChjb2xvciwgZG93bikge1xyXG4gICAgICAgIGNvbG9yID0gY29sb3IudG9TdHJpbmcoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY29sb3IgPT0gdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvd24pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykucmVtb3ZlQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLCAxMTApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8v5p+l6K+i5Y+g5Yqg5b+raWRcclxuICAgIGZvdW5kRG93bkJsb2NrKGlkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yig6Zmk5Z2XXHJcbiAgICByZW1vdmVCbG9jayhpZCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNaW5BbmRNYXgoYmxvY2spIHtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG5cclxuICAgICAgICBsZXQgbWluWCA9IHdpZHRoO1xyXG4gICAgICAgIGxldCBtYXhYID0gdGhpcy5tYXBXaWR0aCAtIDI7XHJcbiAgICAgICAgbGV0IG1pblkgPSAxO1xyXG4gICAgICAgIGxldCBtYXhZID0gdGhpcy5tYXBIZWlnaHQgLSAyIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazEwXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazExXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMjtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WCAtIDI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2syMVwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IG1pblg6IG1pblgsIG1heFg6IG1heFgsIG1pblk6IG1pblksIG1heFk6IG1heFkgfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsIGJsb2Nrcykge1xyXG4gICAgICAgIGxldCBtaW5BbmRNYXggPSB0aGlzLmdldE1pbkFuZE1heChub2RlKTtcclxuICAgICAgICBsZXQgbWluWCA9IG1pbkFuZE1heC5taW5YO1xyXG4gICAgICAgIGxldCBtYXhYID0gbWluQW5kTWF4Lm1heFg7XHJcbiAgICAgICAgbGV0IG1pblkgPSBtaW5BbmRNYXgubWluWTtcclxuICAgICAgICBsZXQgbWF4WSA9IG1pbkFuZE1heC5tYXhZO1xyXG5cclxuICAgICAgICBsZXQgbm9kZVBvcyA9IGNjLnYyKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZKTtcclxuXHJcbiAgICAgICAgLy8g6I635Y+W5Zyw5Zu+6L6555WM5L+h5oGvXHJcblxyXG4gICAgICAgIGxldCBhbGxCbG9ja3MgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcblxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLCBtYXhYLCBtYXhZKTtcclxuXHJcbiAgICAgICAgLy8g5Yik5pat5pa55Z2X5piv5ZCm5Zyo5Zyw5Zu+6L6557yYXHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA8PSBtaW5YIHx8IGRpcmVjdGlvblswXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yYXCIsZGF0ZTIpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgbGVmdFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsTGVmdCA9IHRoaXMubGVmdERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54ID4gd2FsbFBvcy54KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmIChsZWZ0V2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwibGVmdFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIGxlZnRXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA+PSBtYXhYIHx8IGRpcmVjdGlvblsxXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUzID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yYXCIsZGF0ZTMpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgcmlnaHRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxSaWdodCA9IHRoaXMucmlnaHREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54IDwgd2FsbFBvcy54KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJpZ2h0V2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwicmlnaHRcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgcmlnaHRXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55IDw9IG1pblkgfHwgZGlyZWN0aW9uWzJdID09IHRydWUpIHtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIvovrnnvJhcIixkYXRlNCk7XHJcbiAgICAgICAgICAgIGxldCBkb3duV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRvcERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbEJvdHRvbS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA+IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG93bldhbGxzLnB1c2god2FsbEJvdHRvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZG93bldhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImRvd25cIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCBkb3duV2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIvovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSA+PSBtYXhZIHx8IGRpcmVjdGlvblszXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU1ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIsZGF0ZTUpO1xyXG4gICAgICAgICAgICBsZXQgdXBXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsVG9wID0gdGhpcy5ib3R0b21Eb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxUb3AuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55IDwgd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodXBXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJ1cFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIHVwV2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJjnu5Pmnpw6XCIscmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHB6ID09IDApIGpnID0gLTE7XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiYDmnInmo4DmtYvnu5PmnZ/ogJfml7ZcIixkYXRlMTAsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTdGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5vcGVuV2FsbC5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3BlbldhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlTG9jaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5mcmVlemVXYWxsLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlRnJlZXplKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmmK/lkKblj6/ku6XpgJrov4fpl6hcclxuICAgIHBhc3NXYWxsKGpnLCB3YWxsQXJyYXksIG5vZGUpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWwneivlemAmui/h+W8gOWFs+mXqDpcIiwgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMiAmJiB3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh3YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3Isbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcilcclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCAhPSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoamcgPT0gdHJ1ZSAmJiBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdhbGxBcnJheS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wbGF5U3RhckRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlOCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL6aKc6Imy5piv5ZCm6IO95aSf6YCa6L+H6ZeoXCIsZGF0ZTgpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aWueWdl+WSjOmXqOS4remXtOacieayoeacieWkueadguWFtuS7luWdl1xyXG4gICAgZGV0ZWN0aW5nQmxvY2soZGlyZWN0aW9uLCBwb3NYLCBwb3NZLCBibG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gICAgICAgIGxldCBpZCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGJsb2Nrcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zID0gYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IHggPSBwb3MueDtcclxuICAgICAgICAgICAgICAgIGxldCB5ID0gcG9zLnk7XHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsIGRpcmVjdGlvbiwgeCwgeSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWpnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvmsqHov4dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU3ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvpgJrov4dcIixkYXRlNyxqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2X77yM6Ziy5q2i56Kw5Yiw5aKZ5aOB5LqG5L2G5piv5piv5Ye55Ye45b2i54q277yM5aKZ5LiO5Z2X5LmL6Ze05pyJ6Zi75oyh54mp5Z2XXHJcbiAgICBjaGVja0FsbERpcmVjdGlvbnMoaWQsIGRpcmVjdGlvbiwgeCwgeSkge1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHggLSAyKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeCArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHkgKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGxbeF0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHkgLSAyKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZdcIixqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcywgbWF4WCwgbWF4WSkge1xyXG4gICAgICAgIGxldCBqZyA9IFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV07XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCAtIDFdW2FsbEJsb2Nrc1tpXS55XS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzBdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamdbMV0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnggKyAxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkgLSAxXS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzJdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamdbM10gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55ICsgMV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1szXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tSaWdodChhbGxCbG9ja3MsIG1heCkge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsIG1heCkge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v54m55q6K5aSE55CG77yM5pa55Z2X5bim6YGT5YW35oiW6ICF6ZyA6KaB5raI6Zmk5Yaw5Z2XXHJcbiAgICBzcGVjaWFsX1RyZWF0bWVudChub2RlKSB7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmcmVlemVCbG9jay5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJlZXplQmxvY2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGZyZWV6ZUJsb2NrW2ldLmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmdldENvbXBvbmVudChcIkZyZWV6ZVwiKS5yZWR1Y2UoMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMiB8fCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCkge1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChsb2NrQmxvY2subGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9ja0Jsb2NrLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9ja0Jsb2NrW2ldLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5nZXRDb21wb25lbnQoXCJMb2NrXCIpLnJlZHVjZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpIHtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vcGVuSWNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYmxvY2tOdW0gPSB0aGlzLmJsb2Nrcy5sZW5ndGg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJsb2NrTnVtID09IDAgJiYgIXRoaXMuZ2FtZVdpbiAmJiAhdGhpcy5nYW1lT3Zlcikge1xyXG4gICAgICAgICAgICAvLyBhbGVydChcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwodGhpcy5jb3VudF9UaW1lLCB0aGlzLmFkZF9UaW1lKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICgoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSkgPT0gY2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUxbaV0ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3X21vZGUgPSAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHdpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5LiA5YWzXCIpO1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSwgMCk7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzkuI3otrNcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmFnYWluQ2FuVG91Y2gpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGxldCBjb2luID0gOTAwO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgY29pbiA9IDI1MDA7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLoh6rouqvph5HluIE6XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCLmtojogJfph5HluIE6XCIsY29pbik7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgTWF0aC5hYnMoY29pbikpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ydW5SZXdpdmUoLWNvaW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBydW5SZXdpdmUoZGF0YSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5aSN5rS75Zue6LCD5Ye95pWw5YaFXCIsIGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuXHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPCAyKVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ICs9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSAyMTtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lICs9IDIwO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBob21lQnRuKCkge1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoIXRoaXMuaG9tZUNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiTG9ja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJIZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgdGltZTogdGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICBhZGRfVGltZTogdGhpcy5hZGRfVGltZSxcclxuICAgICAgICAgICAgcmVzdWx0OiBcImZhaWxcIlxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIiwgZGF0YSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IHRydWUpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICBpZiAodGhpcy5nYW1lT3ZlciA9PSB0cnVlIHx8IHRoaXMuZ2FtZVdpbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gdHJ1ZTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcImJvb21cIikge1xyXG4gICAgICAgICAgICB0aW1lID0gMjAwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMCkgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcImJvb21cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGltZSk7XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICBjb25zdCBCTE9DS1NfUEVSX0ZSQU1FID0gNTsgLy8g5q+P5bin6ZSA5q+B55qE5pa55Z2X5pWw6YePXHJcbiAgICAgICAgY29uc3QgZGVzdHJveUJsb2NrcyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZW5kSW5kZXggPSBNYXRoLm1pbihpbmRleCArIEJMT0NLU19QRVJfRlJBTUUsIHRoaXMuYmxvY2tzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAoOyBpbmRleCA8IGVuZEluZGV4OyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaW5kZXhdLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrplIDmr4HvvIzkuIvkuIDluKfnu6fnu61cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5ibG9ja3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmxvY2tzLCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin6ZSA5q+B5pa55Z2XXHJcbiAgICAgICAgZGVzdHJveUJsb2NrcygpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTmV3TW9kZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTmV3TW9kZVwiKS5nZXRDb21wb25lbnQoXCJOZXdNb2RlXCIpLnNldE1vZGUodHlwZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRvd25Eb29yKGNvbG9yLCB0eXBlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgPT0gY29sb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikudXBEb29yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/lvIDlp4vlgJLorqHml7ZcclxuICAgIHN0YXJ0VGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZUNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lTnVtYmVyIDw9IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucGF1c2UpIHRoaXMuZmFpbExldmVsKFwidGltZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYgKGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAxLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQnV5U3VjY2VzcyhkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYgKGRhdGEgPT0gXCJmcmVlemVBbW91bnRcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwibWFnaWNBbW91bnRcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOWGu+e7k+aXtumXtOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwibWFnaWNBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLm1hZ2ljQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6ZSk5a2Q6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmtlOazleajkumBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6ZSk5a2Q6YGT5YW3XHJcbiAgICB1c2VIYW1tZXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBpZiAoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFtbWVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBidXlNYWdpYygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAzLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcIm1hZ2ljQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlIYW1tZXIoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMiwgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJoYW1tZXJBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUZyZWV6ZSgpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAxLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcImZyZWV6ZUFtb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjprZTms5Xmo5Lpmo/mnLrmtojpmaTkuKTkuKrmlrnlnZdcclxuICAgIHVzZU1hZ2ljKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYgKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJtYWdpY1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLprZTms5Xmo5LmlbDph4/kuI3otrMs6Ieq5Yqo6LSt5Lmw6a2U5rOV5qOSXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIGxldCBub21hbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLm1hZ2ljQnRuLm5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShub21hbEFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWUgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChub21hbEFycmF5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxIHx8IG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+q5Ymp5LiL5LiA5Liq5Z2X6YGT5YW35L2/55So5a6M5q+VXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDAgKyB0aW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubG9hY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuayoeacieaZrumAmuW/q++8jOmtlOazlea2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmZyZWV6ZUFycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+aMieS4i+aaguWBnOaMiemSrlxyXG4gICAgdXNlUGF1c2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGF1c2UpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKSB7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMDtcclxuICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA8IDEwKSB7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLm1hcFdpZHRoIDwgMTcpIHtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjE1IC0gKHRoaXMubWFwV2lkdGggLSAxMSkgKiAwLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA9PSA4ICYmIHRoaXMubWFwSGVpZ2h0ID4gMTMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjYWxlID0gdGhpcy5ub2RlLnNjYWxlO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDAuNTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm5vZGUuc2NhbGUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rpl6jnmoTnspLlrZDnibnmlYhcclxuICAgIGNyZWF0ZVBhcnRpY2xlKGJsb2NrLCBqZykge1xyXG4gICAgICAgIGxldCBwYXJ0aWNsZSA9IGNjLmluc3RhbnRpYXRlKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5CbG9ja19Qcm9wWzldKTtcclxuICAgICAgICBwYXJ0aWNsZS5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgcGFydGljbGUuekluZGV4ID0gMTAwMDtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG4gICAgICAgIGxldCBuYW1lID0gXCJcIjtcclxuXHJcbiAgICAgICAgaWYgKGpnID09IDAgfHwgamcgPT0gMSkge1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgbmFtZSA9IFwidG9wX1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgaWYgKGpnID09IDEpIHtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcImJvdF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB5ID0gYmxvY2sueTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqICgwLjUgLSAwLjMzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAoMC41IC0gMC42Nik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGpnID09IDIgfHwgamcgPT0gMykge1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoICogMC4zMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjY2O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZyA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJyaWdodF9cIiArIGhlaWdodCArIFwiX1wiICsgd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueDtcclxuICAgICAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuNjY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC4zMztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcGFydGljbGVOb2RlID0gcGFydGljbGUuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgbGV0IGNvbG9yID0gYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IgLSAxO1xyXG5cclxuICAgICAgICBwYXJ0aWNsZU5vZGUuZ2V0Q29tcG9uZW50KGNjLlBhcnRpY2xlU3lzdGVtKS5zcHJpdGVGcmFtZSA9IHBhcnRpY2xlLmdldENvbXBvbmVudChcIlJlZHVjZVwiKS5CbG9ja19Db2xvcltjb2xvcl07XHJcbiAgICAgICAgcGFydGljbGVOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHBhcnRpY2xlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDIsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVPbmVCbG9jaygpIHtcclxuICAgICAgICAvLyDnp7vpmaTmiYDmnInmlrnlnZdcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
+//# 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
//------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Window.js';
+ var __filename = 'preview-scripts/assets/Script/RankManager.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -7473,8 +8388,198 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '3bad2uyOw5MzLq3b5g9aHn2', 'Window');
-// Script/Window.ts
+cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager');
+// Script/RankManager.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var List_1 = require("./module/RankList/List");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+//排行榜
+var RankManager = /** @class */ (function (_super) {
+ __extends(RankManager, _super);
+ function RankManager() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.Player = null;
+ _this.selfNode = null;
+ _this.phone = null;
+ return _this;
+ }
+ RankManager.prototype.onLoad = function () {
+ this.init();
+ };
+ //初始化数据
+ RankManager.prototype.init = function () {
+ this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default);
+ this.Player.getChildByName("rank").active = false;
+ this.listData = [];
+ this.selfData = null;
+ this.rankNumber = 100;
+ this.rankTotal = 100;
+ this.selfNode.opacity = 0;
+ };
+ RankManager.prototype.start = function () {
+ this.Player.active = false;
+ this.getRank();
+ };
+ //调用获取排行榜接口
+ RankManager.prototype.getRank = function () {
+ var _this = this;
+ var dataFile = {
+ length: 100
+ };
+ cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); });
+ };
+ //实际设置排行数据
+ RankManager.prototype.getRankData = function (data) {
+ if (data) {
+ // console.log(data);
+ cc.fx.GameTool.getRankData(data, this, 6);
+ this.setPic(this.selfData.pic);
+ }
+ };
+ //返回按钮
+ RankManager.prototype.backClick = function () {
+ cc.director.loadScene("LoadScene");
+ };
+ //最上方用户动画
+ RankManager.prototype.playerAction = function () {
+ var _this = this;
+ //-254 377 210 453
+ this.Player.getChildByName("rank").active = false;
+ var time = 1;
+ this.tween = cc.tween(this.Player)
+ .to(2, { position: cc.v3(215, 525, 0) })
+ .call(function () {
+ _this.Player.getChildByName("rank").active = true;
+ _this.Player.getChildByName("rank").getChildByName("number")
+ .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%";
+ })
+ .start();
+ time = (this.listData.length - this.rankNumber) / this.listData.length;
+ if (this.listData.length >= 99) {
+ if (this.rankNumber >= 99) {
+ time = (Math.random() * 49 + 1) / 100;
+ var matchId = cc.sys.localStorage.getItem("matchNumber");
+ if (matchId == null || matchId == undefined) {
+ time = 0;
+ }
+ }
+ }
+ setTimeout(function () {
+ if (_this.tween)
+ _this.tween.stop();
+ _this.Player.getChildByName("rank").active = true;
+ _this.Player.getChildByName("rank").getChildByName("number")
+ .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%";
+ }, time * 2000);
+ };
+ //设置头像 处理的逻辑比较多,不用公共类的了
+ RankManager.prototype.setPic = function (pic) {
+ var _this = this;
+ this.phone.node.parent.getChildByName("icon").active = false;
+ this.phone.node.active = false;
+ this.Player.active = true;
+ this.Player.opacity = 0;
+ this.Player.getChildByName("mask").getChildByName("icon").active = false;
+ this.Player.getChildByName("mask").getChildByName("phone").active = false;
+ fetch(pic)
+ .then(function (response) {
+ return response.headers.get('Content-Length');
+ })
+ .then(function (errNo) {
+ if (errNo == "5093") {
+ _this.phone.node.parent.getChildByName("icon").active = true;
+ _this.Player.getChildByName("mask").getChildByName("icon").active = true;
+ }
+ })
+ .catch(function (error) {
+ // console.error('Error fetching X-Info:', error);
+ });
+ var self = this;
+ cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) {
+ self.Player.opacity = 255;
+ if (texture) {
+ self.phone.node.active = true;
+ self.phone.spriteFrame = new cc.SpriteFrame(texture);
+ self.Player.getChildByName("mask").getChildByName("icon").active = false;
+ self.Player.getChildByName("mask").getChildByName("phone").active = true;
+ self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite)
+ .spriteFrame = new cc.SpriteFrame(texture);
+ setTimeout(function () {
+ self.playerAction();
+ }, 500);
+ }
+ else {
+ self.Player.getChildByName("mask").getChildByName("icon").active = true;
+ setTimeout(function () {
+ self.playerAction();
+ }, 500);
+ }
+ });
+ };
+ __decorate([
+ property(cc.Node) //用户上方头像
+ ], RankManager.prototype, "Player", void 0);
+ __decorate([
+ property(cc.Node) //用户最下方个人信息
+ ], RankManager.prototype, "selfNode", void 0);
+ __decorate([
+ property(cc.Sprite) //用户头像换图
+ ], RankManager.prototype, "phone", void 0);
+ RankManager = __decorate([
+ ccclass
+ ], RankManager);
+ return RankManager;
+}(cc.Component));
+exports.default = RankManager;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSYW5rTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBMEM7QUFDcEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFDNUMsS0FBSztBQUVMO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBK0hDO1FBN0hHLFlBQU0sR0FBWSxJQUFJLENBQUM7UUFFdkIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixXQUFLLEdBQWMsSUFBSSxDQUFDOztJQXlINUIsQ0FBQztJQWpIRyw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO0lBQ1AsMEJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJ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QUM7Z0JBQzNDLFVBQVUsQ0FBQztvQkFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUNHO2dCQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUN4RSxVQUFVLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtRQUVMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsUUFBUTsrQ0FDYjtJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQVUsV0FBVztpREFDZDtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQVEsUUFBUTs4Q0FDWjtJQU5QLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0ErSC9CO0lBQUQsa0JBQUM7Q0EvSEQsQUErSEMsQ0EvSHdDLEVBQUUsQ0FBQyxTQUFTLEdBK0hwRDtrQkEvSG9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IExpc3QgZnJvbSBcIi4vbW9kdWxlL1JhbmtMaXN0L0xpc3RcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuLy/mjpLooYzmppxcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFua01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35LiK5pa55aS05YOPXHJcbiAgICBQbGF5ZXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpICAgICAgICAgIC8v55So5oi35pyA5LiL5pa55Liq5Lq65L+h5oGvXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlKSAgICAgICAgLy/nlKjmiLflpLTlg4/mjaLlm75cclxuICAgIHBob25lOiBjYy5TcHJpdGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSByYW5rTGlzdDogTGlzdDsgICAgIC8v5o6S6KGM5qacXHJcbiAgICB0d2VlbjogY2MuVHdlZW48Y2MuTm9kZT47ICAgLy/mnIDkuIrmlrnnlKjmiLflpLTlg4/liqjnlLtcclxuICAgIGxpc3REYXRhOiBhbnk7ICAgICAgICAgICAgICAvL+aAu+WIl+ihqOS/oeaBr1xyXG4gICAgc2VsZkRhdGE6IGFueTsgICAgICAgICAgICAgIC8v6Ieq5bex5L+h5oGvXHJcbiAgICByYW5rTnVtYmVyOiBudW1iZXI7ICAgICAgICAgLy/nlKjmiLfoh6rlt7HmjpLlkI0g5pyJ5Y+v6IO95LiN5Zyo5o6S6KGM5qac5YaFOTkrXHJcbiAgICByYW5rVG90YWw6IG51bWJlcjsgICAgICAgICAgLy/ojrflj5bmjpLooYzmppznlKjmiLfmlbDph48g546w5Zyo5Li6MTAwXHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgLy/liJ3lp4vljJbmlbDmja5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGZEYXRhID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSAxMDA7XHJcbiAgICAgICAgdGhpcy5yYW5rVG90YWw9IDEwMDtcclxuICAgICAgICB0aGlzLnNlbGZOb2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG4gICAgLy/osIPnlKjojrflj5bmjpLooYzmppzmjqXlj6NcclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDoxMDBcclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFJhbmsoZGF0YUZpbGUsZGF0YSA9PnRoaXMuZ2V0UmFua0RhdGEoZGF0YSkpO1xyXG4gICAgfVxyXG4gICAgLy/lrp7pmYXorr7nva7mjpLooYzmlbDmja5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0UmFua0RhdGEoZGF0YSx0aGlzLDYpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBpYyh0aGlzLnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/ov5Tlm57mjInpkq5cclxuICAgIGJhY2tDbGljaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5pyA5LiK5pa555So5oi35Yqo55S7XHJcbiAgICBwbGF5ZXJBY3Rpb24oKXtcclxuICAgICAgICAvLy0yNTQgMzc3ICAyMTAgNDUzXHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB0aW1lID0gMTtcclxuICAgICAgICB0aGlzLnR3ZWVuID0gY2MudHdlZW4odGhpcy5QbGF5ZXIpXHJcbiAgICAgICAgLnRvKDIse3Bvc2l0aW9uOmNjLnYzKDIxNSw1MjUsMCl9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB0aW1lID0gKHRoaXMubGlzdERhdGEubGVuZ3RoIC0gdGhpcy5yYW5rTnVtYmVyKS90aGlzLmxpc3REYXRhLmxlbmd0aDtcclxuICAgICAgICBpZih0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSA5OSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmFua051bWJlciA+PSA5OSl7XHJcbiAgICAgICAgICAgICAgICB0aW1lID0gKE1hdGgucmFuZG9tKCkqNDkrMSkvMTAwXHJcbiAgICAgICAgICAgICAgICB2YXIgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoTnVtYmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobWF0Y2hJZCA9PSBudWxsIHx8IG1hdGNoSWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy50d2Vlbil0aGlzLnR3ZWVuLnN0b3AoKTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm51bWJlclwiKVxyXG4gICAgICAgICAgICAuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSAgcGFyc2VJbnQodGltZSoxMDAgKyBcIlwiKSArIFwiJVwiO1xyXG4gICAgICAgIH0sIHRpbWUqMjAwMCk7XHJcblxyXG4gICAgfVxyXG4gICAgLy/orr7nva7lpLTlg48gIOWkhOeQhueahOmAu+i+keavlOi+g+Wkmu+8jOS4jeeUqOWFrOWFseexu+eahOS6hlxyXG4gICAgcHVibGljIHNldFBpYyhwaWMpe1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlBsYXllci5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgZmV0Y2gocGljKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShwaWMsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBzZWxmLlBsYXllci5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHNlbGYucGhvbmUubm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSlcclxuICAgICAgICAgICAgICAgIC5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucGxheWVyQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/Reduce.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'ca599IU5hFEYYrzoN59YOpT', 'Reduce');
+// Script/Reduce.ts
"use strict";
// Learn TypeScript:
@@ -7507,76 +8612,23 @@ var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var NewClass = /** @class */ (function (_super) {
__extends(NewClass, _super);
function NewClass() {
- return _super !== null && _super.apply(this, arguments) || this;
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.Block_Color = [];
+ _this.level = null;
+ return _this;
+ // update (dt) {}
}
// LIFE-CYCLE CALLBACKS:
NewClass.prototype.onLoad = function () {
- this.can_Touch = false;
};
NewClass.prototype.start = function () {
};
- NewClass.prototype.init = function (data) {
- var _this = this;
- this.can_Touch = false;
- this.node.getChildByName("win").active = false;
- this.node.getChildByName("lose").active = false;
- this.node.getChildByName("finishi").active = false;
- this.node.getChildByName(data.result).active = true;
- if (data.result == "lose") {
- this.setErrLabel(data.code);
- }
- var target = this.node.getChildByName(data.result);
- target.getChildByName("btn").active = false;
- target.opacity = 0;
- target.scale = 2;
- target.getChildByName("tip").opacity = 0;
- if (data.result == "win") {
- var lianXi = false;
- if (cc.fx.GameConfig.GM_INFO.level == 2)
- lianXi = true;
- target.getChildByName("yes").active = !lianXi;
- target.getChildByName("start").active = lianXi;
- }
- cc.tween(target)
- .delay(0.1)
- .to(0.25, { opacity: 255, scale: 1 })
- .delay(0.3)
- .call(function () {
- if (target.name == "lose") {
- cc.tween(target.getChildByName("tip"))
- .to(0.5, { opacity: 255 })
- .delay(0.5)
- .call(function () {
- _this.can_Touch = true;
- target.getChildByName("btn").active = true;
- })
- .start();
- }
- else {
- _this.can_Touch = true;
- target.getChildByName("btn").active = true;
- }
- })
- .start();
- };
- NewClass.prototype.setErrLabel = function (code) {
- var tip = this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label);
- tip.string = cc.fx.GameConfig.TIP_ERR[code];
- };
- NewClass.prototype.click_Next = function () {
- var _this = this;
- if (!this.can_Touch) {
- return;
- }
- this.can_Touch = false;
- cc.tween(this.node)
- .to(0.3, { opacity: 0 })
- .call(function () {
- _this.node.active = false;
- cc.director.loadScene("GameScene");
- })
- .start();
- };
+ __decorate([
+ property({ type: [cc.SpriteFrame], tooltip: "方块颜色图片" })
+ ], NewClass.prototype, "Block_Color", void 0);
+ __decorate([
+ property(cc.Label)
+ ], NewClass.prototype, "level", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -7595,7 +8647,202 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXaW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBMkVBLENBQUM7SUF4RUcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUFULGlCQXdDQztRQXZDRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM1QyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQzlFLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUM7WUFDcEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUFFLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDdEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ2xEO1FBQ0QsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDZixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDO2FBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixJQUFJLENBQUM7WUFDRixJQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFDO2dCQUNyQixFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3JDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLENBQUM7cUJBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ1YsSUFBSSxDQUFDO29CQUNGLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQy9DLENBQUMsQ0FBQztxQkFDRCxLQUFLLEVBQUUsQ0FBQzthQUNaO2lCQUNHO2dCQUNBLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDOUM7UUFFTCxDQUFDLENBQUM7YUFDRCxLQUFLLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCw4QkFBVyxHQUFYLFVBQVksSUFBSTtRQUNaLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hGLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCw2QkFBVSxHQUFWO1FBQUEsaUJBWUM7UUFYRyxJQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQztZQUNmLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsQixFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDO2FBQ25CLElBQUksQ0FBQztZQUNGLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN6QixFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUM7YUFDRCxLQUFLLEVBQUUsQ0FBQztJQUNiLENBQUM7SUF4RWdCLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyRTVCO0lBQUQsZUFBQztDQTNFRCxBQTJFQyxDQTNFcUMsRUFBRSxDQUFDLFNBQVMsR0EyRWpEO2tCQTNFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgY2FuX1RvdWNoOiBib29sZWFuO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ3aW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmaW5pc2hpXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZihkYXRhLnJlc3VsdCA9PSBcImxvc2VcIil7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyTGFiZWwoZGF0YS5jb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRhcmdldC5vcGFjaXR5ID0gMDsgdGFyZ2V0LnNjYWxlID0gMjt0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYoZGF0YS5yZXN1bHQgPT0gXCJ3aW5cIil7XHJcbiAgICAgICAgICAgIHZhciBsaWFuWGkgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDIpIGxpYW5YaSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSAhbGlhblhpO1xyXG4gICAgICAgICAgICB0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydFwiKS5hY3RpdmUgPSBsaWFuWGk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLnR3ZWVuKHRhcmdldClcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NSxzY2FsZToxfSlcclxuICAgICAgICAuZGVsYXkoMC4zKVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5uYW1lID09IFwibG9zZVwiKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKSlcclxuICAgICAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbl9Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuX1RvdWNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyTGFiZWwoY29kZSl7XHJcbiAgICAgICAgdmFyIHRpcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aXAuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5USVBfRVJSW2NvZGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrX05leHQoKXtcclxuICAgICAgICBpZighdGhpcy5jYW5fVG91Y2gpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuX1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgIC50bygwLjMse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSZWR1Y2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUF1QkM7UUFwQkcsaUJBQVcsR0FBMkIsRUFBRSxDQUFDO1FBSXpDLFdBQUssR0FBYSxJQUFJLENBQUM7O1FBZXZCLGlCQUFpQjtJQUNyQixDQUFDO0lBZEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47SUFFQSxDQUFDO0lBQ0Qsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFiRDtRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLENBQUM7aURBQ1o7SUFJekM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQVBOLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1QjVCO0lBQUQsZUFBQztDQXZCRCxBQXVCQyxDQXZCcUMsRUFBRSxDQUFDLFNBQVMsR0F1QmpEO2tCQXZCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlNwcml0ZUZyYW1lXSwgdG9vbHRpcDpcIuaWueWdl+minOiJsuWbvueJh1wifSlcclxuICAgIEJsb2NrX0NvbG9yIDogQXJyYXk8Y2MuU3ByaXRlRnJhbWU+ID0gW107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgXHJcblxyXG5cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/Pause.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'aca4aut33NCvIC0yg3JmY0h', 'Pause');
+// Script/Pause.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var Pause = /** @class */ (function (_super) {
+ __extends(Pause, _super);
+ function Pause() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 0;
+ _this.music = null;
+ _this.effect = null;
+ _this.vibrate = null;
+ _this.open = null;
+ _this.close = null;
+ // mapInfo: number[][] = [];
+ _this.musicState = true;
+ _this.effectState = true;
+ _this.vibrateState = true;
+ return _this;
+ // update (dt) {}
+ }
+ Pause.prototype.onLoad = function () {
+ if (cc.fx.GameConfig.GM_INFO.musicOpen) {
+ this.music.getComponent(cc.Sprite).spriteFrame = this.open;
+ this.music.x = 278;
+ }
+ else {
+ this.music.getComponent(cc.Sprite).spriteFrame = this.close;
+ this.music.x = 161;
+ }
+ if (cc.fx.GameConfig.GM_INFO.effectOpen) {
+ this.effect.getComponent(cc.Sprite).spriteFrame = this.open;
+ this.effect.x = 278;
+ }
+ else {
+ this.effect.getComponent(cc.Sprite).spriteFrame = this.close;
+ this.effect.x = 161;
+ }
+ if (cc.fx.GameConfig.GM_INFO.vibrateOpen) {
+ this.vibrate.getComponent(cc.Sprite).spriteFrame = this.open;
+ this.vibrate.x = 278;
+ }
+ else {
+ this.vibrate.getComponent(cc.Sprite).spriteFrame = this.close;
+ this.vibrate.x = 161;
+ }
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ };
+ Pause.prototype.start = function () {
+ };
+ Pause.prototype.init = function (time) {
+ };
+ Pause.prototype.clickMusic = function () {
+ var _this = this;
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.music.getComponent(cc.Sprite).spriteFrame = _this.close;
+ }), cc.fadeIn(0.1)));
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.music.getComponent(cc.Sprite).spriteFrame = _this.open;
+ }), cc.fadeIn(0.1)));
+ cc.fx.AudioManager._instance.playMusicGame();
+ }
+ };
+ Pause.prototype.setMusicConfig = function () {
+ var audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
+ };
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ };
+ Pause.prototype.clickEffect = function () {
+ var _this = this;
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.effect.getComponent(cc.Sprite).spriteFrame = _this.close;
+ }), cc.fadeIn(0.1)));
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.effect.getComponent(cc.Sprite).spriteFrame = _this.open;
+ }), cc.fadeIn(0.1)));
+ }
+ };
+ Pause.prototype.clickVibrate = function () {
+ var _this = this;
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.close;
+ }), cc.fadeIn(0.1)));
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
+ _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.open;
+ }), cc.fadeIn(0.1)));
+ }
+ };
+ __decorate([
+ property(cc.Node)
+ ], Pause.prototype, "music", void 0);
+ __decorate([
+ property(cc.Node)
+ ], Pause.prototype, "effect", void 0);
+ __decorate([
+ property(cc.Node)
+ ], Pause.prototype, "vibrate", void 0);
+ __decorate([
+ property(cc.SpriteFrame)
+ ], Pause.prototype, "open", void 0);
+ __decorate([
+ property(cc.SpriteFrame)
+ ], Pause.prototype, "close", void 0);
+ Pause = __decorate([
+ ccclass
+ ], Pause);
+ return Pause;
+}(cc.Component));
+exports.default = Pause;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxQYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUkxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW1JQztRQWpJRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLFVBQUksR0FBbUIsSUFBSSxDQUFDO1FBRzVCLFdBQUssR0FBbUIsSUFBSSxDQUFDO1FBRTdCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUEyRzdCLGlCQUFpQjtJQUNyQixDQUFDO0lBMUdHLHNCQUFNLEdBQU47UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUNHO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FB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Q0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDbEgsS0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3RCO0lBQ0wsQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO3dDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTTtJQUd4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO3VDQUNHO0lBRzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0NBQ0k7SUFqQlosS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW1JekI7SUFBRCxZQUFDO0NBbklELEFBbUlDLENBbklrQyxFQUFFLENBQUMsU0FBUyxHQW1JOUM7a0JBbklvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhdXNlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtdXNpYzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlZmZlY3Q6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgdmlicmF0ZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUZyYW1lKVxyXG4gICAgb3BlbjogY2MuU3ByaXRlRnJhbWUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVGcmFtZSlcclxuICAgIGNsb3NlOiBjYy5TcHJpdGVGcmFtZSA9IG51bGw7XHJcbiAgICBcclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGVmZmVjdFN0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHZpYnJhdGVTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMub3BlbjtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMjc4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMTYxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbil7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMjc4OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMTYxOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDI3ODsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuY2xvc2U7IFxyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDE2MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbjtcclxuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XHJcbiAgICAgICAgdGhpcy52aWJyYXRlU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW47XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG5cclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tNdXNpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubXVzaWNTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWNTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgfSksY2MuZmFkZUluKDAuMSkpKVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheU11c2ljR2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRNdXNpY0NvbmZpZygpe1xyXG4gICAgICAgIGxldCBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgIFwibXVzaWNPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4sICAgICAgICAgICAgIC8v6Z+z5LmQXHJcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tFZmZlY3QoKXtcclxuICAgICAgICBpZih0aGlzLmVmZmVjdFN0YXRlKXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0U3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tWaWJyYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy52aWJyYXRlU3RhdGUpe1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlOyBcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMTYxLHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMjc4LHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -7943,7 +9190,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/NumberToImage.js';
+ var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -7951,16 +9198,10 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '669f4SuSl9ORqawBcbwCNpG', 'NumberToImage');
-// Script/NumberToImage.ts
+cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView');
+// Script/Sdk/DouyinEntranceView.ts
"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
@@ -7981,600 +9222,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
+exports.DouyinEntranceView = void 0;
+var MiniGameSdk_1 = require("./MiniGameSdk");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var NumberToImage = /** @class */ (function (_super) {
- __extends(NumberToImage, _super);
- function NumberToImage() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.fontUI = null;
- return _this;
- // static calculateAndConvert(num1: number, num2: number, operator: '+' | '-' | '*' | '/', spriteFrames: SpriteFrame[]): Node[] {
- // let result: number;
- // switch (operator) {
- // case '+':
- // result = num1 + num2;
- // break;
- // case '-':
- // result = num1 - num2;
- // break;
- // case '*':
- // result = num1 * num2;
- // break;
- // case '/':
- // result = num1 / num2;
- // break;
- // default:
- // throw new Error('不支持的运算符');
- // }
- // // 处理结果为小数的情况,这里简单取整
- // result = Math.floor(result);
- // return this.numberToImageNodes(result, spriteFrames);
- // }
- // update (dt) {}
- }
- NumberToImage_1 = NumberToImage;
- // LIFE-CYCLE CALLBACKS:
- NumberToImage.prototype.onLoad = function () {
- if (this.fontUI != null) {
- NumberToImage_1.font = this.fontUI;
- }
- };
- //第一个参数 数字, 第二个参数 数字间距 第三个参数 占位宽度 第四个参数 目标节点
- NumberToImage.numberToImageNodes = function (number, width, posX, name, targetNode, middle) {
- if (middle === void 0) { middle = false; }
- var numStr = number.toString();
- var cha = 0;
- if (number > 99)
- cha = -posX;
- else if (number < 10)
- cha = posX;
- if (targetNode.children.length > 0)
- targetNode.removeAllChildren();
- for (var i = 0; i < numStr.length; i++) {
- var digit = parseInt(numStr[i], 10);
- var node = new cc.Node();
- var sprite = node.addComponent(cc.Sprite);
- // debugger;
- sprite.spriteFrame = this.font._spriteFrames[name + digit + ""];
- // 将节点添加到目标节点下
- node.x = i * width + cha;
- node.parent = targetNode;
- }
- if (middle) {
- targetNode.x = targetNode.x - targetNode.children.length * (width - 15) / 2;
- }
- };
- NumberToImage.getTimeMargin = function (number, width, name, targetNode) {
- var timeArr = [];
- var total = 0;
- total = number;
- var hour = 0;
- hour = parseInt((total / 3600) + ""); //计算整数小时数
- var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数
- var min = parseInt((afterHour / 60) + ""); //计算整数分
- var m = "" + min;
- if (min < 10)
- m = "0" + min;
- var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数
- var miao = afterMin + "";
- if (afterMin < 10)
- miao = "0" + afterMin;
- var result = m + miao;
- for (var i = 0; i < result.length; i++) {
- var digit = parseInt(result[i], 10);
- timeArr.push(digit);
- }
- if (targetNode.children.length > 0) {
- for (var i = 0; i < targetNode.children.length; i++) {
- targetNode.children[i].getComponent(cc.Sprite).spriteFrame = this.font._spriteFrames[name + timeArr[i] + ""];
- }
- }
- else {
- for (var i = 0; i < 4; i++) {
- var node = new cc.Node();
- var sprite = node.addComponent(cc.Sprite);
- var digit = timeArr[i];
- // debugger;
- sprite.spriteFrame = this.font._spriteFrames[name + digit + ""];
- // 将节点添加到目标节点下
- node.x = i * width;
- if (i > 1)
- node.x += 35;
- node.parent = targetNode;
- }
- }
- };
- var NumberToImage_1;
- NumberToImage.font = null;
- __decorate([
- property(cc.SpriteAtlas)
- ], NumberToImage.prototype, "fontUI", void 0);
- NumberToImage = NumberToImage_1 = __decorate([
- ccclass
- ], NumberToImage);
- return NumberToImage;
-}(cc.Component));
-exports.default = NumberToImage;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# 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==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Pause.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'aca4aut33NCvIC0yg3JmY0h', 'Pause');
-// Script/Pause.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Pause = /** @class */ (function (_super) {
- __extends(Pause, _super);
- function Pause() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.time = 0;
- _this.music = null;
- _this.effect = null;
- _this.vibrate = null;
- _this.open = null;
- _this.close = null;
- // mapInfo: number[][] = [];
- _this.musicState = true;
- _this.effectState = true;
- _this.vibrateState = true;
- return _this;
- // update (dt) {}
- }
- Pause.prototype.onLoad = function () {
- if (cc.fx.GameConfig.GM_INFO.musicOpen) {
- this.music.getComponent(cc.Sprite).spriteFrame = this.open;
- this.music.x = 278;
- }
- else {
- this.music.getComponent(cc.Sprite).spriteFrame = this.close;
- this.music.x = 161;
- }
- if (cc.fx.GameConfig.GM_INFO.effectOpen) {
- this.effect.getComponent(cc.Sprite).spriteFrame = this.open;
- this.effect.x = 278;
- }
- else {
- this.effect.getComponent(cc.Sprite).spriteFrame = this.close;
- this.effect.x = 161;
- }
- if (cc.fx.GameConfig.GM_INFO.vibrateOpen) {
- this.vibrate.getComponent(cc.Sprite).spriteFrame = this.open;
- this.vibrate.x = 278;
- }
- else {
- this.vibrate.getComponent(cc.Sprite).spriteFrame = this.close;
- this.vibrate.x = 161;
- }
- this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
- this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
- this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
- };
- Pause.prototype.start = function () {
- };
- Pause.prototype.init = function (time) {
- };
- Pause.prototype.clickMusic = function () {
- var _this = this;
- if (this.musicState) {
- this.musicState = false;
- cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
- this.setMusicConfig();
- this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.music.getComponent(cc.Sprite).spriteFrame = _this.close;
- }), cc.fadeIn(0.1)));
- cc.fx.AudioManager._instance.stopMusic();
- }
- else {
- this.musicState = true;
- cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
- this.setMusicConfig();
- this.music.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.music.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.music.getComponent(cc.Sprite).spriteFrame = _this.open;
- }), cc.fadeIn(0.1)));
- cc.fx.AudioManager._instance.playMusicGame();
- }
- };
- Pause.prototype.setMusicConfig = function () {
- var audioInfo = {
- "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
- "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
- "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
- };
- cc.fx.StorageMessage.setStorage("music", audioInfo);
- };
- Pause.prototype.clickEffect = function () {
- var _this = this;
- if (this.effectState) {
- this.effectState = false;
- cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
- this.setMusicConfig();
- this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.effect.getComponent(cc.Sprite).spriteFrame = _this.close;
- }), cc.fadeIn(0.1)));
- }
- else {
- this.effectState = true;
- cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
- this.setMusicConfig();
- this.effect.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.effect.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.effect.getComponent(cc.Sprite).spriteFrame = _this.open;
- }), cc.fadeIn(0.1)));
- }
- };
- Pause.prototype.clickVibrate = function () {
- var _this = this;
- if (this.vibrateState) {
- this.vibrateState = false;
- cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
- this.setMusicConfig();
- this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(161, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.close;
- }), cc.fadeIn(0.1)));
- }
- else {
- this.vibrateState = true;
- cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
- this.setMusicConfig();
- this.vibrate.runAction(cc.sequence(cc.spawn(cc.moveTo(0.05, cc.v2(278, this.vibrate.y)), cc.fadeOut(0.05)), cc.callFunc(function () {
- _this.vibrate.getComponent(cc.Sprite).spriteFrame = _this.open;
- }), cc.fadeIn(0.1)));
- }
- };
- __decorate([
- property(cc.Node)
- ], Pause.prototype, "music", void 0);
- __decorate([
- property(cc.Node)
- ], Pause.prototype, "effect", void 0);
- __decorate([
- property(cc.Node)
- ], Pause.prototype, "vibrate", void 0);
- __decorate([
- property(cc.SpriteFrame)
- ], Pause.prototype, "open", void 0);
- __decorate([
- property(cc.SpriteFrame)
- ], Pause.prototype, "close", void 0);
- Pause = __decorate([
- ccclass
- ], Pause);
- return Pause;
-}(cc.Component));
-exports.default = Pause;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxQYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUkxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW1JQztRQWpJRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLFVBQUksR0FBbUIsSUFBSSxDQUFDO1FBRzVCLFdBQUssR0FBbUIsSUFBSSxDQUFDO1FBRTdCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUEyRzdCLGlCQUFpQjtJQUNyQixDQUFDO0lBMUdHLHNCQUFNLEdBQU47UUFDSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUNHO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FB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Q0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDbEgsS0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3RCO0lBQ0wsQ0FBQztJQTNIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO3dDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTTtJQUd4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO3VDQUNHO0lBRzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0NBQ0k7SUFqQlosS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW1JekI7SUFBRCxZQUFDO0NBbklELEFBbUlDLENBbklrQyxFQUFFLENBQUMsU0FBUyxHQW1JOUM7a0JBbklvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhdXNlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtdXNpYzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlZmZlY3Q6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgdmlicmF0ZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZUZyYW1lKVxyXG4gICAgb3BlbjogY2MuU3ByaXRlRnJhbWUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVGcmFtZSlcclxuICAgIGNsb3NlOiBjYy5TcHJpdGVGcmFtZSA9IG51bGw7XHJcbiAgICBcclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGVmZmVjdFN0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHZpYnJhdGVTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMub3BlbjtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMjc4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgdGhpcy5tdXNpYy54ID0gMTYxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbil7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMjc4OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdC54ID0gMTYxOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuKXtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDI3ODsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuY2xvc2U7IFxyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGUueCA9IDE2MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbjtcclxuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XHJcbiAgICAgICAgdGhpcy52aWJyYXRlU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW47XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG5cclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tNdXNpYygpe1xyXG4gICAgICAgIGlmKHRoaXMubXVzaWNTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWNTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5jbG9zZTtcclxuICAgICAgICAgICAgfSksY2MuZmFkZUluKDAuMSkpKVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIHRoaXMubXVzaWMucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5tdXNpYy55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5vcGVuO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheU11c2ljR2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRNdXNpY0NvbmZpZygpe1xyXG4gICAgICAgIGxldCBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgIFwibXVzaWNPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4sICAgICAgICAgICAgIC8v6Z+z5LmQXHJcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxyXG4gICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tFZmZlY3QoKXtcclxuICAgICAgICBpZih0aGlzLmVmZmVjdFN0YXRlKXtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigxNjEsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuZWZmZWN0U3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3QucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLnNwYXduKGNjLm1vdmVUbygwLjA1LCBjYy52MigyNzgsdGhpcy5lZmZlY3QueSkpLCBjYy5mYWRlT3V0KDAuMDUpKSxjYy5jYWxsRnVuYygoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3QuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tWaWJyYXRlKCl7XHJcbiAgICAgICAgaWYodGhpcy52aWJyYXRlU3RhdGUpe1xyXG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlOyBcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMTYxLHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmNsb3NlO1xyXG4gICAgICAgICAgICB9KSxjYy5mYWRlSW4oMC4xKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TXVzaWNDb25maWcoKTtcclxuICAgICAgICAgICAgdGhpcy52aWJyYXRlLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihjYy5tb3ZlVG8oMC4wNSwgY2MudjIoMjc4LHRoaXMudmlicmF0ZS55KSksIGNjLmZhZGVPdXQoMC4wNSkpLGNjLmNhbGxGdW5jKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLm9wZW47XHJcbiAgICAgICAgICAgIH0pLGNjLmZhZGVJbigwLjEpKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Load.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load');
-// Script/Load.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent;
-var NewClass = /** @class */ (function (_super) {
- __extends(NewClass, _super);
- function NewClass() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.node1 = null;
- _this.node2 = null;
- _this.node3 = null;
- _this.localTest = false;
- _this.clientTestVersion = "1.0.0";
- _this.testVersion = null;
- return _this;
- // 3月17日 - 3月21日 工作完成内容
- // 1:游戏框架搭建
- // 2:制作18个基础方块预制体 (方块可编辑颜色与道具和状态)
- // 3:完成地图的搭建,可配置8*8以内,任意组合,包括可缺口和障碍物配置
- // 4:完成地图墙面建立,根据 ↑3上面构建的地图自动生成墙体。
- // 5:做完方块的基础移动,跟随手指,遇到方块或者墙壁或者障碍物阻碍移动。
- // 6:方块的自动落点做完11个基础方块的(未做完还差11个)
- // 3月24日 - 3月28日 预计完成目标
- // 1:完成全部方块的落点。
- // 2:完成门的搭建,门可选颜色,可选开关或者星星等特殊状态
- // 3:完成方块通过门的游戏逻辑,使游戏可以最基础运行玩起来
- // 4:出5关版本,配合小白备案审核。
- // 5:根据方块,地图,以及道具,制作地图编辑器 (方块和地图制作的时候都已经考虑到编辑器的需求了)
- // 优先制作,后续开发拓展玩法功能时,小白可同步进行制作关卡。
- }
- NewClass.prototype.onLoad = function () {
- // cc.director.getPhysicsManager().enabled = true;
- // cc.director.getPhysicsManager().debugDrawFlags = 1;
- // cc.director.getPhysicsManager().enabledAccumulator = true;
- // cc.PhysicsManager.VELOCITY_ITERATIONS = 20;
- // cc.PhysicsManager.FIXED_TIME_STEP = 1 / 120;
- // cc.PhysicsManager.POSITION_ITERATIONS = 20;
- //@ts-ignore
- cc.internal.inputManager._maxTouches = 1;
- var manager = cc.director.getCollisionManager();
- manager.enabled = true;
- this.setWX();
- cc.debug.setDisplayStats(false);
- cc.tween(this.node1)
- .delay(0 * 0.3)
- .to(0.3, { scale: 1 })
- .to(0.3, { scale: 1.3 })
- .to(0.3, { scale: 1 })
- .union()
- .repeatForever()
- .start();
- cc.tween(this.node2)
- .delay(1 * 0.3)
- .to(0.3, { scale: 1 })
- .to(0.3, { scale: 1.3 })
- .to(0.3, { scale: 1 })
- .union()
- .repeatForever()
- .start();
- cc.tween(this.node3)
- .delay(2 * 0.3)
- .to(0.3, { scale: 1 })
- .to(0.3, { scale: 1.3 })
- .to(0.3, { scale: 1 })
- .union()
- .repeatForever()
- .start();
- };
- NewClass.prototype.setWX = function () {
- //@ts-ignore
- if (typeof wx !== 'undefined' && wx !== null) { // 判断是否在微信环境
- wx.setPreferredFramesPerSecond(60);
- // // 设置转发按钮点击后的回调
- // wx.onShareAppMessage(() => {
- // return {
- // title: '你想玩上怎样的游戏?',
- // imageUrl: '',
- // query: ''
- // };
- // });
- wx.onShareAppMessage(function () {
- // 用户点击了“转发”按钮
- return {
- title: '你想玩上怎样的游戏?'
- };
- });
- // 监听分享到朋友圈事件
- //@ts-ignore
- wx.onShareTimeline(function () {
- return {
- title: '你想玩上怎样的游戏?'
- };
- });
- wx.showShareMenu(function () {
- return {
- title: '你想玩上怎样的游戏?',
- imageUrl: '',
- query: ''
- };
- });
- setTimeout(function () {
- wx.showShareMenu({
- menus: ['shareAppMessage', 'shareTimeline']
- });
- }, 2000);
- // 设置分享到朋友圈
- //@ts-ignore
- // wx.updateShareMenu({
- // withShareTicket: true,
- // success: (data) => {
- // console.log('更新分享菜单成功', data);
- // },
- // fail: (data) => {
- // console.log('更新分享菜单失败', data);
- // },
- // complete: (data) => {
- // console.log('更新分享菜单完成', data);
- // }
- // });
- //@ts-ignore
- }
- };
- //判断来源
- NewClass.prototype.containsTrain = function (str) {
- return /from=train/i.test(str);
- };
- //开始游戏,跳转至引导页面
- NewClass.prototype.startGame = function () {
- cc.director.loadScene("GameScene");
- // cc.director.loadScene("GuideScene");
- };
- //备用,用来测试跳转 指定关卡
- NewClass.prototype.clickBtn = function (event, data) {
- cc.fx.GameConfig.GM_INFO.custom = parseInt(data);
- cc.director.loadScene("GameScene");
- };
- //打开排行榜
- NewClass.prototype.openRank = function () {
- cc.director.loadScene("RankScene");
- };
- NewClass.prototype.update = function (dt) {
- };
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "node1", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "node2", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "node3", void 0);
- __decorate([
- property(false)
- ], NewClass.prototype, "localTest", void 0);
- __decorate([
- property("")
- ], NewClass.prototype, "clientTestVersion", void 0);
- __decorate([
- property(cc.Label)
- ], NewClass.prototype, "testVersion", void 0);
- NewClass = __decorate([
- ccclass
- ], NewClass);
- return NewClass;
-}(cc.Component));
-exports.default = NewClass;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUxOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG5vZGUzOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoZmFsc2UpXHJcbiAgICBsb2NhbFRlc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAcHJvcGVydHkoXCJcIilcclxuICAgIGNsaWVudFRlc3RWZXJzaW9uOiBzdHJpbmcgPSBcIjEuMC4wXCI7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IuZ2V0UGh5c2ljc01hbmFnZXIoKS5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmRlYnVnRHJhd0ZsYWdzID0gMTtcclxuICAgICAgICAvLyBjYy5kaXJlY3Rvci5nZXRQaHlzaWNzTWFuYWdlcigpLmVuYWJsZWRBY2N1bXVsYXRvciA9IHRydWU7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuVkVMT0NJVFlfSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vIGNjLlBoeXNpY3NNYW5hZ2VyLkZJWEVEX1RJTUVfU1RFUCA9IDEgLyAxMjA7XHJcbiAgICAgICAgLy8gY2MuUGh5c2ljc01hbmFnZXIuUE9TSVRJT05fSVRFUkFUSU9OUyA9IDIwO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIFxyXG4gICAgICAgIGNjLmludGVybmFsLmlucHV0TWFuYWdlci5fbWF4VG91Y2hlcyA9IDFcclxuXHJcbiAgICAgICAgbGV0IG1hbmFnZXIgPSBjYy5kaXJlY3Rvci5nZXRDb2xsaXNpb25NYW5hZ2VyKCk7XHJcbiAgICAgICAgbWFuYWdlci5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFdYKCk7XHJcblxyXG4gICAgICAgIGNjLmRlYnVnLnNldERpc3BsYXlTdGF0cyhmYWxzZSk7XHJcblxyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUxKVxyXG4gICAgICAgIC5kZWxheSgwICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUyKVxyXG4gICAgICAgIC5kZWxheSgxICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUzKVxyXG4gICAgICAgIC5kZWxheSgyICogMC4zKSBcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC50bygwLjMsIHtzY2FsZTogMS4zfSlcclxuICAgICAgICAudG8oMC4zLCB7c2NhbGU6IDF9KVxyXG4gICAgICAgIC51bmlvbigpXHJcbiAgICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRXWCgpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgIHd4LnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCg2MCk7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAvLyAvLyDorr7nva7ovazlj5HmjInpkq7ngrnlh7vlkI7nmoTlm57osINcclxuICAgICAgICAgICAgLy8gd3gub25TaGFyZUFwcE1lc3NhZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aXRsZTogJ+S9oOaDs+eOqeS4iuaAjuagt+eahOa4uOaIj++8nycsXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgaW1hZ2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHF1ZXJ5OiAnJ1xyXG4gICAgICAgICAgICAvLyAgICAgfTtcclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICB3eC5vblNoYXJlQXBwTWVzc2FnZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIC8vIOeUqOaIt+eCueWHu+S6huKAnOi9rOWPkeKAneaMiemSrlxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgICAgICAvLyDnm5HlkKzliIbkuqvliLDmnIvlj4vlnIjkuovku7ZcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uU2hhcmVUaW1lbGluZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L2g5oOz546p5LiK5oCO5qC355qE5ri45oiP77yfJ1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkvaDmg7PnjqnkuIrmgI7moLfnmoTmuLjmiI/vvJ8nLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogJydcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgd3guc2hvd1NoYXJlTWVudSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwgMjAwMCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIOiuvue9ruWIhuS6q+WIsOaci+WPi+WciFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgLy8gd3gudXBkYXRlU2hhcmVNZW51KHtcclxuICAgICAgICAgICAgLy8gICAgIHdpdGhTaGFyZVRpY2tldDogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gICAgIHN1Y2Nlc3M6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleaIkOWKnycsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGZhaWw6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ+abtOaWsOWIhuS6q+iPnOWNleWksei0pScsIGRhdGEpO1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIGNvbXBsZXRlOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCfmm7TmlrDliIbkuqvoj5zljZXlrozmiJAnLCBkYXRhKTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+86aG16Z2iXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v5aSH55So77yM55So5p2l5rWL6K+V6Lez6L2sIOaMh+WumuWFs+WNoVxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBvcGVuUmFuaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG4gICAgXHJcbi8vICAgICAz5pyIMTfml6UgLSAz5pyIMjHml6Ug5bel5L2c5a6M5oiQ5YaF5a65XHJcblxyXG4vLyAx77ya5ri45oiP5qGG5p625pCt5bu6XHJcbi8vIDLvvJrliLbkvZwxOOS4quWfuuehgOaWueWdl+mihOWItuS9kyAo5pa55Z2X5Y+v57yW6L6R6aKc6Imy5LiO6YGT5YW35ZKM54q25oCBKVxyXG4vLyAz77ya5a6M5oiQ5Zyw5Zu+55qE5pCt5bu677yM5Y+v6YWN572uOCo45Lul5YaF77yM5Lu75oSP57uE5ZCI77yM5YyF5ous5Y+v57y65Y+j5ZKM6Zqc56KN54mp6YWN572uXHJcbi8vIDTvvJrlrozmiJDlnLDlm77lopnpnaLlu7rnq4vvvIzmoLnmja4g4oaRM+S4iumdouaehOW7uueahOWcsOWbvuiHquWKqOeUn+aIkOWimeS9k+OAglxyXG4vLyA177ya5YGa5a6M5pa55Z2X55qE5Z+656GA56e75Yqo77yM6Lef6ZqP5omL5oyH77yM6YGH5Yiw5pa55Z2X5oiW6ICF5aKZ5aOB5oiW6ICF6Zqc56KN54mp6Zi756KN56e75Yqo44CCXHJcbi8vIDbvvJrmlrnlnZfnmoToh6rliqjokL3ngrnlgZrlrowxMeS4quWfuuehgOaWueWdl+eahO+8iOacquWBmuWujOi/mOW3rjEx5Liq77yJXHJcblxyXG4vLyAz5pyIMjTml6UgLSAz5pyIMjjml6Ug6aKE6K6h5a6M5oiQ55uu5qCHXHJcblxyXG4vLyAx77ya5a6M5oiQ5YWo6YOo5pa55Z2X55qE6JC954K544CCXHJcbi8vIDLvvJrlrozmiJDpl6jnmoTmkK3lu7rvvIzpl6jlj6/pgInpopzoibLvvIzlj6/pgInlvIDlhbPmiJbogIXmmJ/mmJ/nrYnnibnmrornirbmgIFcclxuLy8gM++8muWujOaIkOaWueWdl+mAmui/h+mXqOeahOa4uOaIj+mAu+i+ke+8jOS9v+a4uOaIj+WPr+S7peacgOWfuuehgOi/kOihjOeOqei1t+adpVxyXG4vLyA077ya5Ye6NeWFs+eJiOacrO+8jOmFjeWQiOWwj+eZveWkh+ahiOWuoeaguOOAglxyXG4vLyA177ya5qC55o2u5pa55Z2X77yM5Zyw5Zu+77yM5Lul5Y+K6YGT5YW377yM5Yi25L2c5Zyw5Zu+57yW6L6R5ZmoICjmlrnlnZflkozlnLDlm77liLbkvZznmoTml7blgJnpg73lt7Lnu4/ogIPomZHliLDnvJbovpHlmajnmoTpnIDmsYLkuoYpIFxyXG4vLyBcdOS8mOWFiOWItuS9nO+8jOWQjue7reW8gOWPkeaLk+WxleeOqeazleWKn+iDveaXtu+8jOWwj+eZveWPr+WQjOatpei/m+ihjOWItuS9nOWFs+WNoeOAglxyXG59XHJcbiJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/btnControl.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl');
-// Script/btnControl.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var btnControl = /** @class */ (function (_super) {
- __extends(btnControl, _super);
- function btnControl() {
+var DouyinEntranceView = /** @class */ (function (_super) {
+ __extends(DouyinEntranceView, _super);
+ function DouyinEntranceView() {
return _super !== null && _super.apply(this, arguments) || this;
}
- btnControl.prototype.onLoad = function () {
- this._touch = true;
+ DouyinEntranceView.prototype.start = function () {
};
- btnControl.prototype.start = function () {
+ DouyinEntranceView.prototype.update = function (deltaTime) {
};
- btnControl.prototype.setTouch = function (type) {
- this._touch = type;
+ DouyinEntranceView.prototype.onCloseClick = function () {
+ this.node.active = false;
};
- btnControl.prototype.update = function (dt) {
+ DouyinEntranceView.prototype.onNavigateToDouyinClick = function () {
+ MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) {
+ if (success) {
+ console.log('跳转成功');
+ }
+ else {
+ console.log('跳转失败');
+ }
+ });
};
- btnControl = __decorate([
+ DouyinEntranceView = __decorate([
ccclass
- ], btnControl);
- return btnControl;
+ ], DouyinEntranceView);
+ return DouyinEntranceView;
}(cc.Component));
-exports.default = btnControl;
+exports.DouyinEntranceView = DouyinEntranceView;
cc._RF.pop();
}
@@ -8587,37 +9265,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGJ0bkNvbnRyb2wgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/position.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'e0e34n/+FRF5JdkULm6vdT0', 'position');
-// Script/position.ts
-
-var _PROP_INFO = [{ "pos1": { "x": -60, "y": 60, "z": 0 }, "pos2": { "x": -16.442, "y": 30, "z": 0 }, "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, "pos4": { "x": -17, "y": 12, "z": 0 } }, { "pos1": { "x": -126, "y": 63, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, "pos4": { "x": -20, "y": 13, "z": 0 } }, { "pos1": { "x": -60, "y": 125, "z": 0 }, "pos2": { "x": -12.792, "y": 92.675, "z": 0 }, "pos3": { "x": -27.792, "y": 23.675, "z": 0 }, "pos4": { "x": -14, "y": 24, "z": 0 } }, { "pos1": { "x": -185, "y": 63, "z": 0 }, "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, "pos3": { "x": -154.792, "y": 23.675, "z": 0 }, "pos4": { "x": -22, "y": 16, "z": 0 } }, { "pos1": { "x": -57, "y": 178, "z": 0 }, "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 37, "z": 0 } }, { "pos1": { "x": -123, "y": 127, "z": 0 }, "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, "pos4": { "x": -27, "y": 19, "z": 0 } }, { "pos1": { "x": -62, "y": 181, "z": 0 }, "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -7, "y": 39, "z": 0 } }, { "pos1": { "x": -181, "y": 180, "z": 0 }, "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": -18, "y": 25, "z": 0 } }, { "pos1": { "x": -182, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, "pos4": { "x": -23, "y": 14, "z": 0 } }, { "pos1": { "x": -186, "y": 61, "z": 0 }, "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, "pos4": { "x": -24, "y": 17, "z": 0 } }, { "pos1": { "x": -62, "y": 177, "z": 0 }, "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": 3, "y": 31, "z": 0 } }, { "pos1": { "x": 58, "y": 179, "z": 0 }, "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, "pos4": { "x": 7.218, "y": 29.765, "z": 0 } }, { "pos1": { "x": -57, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 12, "z": 0 } }, { "pos1": { "x": -180, "y": 62, "z": 0 }, "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, "pos4": { "x": -17, "y": 20, "z": 0 } }, { "pos1": { "x": -62, "y": 178, "z": 0 }, "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -6, "y": 24, "z": 0 } }, { "pos1": { "x": -176, "y": 60, "z": 0 }, "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, "pos4": { "x": -29, "y": 16, "z": 0 } }, { "pos1": { "x": -60, "y": 181, "z": 0 }, "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -63, "y": 178, "z": 0 }, "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -60, "y": 183, "z": 0 }, "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -64, "y": 58, "z": 0 }, "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -184, "y": 62, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -57, "y": 190, "z": 0 }, "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -71, "y": 184, "z": 0 }, "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, "pos4": { "x": -25, "y": 40, "z": 0 } }];
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9QUk9QX0lORk8gPSBbe1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogNjAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0xNi40NDIsXCJ5XCI6IDMwLFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuMzYyLFwieVwiOiAxMy4yNDYsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNyxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyNixcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNS43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTk0Ljc5MixcInlcIjogMjEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjAsXCJ5XCI6IDEzLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTI1LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTIuNzkyLFwieVwiOiA5Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yNy43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg1LFwieVwiOiA2MyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjIsXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTcuNzkyLFwieVwiOiAxNjYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMzcsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyMyxcInlcIjogMTI3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiA5OS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05Ny43OTIsXCJ5XCI6IDI3LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI3LFwieVwiOiAxOSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE4MSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI0Ljc5MixcInlcIjogMjc1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtNyxcInlcIjogMzksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MSxcInlcIjogMTgwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAxNjMuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjUsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MixcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yMyxcInlcIjogMTQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NixcInlcIjogNjEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNy43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM2Ljc5MixcInlcIjogMjYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjQsXCJ5XCI6IDE3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5My4yMDgsXCJ5XCI6IDI3Ni42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogMyxcInlcIjogMzEsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogNTgsXCJ5XCI6IDE3OSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogMjA1LjIyNSxcInlcIjogMTU0LjAzNCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5LjY0MixcInlcIjogMjUuNjkxLFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiA3LjIxOCxcInlcIjogMjkuNzY1LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDMzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAxMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTgwLFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMjcxLjc5MixcInlcIjogMjQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDIwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4Ny4yMDgsXCJ5XCI6IDE2NC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTYsXCJ5XCI6IDI0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xNzYsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTQuNzkyLFwieVwiOiAyOS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yOSxcInlcIjogMTYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMwLjc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjEuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xMixcInlcIjogMzIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDg4LjIwOCxcInlcIjogMTYyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5Ljc5MixcInlcIjogNDEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02NCxcInlcIjogNTgsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNi43OTIsXCJ5XCI6IDMyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODQsXCJ5XCI6IDYyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTUuNzkyLFwieVwiOiAyNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTU3LFwieVwiOiAxOTAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU4LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC03MSxcInlcIjogMTg0LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNSxcInlcIjogNDAsXCJ6XCI6IDB9fV07Il19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
//------QC-SOURCE-SPLIT------
(function() {
@@ -8752,7 +9400,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js';
+ var __filename = 'preview-scripts/assets/Script/btnControl.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -8760,73 +9408,8 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '4bd21i88J9KfoWB6fqk7oW1', 'lq_collide_config');
-// Script/lq_collide_system/lq_collide_config.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQCollideConfig = exports.LQCollideInfoList = void 0;
-var LQCollideInfoList;
-(function (LQCollideInfoList) {
- LQCollideInfoList[LQCollideInfoList["default"] = 0] = "default";
- LQCollideInfoList[LQCollideInfoList["role"] = 1] = "role";
- LQCollideInfoList[LQCollideInfoList["role_bullet"] = 2] = "role_bullet";
- LQCollideInfoList[LQCollideInfoList["enemy"] = 3] = "enemy";
- LQCollideInfoList[LQCollideInfoList["enemy_bullet"] = 4] = "enemy_bullet";
- LQCollideInfoList[LQCollideInfoList["prop"] = 5] = "prop";
-})(LQCollideInfoList = exports.LQCollideInfoList || (exports.LQCollideInfoList = {}));
-var LQCollideConfig = /** @class */ (function () {
- function LQCollideConfig() {
- }
- LQCollideConfig.switch_auto_run = true;
- LQCollideConfig.switch_print_log = true;
- LQCollideConfig.switch_quad_tree = false;
- LQCollideConfig.max_node_len = 10;
- LQCollideConfig.per_frame = 60;
- LQCollideConfig.max_node_level = 4;
- LQCollideConfig.active_area_x = 0;
- LQCollideConfig.active_area_y = 0;
- LQCollideConfig.active_area_width = 1000;
- LQCollideConfig.active_area_height = 1000;
- LQCollideConfig.collide_group_map = {
- "default": { id: 1, category: 1, index: 0, mask: 1 },
- "role": { id: 2, category: 2, index: 1, mask: 56 },
- "role_bullet": { id: 3, category: 4, index: 2, mask: 8 },
- "enemy": { id: 4, category: 8, index: 3, mask: 6 },
- "enemy_bullet": { id: 5, category: 16, index: 4, mask: 2 },
- "prop": { id: 6, category: 32, index: 5, mask: 2 },
- };
- return LQCollideConfig;
-}());
-exports.LQCollideConfig = LQCollideConfig;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLCtEQUFPLENBQUE7SUFBRSx5REFBSSxDQUFBO0lBQUUsdUVBQVcsQ0FBQTtJQUFFLDJEQUFLLENBQUE7SUFBRSx5RUFBWSxDQUFBO0lBQUUseURBQUksQ0FBQTtBQUN6RCxDQUFDLEVBRlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFFNUI7QUFFRDtJQUFBO0lBbUJBLENBQUM7SUFsQmlCLCtCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGdDQUFnQixHQUFZLElBQUksQ0FBQztJQUNqQyxnQ0FBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsNEJBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIseUJBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsOEJBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsaUNBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLGtDQUFrQixHQUFXLElBQUksQ0FBQztJQUNsQyxpQ0FBaUIsR0FBRztRQUM5QixTQUFTLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2xELE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7UUFDaEQsYUFBYSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztRQUN0RCxPQUFPLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2hELGNBQWMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUM7UUFDeEQsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztLQUNuRCxDQUFBO0lBQ0wsc0JBQUM7Q0FuQkQsQUFtQkMsSUFBQTtBQW5CWSwwQ0FBZSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExRQ29sbGlkZUluZm9MaXN0IHtcclxuICAgIGRlZmF1bHQsIHJvbGUsIHJvbGVfYnVsbGV0LCBlbmVteSwgZW5lbXlfYnVsbGV0LCBwcm9wXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMUUNvbGxpZGVDb25maWcge1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfYXV0b19ydW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfcHJpbnRfbG9nOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBzdGF0aWMgc3dpdGNoX3F1YWRfdHJlZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZW46IG51bWJlciA9IDEwO1xyXG4gICAgcHVibGljIHN0YXRpYyBwZXJfZnJhbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZXZlbDogbnVtYmVyID0gNDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfd2lkdGg6IG51bWJlciA9IDEwMDA7XHJcbiAgICBwdWJsaWMgc3RhdGljIGFjdGl2ZV9hcmVhX2hlaWdodDogbnVtYmVyID0gMTAwMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgY29sbGlkZV9ncm91cF9tYXAgPSB7XHJcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtpZDogMSwgY2F0ZWdvcnk6IDEsIGluZGV4OiAwLCBtYXNrOiAxfSxcclxuICAgICAgICBcInJvbGVcIjoge2lkOiAyLCBjYXRlZ29yeTogMiwgaW5kZXg6IDEsIG1hc2s6IDU2fSxcclxuICAgICAgICBcInJvbGVfYnVsbGV0XCI6IHtpZDogMywgY2F0ZWdvcnk6IDQsIGluZGV4OiAyLCBtYXNrOiA4fSxcclxuICAgICAgICBcImVuZW15XCI6IHtpZDogNCwgY2F0ZWdvcnk6IDgsIGluZGV4OiAzLCBtYXNrOiA2fSxcclxuICAgICAgICBcImVuZW15X2J1bGxldFwiOiB7aWQ6IDUsIGNhdGVnb3J5OiAxNiwgaW5kZXg6IDQsIG1hc2s6IDJ9LFxyXG4gICAgICAgIFwicHJvcFwiOiB7aWQ6IDYsIGNhdGVnb3J5OiAzMiwgaW5kZXg6IDUsIG1hc2s6IDJ9LFxyXG4gICAgfVxyXG59Il19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager');
-// Script/Sdk/MiniGameManager.ts
+cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl');
+// Script/btnControl.ts
"use strict";
var __extends = (this && this.__extends) || (function () {
@@ -8849,317 +9432,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.MiniGameManager = void 0;
-var MiniGameSdk_1 = require("./MiniGameSdk");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var EWechatAD;
-(function (EWechatAD) {
- EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473";
-})(EWechatAD || (EWechatAD = {}));
-var MiniGameManager = /** @class */ (function (_super) {
- __extends(MiniGameManager, _super);
- function MiniGameManager() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.entranceView = null;
- return _this;
+var btnControl = /** @class */ (function (_super) {
+ __extends(btnControl, _super);
+ function btnControl() {
+ return _super !== null && _super.apply(this, arguments) || this;
}
- MiniGameManager_1 = MiniGameManager;
- Object.defineProperty(MiniGameManager, "instance", {
- get: function () {
- if (!MiniGameManager_1._instance) {
- MiniGameManager_1._instance = new MiniGameManager_1();
- }
- return MiniGameManager_1._instance;
- },
- enumerable: false,
- configurable: true
- });
- MiniGameManager.prototype.start = function () {
- // 禁用游戏入口视图
- // this.entranceView.active = false;
- // MiniGameSdk.API.getUserProfile(this.setUserId);
- // cc.fx.GameTool.setUserInfo("");
- this.onGetLoginCode();
- // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作
- // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView');
- // if (buttonEntrance) {
- // return;
- // }
- // 如果是字节跳动小游戏环境,检查侧边栏是否存在
- if (MiniGameSdk_1.MiniGameSdk.isBytedance()) {
- //抖音环境,检测侧边栏存在
- MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) {
- // 根据侧边栏存在性激活或禁用游戏入口按钮
- // buttonEntrance.active = success;
- });
- }
- else {
- // 非抖音小游戏环境,直接激活游戏入口按钮
- // 非抖音环境,正常显示按钮
- // buttonEntrance.active = true;
- }
- // 设置监听器,以处理来自侧边栏的交互事件
- MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) {
- // 如果交互成功,显示奖励提示
- if (success) {
- MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5);
- }
- });
+ btnControl.prototype.onLoad = function () {
+ this._touch = true;
};
- MiniGameManager.prototype.update = function (deltaTime) {
+ btnControl.prototype.start = function () {
};
- /**
- * 弹出广告横幅。
- * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。
- * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。
- *
- * @remarks
- * 此方法提供了两种显示横幅广告的方式:
- * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。
- * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。
- *
- * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。
- */
- MiniGameManager.prototype.onShowBanner = function () {
- // 加载指定广告位的横幅广告。
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51');
- // 默认方式显示横幅广告。
- // 方法1:默认调用
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner();
- // 示例:指定屏幕底部正中显示横幅广告。
- // 方法2:指定屏幕顶部或底部正中
- // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM);
- // 示例:通过坐标指定位置显示横幅广告。
- // 方法2:指定坐标
- // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 });
+ btnControl.prototype.setTouch = function (type) {
+ this._touch = type;
};
- /**
- * 隐藏广告横幅的函数。
- *
- * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。
- * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。
- *
- * @remarks
- * 此函数不接受任何参数,也不返回任何值。
- * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。
- */
- MiniGameManager.prototype.onHideBanner = function () {
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner();
+ btnControl.prototype.update = function (dt) {
};
- /**
- * 显示插屏广告的函数。
- *
- * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。
- * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。
- * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。
- */
- MiniGameManager.prototype.onShowInterstitial = function () {
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad');
- };
- /**
- * 调用广告管理器加载并展示自定义广告。
- * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。
- * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程,
- * 以确保广告在展示前正确且充分地被加载。
- */
- MiniGameManager.prototype.onShowCustom = function () {
- // 加载指定的自定义广告单元。
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01);
- // 展示已加载的自定义广告。
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01);
- };
- /**
- * 隐藏自定义广告。
- *
- * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。
- * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。
- * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。
- */
- MiniGameManager.prototype.onHideCustom = function () {
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01);
- };
- /**
- * 触发显示视频广告的函数。
- * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。
- *
- * @remarks
- * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。
- * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。
- */
- MiniGameManager.prototype.onShowVideo = function () {
- // 广告单元ID,用于标识要显示的视频广告
- // 广告单元ID的样例
- //抖音形如: 1re3nfqkmy81m4m8ge
- //微信形如: adunit-a7718f6e195e42fe
- MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) {
- // 输出用户观看的广告数量
- console.log('用户看的视频广告个数是:', count);
- // 根据用户观看广告的结果,执行不同的逻辑
- switch (res) {
- case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT:
- // 用户完成了广告观看,显示奖励提示
- MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励');
- break;
- case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT:
- // 用户拒绝了广告观看,显示不奖励提示
- MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励');
- break;
- case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR:
- // 广告播放发生错误,显示错误提示
- MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励');
- break;
- default:
- // 其他情况,不作处理
- break;
- }
- });
- };
- /**
- * 引导用户分享应用给朋友。
- *
- * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。
- * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。
- *
- * @remarks
- * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。
- */
- MiniGameManager.prototype.onShare = function () {
- MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧');
- };
- /**
- * 显示一个toast提示。
- *
- * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。
- * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。
- */
- MiniGameManager.prototype.onShowToast = function () {
- MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast');
- };
- /**
- * 触发设备振动功能。
- *
- * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。
- * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。
- *
- * @remarks
- * 此方法无参数,也不返回任何值。
- */
- MiniGameManager.prototype.onVirbrate = function () {
- MiniGameSdk_1.MiniGameSdk.API.vibrate();
- };
- /**
- * 重新启动游戏实例。
- *
- * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。
- * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。
- *
- * @remarks
- * 此函数不接受任何参数。
- *
- * @returns 无返回值。
- */
- MiniGameManager.prototype.onReboot = function () {
- MiniGameSdk_1.MiniGameSdk.API.reboot();
- };
- /**
- * 当前函数用于在迷你游戏中实现退出功能。
- * 它调用了MiniGameSdk提供的API方法来触发退出操作。
- * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。
- */
- MiniGameManager.prototype.onExit = function () {
- MiniGameSdk_1.MiniGameSdk.API.exit();
- };
- /**
- * 显示分享菜单。
- *
- * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口,
- * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。
- *
- * @remarks
- * 此方法不接受任何参数,也不返回任何值。
- */
- MiniGameManager.prototype.onShowShareMenu = function () {
- MiniGameSdk_1.MiniGameSdk.API.showShareMenu();
- };
- /**
- * 导航到指定的小游戏。
- *
- * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID,
- * 以便系统能够正确地将用户重定向到目标小游戏。
- *
- * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。
- */
- MiniGameManager.prototype.onNavigate = function () {
- MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id
- };
- /**
- * 激活字节跳动入口视图。
- *
- * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时,
- * 可以调用此方法来激活相应的视图元素,使其对用户可见。
- */
- MiniGameManager.prototype.onBytedanceEntranceView = function () {
- // this.entranceView.active = true;
- };
- /**
- * 请求登录代码
- *
- * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。
- * 这些代码可以用于后续的用户身份验证和数据同步流程。
- */
- MiniGameManager.prototype.onGetLoginCode = function () {
- // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果
- MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) {
- // 打印微信或头条的登录代码
- console.log('Wechat Or Bytedance Code:', code);
- // 打印头条的匿名登录代码
- // console.log('Bytedance Anonymous Code:', anonymousCode);
- if (code) {
- // cc.fx.GameTool.getUserId(code, data => this.setUserId(data));
- }
- });
- };
- // setUserId(data){
- // cc.fx.GameConfig.GM_INFO.userId = data.data.userId;
- // MiniGameSdk.API.getUserInfo(this.setUserInfo);
- // }
- // setUserInfo(data){
- // console.log("获取到的用户信息",data.userInfo);
- // var useData = {
- // "gameId": cc.fx.GameConfig.GM_INFO.gameId,
- // "userId": cc.fx.GameConfig.GM_INFO.userId,
- // "nickName":data.userInfo.nickName,
- // "pic": data.userInfo.avatarUrl
- // }
- // console.log("即将上传的用户信息:",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl);
- // console.log("Post数据:",useData);
- // cc.fx.GameTool.setUserInfo(useData,(res)=>{
- // console.log("上传成功:",res);
- // });
- // }
- /**
- * 创建并显示游戏圈按钮
- *
- * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。
- * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。
- * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。
- */
- MiniGameManager.prototype.onCreateClub = function () {
- // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素
- MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 });
- // 显示游戏俱乐部图标
- MiniGameSdk_1.MiniGameSdk.GameClub.instance.show();
- };
- var MiniGameManager_1;
- __decorate([
- property(cc.Node)
- ], MiniGameManager.prototype, "entranceView", void 0);
- MiniGameManager = MiniGameManager_1 = __decorate([
+ btnControl = __decorate([
ccclass
- ], MiniGameManager);
- return MiniGameManager;
+ ], btnControl);
+ return btnControl;
}(cc.Component));
-exports.MiniGameManager = MiniGameManager;
+exports.default = btnControl;
cc._RF.pop();
}
@@ -9172,13 +9466,13 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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LHFCQUFxQjtJQUNyQiw2Q0FBNkM7SUFDN0Msc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCxxREFBcUQ7SUFDckQsNkNBQTZDO0lBQzdDLHlDQUF5QztJQUV6QyxRQUFRO0lBQ1IsZ0hBQWdIO0lBQ2hILHNDQUFzQztJQUN0QyxrREFBa0Q7SUFDbEQsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixJQUFJO0lBRUo7Ozs7OztPQU1HO0lBQ0gsc0NBQVksR0FBWjtRQUNJLG1DQUFtQztRQUNuQyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQy9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1oseUJBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0lBdlVEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eURBQ1c7SUFIcEIsZUFBZTtRQUQzQixPQUFPO09BQ0ssZUFBZSxDQTJVM0I7SUFBRCxzQkFBQztDQTNVRCxBQTJVQyxDQTNVb0MsRUFBRSxDQUFDLFNBQVMsR0EyVWhEO0FBM1VZLDBDQUFlIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vTWluaUdhbWVTZGtcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuZW51bSBFV2VjaGF0QUQge1xyXG4gICAgQ1VNU1RPTV8wMSA9ICdhZHVuaXQtZjdjMjQxN2ViMmMyZTQ3MydcclxufVxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlbnRyYW5jZVZpZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlvIDlp4vmuLjmiI/liY3nmoTliJ3lp4vljJbmk43kvZzjgIJcclxuICAgICAqIOS4u+imgei0n+i0o+ajgOafpeW5tuWkhOeQhua4uOaIj+WFpeWPo+aMiemSrueahOa/gOa0u+eKtuaAge+8jOS7peWPiuWcqOeJueWumueOr+Wig+S4i+iuvue9ruS+p+i+ueagj+eahOebkeWQrOWZqOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV6aaW5YWI5bCG5ri45oiP5YWl5Y+j6KeG5Zu+6K6+5Li66Z2e5r+A5rS754q25oCB77yM5Lul5YeG5aSH6L+b6KGM5ZCO57ut55qE5qOA5p+l5ZKM6K6+572u44CCXHJcbiAgICAgKiDlpoLmnpzlvZPliY3njq/looPmmK/mipbpn7PlsI/muLjmiI/vvIzkvJrmo4Dmn6XmmK/lkKblrZjlnKjkvqfovrnmoI/vvIzlubbmoLnmja7mo4Dmn6Xnu5Pmnpzmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq7jgIJcclxuICAgICAqIOWvueS6jumdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5q2k5aSW77yM5peg6K66546v5aKD5aaC5L2V77yM6YO95Lya6K6+572u5LiA5Liq55uR5ZCs5Zmo77yM5Lul5aSE55CG5p2l6Ieq5L6n6L655qCP55qE5LqL5Lu277yM5aaC5oiQ5Yqf6Kem5Y+R5pe25pi+56S65aWW5Yqx5o+Q56S644CCXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2lkOmFueTtcclxuICAgIHByaXZhdGUgX3VzZXJEYXRhOmFueTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE1pbmlHYW1lTWFuYWdlcjtcclxuICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogTWluaUdhbWVNYW5hZ2VyIHtcclxuICAgICAgICBpZiAoIU1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBNaW5pR2FtZU1hbmFnZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1pbmlHYW1lTWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgLy8g56aB55So5ri45oiP5YWl5Y+j6KeG5Zu+XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLmdldFVzZXJQcm9maWxlKHRoaXMuc2V0VXNlcklkKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyhcIlwiKTtcclxuICAgICAgICB0aGlzLm9uR2V0TG9naW5Db2RlKCk7XHJcbiAgICAgICAgLy8g5bCd6K+V6I635Y+W5ri45oiP5YWl5Y+j5oyJ6ZKu77yM5aaC5p6c5a2Y5Zyo5YiZ55u05o6l6L+U5Zue77yM5LiN6L+b6KGM5ZCO57ut5pON5L2cXHJcbiAgICAgICAgLy8gbGV0IGJ1dHRvbkVudHJhbmNlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdCdG5zJyk/LmdldENoaWxkQnlOYW1lKCdCdXR0b25fRW50cmFuY2VWaWV3Jyk7XHJcbiAgICAgICAgLy8gaWYgKGJ1dHRvbkVudHJhbmNlKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOaYr+Wtl+iKgui3s+WKqOWwj+a4uOaIj+eOr+Wig++8jOajgOafpeS+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG5cclxuICAgICAgICBpZiAoTWluaUdhbWVTZGsuaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvL+aKlumfs+eOr+Wig++8jOajgOa1i+S+p+i+ueagj+WtmOWcqFxyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmNoZWNrU2lkZUJhcigoc3VjY2VzczogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8g5qC55o2u5L6n6L655qCP5a2Y5Zyo5oCn5r+A5rS75oiW56aB55So5ri45oiP5YWl5Y+j5oyJ6ZKuXHJcbiAgICAgICAgICAgICAgICAvLyBidXR0b25FbnRyYW5jZS5hY3RpdmUgPSBzdWNjZXNzO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7PlsI/muLjmiI/njq/looPvvIznm7TmjqXmv4DmtLvmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgLy8g6Z2e5oqW6Z+z546v5aKD77yM5q2j5bi45pi+56S65oyJ6ZKuXHJcbiAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7nm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuqTkupLkuovku7ZcclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLmxpc3RlbkZyb21TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOS6pOS6kuaIkOWKn++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn5L6n6L655qCP5aWW5YqxJywgNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZGVsdGFUaW1lOiBudW1iZXIpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvLnlh7rlub/lkYrmqKrluYXjgIJcclxuICAgICAqIOatpOaWueazleeUqOS6juWKoOi9veW5tuaYvuekuuW5v+WRiuaoquW5heOAguWug+mmluWFiOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiu+8jOeEtuWQjuaYvuekuuW5v+WRiuOAglxyXG4gICAgICog5Yqg6L295bm/5ZGK5ZKM5pi+56S65bm/5ZGK5piv6YCa6L+HTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcueahOWunuS+i+aWueazleadpeWunueOsOeahOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5o+Q5L6b5LqG5Lik56eN5pi+56S65qiq5bmF5bm/5ZGK55qE5pa55byP77yaXHJcbiAgICAgKiAxLiDpu5jorqTmlrnlvI/vvJrosIPnlKhzaG93QmFubmVy5pa55rOV5pi+56S65bm/5ZGK77yM57O757uf5Lya6Ieq5Yqo6YCJ5oup5pi+56S65L2N572u44CCXHJcbiAgICAgKiAyLiDmjIflrprkvY3nva7mlrnlvI/vvJrlj6/ku6XpgJrov4fkvKDlhaXpop3lpJbnmoTlj4LmlbDmnaXmjIflrprlub/lkYrmmL7npLrlnKjlsY/luZXnmoTpobbpg6jmiJblupXpg6jvvIzmiJbogIXpgJrov4flnZDmoIfmjIflrprmmL7npLrkvY3nva7jgIJcclxuICAgICAqIFxyXG4gICAgICog56S65L6L5Luj56CB5Lit5rOo6YeK5o6J5LqG5Lik56eN5pi+56S65bm/5ZGK55qE5YW35L2T5pa55rOV77yM5Y+v5Lul5qC55o2u5a6e6ZmF6ZyA5rGC6YCJ5oup5L2/55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprlub/lkYrkvY3nmoTmqKrluYXlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRCYW5uZXIoJ2FkdW5pdC00ZTdlZjQ2N2UzZWFhYjUxJyk7XHJcblxyXG4gICAgICAgIC8vIOm7mOiupOaWueW8j+aYvuekuuaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIC8vIOaWueazlTHvvJrpu5jorqTosIPnlKhcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dCYW5uZXIoKTtcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya5oyH5a6a5bGP5bmV5bqV6YOo5q2j5Lit5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWxj+W5lemhtumDqOaIluW6lemDqOato+S4rVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCBNaW5pR2FtZVNkay5FQWRCYW5uZXJMb2NhdGlvbi5CT1RUT00pOyBcclxuXHJcbiAgICAgICAgLy8g56S65L6L77ya6YCa6L+H5Z2Q5qCH5oyH5a6a5L2N572u5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMu+8muaMh+WumuWdkOagh1xyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnLCB7IHRvcDogMTAsIGxlZnQ6IDEwIH0pOyBcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmakOiXj+W5v+WRiuaoquW5heeahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM55So5LqO6ZqQ6JeP5bm/5ZGK5qiq5bmF44CCXHJcbiAgICAgKiDlvZPpnIDopoHmmoLml7blgZzmraLlsZXnpLrlub/lkYrmiJbnlKjmiLfkuLvliqjor7fmsYLpmpDol4/lub/lkYrml7bvvIzlj6/ku6XosIPnlKjmraTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICog5a6D5Y2V57qv5Zyw6Kem5Y+R5bm/5ZGK5qiq5bmF55qE6ZqQ6JeP5pON5L2c77yM5YW35L2T5a6e546w5L6d6LWW5LqOQWR2ZXJ0TWFuYWdlcueahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQmFubmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrmj5LlsY/lub/lkYrnmoTlh73mlbDjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlcuWunuS+i+eahOaWueazle+8jOS7peaYvuekuuS4gOS4quaMh+WumueahOaPkuWxj+W5v+WRiuOAglxyXG4gICAgICog5a6D5L2/55So5LqG56Gs57yW56CB55qE5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM6L+Z5oSP5ZGz552A5a6D5LiT5Li654m55a6a55qE5bm/5ZGK5L2N6K6+6K6h44CCXHJcbiAgICAgKiDlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/og73pnIDopoHmoLnmja7lupTnlKjnmoTphY3nva7miJbnlKjmiLfnmoTnibnlrprmnaHku7bmnaXliqjmgIHpgInmi6nlub/lkYrljZXlhYPmoIfor4bnrKbjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93SW50ZXJzdGl0aWFsKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0ludGVyc3RpdGlhbCgnYWR1bml0LWVhZGQ2Nzg1MWQzMDUwYWQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiwg+eUqOW5v+WRiueuoeeQhuWZqOWKoOi9veW5tuWxleekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICog5q2k5pa55rOV6aaW5YWI6YCa6L+H5bm/5ZGK566h55CG5Zmo55qE5a6e5L6L5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD77yM54S25ZCO5bGV56S66L+Z5Liq6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lkozlsZXnpLrlub/lkYrmmK/lub/lkYrnrqHnkIbns7vnu5/kuK3nmoTluLjop4Hmk43kvZzvvIzov5nph4zpgJrov4fkuKTmraXliIbliKvlrozmiJDliqDovb3lkozlsZXnpLrnmoTov4fnqIvvvIxcclxuICAgICAqIOS7peehruS/neW5v+WRiuWcqOWxleekuuWJjeato+ehruS4lOWFheWIhuWcsOiiq+WKoOi9veOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dDdXN0b20oKSB7XHJcbiAgICAgICAgLy8g5Yqg6L295oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5sb2FkQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgICAgICAvLyDlsZXnpLrlt7LliqDovb3nmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UuaGlkZUN1c3RvbSgp5p2l6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDov5nmmK/lr7nmjqXlub/lkYrnrqHnkIbns7vnu5/nmoTkuIDpg6jliIbvvIznlKjkuo7mjqfliLblub/lkYrnmoTmmL7npLrkuI7pmpDol4/jgIJcclxuICAgICAqIOWcqOmcgOimgemakOiXj+iHquWumuS5ieW5v+WRiueahOWcuuaZr+S4i++8jOiwg+eUqOatpOWHveaVsOWNs+WPr+WunueOsOebuOW6lOWKn+iDveOAglxyXG4gICAgICovXHJcbiAgICBvbkhpZGVDdXN0b20oKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKEVXZWNoYXRBRC5DVU1TVE9NXzAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeaYvuekuuinhumikeW5v+WRiueahOWHveaVsOOAglxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93VmlkZW/mlrnms5XvvIzmmL7npLrkuIDkuKrop4bpopHlub/lkYrvvIzlubbmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTmg4XlhrXmiafooYznm7jlupTnmoTpgLvovpHjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOmmluWFiOS8oOWFpeS4gOS4quW5v+WRiuWNleWFg0lE77yM55So5LqO5qCH6K+G6KaB5pi+56S655qE6KeG6aKR5bm/5ZGK44CC54S25ZCO5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw77yM6K+l5Zue6LCD5Ye95pWw5Zyo55So5oi36KeC55yL5bm/5ZGK5ZCO6KKr6LCD55So77yM5peg6K6655So5oi35piv5a6M5oiQ5LqG6KeC55yL44CB5ouS57ud5LqG6KeC55yL6L+Y5piv6KeC55yL6L+H56iL5Lit5Y+R55Sf5LqG6ZSZ6K+v44CCXHJcbiAgICAgKiDlm57osIPlh73mlbDmjqXmlLbkuKTkuKrlj4LmlbDvvJrkuIDkuKrmmK/nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzlj6bkuIDkuKrmmK/nlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph4/jgILmoLnmja7op4LnnIvnu5PmnpznmoTkuI3lkIzvvIzmmL7npLrkuI3lkIznmoTmj5DnpLrkv6Hmga/jgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VmlkZW8oKSB7XHJcbiAgICAgICAgLy8g5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYpcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJROeahOagt+S+i1xyXG4gICAgICAgIC8v5oqW6Z+z5b2i5aaCOiAxcmUzbmZxa215ODFtNG04Z2VcclxuICAgICAgICAvL+W+ruS/oeW9ouWmgjogYWR1bml0LWE3NzE4ZjZlMTk1ZTQyZmVcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlbygnMXJlM25mcWtteTgxbTRtOGdlJywgKHJlczogTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgLy8g6L6T5Ye655So5oi36KeC55yL55qE5bm/5ZGK5pWw6YePXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfnlKjmiLfnnIvnmoTop4bpopHlub/lkYrkuKrmlbDmmK86JywgY291bnQpO1xyXG5cclxuICAgICAgICAgICAgLy8g5qC55o2u55So5oi36KeC55yL5bm/5ZGK55qE57uT5p6c77yM5omn6KGM5LiN5ZCM55qE6YC76L6RXHJcbiAgICAgICAgICAgIHN3aXRjaCAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkFDQ0VQVDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDnlKjmiLflrozmiJDkuoblub/lkYrop4LnnIvvvIzmmL7npLrlpZblirHmj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfnlKjmiLfnnIvlrozlub/lkYrvvIzlj6/ku6XlpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuUkVKRUNUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+aLkue7neS6huW5v+WRiuingueci++8jOaYvuekuuS4jeWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+aLkue7neaOieW5v+WRiu+8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5FUlJPUjpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlub/lkYrmkq3mlL7lj5HnlJ/plJnor6/vvIzmmL7npLrplJnor6/mj5DnpLpcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfmkq3mlL7lub/lkYrlj5HnlJ/plJnor6/vvIzkuI3lpZblirEnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW25LuW5oOF5Ya177yM5LiN5L2c5aSE55CGXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8leWvvOeUqOaIt+WIhuS6q+W6lOeUqOe7meaci+WPi+OAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeWIhuS6q+WKn+iDve+8jOWQkeeUqOaIt+eahOaci+WPi+WciOWPkemAgemCgOivt++8jOmCgOivt+S7luS7rOS4gOi1t+eOqea4uOaIj+OAglxyXG4gICAgICog6L+Z5piv5LiA5Liq6YeN6KaB55qE5o6o5bm/5omL5q6177yM5Y+v5Lul5aKe5Yqg5bqU55So55qE5pud5YWJ5bqm5ZKM55So5oi36YeP44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XkuK3osIPnlKjnmoRBUEnkvp3otZbkuo7nibnlrprnmoTlsI/muLjmiI/lubPlj7DvvIzlm6DmraTlnKjkuI3lkIznmoTlubPlj7DkuIrlj6/og73pnIDopoHkuI3lkIznmoTlrp7njrDjgIJcclxuICAgICAqL1xyXG4gICAgb25TaGFyZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hhcmVBcHBUb0ZyaWVuZHMoJ+adpeeOqea4uOaIj+WQpycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65LiA5LiqdG9hc3Tmj5DnpLrjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XmnaXmmL7npLrkuIDkuKrnroDnn63nmoTmj5DnpLrkv6Hmga/jgIJ0b2FzdOaYr+S4gOenjei9u+mHj+e6p+eahOaPkOekuuaWueW8j++8jOeUqOS6juWcqOeVjOmdouS4iuefreaaguWcsOWxleekuuS4gOS6m+S/oeaBr++8jOS4jeW9seWTjeeUqOaIt+aTjeS9nOOAglxyXG4gICAgICog6L+Z6YeM5L2/55So5LqG5Zu65a6a55qE5o+Q56S65paH5pysICfov5nmmK/kuIDkuKp0b2FzdCfvvIzlnKjlrp7pmYXlupTnlKjkuK3vvIzlj6/ku6XmoLnmja7pnIDopoHliqjmgIHorr7nva7mj5DnpLrmlofmnKzjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93VG9hc3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn6L+Z5piv5LiA5LiqdG9hc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeiuvuWkh+aMr+WKqOWKn+iDveOAglxyXG4gICAgICogXHJcbiAgICAgKiDor6Xmlrnms5XnlKjkuo7osIPnlKhNaW5pR2FtZVNka+aPkOS+m+eahEFQSe+8jOS7peWunueOsOiuvuWkh+eahOaMr+WKqOWKn+iDveOAguW9k+mcgOimgeaPkOmGkueUqOaIt+aIluaPkOS+m+inpuinieWPjemmiOaXtu+8jOWPr+S7peiwg+eUqOatpOaWueazleOAglxyXG4gICAgICog5L6L5aaC77yM5Zyo5ri45oiP5oiW5bqU55So5Lit77yM5b2T55So5oi35a6M5oiQ54m55a6a5pON5L2c5oiW5Y+R55Sf54m55a6a5LqL5Lu25pe277yM5Y+v5Lul6YCa6L+H5oyv5Yqo57uZ5LqI55So5oi35Y+N6aaI44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xml6Dlj4LmlbDvvIzkuZ/kuI3ov5Tlm57ku7vkvZXlgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25WaXJicmF0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkudmlicmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YeN5paw5ZCv5Yqo5ri45oiP5a6e5L6L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOatpOWHveaVsOiwg+eUqE1pbmlHYW1lU2Rr5Lit55qEQVBJ6YeN5paw5ZCv5Yqo5ri45oiP44CC6YeN5paw5ZCv5Yqo5pON5L2c5Y+v6IO95piv5Li65LqG5Yid5aeL5YyW5ri45oiP546v5aKD44CB6YeN572u5ri45oiP54q25oCB5oiW5aSE55CG5YW25LuW6ZyA6KaB6YeN5ZCv55qE5Zy65pmv44CCXHJcbiAgICAgKiDosIPnlKjmraTlh73mlbDlkI7vvIzmuLjmiI/lsIbkvJrph43mlrDlvIDlp4vvvIzlvZPliY3nmoTmuLjmiI/nirbmgIHlsIbkvJrooqvmuIXpmaTjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOWHveaVsOS4jeaOpeWPl+S7u+S9leWPguaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyDml6Dov5Tlm57lgLzjgIJcclxuICAgICAqL1xyXG4gICAgb25SZWJvb3QoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnJlYm9vdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN5Ye95pWw55So5LqO5Zyo6L+35L2g5ri45oiP5Lit5a6e546w6YCA5Ye65Yqf6IO944CCXHJcbiAgICAgKiDlroPosIPnlKjkuoZNaW5pR2FtZVNka+aPkOS+m+eahEFQSeaWueazleadpeinpuWPkemAgOWHuuaTjeS9nOOAglxyXG4gICAgICog6K+l5pa55rOV6YCa5bi45Zyo6ZyA6KaB57uT5p2f5b2T5YmN6L+35L2g5ri45oiP5oiW6L+U5Zue5Yiw5LiK5LiA57qn6I+c5Y2V5pe26KKr6LCD55So44CCXHJcbiAgICAgKi9cclxuICAgIG9uRXhpdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZXhpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65YiG5Lqr6I+c5Y2V44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5pa55rOV77yM6Kem5Y+R5pi+56S65YiG5Lqr6I+c5Y2V55qE5pON5L2c44CC5q2k5Ye95pWw5peo5Zyo5o+Q5L6b5LiA5Liq57uf5LiA55qE5YWl5Y+j77yMXHJcbiAgICAgKiDku6Xkvr/lnKjpnIDopoHml7bovbvmnb7osIPnlKjliIbkuqvlip/og73vvIzogIzml6DpnIDnm7TmjqXkuI7lhbfkvZPnmoRTREvmjqXlj6PkuqTkupLjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4jeaOpeWPl+S7u+S9leWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dTaGFyZU1lbnUoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dTaGFyZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWvvOiIquWIsOaMh+WumueahOWwj+a4uOaIj+OAglxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5Hlr7zoiKrliLDkuIDkuKrnibnlrprnmoTlsI/muLjmiI/jgILov5npnIDopoHmj5Dkvpvnm67moIflsI/muLjmiI/nmoRJRO+8jFxyXG4gICAgICog5Lul5L6/57O757uf6IO95aSf5q2j56Gu5Zyw5bCG55So5oi36YeN5a6a5ZCR5Yiw55uu5qCH5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOazqOaEj++8mui/memHjOeahCd4eHgn5piv5Y2g5L2N56ym77yM5a6e6ZmF5L2/55So5pe26ZyA6KaB5pu/5o2i5Li65YW35L2T55qE5bCP5ri45oiPSUTjgIJcclxuICAgICAqL1xyXG4gICAgb25OYXZpZ2F0ZSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkubmF2aWdhdGVUbygneHh4Jyk7IC8vIHh4eOabv+aNouS4uuS9oOeahOWwj+a4uOaIj2lkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmv4DmtLvlrZfoioLot7PliqjlhaXlj6Pop4blm77jgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG5a2X6IqC6Lez5Yqo5YWl5Y+j6KeG5Zu+6K6+572u5Li65rS76LeD54q25oCB44CC5b2T6ZyA6KaB5Zyo55So5oi355WM6Z2i5Lit5pi+56S65a2X6IqC6Lez5Yqo55qE5YWl5Y+j5pe277yMXHJcbiAgICAgKiDlj6/ku6XosIPnlKjmraTmlrnms5XmnaXmv4DmtLvnm7jlupTnmoTop4blm77lhYPntKDvvIzkvb/lhbblr7nnlKjmiLflj6/op4HjgIJcclxuICAgICAqL1xyXG4gICAgb25CeXRlZGFuY2VFbnRyYW5jZVZpZXcoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5lbnRyYW5jZVZpZXcuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOivt+axgueZu+W9leS7o+eggVxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDnlKjkuo7op6blj5HlsI/nqIvluo/nmoTnmbvlvZXmtYHnqIvvvIzojrflj5blvq7kv6HmiJblpLTmnaHnrYnnrKzkuInmlrnlubPlj7DnmoTnmbvlvZXku6PnoIHjgIJcclxuICAgICAqIOi/meS6m+S7o+eggeWPr+S7peeUqOS6juWQjue7reeahOeUqOaIt+i6q+S7vemqjOivgeWSjOaVsOaNruWQjOatpea1geeoi+OAglxyXG4gICAgICovXHJcbiAgICBvbkdldExvZ2luQ29kZSgpIHtcclxuICAgICAgICAvLyDosIPnlKhNaW5pR2FtZVNka+eahEFQSeeZu+W9leaWueazle+8jOS8oOWFpeS4gOS4quWbnuiwg+WHveaVsOWkhOeQhueZu+W9lee7k+aenFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5b6u5L+h5oiW5aS05p2h55qE55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWNoYXQgT3IgQnl0ZWRhbmNlIENvZGU6JywgY29kZSk7XHJcbiAgICAgICAgICAgIC8vIOaJk+WNsOWktOadoeeahOWMv+WQjeeZu+W9leS7o+eggVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQnl0ZWRhbmNlIEFub255bW91cyBDb2RlOicsIGFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICBpZihjb2RlKXtcclxuICAgICAgICAgICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJJZChjb2RlLCBkYXRhID0+IHRoaXMuc2V0VXNlcklkKGRhdGEpKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXRVc2VySWQoZGF0YSl7XHJcbiAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCA9IGRhdGEuZGF0YS51c2VySWQ7XHJcbiAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLmdldFVzZXJJbmZvKHRoaXMuc2V0VXNlckluZm8pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFVzZXJJbmZvKGRhdGEpe1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwi6I635Y+W5Yiw55qE55So5oi35L+h5oGvXCIsZGF0YS51c2VySW5mbyk7XHJcbiAgICAvLyAgICAgdmFyIHVzZURhdGEgPSB7XHJcbiAgICAvLyAgICAgICAgIFwiZ2FtZUlkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAvLyAgICAgICAgIFwibmlja05hbWVcIjpkYXRhLnVzZXJJbmZvLm5pY2tOYW1lLFxyXG4gICAgLy8gICAgICAgICBcInBpY1wiOiBkYXRhLnVzZXJJbmZvLmF2YXRhclVybFxyXG4gICAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOeUqOaIt+S/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLGRhdGEudXNlckluZm8ubmlja05hbWUsZGF0YS51c2VySW5mby5hdmF0YXJVcmwpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiUG9zdOaVsOaNrjpcIix1c2VEYXRhKTtcclxuICAgIC8vICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbyh1c2VEYXRhLChyZXMpPT57XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5oiQ5YqfOlwiLHJlcyk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rlubbmmL7npLrmuLjmiI/lnIjmjInpkq5cclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRHYW1lQ2x1YuWunuS+i+aWueazle+8jOWunueOsOa4uOaIj+S/seS5kOmDqOeahOWIm+W7uuWSjOaYvuekuuOAglxyXG4gICAgICog5a6D6aaW5YWI6YWN572u5L+x5LmQ6YOo55qE5Zu+5qCH57G75Z6L5ZKM5L2N572u5aSn5bCP77yM54S25ZCO5Yib5bu65L+x5LmQ6YOo77yM5pyA5ZCO5pi+56S65L+x5LmQ6YOo44CCXHJcbiAgICAgKiDov5nmoLflgZrmmK/kuLrkuoblnKjlsI/muLjmiI/lhoXliJvlu7rlubblsZXnpLrkuIDkuKrmuLjmiI/kv7HkuZDpg6jnmoTlm77moIfvvIzkvpvnjqnlrrbliqDlhaXmiJbkupLliqjjgIJcclxuICAgICAqL1xyXG4gICAgb25DcmVhdGVDbHViKCkge1xyXG4gICAgICAgIC8vIOmFjee9ruS/seS5kOmDqOWbvuagh+S4uue7v+iJsu+8jOiuvue9ruWbvuagh+eahOS9jee9ruS4uumhtumDqDIwMOWDj+e0oO+8jOW3puS+pzDlg4/ntKBcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5jcmVhdGUoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkVHYW1lQ2x1Ykljb24uR1JFRU4sXHJcbiAgICAgICAgICAgIHsgdG9wOiAyMDAsIGxlZnQ6IDAgfSxcclxuICAgICAgICAgICAgeyB3aWR0aDogNTAsIGhlaWdodDogNTAgfSk7XHJcbiAgICAgICAgLy8g5pi+56S65ri45oiP5L+x5LmQ6YOo5Zu+5qCHXHJcbiAgICAgICAgTWluaUdhbWVTZGsuR2FtZUNsdWIuaW5zdGFuY2Uuc2hvdygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGJ0bkNvbnRyb2wgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/prop/Freeze.js';
+ var __filename = 'preview-scripts/assets/Script/setUi.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -9186,8 +9480,8 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'ad8cbbzCohCR5uifssdRTf+', 'Freeze');
-// Script/prop/Freeze.ts
+cc._RF.push(module, '19d952d5kVBrLSzAIGeElFK', 'setUi');
+// Script/setUi.ts
"use strict";
// Learn TypeScript:
@@ -9216,65 +9510,105 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var NumberToImage_1 = require("../NumberToImage");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Freeze = /** @class */ (function (_super) {
- __extends(Freeze, _super);
- function Freeze() {
+var setUi = /** @class */ (function (_super) {
+ __extends(setUi, _super);
+ function setUi() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.time = 60;
- _this.freeze = null;
+ _this.time = 0;
+ _this.music = null;
+ _this.effect = null;
+ _this.vibrate = null;
+ // mapInfo: number[][] = [];
+ _this.musicState = true;
+ _this.effectState = true;
+ _this.vibrateState = true;
return _this;
// update (dt) {}
}
- // mapInfo: number[][] = [];
- Freeze.prototype.onLoad = function () {
+ setUi.prototype.onLoad = function () {
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ console.log("音乐状态", this.musicState);
+ console.log("音效状态", this.effectState);
+ console.log("震动状态", this.vibrateState);
+ this.syncToggleState();
};
- Freeze.prototype.start = function () {
+ setUi.prototype.start = function () {
};
- Freeze.prototype.init = function (time, type) {
- if (time)
- this.time = time;
- this.node.getChildByName("time").active = true;
- NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false);
- // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ setUi.prototype.init = function (time) {
};
- Freeze.prototype.reduce = function (number) {
- var _this = this;
- this.time -= number;
- if (this.time <= 0)
- this.time = 0;
- NumberToImage_1.default.numberToImageNodes(this.time, 40, 25, "ice_", this.node.getChildByName("time"), false);
- // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
- if (this.time <= 0) {
- this.node.getChildByName("bingkuai").active = true;
- var skeleton = this.node.getChildByName("bingkuai").getComponent(sp.Skeleton);
- skeleton.setAnimation(1, "bingkuai", false);
- this.node.getChildByName("icon").active = true;
- this.node.getChildByName("time").active = false;
- cc.tween(this.node.getChildByName("icon"))
- .to(0.5, { opacity: 0 })
- .start();
- // this.node.getChildByName("icon").getComponent(cc.Sprite).setMaterial(0,this.freeze);
- // this.node.children.forEach(element => {
- // element.destroy();
- // });
- setTimeout(function () {
- _this.node.parent.getComponent("Block").resetFreeze();
- _this.node.destroy();
- _this.node.removeFromParent();
- }, 600);
+ setUi.prototype.clickMusic = function () {
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.playMusicGame();
}
};
+ setUi.prototype.setMusicConfig = function () {
+ var audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
+ };
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ };
+ setUi.prototype.clickEffect = function () {
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.clickVibrate = function () {
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.syncToggleState = function () {
+ this.music.getComponent(cc.Toggle).isChecked = !this.musicState;
+ this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;
+ this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;
+ };
+ //关闭ui
+ setUi.prototype.closeUi = function () {
+ this.node.active = false;
+ };
__decorate([
- property(cc.Material)
- ], Freeze.prototype, "freeze", void 0);
- Freeze = __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "music", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "effect", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "vibrate", void 0);
+ setUi = __decorate([
ccclass
- ], Freeze);
- return Freeze;
+ ], setUi);
+ return setUi;
}(cc.Component));
-exports.default = Freeze;
+exports.default = setUi;
cc._RF.pop();
}
@@ -9287,13 +9621,13 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxGcmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHbEYsa0RBQTZDO0FBRXZDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQW9DLDBCQUFZO0lBQWhEO1FBQUEscUVBc0RDO1FBcERHLFVBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsWUFBTSxHQUFnQixJQUFJLENBQUM7O1FBZ0QzQixpQkFBaUI7SUFDckIsQ0FBQztJQS9DRyw0QkFBNEI7SUFFNUIsdUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxzQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELHFCQUFJLEdBQUosVUFBSyxJQUFJLEVBQUMsSUFBSTtRQUNWLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLHlGQUF5RjtJQUU3RixDQUFDO0lBRUQsdUJBQU0sR0FBTixVQUFPLE1BQU07UUFBYixpQkF5QkM7UUF4QkcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNoQyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcseUZBQXlGO1FBQ3pGLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25ELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNoRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN6QyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUN2QixLQUFLLEVBQUUsQ0FBQztZQUVULHVGQUF1RjtZQUN2RiwwQ0FBMEM7WUFDMUMseUJBQXlCO1lBQ3pCLE1BQU07WUFDTixVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixLQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBN0NEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7MENBQ0s7SUFMVixNQUFNO1FBRDFCLE9BQU87T0FDYSxNQUFNLENBc0QxQjtJQUFELGFBQUM7Q0F0REQsQUFzREMsQ0F0RG1DLEVBQUUsQ0FBQyxTQUFTLEdBc0QvQztrQkF0RG9CLE1BQU0iLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWV6ZSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTWF0ZXJpYWwpXHJcbiAgICBmcmVlemU6IGNjLk1hdGVyaWFsID0gbnVsbDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lLHR5cGUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSw0MCwyNSxcImljZV9cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZShudW1iZXIpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSBudW1iZXI7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApIHRoaXMudGltZSA9IDBcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsNDAsMjUsXCJpY2VfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmluZ2t1YWlcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2tlbGV0b24gPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiaW5na3VhaVwiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRBbmltYXRpb24oMSxcImJpbmdrdWFpXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikpXHJcbiAgICAgICAgICAgIC50bygwLjUsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc2V0TWF0ZXJpYWwoMCx0aGlzLmZyZWV6ZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgZWxlbWVudC5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB9LCA2MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxzZXRVaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUk1QztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXVHQztRQXJHRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUFvRjdCLGlCQUFpQjtJQUNyQixDQUFDO0lBbkZHLHNCQUFNLEdBQU47UUFFSSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxH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LEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxNQUFNO0lBQ04sdUJBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBL0ZEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0NBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNNO0lBWFAsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQXVHekI7SUFBRCxZQUFDO0NBdkdELEFBdUdDLENBdkdrQyxFQUFFLENBQUMsU0FBUyxHQXVHOUM7a0JBdkdvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxuLy8gTGVhcm4gQXR0cmlidXRlOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXG5cblxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcblxuXG5AY2NjbGFzc1xuZXhwb3J0IGRlZmF1bHQgY2xhc3Mgc2V0VWkgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICB0aW1lOiBudW1iZXIgPSAwO1xuXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXG4gICAgbXVzaWM6IGNjLk5vZGUgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXG4gICAgZWZmZWN0OiBjYy5Ob2RlID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxuICAgIHZpYnJhdGU6IGNjLk5vZGUgPSBudWxsO1xuXG5cbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XG5cbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBlZmZlY3RTdGF0ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgdmlicmF0ZVN0YXRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIG9uTG9hZCgpIHtcblxuICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuO1xuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XG4gICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuO1xuICAgICAgICBjb25zb2xlLmxvZyhcIumfs+S5kOeKtuaAgVwiLCB0aGlzLm11c2ljU3RhdGUpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIumfs+aViOeKtuaAgVwiLCB0aGlzLmVmZmVjdFN0YXRlKTtcbiAgICAgICAgY29uc29sZS5sb2coXCLpnIfliqjnirbmgIFcIiwgdGhpcy52aWJyYXRlU3RhdGUpO1xuICAgICAgICB0aGlzLnN5bmNUb2dnbGVTdGF0ZSgpO1xuICAgIH1cblxuICAgIHN0YXJ0KCkge1xuICAgIH1cblxuICAgIGluaXQodGltZSkge1xuXG4gICAgfVxuXG4gICAgY2xpY2tNdXNpYygpIHtcbiAgICAgICAgaWYgKHRoaXMubXVzaWNTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xuXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSB0aGlzLm11c2ljU3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlNdXNpY0dhbWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE11c2ljQ29uZmlnKCkge1xuICAgICAgICBsZXQgYXVkaW9JbmZvID0ge1xuICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbiwgICAgICAgICAgICAgLy/pn7PkuZBcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxuICAgICAgICAgICAgXCJ2aWJyYXRlT3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4sICAgICAgICAgICAvL+mch+WKqFxuICAgICAgICB9XG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLCBhdWRpb0luZm8pO1xuICAgIH1cblxuICAgIGNsaWNrRWZmZWN0KCkge1xuICAgICAgICBpZiAodGhpcy5lZmZlY3RTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4gPSB0aGlzLmVmZmVjdFN0YXRlO1xuICAgICAgICAgICAgdGhpcy5zZXRNdXNpY0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IHRydWU7XG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrVmlicmF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmlicmF0ZVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiA9IHRoaXMudmlicmF0ZVN0YXRlO1xuICAgICAgICAgICAgdGhpcy5zZXRNdXNpY0NvbmZpZygpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgc3luY1RvZ2dsZVN0YXRlKCkge1xuICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5Ub2dnbGUpLmlzQ2hlY2tlZCA9ICF0aGlzLm11c2ljU3RhdGU7XG4gICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5Ub2dnbGUpLmlzQ2hlY2tlZCA9ICF0aGlzLmVmZmVjdFN0YXRlO1xuICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlRvZ2dsZSkuaXNDaGVja2VkID0gIXRoaXMudmlicmF0ZVN0YXRlO1xuICAgIH1cblxuICAgIC8v5YWz6ZetdWlcbiAgICBjbG9zZVVpKCkge1xuICAgICAgICB0aGlzLm5vZGUuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIChkdCkge31cbn1cbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js';
+ var __filename = 'preview-scripts/assets/Script/position.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -9301,629 +9635,10 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '81314mE3BdESr87SAFK9cqv', 'lq_collide_system');
-// Script/lq_collide_system/lq_collide_system.js
+cc._RF.push(module, 'e0e34n/+FRF5JdkULm6vdT0', 'position');
+// Script/position.ts
-/*Obfuscated by JShaman.com*/'use strict';
-
-exports['__esModule'] = !![];
-exports['LQCollideSystem'] = void 0x0;
-var lq_const_1 = require('../lq_base/data/lq_const');
-var lq_math_util_1 = require('../lq_base/util/lq_math_util');
-var lq_collide_config_1 = require('./lq_collide_config');
-var lq_data_1 = require('../lq_base/data/lq_data');
-var Vec2 = cc['Vec2'];
-var game = cc['game'];
-var director = cc['director'];
-var Scheduler = cc['Scheduler'];
-var misc = cc['misc'];
-var LQQuadTree = function () {
- function _0x56565e(_0x3d3a0e, _0x3fb055, _0x20ce04, _0x406033) {
- this['collide_arr'] = [];
- this['node_arr'] = [];
- this['max_object'] = _0x3fb055 || 0xa;
- this['max_level'] = _0x20ce04 || 0x4;
- this['level'] = _0x406033 || 0x0;
- this['rect'] = _0x3d3a0e;
- this['collide_arr'] = [];
- this['node_arr'] = [];
- }
- _0x56565e['prototype']['split'] = function () {
- var _0x32a9cb = this['level'] + 0x1;
- var _0x178d81 = this['rect']['width'] * 0.5;
- var _0x1d1d97 = this['rect']['height'] * 0.5;
- var _0x5f5093 = this['rect']['x'];
- var _0x3269c2 = this['rect']['y'];
- this['node_arr'][0x0] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093 + _0x178d81, _0x3269c2, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
- this['node_arr'][0x1] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093, _0x3269c2, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
- this['node_arr'][0x2] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093, _0x3269c2 + _0x1d1d97, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
- this['node_arr'][0x3] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093 + _0x178d81, _0x3269c2 + _0x1d1d97, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
- };
- _0x56565e['prototype']['get_index'] = function (_0x59d6ec) {
- var _0x1dc547 = [];
- var _0x2ea7cd = this['rect']['x'] + this['rect']['half_width'];
- var _0x5e97b7 = this['rect']['y'] + this['rect']['half_height'];
- var _0x241f59 = _0x59d6ec['world_rect']['y'] + _0x59d6ec['world_rect']['half_height'] > _0x5e97b7;
- var _0x437790 = _0x59d6ec['world_rect']['x'] - _0x59d6ec['world_rect']['half_width'] < _0x2ea7cd;
- var _0x5e6619 = _0x59d6ec['world_rect']['x'] + _0x59d6ec['world_rect']['half_width'] > _0x2ea7cd;
- var _0x3b42aa = _0x59d6ec['world_rect']['y'] - _0x59d6ec['world_rect']['half_height'] < _0x5e97b7;
- if (_0x5e6619 && _0x241f59) {
- _0x1dc547['push'](0x0);
- }
- if (_0x437790 && _0x241f59) {
- _0x1dc547['push'](0x1);
- }
- if (_0x437790 && _0x3b42aa) {
- _0x1dc547['push'](0x2);
- }
- if (_0x3b42aa && _0x5e6619) {
- _0x1dc547['push'](0x3);
- }
- return _0x1dc547;
- };
- ;
- _0x56565e['prototype']['insert'] = function (_0x32f23a) {
- var _0x3850fe;
- if (this['node_arr']['length']) {
- _0x3850fe = this['get_index'](_0x32f23a);
- for (var _0x4856cf = 0x0; _0x4856cf < _0x3850fe['length']; _0x4856cf++) {
- this['node_arr'][_0x3850fe[_0x4856cf]]['insert'](_0x32f23a);
- }
- return;
- }
- this['collide_arr']['push'](_0x32f23a);
- if (this['collide_arr']['length'] > this['max_object'] && this['level'] < this['max_level']) {
- if (!this['node_arr']['length']) {
- this['split']();
- }
- for (var _0x4856cf = 0x0; _0x4856cf < this['collide_arr']['length']; _0x4856cf++) {
- var _0x2d136c = this['collide_arr'][_0x4856cf];
- _0x3850fe = this['get_index'](_0x2d136c);
- for (var _0x1e9f35 = 0x0; _0x1e9f35 < _0x3850fe['length']; _0x1e9f35++) {
- this['node_arr'][_0x3850fe[_0x1e9f35]]['insert'](_0x2d136c);
- }
- }
- this['collide_arr'] = [];
- }
- };
- ;
- _0x56565e['prototype']['retrieve'] = function (_0x77a71) {
- var _0xaa8c7a;
- var _0x42264c = this['get_index'](_0x77a71);
- if (this['collide_arr']['length']) {
- (_0xaa8c7a = _0x56565e['temp_collide_arr'])['push']['apply'](_0xaa8c7a, this['collide_arr']);
- }
- if (this['node_arr']['length']) {
- for (var _0x4c3497 = 0x0; _0x4c3497 < _0x42264c['length']; _0x4c3497++) {
- this['node_arr'][_0x42264c[_0x4c3497]]['retrieve'](_0x77a71);
- }
- }
- };
- ;
- _0x56565e['prototype']['get_all_area'] = function () {
- if (this['collide_arr']['length']) {
- _0x56565e['all_collide_arr']['push'](this['collide_arr']);
- }
- if (this['node_arr']['length']) {
- for (var _0x3d5c9f = 0x0; _0x3d5c9f < 0x4; _0x3d5c9f++) {
- this['node_arr'][_0x3d5c9f]['get_all_area']();
- }
- }
- };
- _0x56565e['prototype']['clear'] = function () {
- this['collide_arr'] = [];
- for (var _0x170eca = 0x0; _0x170eca < this['node_arr']['length']; _0x170eca++) {
- if (this['node_arr']['length']) {
- this['node_arr'][_0x170eca]['clear']();
- }
- }
- this['node_arr'] = [];
- };
- ;
- _0x56565e['temp_collide_arr'] = [];
- _0x56565e['all_collide_arr'] = [];
- return _0x56565e;
-}();
-var LQCollideSystem = function () {
- function _0x9bf60e() {}
- _0x9bf60e['cache_polygon'] = function (_0xbc3d22) {
- if (_0xbc3d22['_collide_shape'] === lq_const_1['LQCollideShape']['Rect']) {
- _0xbc3d22['cache_polygon_points'] = [];
- var _0x53235e = _0xbc3d22['world_rect']['top_left']();
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- _0x53235e = _0xbc3d22['world_rect']['bottom_left']();
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- _0x53235e = _0xbc3d22['world_rect']['bottom_right']();
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- _0x53235e = _0xbc3d22['world_rect']['top_right']();
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- } else if (_0xbc3d22['_collide_shape'] === lq_const_1['LQCollideShape']['Polygon']) {
- _0xbc3d22['cache_polygon_points'] = [];
- if (_0xbc3d22['node']['angle'] == 0x0) {
- for (var _0x2f1e6c = 0x0; _0x2f1e6c < _0xbc3d22['_polygon_points']['length']; _0x2f1e6c++) {
- var _0x53235e = _0xbc3d22['world_rect']['add'](_0xbc3d22['_polygon_points'][_0x2f1e6c]);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- }
- } else {
- var _0x1be630 = misc['degreesToRadians'](_0xbc3d22['node']['angle']);
- var _0x1a0598 = Math['sin'](_0x1be630);
- var _0x25967e = Math['cos'](_0x1be630);
- var _0xfbf241 = function _0xfbf241(_0x5ed3a5) {
- return new Vec2(_0x5ed3a5['x'] * _0x25967e - _0x5ed3a5['y'] * _0x1a0598 + _0xbc3d22['world_rect']['x'], _0x5ed3a5['x'] * _0x1a0598 + _0x5ed3a5['y'] * _0x25967e + _0xbc3d22['world_rect']['y']);
- };
- for (var _0x2f1e6c = 0x0; _0x2f1e6c < _0xbc3d22['_polygon_points']['length']; _0x2f1e6c++) {
- var _0x53235e = _0xfbf241(_0xbc3d22['_polygon_points'][_0x2f1e6c]);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
- _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
- }
- }
- }
- };
- _0x9bf60e['_updateWorldMatrix'] = function (_0x296a1a) {
- if (_0x296a1a['_parent']) {
- _0x9bf60e['_updateWorldMatrix'](_0x296a1a['_parent']);
- }
- if (_0x296a1a['_worldMatDirty']) {
- this['tmp_bool'] = !![];
- _0x296a1a['_calculWorldMatrix']();
- var _0x3d1ca2 = _0x296a1a['_children'];
- for (var _0x2b4ec9 = 0x0, _0x600367 = _0x3d1ca2['length']; _0x2b4ec9 < _0x600367; _0x2b4ec9++) {
- _0x3d1ca2[_0x2b4ec9]['_worldMatDirty'] = !![];
- }
- }
- };
- _0x9bf60e['transformMat4'] = function (_0x5d68b5, _0x2c4dd0, _0x190f88) {
- var _0x523dc8 = _0x190f88['m'];
- _0x5d68b5['x'] = _0x523dc8[0x0] * _0x2c4dd0['x'] + _0x523dc8[0x4] * _0x2c4dd0['y'] + _0x523dc8[0xc];
- _0x5d68b5['y'] = _0x523dc8[0x1] * _0x2c4dd0['x'] + _0x523dc8[0x5] * _0x2c4dd0['y'] + _0x523dc8[0xd];
- return _0x5d68b5;
- };
- _0x9bf60e['update_world_rect'] = function (_0x264b72) {
- if (!_0x264b72['world_rect']) {
- return;
- }
- this['tmp_bool'] = ![];
- this['_updateWorldMatrix'](_0x264b72['node']);
- if (this['tmp_bool']) {
- _0x264b72['cache_polygon_points'] = undefined;
- }
- _0x9bf60e['transformMat4'](_0x264b72['world_rect'], _0x264b72['_offset'], _0x264b72['node']['_worldMatrix']);
- };
- _0x9bf60e['update_collide_logic'] = function (_0x1b9a2c) {
- if (_0x1b9a2c['is_open_func']) {
- for (var _0x1d8d8c in _0x1b9a2c['collide_map']) {
- var _0x1406b5 = _0x1b9a2c['collide_map'][_0x1d8d8c];
- if (_0x1406b5['status'] === 0x1) {
- _0x1406b5['status'] = 0x2;
- } else {
- delete _0x1b9a2c['collide_map'][_0x1d8d8c];
- _0x1b9a2c['on_exit'](_0x1406b5['collide']);
- }
- }
- }
- _0x1b9a2c['update_lq_collide']();
- };
- _0x9bf60e['collide_other'] = function (_0x64f064, _0x3becdd) {
- if (_0x64f064['is_open_func']) {
- var _0x45b029 = _0x64f064['collide_map'][_0x3becdd['collide_id']];
- if (_0x45b029) {
- _0x45b029['status'] = 0x1;
- } else {
- _0x64f064['collide_map'][_0x3becdd['collide_id']] = {
- 'collide': _0x3becdd,
- 'status': 0x1
- };
- _0x64f064['on_enter'](_0x3becdd);
- }
- }
- if (_0x3becdd['is_open_func']) {
- var _0x544a5c = _0x3becdd['collide_map'][_0x64f064['collide_id']];
- if (_0x544a5c) {
- _0x544a5c['status'] = 0x1;
- } else {
- _0x3becdd['collide_map'][_0x64f064['collide_id']] = {
- 'collide': _0x64f064,
- 'status': 0x1
- };
- _0x3becdd['on_enter'](_0x64f064);
- }
- }
- _0x64f064['on_collide'](_0x3becdd);
- _0x3becdd['on_collide'](_0x64f064);
- };
- _0x9bf60e['add_collide'] = function (_0x2e897d) {
- this['update_world_rect'](_0x2e897d);
- this['collide_arr']['push'](_0x2e897d);
- };
- _0x9bf60e['remove_collide'] = function (_0x416298) {
- for (var _0x12059a = this['collide_arr']['length'] - 0x1; _0x12059a >= 0x0; _0x12059a--) {
- if (this['collide_arr'][_0x12059a]['collide_id'] === _0x416298['collide_id']) {
- this['collide_arr']['splice'](_0x12059a, 0x1);
- break;
- }
- }
- };
- _0x9bf60e['line_point'] = function (_0x4a7370, _0x24c7a1, _0x4e18ee, _0x122356, _0x2bd713, _0x2d3b6e) {
- return Math['abs'](this['distanceSquared'](_0x4a7370, _0x24c7a1, _0x4e18ee, _0x122356) - (this['distanceSquared'](_0x4a7370, _0x24c7a1, _0x2bd713, _0x2d3b6e) + this['distanceSquared'](_0x4e18ee, _0x122356, _0x2bd713, _0x2d3b6e))) <= 0x1;
- };
- _0x9bf60e['distanceSquared'] = function (_0x5cca3b, _0x11b678, _0x1f0b63, _0x52cec7) {
- return Math['sqrt'](Math['pow'](_0x5cca3b - _0x1f0b63, 0x2) + Math['pow'](_0x11b678 - _0x52cec7, 0x2));
- };
- _0x9bf60e['polygon_point'] = function (_0x4236c0, _0x12e825, _0x5cd4dd) {
- var _0xbd6fd0 = _0x4236c0['length'];
- var _0x1f4fbc = ![];
- var _0x267b58, _0x4a1bae;
- for (_0x267b58 = 0x0, _0x4a1bae = _0xbd6fd0 - 0x2; _0x267b58 < _0xbd6fd0; _0x267b58 += 0x2) {
- if (_0x4236c0[_0x267b58 + 0x1] > _0x5cd4dd !== _0x4236c0[_0x4a1bae + 0x1] > _0x5cd4dd && _0x12e825 < (_0x4236c0[_0x4a1bae] - _0x4236c0[_0x267b58]) * (_0x5cd4dd - _0x4236c0[_0x267b58 + 0x1]) / (_0x4236c0[_0x4a1bae + 0x1] - _0x4236c0[_0x267b58 + 0x1]) + _0x4236c0[_0x267b58]) {
- _0x1f4fbc = !_0x1f4fbc;
- }
- _0x4a1bae = _0x267b58;
- }
- if (_0x1f4fbc) {
- return !![];
- }
- for (_0x267b58 = 0x0; _0x267b58 < _0xbd6fd0; _0x267b58 += 0x2) {
- var _0x574e3e = _0x4236c0[_0x267b58];
- var _0x4b92d8 = _0x4236c0[_0x267b58 + 0x1];
- var _0x5d39d4 = void 0x0,
- _0x124e9c = void 0x0;
- if (_0x267b58 === _0xbd6fd0 - 0x2) {
- _0x5d39d4 = _0x4236c0[0x0];
- _0x124e9c = _0x4236c0[0x1];
- } else {
- _0x5d39d4 = _0x4236c0[_0x267b58 + 0x2];
- _0x124e9c = _0x4236c0[_0x267b58 + 0x3];
- }
- if (this['line_point'](_0x574e3e, _0x4b92d8, _0x5d39d4, _0x124e9c, _0x12e825, _0x5cd4dd)) {
- return !![];
- }
- }
- return ![];
- };
- _0x9bf60e['polygon_circle'] = function (_0x387188, _0x611012, _0x3707e8, _0x2432e1) {
- if (this['polygon_point'](_0x387188, _0x611012, _0x3707e8)) {
- return !![];
- }
- var _0x197657 = _0x387188['length'];
- for (var _0x3df6fc = 0x0; _0x3df6fc < _0x197657 - 0x2; _0x3df6fc += 0x2) {
- if (this['line_circle'](_0x387188[_0x3df6fc], _0x387188[_0x3df6fc + 0x1], _0x387188[_0x3df6fc + 0x2], _0x387188[_0x3df6fc + 0x3], _0x611012, _0x3707e8, _0x2432e1)) {
- return !![];
- }
- }
- return this['line_circle'](_0x387188[0x0], _0x387188[0x1], _0x387188[_0x197657 - 0x2], _0x387188[_0x197657 - 0x1], _0x611012, _0x3707e8, _0x2432e1);
- };
- _0x9bf60e['line_circle'] = function (_0x12bba1, _0x321290, _0x136703, _0x537e0e, _0x3ad147, _0x559a7d, _0x48a834) {
- var _0x3bfd94 = [_0x3ad147 - _0x12bba1, _0x559a7d - _0x321290];
- var _0x6da620 = [_0x136703 - _0x12bba1, _0x537e0e - _0x321290];
- var _0x1feda4 = this['dot'](_0x6da620, _0x6da620);
- var _0x53913d = this['dot'](_0x3bfd94, _0x6da620);
- var _0x3674f5 = _0x53913d / _0x1feda4;
- _0x3674f5 = _0x3674f5 < 0x0 ? 0x0 : _0x3674f5;
- _0x3674f5 = _0x3674f5 > 0x1 ? 0x1 : _0x3674f5;
- var _0x150033 = [_0x6da620[0x0] * _0x3674f5 + _0x12bba1 - _0x3ad147, _0x6da620[0x1] * _0x3674f5 + _0x321290 - _0x559a7d];
- var _0x442af1 = this['dot'](_0x150033, _0x150033);
- return _0x442af1 <= _0x48a834 * _0x48a834;
- };
- _0x9bf60e['dot'] = function (_0x1e79a5, _0x179c92) {
- return _0x1e79a5[0x0] * _0x179c92[0x0] + _0x1e79a5[0x1] * _0x179c92[0x1];
- };
- _0x9bf60e['update_logic'] = function (_0xb17278) {
- if (!this['is_enable']) {
- return;
- }
- if (lq_collide_config_1['LQCollideConfig']['switch_quad_tree']) {
- this['quad_tree']['clear']();
- for (var _0x1337bd = this['collide_arr']['length'] - 0x1; _0x1337bd >= 0x0; _0x1337bd--) {
- var _0x20181e = this['collide_arr'][_0x1337bd];
- if (!_0x20181e) {
- return;
- }
- if (!_0x20181e['isValid']) {
- this['collide_arr']['splice'](_0x1337bd, 0x1);
- continue;
- }
- this['update_collide_logic'](_0x20181e);
- if (_0x20181e['is_enable']) {
- this['update_world_rect'](_0x20181e);
- this['quad_tree']['insert'](_0x20181e);
- }
- }
- LQQuadTree['all_collide_arr'] = [];
- this['quad_tree']['get_all_area']();
- for (var _0x4af6ff = 0x0; _0x4af6ff < LQQuadTree['all_collide_arr']['length']; _0x4af6ff++) {
- var _0x5cac71 = LQQuadTree['all_collide_arr'][_0x4af6ff];
- for (var _0x1337bd = 0x0; _0x1337bd < _0x5cac71['length']; _0x1337bd++) {
- var _0x549a66 = _0x5cac71[_0x1337bd];
- for (var _0x5793ff = _0x1337bd + 0x1; _0x5793ff < _0x5cac71['length']; _0x5793ff++) {
- var _0x4740fe = _0x5cac71[_0x5793ff];
- if (_0x549a66['collide_category'] & _0x4740fe['collide_mask'] && _0x549a66 !== _0x4740fe) {
- if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x549a66['world_rect'], _0x4740fe['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x4740fe['world_rect'], _0x4740fe['radius'], _0x549a66['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'], _0x4740fe['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] == 0x3 && _0x4740fe['_collide_shape'] == 0x2) {
- if (!_0x549a66['cache_polygon_points']) {
- this['cache_polygon'](_0x549a66);
- }
- if (this['polygon_circle'](_0x549a66['cache_polygon_points'], _0x4740fe['world_rect']['x'], _0x4740fe['world_rect']['y'], _0x4740fe['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] == 0x2 && _0x4740fe['_collide_shape'] == 0x3) {
- if (!_0x4740fe['cache_polygon_points']) {
- this['cache_polygon'](_0x4740fe);
- }
- if (this['polygon_circle'](_0x4740fe['cache_polygon_points'], _0x549a66['world_rect']['x'], _0x549a66['world_rect']['y'], _0x549a66['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else {
- if (!_0x549a66['cache_polygon_points']) {
- this['cache_polygon'](_0x549a66);
- }
- if (!_0x4740fe['cache_polygon_points']) {
- this['cache_polygon'](_0x4740fe);
- }
- if (this['polygon_polygon'](_0x549a66['cache_polygon_points'], _0x4740fe['cache_polygon_points'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- }
- }
- }
- }
- }
- } else {
- var _0x5cac71 = [];
- for (var _0x1337bd = this['collide_arr']['length'] - 0x1; _0x1337bd >= 0x0; _0x1337bd--) {
- var _0x20181e = this['collide_arr'][_0x1337bd];
- if (!_0x20181e) {
- return;
- }
- if (!_0x20181e['isValid']) {
- this['collide_arr']['splice'](_0x1337bd, 0x1);
- continue;
- }
- this['update_collide_logic'](_0x20181e);
- if (_0x20181e['is_enable']) {
- this['update_world_rect'](_0x20181e);
- _0x5cac71['push'](_0x20181e);
- }
- }
- var _0x4f3337 = _0x5cac71['length'];
- for (var _0x1337bd = 0x0; _0x1337bd < _0x4f3337; _0x1337bd++) {
- var _0x549a66 = _0x5cac71[_0x1337bd];
- for (var _0x5793ff = _0x1337bd + 0x1; _0x5793ff < _0x4f3337; _0x5793ff++) {
- var _0x4740fe = _0x5cac71[_0x5793ff];
- if (_0x549a66['collide_category'] & _0x4740fe['collide_mask']) {
- if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x549a66['world_rect'], _0x4740fe['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x4740fe['world_rect'], _0x4740fe['radius'], _0x549a66['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'], _0x4740fe['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] == 0x3 && _0x4740fe['_collide_shape'] == 0x2) {
- if (!_0x549a66['cache_polygon_points']) {
- this['cache_polygon'](_0x549a66);
- }
- if (this['polygon_circle'](_0x549a66['cache_polygon_points'], _0x4740fe['world_rect']['x'], _0x4740fe['world_rect']['y'], _0x4740fe['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else if (_0x549a66['_collide_shape'] == 0x2 && _0x4740fe['_collide_shape'] == 0x3) {
- if (!_0x4740fe['cache_polygon_points']) {
- this['cache_polygon'](_0x4740fe);
- }
- if (this['polygon_circle'](_0x4740fe['cache_polygon_points'], _0x549a66['world_rect']['x'], _0x549a66['world_rect']['y'], _0x549a66['radius'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- } else {
- if (!_0x549a66['cache_polygon_points']) {
- this['cache_polygon'](_0x549a66);
- }
- if (!_0x4740fe['cache_polygon_points']) {
- this['cache_polygon'](_0x4740fe);
- }
- if (this['polygon_polygon'](_0x549a66['cache_polygon_points'], _0x4740fe['cache_polygon_points'])) {
- this['collide_other'](_0x549a66, _0x4740fe);
- }
- }
- }
- }
- }
- }
- };
- _0x9bf60e['polygon_polygon'] = function (_0x1a152c, _0x484cd2) {
- var _0x173f61 = _0x1a152c;
- var _0x3fccda = _0x484cd2;
- var _0x22eef9 = [_0x173f61, _0x3fccda];
- var _0x3662ed, _0x10bbdb, _0x29133c, _0x5ce192, _0x8011c7, _0xdfe8bc;
- for (var _0x3aee8c = 0x0; _0x3aee8c < _0x22eef9['length']; _0x3aee8c++) {
- var _0x1ce8fd = _0x22eef9[_0x3aee8c];
- for (var _0x2ab2ff = 0x0; _0x2ab2ff < _0x1ce8fd['length']; _0x2ab2ff += 0x2) {
- var _0x373bd2 = (_0x2ab2ff + 0x2) % _0x1ce8fd['length'];
- var _0x4b64a4 = {
- 'x': _0x1ce8fd[_0x373bd2 + 0x1] - _0x1ce8fd[_0x2ab2ff + 0x1],
- 'y': _0x1ce8fd[_0x2ab2ff] - _0x1ce8fd[_0x373bd2]
- };
- _0x3662ed = null;
- _0x10bbdb = null;
- for (_0xdfe8bc = 0x0; _0xdfe8bc < _0x173f61['length']; _0xdfe8bc += 0x2) {
- _0x29133c = _0x4b64a4['x'] * _0x173f61[_0xdfe8bc] + _0x4b64a4['y'] * _0x173f61[_0xdfe8bc + 0x1];
- if (_0x3662ed === null || _0x29133c < _0x3662ed) {
- _0x3662ed = _0x29133c;
- }
- if (_0x10bbdb === null || _0x29133c > _0x10bbdb) {
- _0x10bbdb = _0x29133c;
- }
- }
- _0x5ce192 = null;
- _0x8011c7 = null;
- for (_0xdfe8bc = 0x0; _0xdfe8bc < _0x3fccda['length']; _0xdfe8bc += 0x2) {
- _0x29133c = _0x4b64a4['x'] * _0x3fccda[_0xdfe8bc] + _0x4b64a4['y'] * _0x3fccda[_0xdfe8bc + 0x1];
- if (_0x5ce192 === null || _0x29133c < _0x5ce192) {
- _0x5ce192 = _0x29133c;
- }
- if (_0x8011c7 === null || _0x29133c > _0x8011c7) {
- _0x8011c7 = _0x29133c;
- }
- }
- if (_0x10bbdb < _0x5ce192 || _0x8011c7 < _0x3662ed) {
- return ![];
- }
- }
- }
- return !![];
- };
- _0x9bf60e['get_group_by_index'] = function (_0x40e2f1) {
- for (var _0xfca8d1 in lq_collide_config_1['LQCollideConfig']['collide_group_map']) {
- var _0x5ac815 = lq_collide_config_1['LQCollideConfig']['collide_group_map'][_0xfca8d1];
- if (_0x5ac815['index'] === _0x40e2f1) {
- return _0x5ac815;
- }
- }
- return undefined;
- };
- _0x9bf60e['get_info_by_id'] = function (_0xffbcdc) {
- var _0x308325;
- for (var _0x149f5e in lq_collide_config_1['LQCollideConfig']['collide_group_map']) {
- var _0x12150f = lq_collide_config_1['LQCollideConfig']['collide_group_map'][_0x149f5e];
- if (_0x12150f['id'] === _0xffbcdc) {
- return _0x12150f;
- }
- if (!_0x308325) {
- _0x308325 = _0x12150f;
- }
- }
- return _0x308325;
- };
- _0x9bf60e['find_nearest_collide'] = function (_0x308082) {
- var _0x3131c5 = [];
- for (var _0xc3c380 = _0x9bf60e['collide_arr']['length'] - 0x1; _0xc3c380 >= 0x0; _0xc3c380--) {
- var _0x585f4f = _0x9bf60e['collide_arr'][_0xc3c380];
- if (_0x308082 === _0x585f4f || !_0x585f4f['is_enable']) {
- continue;
- }
- if (_0x308082['follow_target_category']) {
- if (_0x585f4f['collide_category'] === _0x308082['follow_target_category']) {
- _0x3131c5['push'](_0x585f4f);
- }
- } else if ((_0x585f4f['collide_category'] & _0x308082['collide_mask']) !== 0x0) {
- _0x3131c5['push'](_0x585f4f);
- }
- }
- _0x3131c5['sort'](function (_0x3ddb83, _0x3ccf74) {
- return _0x308082['world_rect']['sub'](_0x3ddb83['world_rect'])['magSqr']() - _0x308082['world_rect']['sub'](_0x3ccf74['world_rect'])['magSqr']();
- });
- return _0x3131c5[0x0];
- };
- _0x9bf60e['clear'] = function (_0x4cf6a6) {
- if (_0x4cf6a6 === void 0x0) {
- _0x4cf6a6 = ![];
- }
- if (_0x4cf6a6) {
- for (var _0x537b2d = this['collide_arr']['length'] - 0x1; _0x537b2d >= 0x0; _0x537b2d--) {
- var _0x197d2f = this['collide_arr'][_0x537b2d];
- if (_0x197d2f['isValid']) {
- _0x197d2f['node']['destroy']();
- }
- }
- }
- this['collide_arr'] = [];
- };
- _0x9bf60e['check_collide'] = function (_0x183de2) {
- var _0x25cea1 = [];
- var _0xa7b05;
- if (lq_collide_config_1['LQCollideConfig']['switch_quad_tree']) {
- LQQuadTree['temp_collide_arr'] = [];
- this['quad_tree']['retrieve'](_0x183de2);
- _0xa7b05 = LQQuadTree['temp_collide_arr'];
- } else {
- _0xa7b05 = this['collide_arr'];
- }
- for (var _0x381af2 = 0x0; _0x381af2 < _0xa7b05['length']; _0x381af2++) {
- var _0x5db7b3 = _0xa7b05[_0x381af2];
- if (_0x183de2 === _0x5db7b3) {
- continue;
- }
- if (_0x183de2['collide_category'] & _0x5db7b3['collide_mask']) {
- if (_0x183de2['_collide_shape'] === 0x1 && _0x5db7b3['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x183de2['world_rect'], _0x5db7b3['world_rect'])) {
- _0x25cea1['push'](_0x5db7b3);
- }
- } else if (_0x183de2['_collide_shape'] === 0x1 && _0x5db7b3['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x5db7b3['world_rect'], _0x5db7b3['radius'], _0x183de2['world_rect'])) {
- _0x25cea1['push'](_0x5db7b3);
- }
- } else if (_0x183de2['_collide_shape'] === 0x2 && _0x5db7b3['_collide_shape'] === 0x1) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x183de2['world_rect'], _0x183de2['radius'], _0x5db7b3['world_rect'])) {
- _0x25cea1['push'](_0x5db7b3);
- }
- } else if (_0x183de2['_collide_shape'] === 0x2 && _0x5db7b3['_collide_shape'] === 0x2) {
- if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x183de2['world_rect'], _0x183de2['radius'], _0x5db7b3['world_rect'], _0x5db7b3['radius'])) {
- _0x25cea1['push'](_0x5db7b3);
- }
- } else if (this['polygon_polygon'](_0x183de2, _0x5db7b3)) {
- _0x25cea1['push'](_0x5db7b3);
- }
- }
- }
- return _0x25cea1;
- };
- _0x9bf60e['is_enable'] = ![];
- _0x9bf60e['collide_arr'] = [];
- _0x9bf60e['quad_tree'] = new LQQuadTree(new lq_data_1['LQRect'](lq_collide_config_1['LQCollideConfig']['active_area_x'], lq_collide_config_1['LQCollideConfig']['active_area_y'], lq_collide_config_1['LQCollideConfig']['active_area_width'], lq_collide_config_1['LQCollideConfig']['active_area_height']), lq_collide_config_1['LQCollideConfig']['max_node_len'], lq_collide_config_1['LQCollideConfig']['max_node_level']);
- return _0x9bf60e;
-}();
-exports['LQCollideSystem'] = LQCollideSystem;
-var AutoRun = function () {
- function _0xf5b087() {
- this['flag'] = !![];
- }
- _0xf5b087['prototype']['update'] = function (_0x365e55) {
- if (lq_collide_config_1['LQCollideConfig']['per_frame'] === 0x3c) {
- LQCollideSystem['update_logic'](_0x365e55);
- } else {
- if (this['flag']) {
- this['flag'] = ![];
- LQCollideSystem['update_logic'](_0x365e55);
- } else {
- this['flag'] = !![];
- }
- }
- };
- return _0xf5b087;
-}();
-game['on'](game['EVENT_GAME_INITED'], function () {
- if (lq_collide_config_1['LQCollideConfig']['switch_auto_run'] && !CC_EDITOR) {
- var _0x287f86 = new AutoRun();
- director['getScheduler']()['enableForTarget'](_0x287f86);
- director['getScheduler']()['scheduleUpdate'](_0x287f86, Scheduler['PRIORITY_SYSTEM'], ![]);
- }
-});
+var _PROP_INFO = [{ "pos1": { "x": -60, "y": 60, "z": 0 }, "pos2": { "x": -16.442, "y": 30, "z": 0 }, "pos3": { "x": -34.362, "y": 13.246, "z": 0 }, "pos4": { "x": -17, "y": 12, "z": 0 } }, { "pos1": { "x": -126, "y": 63, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -94.792, "y": 21.675, "z": 0 }, "pos4": { "x": -20, "y": 13, "z": 0 } }, { "pos1": { "x": -60, "y": 125, "z": 0 }, "pos2": { "x": -12.792, "y": 92.675, "z": 0 }, "pos3": { "x": -27.792, "y": 23.675, "z": 0 }, "pos4": { "x": -14, "y": 24, "z": 0 } }, { "pos1": { "x": -185, "y": 63, "z": 0 }, "pos2": { "x": -34.792, "y": 37.675, "z": 0 }, "pos3": { "x": -154.792, "y": 23.675, "z": 0 }, "pos4": { "x": -22, "y": 16, "z": 0 } }, { "pos1": { "x": -57, "y": 178, "z": 0 }, "pos2": { "x": -17.792, "y": 166.675, "z": 0 }, "pos3": { "x": -31.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 37, "z": 0 } }, { "pos1": { "x": -123, "y": 127, "z": 0 }, "pos2": { "x": -25.792, "y": 99.675, "z": 0 }, "pos3": { "x": -97.792, "y": 27.675, "z": 0 }, "pos4": { "x": -27, "y": 19, "z": 0 } }, { "pos1": { "x": -62, "y": 181, "z": 0 }, "pos2": { "x": -24.792, "y": 275.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -7, "y": 39, "z": 0 } }, { "pos1": { "x": -181, "y": 180, "z": 0 }, "pos2": { "x": -31.792, "y": 163.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": -18, "y": 25, "z": 0 } }, { "pos1": { "x": -182, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 38.675, "z": 0 }, "pos3": { "x": -153.792, "y": 34.675, "z": 0 }, "pos4": { "x": -23, "y": 14, "z": 0 } }, { "pos1": { "x": -186, "y": 61, "z": 0 }, "pos2": { "x": -37.792, "y": 37.675, "z": 0 }, "pos3": { "x": -36.792, "y": 26.675, "z": 0 }, "pos4": { "x": -24, "y": 17, "z": 0 } }, { "pos1": { "x": -62, "y": 177, "z": 0 }, "pos2": { "x": 93.208, "y": 276.675, "z": 0 }, "pos3": { "x": -33.792, "y": 34.675, "z": 0 }, "pos4": { "x": 3, "y": 31, "z": 0 } }, { "pos1": { "x": 58, "y": 179, "z": 0 }, "pos2": { "x": 205.225, "y": 154.034, "z": 0 }, "pos3": { "x": -29.642, "y": 25.691, "z": 0 }, "pos4": { "x": 7.218, "y": 29.765, "z": 0 } }, { "pos1": { "x": -57, "y": 182, "z": 0 }, "pos2": { "x": -25.792, "y": 37.675, "z": 0 }, "pos3": { "x": -35.792, "y": 33.675, "z": 0 }, "pos4": { "x": -14, "y": 12, "z": 0 } }, { "pos1": { "x": -180, "y": 62, "z": 0 }, "pos2": { "x": -35.792, "y": 36.675, "z": 0 }, "pos3": { "x": -271.792, "y": 24.675, "z": 0 }, "pos4": { "x": -17, "y": 20, "z": 0 } }, { "pos1": { "x": -62, "y": 178, "z": 0 }, "pos2": { "x": 87.208, "y": 164.675, "z": 0 }, "pos3": { "x": -31.792, "y": 35.675, "z": 0 }, "pos4": { "x": -6, "y": 24, "z": 0 } }, { "pos1": { "x": -176, "y": 60, "z": 0 }, "pos2": { "x": -33.792, "y": 38.675, "z": 0 }, "pos3": { "x": -154.792, "y": 29.675, "z": 0 }, "pos4": { "x": -29, "y": 16, "z": 0 } }, { "pos1": { "x": -60, "y": 181, "z": 0 }, "pos2": { "x": 95.208, "y": 155.675, "z": 0 }, "pos3": { "x": -30.792, "y": 36.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -63, "y": 178, "z": 0 }, "pos2": { "x": -21.792, "y": 156.675, "z": 0 }, "pos3": { "x": -31.792, "y": 37.675, "z": 0 }, "pos4": { "x": -12, "y": 32, "z": 0 } }, { "pos1": { "x": -60, "y": 183, "z": 0 }, "pos2": { "x": 88.208, "y": 162.675, "z": 0 }, "pos3": { "x": -29.792, "y": 41.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -64, "y": 58, "z": 0 }, "pos2": { "x": -26.792, "y": 32.675, "z": 0 }, "pos3": { "x": -34.792, "y": 23.675, "z": 0 }, "pos4": { "x": -12, "y": 18, "z": 0 } }, { "pos1": { "x": -184, "y": 62, "z": 0 }, "pos2": { "x": -25.792, "y": 34.675, "z": 0 }, "pos3": { "x": -155.792, "y": 25.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -57, "y": 190, "z": 0 }, "pos2": { "x": 95.208, "y": 158.675, "z": 0 }, "pos3": { "x": -33.792, "y": 29.675, "z": 0 }, "pos4": { "x": -18, "y": 26, "z": 0 } }, { "pos1": { "x": -71, "y": 184, "z": 0 }, "pos2": { "x": -25.792, "y": 156.675, "z": 0 }, "pos3": { "x": -35.792, "y": 27.675, "z": 0 }, "pos4": { "x": -25, "y": 40, "z": 0 } }];
cc._RF.pop();
}
@@ -9936,7 +9651,467 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9zeXN0ZW0uanMiXSwibmFtZXMiOlsiZXhwb3J0cyIsImxxX2NvbnN0XzEiLCJyZXF1aXJlIiwibHFfbWF0aF91dGlsXzEiLCJscV9jb2xsaWRlX2NvbmZpZ18xIiwibHFfZGF0YV8xIiwiVmVjMiIsImNjIiwiZ2FtZSIsImRpcmVjdG9yIiwiU2NoZWR1bGVyIiwibWlzYyIsIkxRUXVhZFRyZWUiLCJfMHg1NjU2NWUiLCJfMHgzZDNhMGUiLCJfMHgzZmIwNTUiLCJfMHgyMGNlMDQiLCJfMHg0MDYwMzMiLCJfMHgzMmE5Y2IiLCJfMHgxNzhkODEiLCJfMHgxZDFkOTciLCJfMHg1ZjUwOTMiLCJfMHgzMjY5YzIiLCJfMHg1OWQ2ZWMiLCJfMHgxZGM1NDciLCJfMHgyZWE3Y2QiLCJfMHg1ZTk3YjciLCJfMHgyNDFmNTkiLCJfMHg0Mzc3OTAiLCJfMHg1ZTY2MTkiLCJfMHgzYjQyYWEiLCJfMHgzMmYyM2EiLCJfMHgzODUwZmUiLCJfMHg0ODU2Y2YiLCJfMHgyZDEzNmMiLCJfMHgxZTlmMzUiLCJfMHg3N2E3MSIsIl8weGFhOGM3YSIsIl8weDQyMjY0YyIsIl8weDRjMzQ5NyIsIl8weDNkNWM5ZiIsIl8weDE3MGVjYSIsIkxRQ29sbGlkZVN5c3RlbSIsIl8weDliZjYwZSIsIl8weGJjM2QyMiIsIl8weDUzMjM1ZSIsIl8weDJmMWU2YyIsIl8weDFiZTYzMCIsIl8weDFhMDU5OCIsIk1hdGgiLCJfMHgyNTk2N2UiLCJfMHhmYmYyNDEiLCJfMHg1ZWQzYTUiLCJfMHgyOTZhMWEiLCJfMHgzZDFjYTIiLCJfMHgyYjRlYzkiLCJfMHg2MDAzNjciLCJfMHg1ZDY4YjUiLCJfMHgyYzRkZDAiLCJfMHgxOTBmODgiLCJfMHg1MjNkYzgiLCJfMHgyNjRiNzIiLCJ1bmRlZmluZWQiLCJfMHgxYjlhMmMiLCJfMHgxZDhkOGMiLCJfMHgxNDA2YjUiLCJfMHg2NGYwNjQiLCJfMHgzYmVjZGQiLCJfMHg0NWIwMjkiLCJfMHg1NDRhNWMiLCJfMHgyZTg5N2QiLCJfMHg0MTYyOTgiLCJfMHgxMjA1OWEiLCJfMHg0YTczNzAiLCJfMHgyNGM3YTEiLCJfMHg0ZTE4ZWUiLCJfMHgxMjIzNTYiLCJfMHgyYmQ3MTMiLCJfMHgyZDNiNmUiLCJfMHg1Y2NhM2IiLCJfMHgxMWI2NzgiLCJfMHgxZjBiNjMiLCJfMHg1MmNlYzciLCJfMHg0MjM2YzAiLCJfMHgxMmU4MjUiLCJfMHg1Y2Q0ZGQiLCJfMHhiZDZmZDAiLCJfMHgxZjRmYmMiLCJfMHgyNjdiNTgiLCJfMHg0YTFiYWUiLCJfMHg1NzRlM2UiLCJfMHg0YjkyZDgiLCJfMHg1ZDM5ZDQiLCJfMHgxMjRlOWMiLCJfMHgzODcxODgiLCJfMHg2MTEwMTIiLCJfMHgzNzA3ZTgiLCJfMHgyNDMyZTEiLCJfMHgxOTc2NTciLCJfMHgzZGY2ZmMiLCJfMHgxMmJiYTEiLCJfMHgzMjEyOTAiLCJfMHgxMzY3MDMiLCJfMHg1MzdlMGUiLCJfMHgzYWQxNDciLCJfMHg1NTlhN2QiLCJfMHg0OGE4MzQiLCJfMHgzYmZkOTQiLCJfMHg2ZGE2MjAiLCJfMHgxZmVkYTQiLCJfMHg1MzkxM2QiLCJfMHgzNjc0ZjUiLCJfMHgxNTAwMzMiLCJfMHg0NDJhZjEiLCJfMHgxZTc5YTUiLCJfMHgxNzljOTIiLCJfMHhiMTcyNzgiLCJfMHgxMzM3YmQiLCJfMHgyMDE4MWUiLCJfMHg0YWY2ZmYiLCJfMHg1Y2FjNzEiLCJfMHg1NDlhNjYiLCJfMHg1NzkzZmYiLCJfMHg0NzQwZmUiLCJfMHg0ZjMzMzciLCJfMHgxYTE1MmMiLCJfMHg0ODRjZDIiLCJfMHgxNzNmNjEiLCJfMHgzZmNjZGEiLCJfMHgyMmVlZjkiLCJfMHgzNjYyZWQiLCJfMHgxMGJiZGIiLCJfMHgyOTEzM2MiLCJfMHg1Y2UxOTIiLCJfMHg4MDExYzciLCJfMHhkZmU4YmMiLCJfMHgzYWVlOGMiLCJfMHgxY2U4ZmQiLCJfMHgyYWIyZmYiLCJfMHgzNzNiZDIiLCJfMHg0YjY0YTQiLCJfMHg0MGUyZjEiLCJfMHhmY2E4ZDEiLCJfMHg1YWM4MTUiLCJfMHhmZmJjZGMiLCJfMHgzMDgzMjUiLCJfMHgxNDlmNWUiLCJfMHgxMjE1MGYiLCJfMHgzMDgwODIiLCJfMHgzMTMxYzUiLCJfMHhjM2MzODAiLCJfMHg1ODVmNGYiLCJfMHgzZGRiODMiLCJfMHgzY2NmNzQiLCJfMHg0Y2Y2YTYiLCJfMHg1MzdiMmQiLCJfMHgxOTdkMmYiLCJfMHgxODNkZTIiLCJfMHgyNWNlYTEiLCJfMHhhN2IwNSIsIl8weDM4MWFmMiIsIl8weDVkYjdiMyIsIkF1dG9SdW4iLCJfMHhmNWIwODciLCJfMHgzNjVlNTUiLCJDQ19FRElUT1IiLCJfMHgyODdmODYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE2QixZQUFZOztBQUFDQSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUU7QUFBQ0EsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUMsS0FBSyxHQUFHO0FBQUMsSUFBSUMsVUFBVSxHQUFDQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7QUFBQyxJQUFJQyxjQUFjLEdBQUNELE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztBQUFDLElBQUlFLG1CQUFtQixHQUFDRixPQUFPLENBQUMscUJBQXFCLENBQUM7QUFBQyxJQUFJRyxTQUFTLEdBQUNILE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztBQUFDLElBQUlJLElBQUksR0FBQ0MsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlDLElBQUksR0FBQ0QsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlFLFFBQVEsR0FBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FBQztBQUFDLElBQUlHLFNBQVMsR0FBQ0gsRUFBRSxDQUFDLFdBQVcsQ0FBQztBQUFDLElBQUlJLElBQUksR0FBQ0osRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlLLFVBQVUsR0FBQyxZQUFVO0VBQUMsU0FBU0MsU0FBU0EsQ0FBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFDLEVBQUU7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUMsRUFBRTtJQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBQ0YsU0FBUyxJQUFFLEdBQUc7SUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUNDLFNBQVMsSUFBRSxHQUFHO0lBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFDQyxTQUFTLElBQUUsR0FBRztJQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBQ0gsU0FBUztJQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBQyxFQUFFO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFDLEVBQUU7RUFBQztFQUFDRCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUMsWUFBVTtJQUFDLElBQUlLLFNBQVMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUMsSUFBSVQsU0FBUyxDQUFDLElBQUlSLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQ2dCLFNBQVMsR0FBQ0YsU0FBUyxFQUFDRyxTQUFTLEVBQUNILFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUlMLFNBQVMsQ0FBQyxJQUFJUixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUNnQixTQUFTLEVBQUNDLFNBQVMsRUFBQ0gsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDRixTQUFTLENBQUM7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUMsSUFBSUwsU0FBUyxDQUFDLElBQUlSLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQ2dCLFNBQVMsRUFBQ0MsU0FBUyxHQUFDRixTQUFTLEVBQUNELFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUlMLFNBQVMsQ0FBQyxJQUFJUixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUNnQixTQUFTLEdBQUNGLFNBQVMsRUFBQ0csU0FBUyxHQUFDRixTQUFTLEVBQUNELFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0VBQUMsQ0FBQztFQUFDTCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUMsVUFBU1UsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLEVBQUU7SUFBQyxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFBQyxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFBQyxJQUFJQyxTQUFTLEdBQUNKLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFDRyxTQUFTO0lBQUMsSUFBSUUsU0FBUyxHQUFDTCxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUNBLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBQ0UsU0FBUztJQUFDLElBQUlJLFNBQVMsR0FBQ04sU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUNFLFNBQVM7SUFBQyxJQUFJSyxTQUFTLEdBQUNQLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFDRyxTQUFTO0lBQUMsSUFBR0csU0FBUyxJQUFFRixTQUFTLEVBQUM7TUFBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR0ksU0FBUyxJQUFFRCxTQUFTLEVBQUM7TUFBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR0ksU0FBUyxJQUFFRSxTQUFTLEVBQUM7TUFBQ04sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR00sU0FBUyxJQUFFRCxTQUFTLEVBQUM7TUFBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsT0FBT0EsU0FBUztFQUFDLENBQUM7RUFBQztFQUFDWCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsVUFBU2tCLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVM7SUFBQyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQztNQUFDQSxTQUFTLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDRCxTQUFTLENBQUM7TUFBQyxLQUFJLElBQUlFLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQ0QsU0FBUyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDRixTQUFTLENBQUM7TUFBQztNQUFDO0lBQU87SUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNBLFNBQVMsQ0FBQztJQUFDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDO01BQUMsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQztRQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtNQUFDO01BQUMsS0FBSSxJQUFJRSxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDQSxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNELFNBQVMsQ0FBQztRQUFDRCxTQUFTLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDRSxTQUFTLENBQUM7UUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDRyxTQUFTLEVBQUUsRUFBQztVQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQ0gsU0FBUyxDQUFDRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEs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UyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFO01BQUNBLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBQ0QsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDQSxTQUFTLEdBQUNELFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRTtNQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQUNELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBQ0EsU0FBUyxHQUFDRCxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7TUFBQ0EsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQUMsQ0FBQyxNQUFLLElBQUdELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHM0MsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUM7TUFBQzJDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFDLEVBQUU7TUFBQyxJQUFHQSxTQUFT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R0FBQyxVQUFTb0IsU0FBUyxFQUFDO0lBQUMsSUFBR0EsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFDO01BQUMsS0FBSSxJQUFJQyxTQUFTLElBQUlELFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBQztRQUFDLElBQUlFLFNBQVMsR0FBQ0YsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDQyxTQUFTLENBQUM7UUFBQyxJQUFHQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUcsR0FBRyxFQUFDO1VBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHO1FBQUMsQ0FBQyxNQUFJO1VBQUMsT0FBT0YsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDQyxTQUFTLENBQUM7VUFBQ0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFBQztNQUFDO0lBQUM7SUFBQ0YsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUNwQixTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUMsVUFBU3VCLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBR0QsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFDO01BQUMsSUFBSUUsU0FBUyxHQUFDRixTQUFTLENBQUMsYUFBYSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztNQUFDLElBQUdDLFNBQVMsRUFBQztRQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRztNQUFDLENBQUMsTUFBSTtRQUFDRixTQUFTLENBQUMsYUFBYSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFDO1VBQUMsU0FBUyxFQUFDQSxTQUFTO1VBQUMsUUFBUSxFQUFDO1FBQUcsQ0FBQztRQUFDRCxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUNDLFNBQVMsQ0FBQztNQUFDO0lBQUM7SUFBQyxJQUFHQSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUM7TUFBQyxJQUFJRSxTQUFTLEdBQUNGLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO01BQUMsSUFBR0csU0FBUyxFQUFDO1FBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHO01BQUMsQ0FBQyxNQUFJO1FBQUNGLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUM7VUFBQyxTQUFTLEVBQUNBLFNBQVM7VUFBQyxRQUFRLEVBQUM7UUFBRyxDQUFDO1FBQUNDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQ0QsU0FBUyxDQUFDO01BQUM7SUFBQztJQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUNDLFNBQVMsQ0FBQztJQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUNELFNBQVMsQ0FBQztFQUFDLENBQUM7RUFBQ3ZCLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBQyxVQUFTMkIsU0FBUyxFQUFDO0lBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUNBLFNBQVMsQ0FBQztJQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO0VBQUMsQ0FBQztFQUFDM0IsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEdBQUMsVUFBUzRCLFNBQVMsRUFBQztJQUFDLEtBQUksSUFBSUMsU0FBUyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsSUFBRSxHQUFHLEVBQUNBLFNBQVMsRUFBRSxFQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNBLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFHRCxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUM7UUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUNDLFNBQVMsRUFBQyxHQUFHLENBQUM7UUFBQztNQUFNO0lBQUM7RUFBQyxDQUFDO0VBQUM3QixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUMsVUFBUzhCLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUM7SUFBQyxPQUFPN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDd0IsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxDQUFDLElBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDRyxTQUFTLEVBQUNDLFNBQVMsQ0FBQyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDSCxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRztFQUFDLENBQUM7RUFBQ25DLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFDLFVBQVNvQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUM7SUFBQyxPQUFPakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM4QixTQUFTLEdBQUNFLFNBQVMsRUFBQyxHQUFHLENBQUMsR0FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQytCLFNBQVMsR0FBQ0UsU0FBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQUMsQ0FBQztFQUFDdkMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFDLFVBQVN3QyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDSCxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQUMsSUFBSUksU0FBUyxHQUFDLENBQUMsRUFBRTtJQUFDLElBQUlDLFNBQVMsRUFBQ0MsU0FBUztJQUFDLEtBQUlELFNBQVMsR0FBQyxHQUFHLEVBQUNDLFNBQVMsR0FBQ0gsU0FBUyxHQUFDLEdBQUcsRUFBQ0UsU0FBUyxHQUFDRixTQUFTLEVBQUNFLFNBQVMsSUFBRSxHQUFHLEVBQUM7TUFBQyxJQUFHTCxTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ0gsU0FBUyxLQUFHRixTQUFTLENBQUNNLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ0osU0FBUyxJQUFFRCxTQUFTLEdBQUMsQ0FBQ0QsU0FBUyxDQUFDTSxTQUFTLENBQUMsR0FBQ04sU0FBUyxDQUFDSyxTQUFTLENBQUMsS0FBR0gsU0FBUyxHQUFDRixTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFFTCxTQUFTLENBQUNNLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ04sU0FBUyxDQUFDSyxTQUFTLEdBQUMsR0FBRyxDQUFDLENBQUMsR0FBQ0wsU0FBUyxDQUFDSyxTQUFTLENBQUMsRUFBQztRQUFDRCxTQUFTLEdBQUMsQ0FBQ0EsU0FBUztNQUFDO01BQUNFLFNBQVMsR0FBQ0QsU0FBUztJQUFDO0lBQUMsSUFBR0QsU0FBUyxFQUFDO01BQUMsT0FBTSxDQUFDLENBQUMsRUFBRTtJQUFDO0lBQUMsS0FBSUMsU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDRixTQUFTLEVBQUNFLFNBQVMsSUFBRSxHQUFHLEVBQUM7TUFBQyxJQUFJRSxTQUFTLEdBQUNQLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDO01BQUMsSUFBSUcsU0FBUyxHQUFDUixTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUM7TUFBQyxJQUFJSSxTQUFTLEdBQUMsS0FBSyxHQUFHO1FBQUNDLFNBQVMsR0FBQyxLQUFLLEdBQUc7TUFBQyxJQUFHTCxTQUFTLEtBQUdGLFNBQVMsR0FBQyxHQUFHLEVBQUM7UUFBQ00sU0FBUyxHQUFDVCxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUNVLFNBQVMsR0FBQ1YsU0FBUyxDQUFDLEdBQUcsQ0FBQztNQUFDLENBQUMsTUFBSTtRQUFDUyxTQUFTLEdBQUNULFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQztRQUFDSyxTQUFTLEdBQUNWLFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQztNQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUNFLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ1QsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztRQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0lBQUMsT0FBTSxDQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUMxQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxVQUFTbUQsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztNQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7SUFBQztJQUFDLElBQUlFLFNBQVMsR0FBQ0osU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUFDLEtBQUksSUFBSUssU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDRCxTQUFTLEdBQUMsR0FBRyxFQUFDQyxTQUFTLElBQUUsR0FBRyxFQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNMLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDLEVBQUNMLFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQyxFQUFDTCxTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsRUFBQ0wsU0FBUyxDQUFDSyxTQUFTLEdBQUMsR0FBRyxDQUFDLEVBQUNKLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztRQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0lBQUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUNJLFNBQVMsR0FBQyxHQUFHLENBQUMsRUFBQ0osU0FBUyxDQUFDSSxTQUFTLEdBQUMsR0FBRyxDQUFDLEVBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUM7RUFBQyxDQUFDO0VBQUN0RCxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUMsVUFBU3lELFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVMsR0FBQyxDQUFDSCxTQUFTLEdBQUNKLFNBQVMsRUFBQ0ssU0FBUyxHQUFDSixTQUFTLENBQUM7SUFBQyxJQUFJTyxTQUFTLEdBQUMsQ0FBQ04sU0FBUyxHQUFDRixTQUFTLEVBQUNHLFNBQVMsR0FBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSVEsU0FBUyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQ0QsU0FBUyxFQUFDQSxTQUFTLENBQUM7SUFBQyxJQUFJRSxTQUFTLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDSCxTQUFTLEVBQUNDLFNBQVMsQ0FBQztJQUFDLElBQUlHLFNBQVMsR0FBQ0QsU0FBUyxHQUFDRCxTQUFTO0lBQUNFLFNBQVMsR0FBQ0EsU0FBUyxHQUFDLEdBQUcsR0FBQyxHQUFHLEdBQUNBLFNBQVM7SUFBQ0EsU0FBUyxHQUFDQSxTQUFTLEdBQUMsR0FBRyxHQUFDLEdBQUcsR0FBQ0EsU0FBUztJQUFDLElBQUlDLFNBQVMsR0FBQyxDQUFDSixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUNHLFNBQVMsR0FBQ1gsU0FBUyxHQUFDSSxTQUFTLEVBQUNJLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ0csU0FBUyxHQUFDVixTQUFTLEdBQUNJLFNBQVMsQ0FBQztJQUFDLElBQUlRLFNBQVMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUNELFNBQVMsRUFBQ0EsU0FBUyxDQUFDO0lBQUMsT0FBT0MsU0FBUyxJQUFFUCxTQUFTLEdBQUNBLFNBQVM7RUFBQyxDQUFDO0VBQUMvRCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUMsVUFBU3VFLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lB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QUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0UsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUssSUFBR0YsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUUsR0FBRyxJQUFFRSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBRSxHQUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUk7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLENBQUNFLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2dCQUFDO2dCQUFDLElBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUNGLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDRSxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQztZQUFDO1VBQUM7UUFBQztNQUFDO0lBQUMsQ0FBQyxNQUFJO01BQUMsSUFBSUgsU0FBUyxHQUFDLEVBQUU7TUFBQyxLQUFJLElBQUlILFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRyxFQUFDQSxTQUFTLElBQUUsR0FBRyxFQUFDQSxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNELFNBQVMsQ0FBQztRQUFDLElBQUcsQ0FBQ0MsU0FBUyxFQUFDO1VBQUM7UUFBTztRQUFDLElBQUcsQ0FBQ0EsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFDO1VBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDRCxTQUFTLEVBQUMsR0FBRyxDQUFDO1VBQUM7UUFBUztRQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDQyxTQUFTLENBQUM7UUFBQyxJQUFHQSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUM7VUFBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO1VBQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0YsU0FBUyxDQUFDO1FBQUM7TUFBQztNQUFDLElBQUlNLFNBQVMsR0FBQ0osU0FBUyxDQUFDLFFBQVEsQ0FBQztNQUFDLEtBQUksSUFBSUgsU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDTyxTQUFTLEVBQUNQLFNBQVMsRUFBRSxFQUFDO1FBQUMsSUFBSUksU0FBUyxHQUFDRCxTQUFTLENBQUNILFNBQVMsQ0FBQztRQUFDLEtBQUksSUFBSUssU0FBUyxHQUFDTCxTQUFTLEdBQUMsR0FBRyxFQUFDSyxTQUFTLEdBQUNFLFNBQVMsRUFBQ0YsU0FBUyxFQUFFLEVBQUM7VUFBQyxJQUFJQyxTQUFTLEdBQUNILFNBQVMsQ0FBQ0UsU0FBUyxDQUFDO1VBQUMsSUFBR0QsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUNFLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBQztZQUFDLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxFQUFDO2NBQUMsSUFBR3hILGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDc0gsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNGLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQyxDQUFDLE1BQUssSUFBR0YsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxJQUFFRSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLEVBQUM7Y0FBQyxJQUFHeEgsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUN3SCxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDQSxTQUFTLEVBQUNFLFNBQVMsQ0FBQztjQUFDO1lBQUMsQ0FBQyxNQUFLLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxFQUFDO2NBQUMsSUFBR3hILGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDc0gsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUNFLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Y0FBQztZQUFDLENBQUMsTUFBSyxJQUFHRixTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLElBQUVFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsRUFBQztjQUFDLElBQUd4SCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQ3NILFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Y0FBQztZQUFDLENBQUMsTUFBSyxJQUFHRixTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBRSxHQUFHLElBQUVFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLEdBQUcsRUFBQztjQUFDLElBQUcsQ0FBQ0YsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDQSxTQUFTLENBQUM7Y0FBQztjQUFDLElBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUNBLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDRixTQUFTLEVBQUNFLFNBQVMsQ0FBQztjQUFDO1lBQUMsQ0FBQyxNQUFLLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUUsR0FBRyxFQUFDO2NBQUMsSUFBRyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztjQUFDO2NBQUMsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQ0EsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUNGLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQyxDQUFDLE1BQUk7Y0FBQyxJQUFHLENBQUNGLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2NBQUM7Y0FBQyxJQUFHLENBQUNFLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2NBQUM7Y0FBQyxJQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0UsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNGLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQztVQUFDO1FBQUM7TUFBQztJQUFDO0VBQUMsQ0FBQztFQUFDaEYsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEdBQUMsVUFBU2tGLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDLENBQUNGLFNBQVMsRUFBQ0MsU0FBUyxDQUFDO0lBQUMsSUFBSUUsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVM7SUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDTyxTQUFTLEVBQUUsRUFBQztNQUFDLElBQUlDLFNBQVMsR0FBQ1IsU0FBUyxDQUFDTyxTQUFTLENBQUM7TUFBQyxLQUFJLElBQUlFLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLElBQUUsR0FBRyxFQUFDO1FBQUMsSUFBSUMsU0FBUyxHQUFDLENBQUNELFNBQVMsR0FBQyxHQUFHLElBQUVELFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFBQyxJQUFJRyxTQUFTLEdBQUM7VUFBQyxHQUFHLEVBQUNILFNBQVMsQ0FBQ0UsU0FBUyxHQUFDLEdBQUcsQ0FBQyxHQUFDRixTQUFTLENBQUNDLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxHQUFHLEVBQUNELFNBQVMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUNELFNBQVMsQ0FBQ0UsU0FBUztRQUFDLENBQUM7UUFBQ1QsU0FBUyxHQUFDLElBQUk7UUFBQ0MsU0FBUyxHQUFDLElBQUk7UUFBQyxLQUFJSSxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUNSLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ1EsU0FBUyxJQUFFLEdBQUcsRUFBQztVQUFDSCxTQUFTLEdBQUNRLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ2IsU0FBUyxDQUFDUSxTQUFTLENBQUMsR0FBQ0ssU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFDYixTQUFTLENBQUNRLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxJQUFHTCxTQUFTLEtBQUcsSUFBSSxJQUFFRSxTQUFTLEdBQUNGLFNBQVMsRUFBQztZQUFDQSxTQUFTLEdBQUNFLFNBQVM7VUFBQztVQUFDLElBQUdELFNBQVMsS0FBRyxJQUFJLElBQUVDLFNBQVMsR0FBQ0QsU0FBUyxFQUFDO1lBQUNBLFNBQVMsR0FBQ0MsU0FBUztVQUFDO1FBQUM7UUFBQ0MsU0FBUyxHQUFDLElBQUk7UUFBQ0MsU0FBUyxHQUFDLElBQUk7UUFBQyxLQUFJQyxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUNQLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ08sU0FBUyxJQUFFLEdBQUcsRUFBQztVQUFDSCxTQUFTLEdBQUNRLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ1osU0FBUyxDQUFDTyxTQUFTLENBQUMsR0FBQ0ssU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFDWixTQUFTLENBQUNPLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxJQUFHRixTQUFTLEtBQUcsSUFBSSxJQUFFRCxTQUFTLEdBQUNDLFNBQVMsRUFBQztZQUFDQSxTQUFTLEdBQUNELFNBQVM7VUFBQztVQUFDLElBQUdFLFNBQVMsS0FBRyxJQUFJLElBQUVGLFNBQVMsR0FBQ0UsU0FBUyxFQUFDO1lBQUNBLFNBQVMsR0FBQ0YsU0FBUztVQUFDO1FBQUM7UUFBQyxJQUFHRCxTQUFTLEdBQUNFLFNBQVMsSUFBRUMsU0FBUyxHQUFDSixTQUFTLEVBQUM7VUFBQyxPQUFNLENBQUMsRUFBRTtRQUFDO01BQUM7SUFBQztJQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUN2RixTQUFTLENBQUMsb0JBQW9CLENBQUMsR0FBQyxVQUFTa0csU0FBUyxFQUFDO0lBQUMsS0FBSSxJQUFJQyxTQUFTLElBQUkxSSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUM7TUFBQyxJQUFJMkksU0FBUyxHQUFDM0ksbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDMEksU0FBUyxDQUFDO01BQUMsSUFBR0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFHRixTQUFTLEVBQUM7UUFBQyxPQUFPRSxTQUFTO01BQUM7SUFBQztJQUFDLE9BQU9qRixTQUFTO0VBQUMsQ0FBQztFQUFDbkIsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEdBQUMsVUFBU3FHLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVM7SUFBQyxLQUFJLElBQUlDLFNBQVMsSUFBSTlJLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBQztNQUFDLElBQUkrSSxTQUFTLEdBQUMvSSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM4SSxTQUFTLENBQUM7TUFBQyxJQUFHQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUdILFNBQVMsRUFBQztRQUFDLE9BQU9HLFNBQVM7TUFBQztNQUFDLElBQUcsQ0FBQ0YsU0FBUyxFQUFDO1FBQUNBLFNBQVMsR0FBQ0UsU0FBUztNQUFDO0lBQUM7SUFBQyxPQUFPRixTQUFTO0VBQUMsQ0FBQztFQUFDdEcsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEdBQUMsVUFBU3lHLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVMsR0FBQyxFQUFFO0lBQUMsS0FBSSxJQUFJQyxTQUFTLEdBQUMzRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRyxFQUFDMkcsU0FBUyxJQUFFLEdBQUcsRUFBQ0EsU0FBUyxFQUFFLEVBQUM7TUFBQyxJQUFJQyxTQUFTLEdBQUM1RyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMyRyxTQUFTLENBQUM7TUFBQyxJQUFHRixTQUFTLEtBQUdHLFNBQVMsSUFBRSxDQUFDQSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUM7UUFBQztNQUFTO01BQUMsSUFBR0gsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUM7UUFBQyxJQUFHRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBR0gsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUM7VUFBQ0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDRSxTQUFTLENBQUM7UUFBQztNQUFDLENBQUMsTUFBSyxJQUFHLENBQUNBLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFDSCxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQUksR0FBRyxFQUFDO1FBQUNDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0UsU0FBUyxDQUFDO01BQUM7SUFBQztJQUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBU0csU0FBUyxFQUFDQyxTQUFTLEVBQUM7TUFBQyxPQUFPTCxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUNJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUNKLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQ0ssU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFBQyxDQUFDLENBQUM7SUFBQyxPQUFPSixTQUFTLENBQUMsR0FBRyxDQUFDO0VBQUMsQ0FBQztFQUFDMUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFDLFVBQVMrRyxTQUFTLEVBQUM7SUFBQyxJQUFHQSxTQUFTLEtBQUcsS0FBSyxHQUFHLEVBQUM7TUFBQ0EsU0FBUyxHQUFDLENBQUMsRUFBRTtJQUFDO0lBQUMsSUFBR0EsU0FBUyxFQUFDO01BQUMsS0FBSSxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxJQUFFLEdBQUcsRUFBQ0EsU0FBUyxFQUFFLEVBQUM7UUFBQyxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDRCxTQUFTLENBQUM7UUFBQyxJQUFHQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUM7VUFBQ0EsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQUM7TUFBQztJQUFDO0lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUNqSCxTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUMsVUFBU2tILFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVMsR0FBQyxFQUFFO0lBQUMsSUFBSUMsUUFBUTtJQUFDLElBQUczSixtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUM7TUFBQ1EsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUMsRUFBRTtNQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQ2lKLFNBQVMsQ0FBQztNQUFDRSxRQUFRLEdBQUNuSixVQUFVLENBQUMsa0JBQWtCLENBQUM7SUFBQyxDQUFDLE1BQUk7TUFBQ21KLFFBQVEsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQUM7SUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLEVBQUUsRUFBQztNQUFDLElBQUlDLFNBQVMsR0FBQ0YsUUFBUSxDQUFDQyxTQUFTLENBQUM7TUFBQyxJQUFHSCxTQUFTLEtBQUdJLFNBQVMsRUFBQztRQUFDO01BQVM7TUFBQyxJQUFHSixTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBQ0ksU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFDO1FBQUMsSUFBR0osU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxJQUFFSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLEVBQUM7VUFBQyxJQUFHOUosY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMwSixTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDO1lBQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0csU0FBUyxDQUFDO1VBQUM7UUFBQyxDQUFDLE1BQUssSUFBR0osU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxJQUFFSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLEVBQUM7VUFBQyxJQUFHOUosY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM4SixTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ0osU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUM7WUFBQ0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDRyxTQUFTLENBQUM7VUFBQztRQUFDLENBQUMsTUFBSyxJQUFHSixTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLElBQUVJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsRUFBQztVQUFDLElBQUc5SixjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQzBKLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDSSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQztZQUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUNHLFNBQVMsQ0FBQztVQUFDO1FBQUMsQ0FBQyxNQUFLLElBQUdKLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsSUFBRUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxFQUFDO1VBQUMsSUFBRzlKLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDMEosU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUNJLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUM7WUFBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDRyxTQUFTLENBQUM7VUFBQztRQUFDLENBQUMsTUFBSyxJQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDSixTQUFTLEVBQUNJLFNBQVMsQ0FBQyxFQUFDO1VBQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0csU0FBUyxDQUFDO1FBQUM7TUFBQztJQUFDO0lBQUMsT0FBT0gsU0FBUztFQUFDLENBQUM7RUFBQ25ILFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBQyxDQUFDLEVBQUU7RUFBQ0EsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFDLEVBQUU7RUFBQ0EsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFDLElBQUkvQixVQUFVLENBQUMsSUFBSVAsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDRCxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFDQSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFDQSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUNBLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFDQSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFDQSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7RUFBQyxPQUFPdUMsU0FBUztBQUFDLENBQUMsRUFBRTtBQUFDM0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUMwQyxlQUFlO0FBQUMsSUFBSXdILE9BQU8sR0FBQyxZQUFVO0VBQUMsU0FBU0MsU0FBU0EsQ0FBQSxFQUFFO0lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFO0VBQUM7RUFBQ0EsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFDLFVBQVNDLFNBQVMsRUFBQztJQUFDLElBQUdoSyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFHLElBQUksRUFBQztNQUFDc0MsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDMEgsU0FBUyxDQUFDO0lBQUMsQ0FBQyxNQUFJO01BQUMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUM7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxFQUFFO1FBQUMxSCxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMwSCxTQUFTLENBQUM7TUFBQyxDQUFDLE1BQUk7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0VBQUMsQ0FBQztFQUFDLE9BQU9ELFNBQVM7QUFBQyxDQUFDLEVBQUU7QUFBQzNKLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsWUFBVTtFQUFDLElBQUdKLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBRSxDQUFDaUssU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLElBQUlKLE9BQU8sRUFBRTtJQUFDekosUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQzZKLFNBQVMsQ0FBQztJQUFDN0osUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzZKLFNBQVMsRUFBQzVKLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDO0VBQUM7QUFBQyxDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qT2JmdXNjYXRlZCBieSBKU2hhbWFuLmNvbSovJ3VzZSBzdHJpY3QnO2V4cG9ydHNbJ19fZXNNb2R1bGUnXT0hIVtdO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPXZvaWQgMHgwO3ZhciBscV9jb25zdF8xPXJlcXVpcmUoJy4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdCcpO3ZhciBscV9tYXRoX3V0aWxfMT1yZXF1aXJlKCcuLi9scV9iYXNlL3V0aWwvbHFfbWF0aF91dGlsJyk7dmFyIGxxX2NvbGxpZGVfY29uZmlnXzE9cmVxdWlyZSgnLi9scV9jb2xsaWRlX2NvbmZpZycpO3ZhciBscV9kYXRhXzE9cmVxdWlyZSgnLi4vbHFfYmFzZS9kYXRhL2xxX2RhdGEnKTt2YXIgVmVjMj1jY1snVmVjMiddO3ZhciBnYW1lPWNjWydnYW1lJ107dmFyIGRpcmVjdG9yPWNjWydkaXJlY3RvciddO3ZhciBTY2hlZHVsZXI9Y2NbJ1NjaGVkdWxlciddO3ZhciBtaXNjPWNjWydtaXNjJ107dmFyIExRUXVhZFRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBfMHg1NjU2NWUoXzB4M2QzYTBlLF8weDNmYjA1NSxfMHgyMGNlMDQsXzB4NDA2MDMzKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107dGhpc1snbWF4X29iamVjdCddPV8weDNmYjA1NXx8MHhhO3RoaXNbJ21heF9sZXZlbCddPV8weDIwY2UwNHx8MHg0O3RoaXNbJ2xldmVsJ109XzB4NDA2MDMzfHwweDA7dGhpc1sncmVjdCddPV8weDNkM2EwZTt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107fV8weDU2NTY1ZVsncHJvdG90eXBlJ11bJ3NwbGl0J109ZnVuY3Rpb24oKXt2YXIgXzB4MzJhOWNiPXRoaXNbJ2xldmVsJ10rMHgxO3ZhciBfMHgxNzhkODE9dGhpc1sncmVjdCddWyd3aWR0aCddKjAuNTt2YXIgXzB4MWQxZDk3PXRoaXNbJ3JlY3QnXVsnaGVpZ2h0J10qMC41O3ZhciBfMHg1ZjUwOTM9dGhpc1sncmVjdCddWyd4J107dmFyIF8weDMyNjljMj10aGlzWydyZWN0J11bJ3knXTt0aGlzWydub2RlX2FyciddWzB4MF09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMrXzB4MTc4ZDgxLF8weDMyNjljMixfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt0aGlzWydub2RlX2FyciddWzB4MV09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMsXzB4MzI2OWMyLF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgyXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MyxfMHgzMjY5YzIrXzB4MWQxZDk3LF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgzXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MytfMHgxNzhkODEsXzB4MzI2OWMyK18weDFkMWQ5NyxfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt9O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9pbmRleCddPWZ1bmN0aW9uKF8weDU5ZDZlYyl7dmFyIF8weDFkYzU0Nz1bXTt2YXIgXzB4MmVhN2NkPXRoaXNbJ3JlY3QnXVsneCddK3RoaXNbJ3JlY3QnXVsnaGFsZl93aWR0aCddO3ZhciBfMHg1ZTk3Yjc9dGhpc1sncmVjdCddWyd5J10rdGhpc1sncmVjdCddWydoYWxmX2hlaWdodCddO3ZhciBfMHgyNDFmNTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3knXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl9oZWlnaHQnXT5fMHg1ZTk3Yjc7dmFyIF8weDQzNzc5MD1fMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsneCddLV8weDU5ZDZlY1snd29ybGRfcmVjdCddWydoYWxmX3dpZHRoJ108XzB4MmVhN2NkO3ZhciBfMHg1ZTY2MTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3gnXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl93aWR0aCddPl8weDJlYTdjZDt2YXIgXzB4M2I0MmFhPV8weDU5ZDZlY1snd29ybGRfcmVjdCddWyd5J10tXzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ2hhbGZfaGVpZ2h0J108XzB4NWU5N2I3O2lmKF8weDVlNjYxOSYmXzB4MjQxZjU5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDApO31pZihfMHg0Mzc3OTAmJl8weDI0MWY1OSl7XzB4MWRjNTQ3WydwdXNoJ10oMHgxKTt9aWYoXzB4NDM3NzkwJiZfMHgzYjQyYWEpe18weDFkYzU0N1sncHVzaCddKDB4Mik7fWlmKF8weDNiNDJhYSYmXzB4NWU2NjE5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDMpO31yZXR1cm4gXzB4MWRjNTQ3O307O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2luc2VydCddPWZ1bmN0aW9uKF8weDMyZjIzYSl7dmFyIF8weDM4NTBmZTtpZih0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7XzB4Mzg1MGZlPXRoaXNbJ2dldF9pbmRleCddKF8weDMyZjIzYSk7Zm9yKHZhciBfMHg0ODU2Y2Y9MHgwO18weDQ4NTZjZjxfMHgzODUwZmVbJ2xlbmd0aCddO18weDQ4NTZjZisrKXt0aGlzWydub2RlX2FyciddW18weDM4NTBmZVtfMHg0ODU2Y2ZdXVsnaW5zZXJ0J10oXzB4MzJmMjNhKTt9cmV0dXJuO310aGlzWydjb2xsaWRlX2FyciddWydwdXNoJ10oXzB4MzJmMjNhKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXT50aGlzWydtYXhfb2JqZWN0J10mJnRoaXNbJ2xldmVsJ108dGhpc1snbWF4X2xldmVsJ10pe2lmKCF0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7dGhpc1snc3BsaXQnXSgpO31mb3IodmFyIF8weDQ4NTZjZj0weDA7XzB4NDg1NmNmPHRoaXNbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDQ4NTZjZisrKXt2YXIgXzB4MmQxMzZjPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NDg1NmNmXTtfMHgzODUwZmU9dGhpc1snZ2V0X2luZGV4J10oXzB4MmQxMzZjKTtmb3IodmFyIF8weDFlOWYzNT0weDA7XzB4MWU5ZjM1PF8weDM4NTBmZVsnbGVuZ3RoJ107XzB4MWU5ZjM1Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4Mzg1MGZlW18weDFlOWYzNV1dWydpbnNlcnQnXShfMHgyZDEzNmMpO319dGhpc1snY29sbGlkZV9hcnInXT1bXTt9fTs7XzB4NTY1NjVlWydwcm90b3R5cGUnXVsncmV0cmlldmUnXT1mdW5jdGlvbihfMHg3N2E3MSl7dmFyIF8weGFhOGM3YTt2YXIgXzB4NDIyNjRjPXRoaXNbJ2dldF9pbmRleCddKF8weDc3YTcxKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXSl7KF8weGFhOGM3YT1fMHg1NjU2NWVbJ3RlbXBfY29sbGlkZV9hcnInXSlbJ3B1c2gnXVsnYXBwbHknXShfMHhhYThjN2EsdGhpc1snY29sbGlkZV9hcnInXSk7fWlmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXtmb3IodmFyIF8weDRjMzQ5Nz0weDA7XzB4NGMzNDk3PF8weDQyMjY0Y1snbGVuZ3RoJ107XzB4NGMzNDk3Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4NDIyNjRjW18weDRjMzQ5N11dWydyZXRyaWV2ZSddKF8weDc3YTcxKTt9fX07O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9hbGxfYXJlYSddPWZ1bmN0aW9uKCl7aWYodGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10pe18weDU2NTY1ZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ3B1c2gnXSh0aGlzWydjb2xsaWRlX2FyciddKTt9aWYodGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ10pe2Zvcih2YXIgXzB4M2Q1YzlmPTB4MDtfMHgzZDVjOWY8MHg0O18weDNkNWM5ZisrKXt0aGlzWydub2RlX2FyciddW18weDNkNWM5Zl1bJ2dldF9hbGxfYXJlYSddKCk7fX19O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2NsZWFyJ109ZnVuY3Rpb24oKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO2Zvcih2YXIgXzB4MTcwZWNhPTB4MDtfMHgxNzBlY2E8dGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ107XzB4MTcwZWNhKyspe2lmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXt0aGlzWydub2RlX2FyciddW18weDE3MGVjYV1bJ2NsZWFyJ10oKTt9fXRoaXNbJ25vZGVfYXJyJ109W107fTs7XzB4NTY1NjVlWyd0ZW1wX2NvbGxpZGVfYXJyJ109W107XzB4NTY1NjVlWydhbGxfY29sbGlkZV9hcnInXT1bXTtyZXR1cm4gXzB4NTY1NjVlO30oKTt2YXIgTFFDb2xsaWRlU3lzdGVtPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gXzB4OWJmNjBlKCl7fV8weDliZjYwZVsnY2FjaGVfcG9seWdvbiddPWZ1bmN0aW9uKF8weGJjM2QyMil7aWYoXzB4YmMzZDIyWydfY29sbGlkZV9zaGFwZSddPT09bHFfY29uc3RfMVsnTFFDb2xsaWRlU2hhcGUnXVsnUmVjdCddKXtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109W107dmFyIF8weDUzMjM1ZT1fMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsndG9wX2xlZnQnXSgpO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7XzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydib3R0b21fbGVmdCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ2JvdHRvbV9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3RvcF9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTt9ZWxzZSBpZihfMHhiYzNkMjJbJ19jb2xsaWRlX3NoYXBlJ109PT1scV9jb25zdF8xWydMUUNvbGxpZGVTaGFwZSddWydQb2x5Z29uJ10pe18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXT1bXTtpZihfMHhiYzNkMjJbJ25vZGUnXVsnYW5nbGUnXT09MHgwKXtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydhZGQnXShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX1lbHNle3ZhciBfMHgxYmU2MzA9bWlzY1snZGVncmVlc1RvUmFkaWFucyddKF8weGJjM2QyMlsnbm9kZSddWydhbmdsZSddKTt2YXIgXzB4MWEwNTk4PU1hdGhbJ3NpbiddKF8weDFiZTYzMCk7dmFyIF8weDI1OTY3ZT1NYXRoWydjb3MnXShfMHgxYmU2MzApO3ZhciBfMHhmYmYyNDE9ZnVuY3Rpb24oXzB4NWVkM2E1KXtyZXR1cm4gbmV3IFZlYzIoXzB4NWVkM2E1Wyd4J10qXzB4MjU5NjdlLV8weDVlZDNhNVsneSddKl8weDFhMDU5OCtfMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsneCddLF8weDVlZDNhNVsneCddKl8weDFhMDU5OCtfMHg1ZWQzYTVbJ3knXSpfMHgyNTk2N2UrXzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3knXSk7fTtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGZiZjI0MShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX19fTtfMHg5YmY2MGVbJ191cGRhdGVXb3JsZE1hdHJpeCddPWZ1bmN0aW9uKF8weDI5NmExYSl7aWYoXzB4Mjk2YTFhWydfcGFyZW50J10pe18weDliZjYwZVsnX3VwZGF0ZVdvcmxkTWF0cml4J10oXzB4Mjk2YTFhWydfcGFyZW50J10pO31pZihfMHgyOTZhMWFbJ193b3JsZE1hdERpcnR5J10pe3RoaXNbJ3RtcF9ib29sJ109ISFbXTtfMHgyOTZhMWFbJ19jYWxjdWxXb3JsZE1hdHJpeCddKCk7dmFyIF8weDNkMWNhMj1fMHgyOTZhMWFbJ19jaGlsZHJlbiddO2Zvcih2YXIgXzB4MmI0ZWM5PTB4MCxfMHg2MDAzNjc9XzB4M2QxY2EyWydsZW5ndGgnXTtfMHgyYjRlYzk8XzB4NjAwMzY3O18weDJiNGVjOSsrKXtfMHgzZDFjYTJbXzB4MmI0ZWM5XVsnX3dvcmxkTWF0RGlydHknXT0hIVtdO319fTtfMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXT1mdW5jdGlvbihfMHg1ZDY4YjUsXzB4MmM0ZGQwLF8weDE5MGY4OCl7dmFyIF8weDUyM2RjOD1fMHgxOTBmODhbJ20nXTtfMHg1ZDY4YjVbJ3gnXT1fMHg1MjNkYzhbMHgwXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg0XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhjXTtfMHg1ZDY4YjVbJ3knXT1fMHg1MjNkYzhbMHgxXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg1XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhkXTtyZXR1cm4gXzB4NWQ2OGI1O307XzB4OWJmNjBlWyd1cGRhdGVfd29ybGRfcmVjdCddPWZ1bmN0aW9uKF8weDI2NGI3Mil7aWYoIV8weDI2NGI3Mlsnd29ybGRfcmVjdCddKXtyZXR1cm47fXRoaXNbJ3RtcF9ib29sJ109IVtdO3RoaXNbJ191cGRhdGVXb3JsZE1hdHJpeCddKF8weDI2NGI3Mlsnbm9kZSddKTtpZih0aGlzWyd0bXBfYm9vbCddKXtfMHgyNjRiNzJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109dW5kZWZpbmVkO31fMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXShfMHgyNjRiNzJbJ3dvcmxkX3JlY3QnXSxfMHgyNjRiNzJbJ19vZmZzZXQnXSxfMHgyNjRiNzJbJ25vZGUnXVsnX3dvcmxkTWF0cml4J10pO307XzB4OWJmNjBlWyd1cGRhdGVfY29sbGlkZV9sb2dpYyddPWZ1bmN0aW9uKF8weDFiOWEyYyl7aWYoXzB4MWI5YTJjWydpc19vcGVuX2Z1bmMnXSl7Zm9yKHZhciBfMHgxZDhkOGMgaW4gXzB4MWI5YTJjWydjb2xsaWRlX21hcCddKXt2YXIgXzB4MTQwNmI1PV8weDFiOWEyY1snY29sbGlkZV9tYXAnXVtfMHgxZDhkOGNdO2lmKF8weDE0MDZiNVsnc3RhdHVzJ109PT0weDEpe18weDE0MDZiNVsnc3RhdHVzJ109MHgyO31lbHNle2RlbGV0ZSBfMHgxYjlhMmNbJ2NvbGxpZGVfbWFwJ11bXzB4MWQ4ZDhjXTtfMHgxYjlhMmNbJ29uX2V4aXQnXShfMHgxNDA2YjVbJ2NvbGxpZGUnXSk7fX19XzB4MWI5YTJjWyd1cGRhdGVfbHFfY29sbGlkZSddKCk7fTtfMHg5YmY2MGVbJ2NvbGxpZGVfb3RoZXInXT1mdW5jdGlvbihfMHg2NGYwNjQsXzB4M2JlY2RkKXtpZihfMHg2NGYwNjRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NDViMDI5PV8weDY0ZjA2NFsnY29sbGlkZV9tYXAnXVtfMHgzYmVjZGRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NDViMDI5KXtfMHg0NWIwMjlbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHg2NGYwNjRbJ2NvbGxpZGVfbWFwJ11bXzB4M2JlY2RkWydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4M2JlY2RkLCdzdGF0dXMnOjB4MX07XzB4NjRmMDY0Wydvbl9lbnRlciddKF8weDNiZWNkZCk7fX1pZihfMHgzYmVjZGRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NTQ0YTVjPV8weDNiZWNkZFsnY29sbGlkZV9tYXAnXVtfMHg2NGYwNjRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NTQ0YTVjKXtfMHg1NDRhNWNbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHgzYmVjZGRbJ2NvbGxpZGVfbWFwJ11bXzB4NjRmMDY0Wydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4NjRmMDY0LCdzdGF0dXMnOjB4MX07XzB4M2JlY2RkWydvbl9lbnRlciddKF8weDY0ZjA2NCk7fX1fMHg2NGYwNjRbJ29uX2NvbGxpZGUnXShfMHgzYmVjZGQpO18weDNiZWNkZFsnb25fY29sbGlkZSddKF8weDY0ZjA2NCk7fTtfMHg5YmY2MGVbJ2FkZF9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4MmU4OTdkKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDJlODk3ZCk7dGhpc1snY29sbGlkZV9hcnInXVsncHVzaCddKF8weDJlODk3ZCk7fTtfMHg5YmY2MGVbJ3JlbW92ZV9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4NDE2Mjk4KXtmb3IodmFyIF8weDEyMDU5YT10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTIwNTlhPj0weDA7XzB4MTIwNTlhLS0pe2lmKHRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTIwNTlhXVsnY29sbGlkZV9pZCddPT09XzB4NDE2Mjk4Wydjb2xsaWRlX2lkJ10pe3RoaXNbJ2NvbGxpZGVfYXJyJ11bJ3NwbGljZSddKF8weDEyMDU5YSwweDEpO2JyZWFrO319fTtfMHg5YmY2MGVbJ2xpbmVfcG9pbnQnXT1mdW5jdGlvbihfMHg0YTczNzAsXzB4MjRjN2ExLF8weDRlMThlZSxfMHgxMjIzNTYsXzB4MmJkNzEzLF8weDJkM2I2ZSl7cmV0dXJuIE1hdGhbJ2FicyddKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4NGUxOGVlLF8weDEyMjM1NiktKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4MmJkNzEzLF8weDJkM2I2ZSkrdGhpc1snZGlzdGFuY2VTcXVhcmVkJ10oXzB4NGUxOGVlLF8weDEyMjM1NixfMHgyYmQ3MTMsXzB4MmQzYjZlKSkpPD0weDE7fTtfMHg5YmY2MGVbJ2Rpc3RhbmNlU3F1YXJlZCddPWZ1bmN0aW9uKF8weDVjY2EzYixfMHgxMWI2NzgsXzB4MWYwYjYzLF8weDUyY2VjNyl7cmV0dXJuIE1hdGhbJ3NxcnQnXShNYXRoWydwb3cnXShfMHg1Y2NhM2ItXzB4MWYwYjYzLDB4MikrTWF0aFsncG93J10oXzB4MTFiNjc4LV8weDUyY2VjNywweDIpKTt9O18weDliZjYwZVsncG9seWdvbl9wb2ludCddPWZ1bmN0aW9uKF8weDQyMzZjMCxfMHgxMmU4MjUsXzB4NWNkNGRkKXt2YXIgXzB4YmQ2ZmQwPV8weDQyMzZjMFsnbGVuZ3RoJ107dmFyIF8weDFmNGZiYz0hW107dmFyIF8weDI2N2I1OCxfMHg0YTFiYWU7Zm9yKF8weDI2N2I1OD0weDAsXzB4NGExYmFlPV8weGJkNmZkMC0weDI7XzB4MjY3YjU4PF8weGJkNmZkMDtfMHgyNjdiNTgrPTB4Mil7aWYoXzB4NDIzNmMwW18weDI2N2I1OCsweDFdPl8weDVjZDRkZCE9PV8weDQyMzZjMFtfMHg0YTFiYWUrMHgxXT5fMHg1Y2Q0ZGQmJl8weDEyZTgyNTwoXzB4NDIzNmMwW18weDRhMWJhZV0tXzB4NDIzNmMwW18weDI2N2I1OF0pKihfMHg1Y2Q0ZGQtXzB4NDIzNmMwW18weDI2N2I1OCsweDFdKS8oXzB4NDIzNmMwW18weDRhMWJhZSsweDFdLV8weDQyMzZjMFtfMHgyNjdiNTgrMHgxXSkrXzB4NDIzNmMwW18weDI2N2I1OF0pe18weDFmNGZiYz0hXzB4MWY0ZmJjO31fMHg0YTFiYWU9XzB4MjY3YjU4O31pZihfMHgxZjRmYmMpe3JldHVybiEhW107fWZvcihfMHgyNjdiNTg9MHgwO18weDI2N2I1ODxfMHhiZDZmZDA7XzB4MjY3YjU4Kz0weDIpe3ZhciBfMHg1NzRlM2U9XzB4NDIzNmMwW18weDI2N2I1OF07dmFyIF8weDRiOTJkOD1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4MV07dmFyIF8weDVkMzlkND12b2lkIDB4MCxfMHgxMjRlOWM9dm9pZCAweDA7aWYoXzB4MjY3YjU4PT09XzB4YmQ2ZmQwLTB4Mil7XzB4NWQzOWQ0PV8weDQyMzZjMFsweDBdO18weDEyNGU5Yz1fMHg0MjM2YzBbMHgxXTt9ZWxzZXtfMHg1ZDM5ZDQ9XzB4NDIzNmMwW18weDI2N2I1OCsweDJdO18weDEyNGU5Yz1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4M107fWlmKHRoaXNbJ2xpbmVfcG9pbnQnXShfMHg1NzRlM2UsXzB4NGI5MmQ4LF8weDVkMzlkNCxfMHgxMjRlOWMsXzB4MTJlODI1LF8weDVjZDRkZCkpe3JldHVybiEhW107fX1yZXR1cm4hW107fTtfMHg5YmY2MGVbJ3BvbHlnb25fY2lyY2xlJ109ZnVuY3Rpb24oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKXtpZih0aGlzWydwb2x5Z29uX3BvaW50J10oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgpKXtyZXR1cm4hIVtdO312YXIgXzB4MTk3NjU3PV8weDM4NzE4OFsnbGVuZ3RoJ107Zm9yKHZhciBfMHgzZGY2ZmM9MHgwO18weDNkZjZmYzxfMHgxOTc2NTctMHgyO18weDNkZjZmYys9MHgyKXtpZih0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFtfMHgzZGY2ZmNdLF8weDM4NzE4OFtfMHgzZGY2ZmMrMHgxXSxfMHgzODcxODhbXzB4M2RmNmZjKzB4Ml0sXzB4Mzg3MTg4W18weDNkZjZmYysweDNdLF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKSl7cmV0dXJuISFbXTt9fXJldHVybiB0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFsweDBdLF8weDM4NzE4OFsweDFdLF8weDM4NzE4OFtfMHgxOTc2NTctMHgyXSxfMHgzODcxODhbXzB4MTk3NjU3LTB4MV0sXzB4NjExMDEyLF8weDM3MDdlOCxfMHgyNDMyZTEpO307XzB4OWJmNjBlWydsaW5lX2NpcmNsZSddPWZ1bmN0aW9uKF8weDEyYmJhMSxfMHgzMjEyOTAsXzB4MTM2NzAzLF8weDUzN2UwZSxfMHgzYWQxNDcsXzB4NTU5YTdkLF8weDQ4YTgzNCl7dmFyIF8weDNiZmQ5ND1bXzB4M2FkMTQ3LV8weDEyYmJhMSxfMHg1NTlhN2QtXzB4MzIxMjkwXTt2YXIgXzB4NmRhNjIwPVtfMHgxMzY3MDMtXzB4MTJiYmExLF8weDUzN2UwZS1fMHgzMjEyOTBdO3ZhciBfMHgxZmVkYTQ9dGhpc1snZG90J10oXzB4NmRhNjIwLF8weDZkYTYyMCk7dmFyIF8weDUzOTEzZD10aGlzWydkb3QnXShfMHgzYmZkOTQsXzB4NmRhNjIwKTt2YXIgXzB4MzY3NGY1PV8weDUzOTEzZC9fMHgxZmVkYTQ7XzB4MzY3NGY1PV8weDM2NzRmNTwweDA/MHgwOl8weDM2NzRmNTtfMHgzNjc0ZjU9XzB4MzY3NGY1PjB4MT8weDE6XzB4MzY3NGY1O3ZhciBfMHgxNTAwMzM9W18weDZkYTYyMFsweDBdKl8weDM2NzRmNStfMHgxMmJiYTEtXzB4M2FkMTQ3LF8weDZkYTYyMFsweDFdKl8weDM2NzRmNStfMHgzMjEyOTAtXzB4NTU5YTdkXTt2YXIgXzB4NDQyYWYxPXRoaXNbJ2RvdCddKF8weDE1MDAzMyxfMHgxNTAwMzMpO3JldHVybiBfMHg0NDJhZjE8PV8weDQ4YTgzNCpfMHg0OGE4MzQ7fTtfMHg5YmY2MGVbJ2RvdCddPWZ1bmN0aW9uKF8weDFlNzlhNSxfMHgxNzljOTIpe3JldHVybiBfMHgxZTc5YTVbMHgwXSpfMHgxNzljOTJbMHgwXStfMHgxZTc5YTVbMHgxXSpfMHgxNzljOTJbMHgxXTt9O18weDliZjYwZVsndXBkYXRlX2xvZ2ljJ109ZnVuY3Rpb24oXzB4YjE3Mjc4KXtpZighdGhpc1snaXNfZW5hYmxlJ10pe3JldHVybjt9aWYobHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ3N3aXRjaF9xdWFkX3RyZWUnXSl7dGhpc1sncXVhZF90cmVlJ11bJ2NsZWFyJ10oKTtmb3IodmFyIF8weDEzMzdiZD10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTMzN2JkPj0weDA7XzB4MTMzN2JkLS0pe3ZhciBfMHgyMDE4MWU9dGhpc1snY29sbGlkZV9hcnInXVtfMHgxMzM3YmRdO2lmKCFfMHgyMDE4MWUpe3JldHVybjt9aWYoIV8weDIwMTgxZVsnaXNWYWxpZCddKXt0aGlzWydjb2xsaWRlX2FyciddWydzcGxpY2UnXShfMHgxMzM3YmQsMHgxKTtjb250aW51ZTt9dGhpc1sndXBkYXRlX2NvbGxpZGVfbG9naWMnXShfMHgyMDE4MWUpO2lmKF8weDIwMTgxZVsnaXNfZW5hYmxlJ10pe3RoaXNbJ3VwZGF0ZV93b3JsZF9yZWN0J10oXzB4MjAxODFlKTt0aGlzWydxdWFkX3RyZWUnXVsnaW5zZXJ0J10oXzB4MjAxODFlKTt9fUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddPVtdO3RoaXNbJ3F1YWRfdHJlZSddWydnZXRfYWxsX2FyZWEnXSgpO2Zvcih2YXIgXzB4NGFmNmZmPTB4MDtfMHg0YWY2ZmY8TFFRdWFkVHJlZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDRhZjZmZisrKXt2YXIgXzB4NWNhYzcxPUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddW18weDRhZjZmZl07Zm9yKHZhciBfMHgxMzM3YmQ9MHgwO18weDEzMzdiZDxfMHg1Y2FjNzFbJ2xlbmd0aCddO18weDEzMzdiZCsrKXt2YXIgXzB4NTQ5YTY2PV8weDVjYWM3MVtfMHgxMzM3YmRdO2Zvcih2YXIgXzB4NTc5M2ZmPV8weDEzMzdiZCsweDE7XzB4NTc5M2ZmPF8weDVjYWM3MVsnbGVuZ3RoJ107XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSYmXzB4NTQ5YTY2IT09XzB4NDc0MGZlKXtpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSl7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWydyYWRpdXMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlX3JlY3QnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGUnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09MHgzJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PTB4Mil7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKHRoaXNbJ3BvbHlnb25fY2lyY2xlJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd4J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J11bJ3knXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDMpe2lmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneCddLF8weDU0OWE2Nlsnd29ybGRfcmVjdCddWyd5J10sXzB4NTQ5YTY2WydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2V7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX3BvbHlnb24nXShfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319fX19fX1lbHNle3ZhciBfMHg1Y2FjNzE9W107Zm9yKHZhciBfMHgxMzM3YmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDEzMzdiZD49MHgwO18weDEzMzdiZC0tKXt2YXIgXzB4MjAxODFlPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTMzN2JkXTtpZighXzB4MjAxODFlKXtyZXR1cm47fWlmKCFfMHgyMDE4MWVbJ2lzVmFsaWQnXSl7dGhpc1snY29sbGlkZV9hcnInXVsnc3BsaWNlJ10oXzB4MTMzN2JkLDB4MSk7Y29udGludWU7fXRoaXNbJ3VwZGF0ZV9jb2xsaWRlX2xvZ2ljJ10oXzB4MjAxODFlKTtpZihfMHgyMDE4MWVbJ2lzX2VuYWJsZSddKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDIwMTgxZSk7XzB4NWNhYzcxWydwdXNoJ10oXzB4MjAxODFlKTt9fXZhciBfMHg0ZjMzMzc9XzB4NWNhYzcxWydsZW5ndGgnXTtmb3IodmFyIF8weDEzMzdiZD0weDA7XzB4MTMzN2JkPF8weDRmMzMzNztfMHgxMzM3YmQrKyl7dmFyIF8weDU0OWE2Nj1fMHg1Y2FjNzFbXzB4MTMzN2JkXTtmb3IodmFyIF8weDU3OTNmZj1fMHgxMzM3YmQrMHgxO18weDU3OTNmZjxfMHg0ZjMzMzc7XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSl7aWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgxJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfcmVjdCddKF8weDU0OWE2Nlsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGVfcmVjdCddKF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDIpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlJ10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MyYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDIpe2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXVsneCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd5J10sXzB4NDc0MGZlWydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09MHgzKXtpZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9jaXJjbGUnXShfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J11bJ3gnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneSddLF8weDU0OWE2NlsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNle2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9wb2x5Z29uJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fX19fX19O18weDliZjYwZVsncG9seWdvbl9wb2x5Z29uJ109ZnVuY3Rpb24oXzB4MWExNTJjLF8weDQ4NGNkMil7dmFyIF8weDE3M2Y2MT1fMHgxYTE1MmM7dmFyIF8weDNmY2NkYT1fMHg0ODRjZDI7dmFyIF8weDIyZWVmOT1bXzB4MTczZjYxLF8weDNmY2NkYV07dmFyIF8weDM2NjJlZCxfMHgxMGJiZGIsXzB4MjkxMzNjLF8weDVjZTE5MixfMHg4MDExYzcsXzB4ZGZlOGJjO2Zvcih2YXIgXzB4M2FlZThjPTB4MDtfMHgzYWVlOGM8XzB4MjJlZWY5WydsZW5ndGgnXTtfMHgzYWVlOGMrKyl7dmFyIF8weDFjZThmZD1fMHgyMmVlZjlbXzB4M2FlZThjXTtmb3IodmFyIF8weDJhYjJmZj0weDA7XzB4MmFiMmZmPF8weDFjZThmZFsnbGVuZ3RoJ107XzB4MmFiMmZmKz0weDIpe3ZhciBfMHgzNzNiZDI9KF8weDJhYjJmZisweDIpJV8weDFjZThmZFsnbGVuZ3RoJ107dmFyIF8weDRiNjRhND17J3gnOl8weDFjZThmZFtfMHgzNzNiZDIrMHgxXS1fMHgxY2U4ZmRbXzB4MmFiMmZmKzB4MV0sJ3knOl8weDFjZThmZFtfMHgyYWIyZmZdLV8weDFjZThmZFtfMHgzNzNiZDJdfTtfMHgzNjYyZWQ9bnVsbDtfMHgxMGJiZGI9bnVsbDtmb3IoXzB4ZGZlOGJjPTB4MDtfMHhkZmU4YmM8XzB4MTczZjYxWydsZW5ndGgnXTtfMHhkZmU4YmMrPTB4Mil7XzB4MjkxMzNjPV8weDRiNjRhNFsneCddKl8weDE3M2Y2MVtfMHhkZmU4YmNdK18weDRiNjRhNFsneSddKl8weDE3M2Y2MVtfMHhkZmU4YmMrMHgxXTtpZihfMHgzNjYyZWQ9PT1udWxsfHxfMHgyOTEzM2M8XzB4MzY2MmVkKXtfMHgzNjYyZWQ9XzB4MjkxMzNjO31pZihfMHgxMGJiZGI9PT1udWxsfHxfMHgyOTEzM2M+XzB4MTBiYmRiKXtfMHgxMGJiZGI9XzB4MjkxMzNjO319XzB4NWNlMTkyPW51bGw7XzB4ODAxMWM3PW51bGw7Zm9yKF8weGRmZThiYz0weDA7XzB4ZGZlOGJjPF8weDNmY2NkYVsnbGVuZ3RoJ107XzB4ZGZlOGJjKz0weDIpe18weDI5MTMzYz1fMHg0YjY0YTRbJ3gnXSpfMHgzZmNjZGFbXzB4ZGZlOGJjXStfMHg0YjY0YTRbJ3knXSpfMHgzZmNjZGFbXzB4ZGZlOGJjKzB4MV07aWYoXzB4NWNlMTkyPT09bnVsbHx8XzB4MjkxMzNjPF8weDVjZTE5Mil7XzB4NWNlMTkyPV8weDI5MTMzYzt9aWYoXzB4ODAxMWM3PT09bnVsbHx8XzB4MjkxMzNjPl8weDgwMTFjNyl7XzB4ODAxMWM3PV8weDI5MTMzYzt9fWlmKF8weDEwYmJkYjxfMHg1Y2UxOTJ8fF8weDgwMTFjNzxfMHgzNjYyZWQpe3JldHVybiFbXTt9fX1yZXR1cm4hIVtdO307XzB4OWJmNjBlWydnZXRfZ3JvdXBfYnlfaW5kZXgnXT1mdW5jdGlvbihfMHg0MGUyZjEpe2Zvcih2YXIgXzB4ZmNhOGQxIGluIGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddKXt2YXIgXzB4NWFjODE1PWxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddW18weGZjYThkMV07aWYoXzB4NWFjODE1WydpbmRleCddPT09XzB4NDBlMmYxKXtyZXR1cm4gXzB4NWFjODE1O319cmV0dXJuIHVuZGVmaW5lZDt9O18weDliZjYwZVsnZ2V0X2luZm9fYnlfaWQnXT1mdW5jdGlvbihfMHhmZmJjZGMpe3ZhciBfMHgzMDgzMjU7Zm9yKHZhciBfMHgxNDlmNWUgaW4gbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ10pe3ZhciBfMHgxMjE1MGY9bHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ11bXzB4MTQ5ZjVlXTtpZihfMHgxMjE1MGZbJ2lkJ109PT1fMHhmZmJjZGMpe3JldHVybiBfMHgxMjE1MGY7fWlmKCFfMHgzMDgzMjUpe18weDMwODMyNT1fMHgxMjE1MGY7fX1yZXR1cm4gXzB4MzA4MzI1O307XzB4OWJmNjBlWydmaW5kX25lYXJlc3RfY29sbGlkZSddPWZ1bmN0aW9uKF8weDMwODA4Mil7dmFyIF8weDMxMzFjNT1bXTtmb3IodmFyIF8weGMzYzM4MD1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddLTB4MTtfMHhjM2MzODA+PTB4MDtfMHhjM2MzODAtLSl7dmFyIF8weDU4NWY0Zj1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bXzB4YzNjMzgwXTtpZihfMHgzMDgwODI9PT1fMHg1ODVmNGZ8fCFfMHg1ODVmNGZbJ2lzX2VuYWJsZSddKXtjb250aW51ZTt9aWYoXzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe2lmKF8weDU4NWY0ZlsnY29sbGlkZV9jYXRlZ29yeSddPT09XzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe18weDMxMzFjNVsncHVzaCddKF8weDU4NWY0Zik7fX1lbHNlIGlmKChfMHg1ODVmNGZbJ2NvbGxpZGVfY2F0ZWdvcnknXSZfMHgzMDgwODJbJ2NvbGxpZGVfbWFzayddKSE9PTB4MCl7XzB4MzEzMWM1WydwdXNoJ10oXzB4NTg1ZjRmKTt9fV8weDMxMzFjNVsnc29ydCddKGZ1bmN0aW9uKF8weDNkZGI4MyxfMHgzY2NmNzQpe3JldHVybiBfMHgzMDgwODJbJ3dvcmxkX3JlY3QnXVsnc3ViJ10oXzB4M2RkYjgzWyd3b3JsZF9yZWN0J10pWydtYWdTcXInXSgpLV8weDMwODA4Mlsnd29ybGRfcmVjdCddWydzdWInXShfMHgzY2NmNzRbJ3dvcmxkX3JlY3QnXSlbJ21hZ1NxciddKCk7fSk7cmV0dXJuIF8weDMxMzFjNVsweDBdO307XzB4OWJmNjBlWydjbGVhciddPWZ1bmN0aW9uKF8weDRjZjZhNil7aWYoXzB4NGNmNmE2PT09dm9pZCAweDApe18weDRjZjZhNj0hW107fWlmKF8weDRjZjZhNil7Zm9yKHZhciBfMHg1MzdiMmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDUzN2IyZD49MHgwO18weDUzN2IyZC0tKXt2YXIgXzB4MTk3ZDJmPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NTM3YjJkXTtpZihfMHgxOTdkMmZbJ2lzVmFsaWQnXSl7XzB4MTk3ZDJmWydub2RlJ11bJ2Rlc3Ryb3knXSgpO319fXRoaXNbJ2NvbGxpZGVfYXJyJ109W107fTtfMHg5YmY2MGVbJ2NoZWNrX2NvbGxpZGUnXT1mdW5jdGlvbihfMHgxODNkZTIpe3ZhciBfMHgyNWNlYTE9W107dmFyIF8weGE3YjA1O2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydzd2l0Y2hfcXVhZF90cmVlJ10pe0xRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXT1bXTt0aGlzWydxdWFkX3RyZWUnXVsncmV0cmlldmUnXShfMHgxODNkZTIpO18weGE3YjA1PUxRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXTt9ZWxzZXtfMHhhN2IwNT10aGlzWydjb2xsaWRlX2FyciddO31mb3IodmFyIF8weDM4MWFmMj0weDA7XzB4MzgxYWYyPF8weGE3YjA1WydsZW5ndGgnXTtfMHgzODFhZjIrKyl7dmFyIF8weDVkYjdiMz1fMHhhN2IwNVtfMHgzODFhZjJdO2lmKF8weDE4M2RlMj09PV8weDVkYjdiMyl7Y29udGludWU7fWlmKF8weDE4M2RlMlsnY29sbGlkZV9jYXRlZ29yeSddJl8weDVkYjdiM1snY29sbGlkZV9tYXNrJ10pe2lmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX3JlY3QnXShfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSxfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4MTgzZGUyWyd3b3JsZF9yZWN0J10sXzB4MTgzZGUyWydyYWRpdXMnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZSddKF8weDE4M2RlMlsnd29ybGRfcmVjdCddLF8weDE4M2RlMlsncmFkaXVzJ10sXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKHRoaXNbJ3BvbHlnb25fcG9seWdvbiddKF8weDE4M2RlMixfMHg1ZGI3YjMpKXtfMHgyNWNlYTFbJ3B1c2gnXShfMHg1ZGI3YjMpO319fXJldHVybiBfMHgyNWNlYTE7fTtfMHg5YmY2MGVbJ2lzX2VuYWJsZSddPSFbXTtfMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ109W107XzB4OWJmNjBlWydxdWFkX3RyZWUnXT1uZXcgTFFRdWFkVHJlZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnYWN0aXZlX2FyZWFfeCddLGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydhY3RpdmVfYXJlYV95J10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX3dpZHRoJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX2hlaWdodCddKSxscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnbWF4X25vZGVfbGVuJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ21heF9ub2RlX2xldmVsJ10pO3JldHVybiBfMHg5YmY2MGU7fSgpO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPUxRQ29sbGlkZVN5c3RlbTt2YXIgQXV0b1J1bj1mdW5jdGlvbigpe2Z1bmN0aW9uIF8weGY1YjA4Nygpe3RoaXNbJ2ZsYWcnXT0hIVtdO31fMHhmNWIwODdbJ3Byb3RvdHlwZSddWyd1cGRhdGUnXT1mdW5jdGlvbihfMHgzNjVlNTUpe2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydwZXJfZnJhbWUnXT09PTB4M2Mpe0xRQ29sbGlkZVN5c3RlbVsndXBkYXRlX2xvZ2ljJ10oXzB4MzY1ZTU1KTt9ZWxzZXtpZih0aGlzWydmbGFnJ10pe3RoaXNbJ2ZsYWcnXT0hW107TFFDb2xsaWRlU3lzdGVtWyd1cGRhdGVfbG9naWMnXShfMHgzNjVlNTUpO31lbHNle3RoaXNbJ2ZsYWcnXT0hIVtdO319fTtyZXR1cm4gXzB4ZjViMDg3O30oKTtnYW1lWydvbiddKGdhbWVbJ0VWRU5UX0dBTUVfSU5JVEVEJ10sZnVuY3Rpb24oKXtpZihscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnc3dpdGNoX2F1dG9fcnVuJ10mJiFDQ19FRElUT1Ipe3ZhciBfMHgyODdmODY9bmV3IEF1dG9SdW4oKTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnZW5hYmxlRm9yVGFyZ2V0J10oXzB4Mjg3Zjg2KTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnc2NoZWR1bGVVcGRhdGUnXShfMHgyODdmODYsU2NoZWR1bGVyWydQUklPUklUWV9TWVNURU0nXSwhW10pO319KTsiXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9QUk9QX0lORk8gPSBbe1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogNjAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0xNi40NDIsXCJ5XCI6IDMwLFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzQuMzYyLFwieVwiOiAxMy4yNDYsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNyxcInlcIjogMTIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyNixcInlcIjogNjMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNS43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTk0Ljc5MixcInlcIjogMjEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjAsXCJ5XCI6IDEzLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MCxcInlcIjogMTI1LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTIuNzkyLFwieVwiOiA5Mi42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0yNy43OTIsXCJ5XCI6IDIzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAyNCxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTg1LFwieVwiOiA2MyxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMzcuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMTU0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjIsXCJ5XCI6IDE2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMTcuNzkyLFwieVwiOiAxNjYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzMy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xNCxcInlcIjogMzcsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTEyMyxcInlcIjogMTI3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiA5OS42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC05Ny43OTIsXCJ5XCI6IDI3LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTI3LFwieVwiOiAxOSxcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtNjIsXCJ5XCI6IDE4MSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTI0Ljc5MixcInlcIjogMjc1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMxLjc5MixcInlcIjogMzUuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtNyxcInlcIjogMzksXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MSxcInlcIjogMTgwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAxNjMuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjUsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4MixcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTMuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yMyxcInlcIjogMTQsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTE4NixcInlcIjogNjEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0zNy43OTIsXCJ5XCI6IDM3LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM2Ljc5MixcInlcIjogMjYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMjQsXCJ5XCI6IDE3LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc3LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA5My4yMDgsXCJ5XCI6IDI3Ni42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMy43OTIsXCJ5XCI6IDM0LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogMyxcInlcIjogMzEsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogNTgsXCJ5XCI6IDE3OSxcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogMjA1LjIyNSxcInlcIjogMTU0LjAzNCxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5LjY0MixcInlcIjogMjUuNjkxLFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiA3LjIxOCxcInlcIjogMjkuNzY1LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC01NyxcInlcIjogMTgyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zNS43OTIsXCJ5XCI6IDMzLjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTE0LFwieVwiOiAxMixcInpcIjogMH19LHtcInBvczFcIjoge1wieFwiOiAtMTgwLFwieVwiOiA2MixcInpcIjogMH0sXCJwb3MyXCI6IHtcInhcIjogLTM1Ljc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMjcxLjc5MixcInlcIjogMjQuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTcsXCJ5XCI6IDIwLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MixcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiA4Ny4yMDgsXCJ5XCI6IDE2NC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0zMS43OTIsXCJ5XCI6IDM1LjY3NSxcInpcIjogMH0sXCJwb3M0XCI6IHtcInhcIjogLTYsXCJ5XCI6IDI0LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xNzYsXCJ5XCI6IDYwLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMzMuNzkyLFwieVwiOiAzOC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTQuNzkyLFwieVwiOiAyOS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yOSxcInlcIjogMTYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODEsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU1LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMwLjc5MixcInlcIjogMzYuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDMyLFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02MyxcInlcIjogMTc4LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjEuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzEuNzkyLFwieVwiOiAzNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xMixcInlcIjogMzIsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTYwLFwieVwiOiAxODMsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDg4LjIwOCxcInlcIjogMTYyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTI5Ljc5MixcInlcIjogNDEuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC02NCxcInlcIjogNTgsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IC0yNi43OTIsXCJ5XCI6IDMyLjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTM0Ljc5MixcInlcIjogMjMuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTIsXCJ5XCI6IDE4LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC0xODQsXCJ5XCI6IDYyLFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAzNC42NzUsXCJ6XCI6IDB9LFwicG9zM1wiOiB7XCJ4XCI6IC0xNTUuNzkyLFwieVwiOiAyNS42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0xOCxcInlcIjogMjYsXCJ6XCI6IDB9fSx7XCJwb3MxXCI6IHtcInhcIjogLTU3LFwieVwiOiAxOTAsXCJ6XCI6IDB9LFwicG9zMlwiOiB7XCJ4XCI6IDk1LjIwOCxcInlcIjogMTU4LjY3NSxcInpcIjogMH0sXCJwb3MzXCI6IHtcInhcIjogLTMzLjc5MixcInlcIjogMjkuNjc1LFwielwiOiAwfSxcInBvczRcIjoge1wieFwiOiAtMTgsXCJ5XCI6IDI2LFwielwiOiAwfX0se1wicG9zMVwiOiB7XCJ4XCI6IC03MSxcInlcIjogMTg0LFwielwiOiAwfSxcInBvczJcIjoge1wieFwiOiAtMjUuNzkyLFwieVwiOiAxNTYuNjc1LFwielwiOiAwfSxcInBvczNcIjoge1wieFwiOiAtMzUuNzkyLFwieVwiOiAyNy42NzUsXCJ6XCI6IDB9LFwicG9zNFwiOiB7XCJ4XCI6IC0yNSxcInlcIjogNDAsXCJ6XCI6IDB9fV07Il19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/Barrier.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '90c37YHUUVPsY0mlNmom67u', 'Barrier');
+// Script/Barrier.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Map_1 = require("./Map");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var Block = /** @class */ (function (_super) {
+ __extends(Block, _super);
+ function Block() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ // 新增缓存变量
+ _this.selfBoxColliders = [];
+ _this.allBoxColliders = [];
+ // @property({
+ // tooltip: '碰撞形状,None就是无敌,不参与碰撞',
+ // type: cc.Enum(BlockType),
+ // // default: BlockType.Nomal,
+ // displayName: '碰撞形状'
+ // })
+ // LIFE-CYCLE CALLBACKS:
+ // @property(cc.SpriteAtlas)
+ // UI: cc.SpriteAtlas = null;
+ _this.initialTouchOffset = null;
+ _this.offsetTolerance = 100; // 偏移容忍度;
+ _this.touchPoint = null; //触摸点
+ _this.isTouch = false; //是否触摸
+ _this.posX = 0; //地图块的X坐标
+ _this.posY = 0; //地图块的Y坐标
+ _this.moveLeft = true; //是否可以左移;
+ _this.moveRight = true; //是否可以右移;
+ _this.moveUp = true; //是否可以上移;
+ _this.moveDown = true; //是否可以下移;
+ _this.moveCorner = 0; //是否碰撞角落
+ _this.moveY = 0; //是否可以上下移动;
+ _this.moveX = 0; //是否可以左右移动;
+ _this.touchPointX = 0; //触摸点X坐标;
+ _this.touchPointY = 0; //触摸点Y坐标;
+ _this.blockId = 0; //方块ID;
+ _this.level = 0; //叠加方块层数;
+ _this.pz = false;
+ return _this;
+ }
+ Block.prototype.onLoad = function () {
+ // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);
+ // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this);
+ // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this);
+ // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this);
+ this.pz = false;
+ this.stacking = cc.v2(0, 0);
+ // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider)
+ // .filter(collider => collider.tag < 4);
+ };
+ Block.prototype.start = function () {
+ };
+ Block.prototype.jsonDeepClone = function (obj) {
+ return JSON.parse(JSON.stringify(obj));
+ };
+ Block.prototype.init = function (block_Info, posX, posY, node) {
+ this.block_Info = this.jsonDeepClone(block_Info);
+ var mapInfo = Map_1.default._instance.mapInfo;
+ console.log("block_Info", this.block_Info);
+ for (var i = 0; i < mapInfo.length; i++) {
+ var blockRect = mapInfo[i].getBoundingBox();
+ // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内
+ var point = cc.v2(this.node.position.x - 5, this.node.position.y + 10);
+ if (blockRect.contains(point)) {
+ this.posX = mapInfo[i].getComponent("MapBlock").posX;
+ this.posY = mapInfo[i].getComponent("MapBlock").posY;
+ this.level = 50 + this.posX - this.posY * 3;
+ this.node.zIndex = this.level;
+ this.node.x = mapInfo[i].x + 65;
+ this.node.y = mapInfo[i].y - 60;
+ i = 10000;
+ break;
+ }
+ }
+ };
+ Block = __decorate([
+ ccclass
+ ], Block);
+ return Block;
+}(cc.Component));
+exports.default = Block;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQTBGQztRQXhGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVyxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3ZDLFdBQUssR0FBVyxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3ZDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFvRHhCLENBQUM7SUExQ0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLCtDQUErQztZQUMvQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1lBQ3RFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNWLE1BQU07YUFDVDtTQUNKO0lBRUwsQ0FBQztJQXhGZ0IsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQTBGekI7SUFBRCxZQUFDO0NBMUZELEFBMEZDLENBMUZrQyxFQUFFLENBQUMsU0FBUyxHQTBGOUM7a0JBMUZvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbGxpc2lvbkRldGVjdGlvbiBmcm9tIFwiLi9Db2xsaXNpb25EZXRlY3Rpb25cIjtcclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuL01hcFwiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2NrczogYW55OyAgICAgICAvL+aJgOacieeahOaWueWdlyznlKjkuo7orqHnrpdwb3NYLHBvc1nmtojpmaRcclxuICAgIHRvdWNoUG9pbnQ6IGNjLlZlYzIgPSBudWxsOyAgICAgLy/op6bmkbjngrlcclxuICAgIGlzVG91Y2g6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAgLy/mmK/lkKbop6bmkbhcclxuICAgIHBvc1g6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRY5Z2Q5qCHXHJcbiAgICBwb3NZOiBudW1iZXIgPSAwOyAgICAgICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qEWeWdkOagh1xyXG4gICAgbW92ZUxlZnQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5bem56e7O1xyXG4gICAgbW92ZVJpZ2h0OiBib29sZWFuID0gdHJ1ZTsgICAgIC8v5piv5ZCm5Y+v5Lul5Y+z56e7O1xyXG4gICAgbW92ZVVwOiBib29sZWFuID0gdHJ1ZTsgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK56e7O1xyXG4gICAgbW92ZURvd246IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5LiL56e7O1xyXG4gICAgbW92ZUNvcm5lcjogbnVtYmVyID0gMDsgICAgICAgIC8v5piv5ZCm56Kw5pKe6KeS6JC9XHJcbiAgICBtb3ZlWTogbnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrkuIvnp7vliqg7XHJcbiAgICBtb3ZlWDogbnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86IGFueTtcclxuICAgIF90b3VjaExpc3RlbmVyOiBhbnk7XHJcbiAgICByZWxhdGl2ZV9Qb3NpdGlvbjogY2MuVmVjMjsgIC8v54K55Ye75ZKM5pa55Z2X55u45a+55L2N572uXHJcbiAgICBwcml2YXRlIF9ldmVudE1hbmFnZXI6IGFueTtcclxuICAgIGhpdDogY2MuTm9kZTtcclxuXHJcblxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfU1RBUlQsIHRoaXMudG91Y2hTdGFydCwgdGhpcyk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX01PVkUsIHRoaXMudG91Y2hNb3ZlLCB0aGlzKTsgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsIHRoaXMudG91Y2hFbmQsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICB0aGlzLnB6ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFja2luZyA9IGNjLnYyKDAsIDApO1xyXG4gICAgICAgIC8vIHRoaXMuc2VsZkJveENvbGxpZGVycyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnRzSW5DaGlsZHJlbihjYy5Cb3hDb2xsaWRlcilcclxuICAgICAgICAvLyAuZmlsdGVyKGNvbGxpZGVyID0+IGNvbGxpZGVyLnRhZyA8IDQpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAganNvbkRlZXBDbG9uZTxUPihvYmo6IFQpOiBUIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KGJsb2NrX0luZm8sIHBvc1gsIHBvc1ksIG5vZGUpIHtcclxuICAgICAgICB0aGlzLmJsb2NrX0luZm8gPSB0aGlzLmpzb25EZWVwQ2xvbmUoYmxvY2tfSW5mbyk7XHJcbiAgICAgICAgbGV0IG1hcEluZm8gPSBNYXBDb25yb2xlci5faW5zdGFuY2UubWFwSW5mbztcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJsb2NrX0luZm9cIiwgdGhpcy5ibG9ja19JbmZvKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrUmVjdCA9IG1hcEluZm9baV0uZ2V0Qm91bmRpbmdCb3goKTtcclxuICAgICAgICAgICAgLy8g5L2/55SoIGNjLkludGVyc2VjdGlvbi5wb2ludEluUmVjdCDmlrnms5XliKTmlq3ngrnmmK/lkKblnKjnn6nlvaLojIPlm7TlhoVcclxuICAgICAgICAgICAgbGV0IHBvaW50ID0gY2MudjIodGhpcy5ub2RlLnBvc2l0aW9uLnggLSA1LCB0aGlzLm5vZGUucG9zaXRpb24ueSArIDEwKVxyXG4gICAgICAgICAgICBpZiAoYmxvY2tSZWN0LmNvbnRhaW5zKHBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NYID0gbWFwSW5mb1tpXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NZID0gbWFwSW5mb1tpXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IDUwICsgdGhpcy5wb3NYIC0gdGhpcy5wb3NZICogMztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSBtYXBJbmZvW2ldLnggKyA2NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS55ID0gbWFwSW5mb1tpXS55IC0gNjA7XHJcbiAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/SceneManager.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '80998T1AYNNRZdRxsVvXR65', 'SceneManager');
+// Script/SceneManager.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Map_1 = require("./Map");
+var MiniGameSdk_1 = require("./Sdk/MiniGameSdk");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var SceneManager = /** @class */ (function (_super) {
+ __extends(SceneManager, _super);
+ function SceneManager() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.label = null;
+ _this.text = 'hello';
+ _this.freeze = null;
+ _this.hammer = null;
+ _this.magic_wand = null;
+ _this.pause = null;
+ _this.Block_Array = [];
+ _this.Wall_Prefab = [];
+ // @property({type: [cc.ParticleSystem], tooltip:"粒子数组"})
+ // particleEffects : Array = [];
+ _this.load1 = false;
+ _this.load2 = false;
+ _this.load3 = false;
+ _this.btnName = '';
+ return _this;
+ }
+ // LIFE-CYCLE CALLBACKS:
+ SceneManager.prototype.onLoad = function () {
+ cc.game.setFrameRate(63);
+ this.changeBg();
+ setTimeout(function () {
+ cc.director.preloadScene("HomeScene", function (err) {
+ if (err) {
+ // console.error('预加载 HomeScene 场景失败:', err);
+ return;
+ }
+ // console.log('成功预加载 HomeScene 场景');
+ });
+ }, 1000);
+ };
+ SceneManager.prototype.changeBg = function () {
+ var _this = this;
+ var number = Math.floor(Math.random() * 8) + 1;
+ var path = 'bg/bg' + number;
+ cc.resources.load(path, cc.SpriteFrame, function (err, spriteFrame) {
+ if (err) {
+ console.error('动态加载背景图失败:', err);
+ return;
+ }
+ _this.node.getChildByName("Game").getChildByName("bg").getComponent(cc.Sprite).spriteFrame = spriteFrame;
+ });
+ };
+ SceneManager.prototype.loadParticleEffects = function () {
+ var _this = this;
+ var path = 'Particle';
+ cc.resources.loadDir(path, cc.ParticleAsset, function (err, assets) {
+ if (err) {
+ console.error('动态加载粒子特效失败:', err);
+ return;
+ }
+ _this.particleEffects = assets;
+ _this.setParticleSort();
+ _this.load3 = true;
+ //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');
+ });
+ };
+ SceneManager.prototype.setWallPrefabSort = function () {
+ var order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];
+ this.Wall_Prefab.sort(function (a, b) {
+ var indexA = order.indexOf(a.name);
+ var indexB = order.indexOf(b.name);
+ if (indexA === -1)
+ return 1;
+ if (indexB === -1)
+ return -1;
+ return indexA - indexB;
+ });
+ };
+ SceneManager.prototype.setParticleSort = function () {
+ var order = ['top', 'bot', 'rig', 'lef'];
+ this.particleEffects.sort(function (a, b) {
+ // console.log(a.name.substr(0,3),b.name.substr(0,3));
+ var indexA = order.indexOf(a.name.substr(0, 3));
+ var indexB = order.indexOf(b.name.substr(0, 3));
+ if (indexA === -1)
+ return 1;
+ if (indexB === -1)
+ return -1;
+ return indexA - indexB;
+ });
+ };
+ SceneManager.prototype.setSort = function () {
+ this.Block_Array.sort(function (a, b) {
+ var _a, _b;
+ // 从名称中提取数字部分
+ var numberA = parseInt(((_a = a.name.match(/\d+/)) === null || _a === void 0 ? void 0 : _a[0]) || '0', 10);
+ var numberB = parseInt(((_b = b.name.match(/\d+/)) === null || _b === void 0 ? void 0 : _b[0]) || '0', 10);
+ return numberA - numberB;
+ });
+ };
+ SceneManager.prototype.start = function () {
+ };
+ SceneManager.prototype.startGame = function () {
+ cc.director.loadScene("HomeScene", function (err) {
+ if (err) {
+ console.error('加载 HomeScene 场景失败:', err);
+ }
+ else {
+ // console.log('成功切换到 HomeScene 场景');
+ cc.director.loadScene("HomeScene");
+ }
+ });
+ };
+ SceneManager.prototype.returnHome = function () {
+ if (this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch) {
+ if (Map_1.default._instance.gameStart == true) {
+ MiniGameSdk_1.MiniGameSdk.API.showToast("体力值减少");
+ cc.fx.GameTool.setUserHealth(-1, function (data) {
+ });
+ if (Map_1.default._instance.count_Time) {
+ var count_Time = Map_1.default._instance.count_Time;
+ var add_Time = Map_1.default._instance.add_Time;
+ var data = {
+ time: count_Time,
+ add_Time: add_Time,
+ result: "give_up"
+ };
+ cc.fx.GameTool.shushu_Track("finish_stage", data);
+ }
+ }
+ this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl").setTouch(false);
+ cc.fx.AudioManager._instance.playEffect("zhuan1", null);
+ this.node.getChildByName("zhuanchang").active = true;
+ this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
+ cc.director.preloadScene("HomeScene", function (err, asset) {
+ if (err) {
+ console.error('动态加载 Prefab 失败:', err);
+ return;
+ }
+ });
+ setTimeout(function () {
+ cc.director.loadScene("HomeScene");
+ }, 1200);
+ }
+ };
+ SceneManager.prototype.destroyNodesInFrames = function (nodes, callback) {
+ var _this = this;
+ var BATCH_SIZE = 10; // 每帧销毁的节点数量
+ var index = 0;
+ var destroyBatch = function () {
+ var count = 0;
+ while (index < nodes.length && count < BATCH_SIZE) {
+ var node = nodes[index];
+ if (node) {
+ node.active = false;
+ }
+ index++;
+ count++;
+ }
+ if (index < nodes.length) {
+ _this.scheduleOnce(destroyBatch, 6);
+ }
+ else {
+ callback();
+ }
+ };
+ destroyBatch();
+ };
+ // 改进后的切换场景方法
+ SceneManager.prototype.switchToEmptyScene = function () {
+ var allNodes = cc.director.getScene().children;
+ this.destroyNodesInFrames(allNodes, function () {
+ cc.director.loadScene("HomeScene");
+ });
+ };
+ SceneManager.prototype.openPause = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ if (this.pause.getComponent("btnControl")._touch) {
+ this.pause.getComponent("btnControl").setTouch(false);
+ this.node.getChildByName("Pause").active = true;
+ Map_1.default._instance.pause = true;
+ }
+ };
+ SceneManager.prototype.closePause = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ this.pause.getComponent("btnControl").setTouch(true);
+ this.node.getChildByName("Pause").active = false;
+ if (Map_1.default._instance.node.parent.getChildByName("Ice").active == false) {
+ Map_1.default._instance.pause = false;
+ }
+ };
+ SceneManager.prototype.openPropBuy = function (name) {
+ Map_1.default._instance.pause = true;
+ this.btnName = name;
+ var propWindow = this.node.getChildByName("Game").getChildByName("propWindow");
+ propWindow.active = true;
+ propWindow.getChildByName("freeze").active = false;
+ propWindow.getChildByName("hammer").active = false;
+ propWindow.getChildByName("magic").active = false;
+ propWindow.getChildByName("buy_Btn").getComponent("btnControl").setTouch(true);
+ propWindow.getChildByName(name).active = true;
+ };
+ SceneManager.prototype.clickBtn = function () {
+ cc.fx.AudioManager._instance.playEffect("anniu_Big", null);
+ var propWindow = this.node.getChildByName("Game").getChildByName("propWindow");
+ if (propWindow.getChildByName("buy_Btn").getComponent("btnControl")._touch) {
+ propWindow.getChildByName("buy_Btn").getComponent("btnControl").setTouch(false);
+ if (this.btnName == "freeze")
+ Map_1.default._instance.buyFreeze();
+ else if (this.btnName == "hammer")
+ Map_1.default._instance.buyHammer();
+ else if (this.btnName == "magic")
+ Map_1.default._instance.buyMagic();
+ }
+ };
+ //打开商店
+ SceneManager.prototype.openShop = function () {
+ var _this = this;
+ // 加载 shop bundle
+ cc.assetManager.loadBundle('shop', function (err, bundle) {
+ bundle.load('prefab/shop', cc.Prefab, function (err, prefab) {
+ if (err) {
+ cc.error(err.message || err);
+ return;
+ }
+ if (prefab) {
+ var shopNode = cc.instantiate(prefab);
+ _this.node.addChild(shopNode);
+ console.log("shopNode parent:", shopNode.parent);
+ }
+ });
+ });
+ };
+ SceneManager.prototype.closePropBuy = function () {
+ Map_1.default._instance.pause = false;
+ var freezeBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("timeBtn");
+ var hammerBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("destroyBtn");
+ var magicBtn = Map_1.default._instance.node.parent.getChildByName("Bottom").getChildByName("magicBtn");
+ if (this.btnName == "freeze")
+ freezeBtn.getComponent("btnControl").setTouch(true);
+ else if (this.btnName == "hammer")
+ hammerBtn.getComponent("btnControl").setTouch(true);
+ else if (this.btnName == "magic")
+ magicBtn.getComponent("btnControl").setTouch(true);
+ this.node.getChildByName("Game").getChildByName("propWindow").active = false;
+ };
+ SceneManager.prototype.update = function (dt) {
+ };
+ __decorate([
+ property(cc.Label)
+ ], SceneManager.prototype, "label", void 0);
+ __decorate([
+ property
+ ], SceneManager.prototype, "text", void 0);
+ __decorate([
+ property(cc.Node)
+ ], SceneManager.prototype, "freeze", void 0);
+ __decorate([
+ property(cc.Node)
+ ], SceneManager.prototype, "hammer", void 0);
+ __decorate([
+ property(cc.Node)
+ ], SceneManager.prototype, "magic_wand", void 0);
+ __decorate([
+ property(cc.Node)
+ ], SceneManager.prototype, "pause", void 0);
+ __decorate([
+ property({ type: [cc.Prefab], tooltip: "方块数组" })
+ ], SceneManager.prototype, "Block_Array", void 0);
+ __decorate([
+ property({ type: [cc.Prefab], tooltip: "墙壁数组" })
+ ], SceneManager.prototype, "Wall_Prefab", void 0);
+ SceneManager = __decorate([
+ ccclass
+ ], SceneManager);
+ return SceneManager;
+}(cc.Component));
+exports.default = SceneManager;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQXVSQztRQXBSRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBcVB6QixDQUFDO0lBalBHLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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NkJBQU0sR0FBTixVQUFPLEVBQUU7SUFFVCxDQUFDO0lBblJEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7K0NBQ0k7SUFHdkI7UUFEQyxRQUFROzhDQUNjO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO29EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7K0NBQ0k7SUFJdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FEQUNkO0lBR25DO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztxREFDZDtJQXpCbEIsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXVSaEM7SUFBRCxtQkFBQztDQXZSRCxBQXVSQyxDQXZSeUMsRUFBRSxDQUFDLFNBQVMsR0F1UnJEO2tCQXZSb0IsWUFBWSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBNYXBDb25yb2xlciBmcm9tIFwiLi9NYXBcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2VuZU1hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICB0ZXh0OiBzdHJpbmcgPSAnaGVsbG8nO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgZnJlZXplOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lcjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBtYWdpY193YW5kOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHBhdXNlOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6IFwi5pa55Z2X5pWw57uEXCIgfSlcclxuICAgIEJsb2NrX0FycmF5OiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6IFwi5aKZ5aOB5pWw57uEXCIgfSlcclxuICAgIFdhbGxfUHJlZmFiOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgcGFydGljbGVFZmZlY3RzOiBjYy5QYXJ0aWNsZUFzc2V0W107XHJcbiAgICAvLyBAcHJvcGVydHkoe3R5cGU6IFtjYy5QYXJ0aWNsZVN5c3RlbV0sIHRvb2x0aXA6XCLnspLlrZDmlbDnu4RcIn0pXHJcbiAgICAvLyBwYXJ0aWNsZUVmZmVjdHMgOiBBcnJheTxjYy5QYXJ0aWNsZVN5c3RlbT4gPSBbXTtcclxuXHJcbiAgICBsb2FkMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBidG5OYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIGNhbGxCYWNrOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VCZygpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKCfpooTliqDovb0gSG9tZVNjZW5lIOWcuuaZr+Wksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCfmiJDlip/pooTliqDovb0gSG9tZVNjZW5lIOWcuuaZrycpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlQmcoKSB7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJiZ1wiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFBhcnRpY2xlRWZmZWN0cygpIHtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ1BhcnRpY2xlJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QYXJ0aWNsZUFzc2V0LCAoZXJyLCBhc3NldHM6IGNjLlBhcnRpY2xlQXNzZXRbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb3nspLlrZDnibnmlYjlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBhc3NldHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGFydGljbGVTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCfnspLlrZDnibnmlYjliqDovb3miJDlip/vvIzlhbHliqDovb3kuoYnLCB0aGlzLnBhcnRpY2xlRWZmZWN0cy5sZW5ndGgsICfkuKrnspLlrZDnibnmlYgnKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsICdyaWdodCcsICd1cCcsICd1cExlZnQnLCAndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYXJ0aWNsZVNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ3RvcCcsICdib3QnLCAncmlnJywgJ2xlZiddO1xyXG4gICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYS5uYW1lLnN1YnN0cigwLDMpLGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLCAzKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lLnN1YnN0cigwLCAzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCkge1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqDovb0gSG9tZVNjZW5lIOWcuuaZr+Wksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+aIkOWKn+WIh+aNouWIsCBIb21lU2NlbmUg5Zy65pmvJyk7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5nYW1lU3RhcnQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5jb3VudF9UaW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50X1RpbWUgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYWRkX1RpbWUgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWU6IGNvdW50X1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9UaW1lOiBhZGRfVGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBcImdpdmVfdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfSwgMTIwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBkZXN0cm95Tm9kZXNJbkZyYW1lcyhub2RlczogY2MuTm9kZVtdLCBjYWxsYmFjazogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgIGNvbnN0IEJBVENIX1NJWkUgPSAxMDsgLy8g5q+P5bin6ZSA5q+B55qE6IqC54K55pWw6YePXHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgY29uc3QgZGVzdHJveUJhdGNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgICAgICB3aGlsZSAoaW5kZXggPCBub2Rlcy5sZW5ndGggJiYgY291bnQgPCBCQVRDSF9TSVpFKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCYXRjaCwgNik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZGVzdHJveUJhdGNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pS56L+b5ZCO55qE5YiH5o2i5Zy65pmv5pa55rOVXHJcbiAgICBzd2l0Y2hUb0VtcHR5U2NlbmUoKSB7XHJcbiAgICAgICAgY29uc3QgYWxsTm9kZXMgPSBjYy5kaXJlY3Rvci5nZXRTY2VuZSgpLmNoaWxkcmVuO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveU5vZGVzSW5GcmFtZXMoYWxsTm9kZXMsICgpID0+IHtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5QYXVzZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKHRoaXMucGF1c2UuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMucGF1c2UuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblByb3BCdXkobmFtZSkge1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5idG5OYW1lID0gbmFtZTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJoYW1tZXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIGlmIChwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImZyZWV6ZVwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUZyZWV6ZSgpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlIYW1tZXIoKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5idG5OYW1lID09IFwibWFnaWNcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlNYWdpYygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5omT5byA5ZWG5bqXXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDliqDovb0gc2hvcCAgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ3Nob3AnLCAoZXJyOiBFcnJvciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGJ1bmRsZS5sb2FkKCdwcmVmYWIvc2hvcCcsIGNjLlByZWZhYiwgKGVycjogRXJyb3IsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcE5vZGUgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChzaG9wTm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzaG9wTm9kZSBwYXJlbnQ6XCIsIHNob3BOb2RlLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjbG9zZVByb3BCdXkoKSB7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgbGV0IGhhbW1lckJ0biA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImZyZWV6ZVwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5idG5OYW1lID09IFwibWFnaWNcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKGR0KSB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -11038,17 +11213,16 @@ var MiniGameSdk;
};
// 创建 TA 实例
API._ta = new ThinkingAnalyticsAPI(config);
- //var deviceId = API._ta.getDeviceId();
+ // 初始化
+ API._ta.init();
+ }
+ };
+ API.shushu_Login = function () {
+ if (typeof wx !== 'undefined' && wx !== null) {
API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
var result = "success";
API.shushu_Track("login", result);
- // 初始化
- API._ta.init();
API.shushu_SetSuperProperties();
- //console.log("数数平台初始化成功!");
- // this.TA.clearSuperProperties();
- //设置用户属性
- // this.TA.userSet({ username: "大核桃" });
}
};
API.shushu_userSet = function (time) {
@@ -11114,7 +11288,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXlxQzNCO0FBenFDRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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ZWMsY0FBVSxHQUFXLElBQUksQ0FBQztRQUMxQix1QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFDbkMsK0JBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLGFBQVMsR0FBUSxJQUFJLENBQUM7UUFDdEIsT0FBRyxHQUFRLElBQUksQ0FBQztRQXllbkMsVUFBQztLQTllRCxBQThlQyxJQUFBO0lBOWVZLGVBQUcsTUE4ZWYsQ0FBQTtBQUVMLENBQUMsRUF6cUNnQixXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQXlxQzNCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOWwj+a4uOaIj+W5s+WPsFNES+W3peWFt+Wwgeijhe+8jOebruWJjeWPquaUr+aMgeW+ruS/oeWSjOaKlumfs+W5s+WPsFxyXG4gKi9cclxuZXhwb3J0IG5hbWVzcGFjZSBNaW5pR2FtZVNkayB7XHJcblxyXG4gICAgaW50ZXJmYWNlIElTaXplIHtcclxuICAgICAgICB3aWR0aDogbnVtYmVyO1xyXG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSVBvc2l0aW9uIHtcclxuICAgICAgICB0b3A6IG51bWJlcjtcclxuICAgICAgICBsZWZ0OiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzV2VjaGF0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cud3ggIT09IG51bGwgJiYgd2luZG93Lnd4ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQnl0ZWRhbmNlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cudHQgIT09IG51bGwgJiYgd2luZG93LnR0ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFN5c1dpblNpemUoKTogSVNpemUge1xyXG4gICAgICAgIGxldCBzeXM6IGFueTtcclxuICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHd4LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgc3lzID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xyXG4gICAgICAgIGlmIChzeXMpIHtcclxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IHN5cy53aW5kb3dXaWR0aDtcclxuICAgICAgICAgICAgc2l6ZS5oZWlnaHQgPSBzeXMud2luZG93SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmj5LlsY/lub/lkYrjgILlvq7kv6Hmipbpn7Ppg73mlK/mjIHvvIFcclxuICAgICAqL1xyXG4gICAgY2xhc3MgQURJbnRlcnN0aXRpYWwge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfaW50ZXJzdGl0aWFsOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSAmJiAhd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignd2VjaGF0IHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpICYmICF0dC5jcmVhdGVJbnRlcnN0aXRpYWxBZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdieXRlZGFuY2UgdW5zdXBwb3J0IGludGVyc3RpdGlhbCBBRCEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwubG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIGludGVyc3RpdGlhbCBhZCBzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGludGVyc3RpdGlhbCBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnRlcnN0aXRpYWwgYWQgb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREJhbm5lciB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9iYW5uZXI6IGFueTtcclxuXHJcbiAgICAgICAgZ2V0IGFkdWlkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmipbpn7Plkozlvq7kv6Hpg73mlK/mjIFcclxuICAgICAgICAgKiDmqKrluYXlub/lkYrjgILpooTkvLDlrr3luqbpu5jorqTkuLozMDDvvIzpooTkvLDpq5jluqbkuLoxNDDjgILlpoLmnpzkvaDkuI3noa7lrprlsLHmjInpu5jorqTlgLzmnaXjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIGlzVG9wIOaYr+WQpuWcqOWxj+W5lemhtumDqOWxleekuuOAguWGhemDqOS8muiHquWKqOWxheS4reiuoeeul+S9jee9ruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBiYW5uZXJXaWR0aCDmqKrluYXlub/lkYrnmoTpooTkvLDlrr3luqbjgILpu5jorqQzMDBcclxuICAgICAgICAgKiBAcGFyYW0gYXV0b1Nob3cg5bm/5ZGK5Yqg6L295a6M5oiQ5ZCO5piv5ZCm56uL5Yi75pi+56S677yM6buY6K6k5Li65LiN5pi+56S6XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZywgcGFyYW06IGJvb2xlYW4gfCBJUG9zaXRpb24sIGJhbm5lcldpZHRoOiBudW1iZXIgPSAzMDAsIGF1dG9TaG93OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGUoYXV0b1Nob3csIGJhbm5lcldpZHRoLCBwYXJhbSk7IC8vIOm7mOiupDMwMOavlOi+g+WQiOmAglxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGUoYXV0b1Nob3c6IGJvb2xlYW4sIGJhbm5lcldpZHRoOiBudW1iZXIsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgd2luU2l6ZSA9IGdldFN5c1dpblNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPSBiYW5uZXJXaWR0aCAqIDAuNDtcclxuICAgICAgICAgICAgbGV0IHRvcCA9IDAsIGxlZnQgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQgPSAod2luU2l6ZS53aWR0aCAtIGJhbm5lcldpZHRoKSAvIDJcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtID8gNSA6ICh3aW5TaXplLmhlaWdodCAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcGFyYW0ubGVmdDtcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtLnRvcDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIGFkSW50ZXJ2YWxzOiAzMCwvLyDoh6rliqjliLfmlrDpopHnjofkuI3og73lsI/kuo4zMOenklxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIHdpZHRoOiBiYW5uZXJXaWR0aCB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB3eC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IHR0LmNyZWF0ZUJhbm5lckFkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/Lm9uRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWQgYmFubmVyIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXV0b1Nob3cgJiYgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsYXNzIEFEQ3VzdG9tIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkQ3VzdG9tOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIHRvcCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXpobbpg6jnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gbGVmdCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXmnIDlt6bovrnnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg5Y6f55Sf5qih5p2/5bm/5ZGK55qE5bC65a+477yM6buY6K6k5Li6Me+8jOWNszEwMCXjgILmraTlgLzlnKjlvq7kv6HmnI3liqHlkI7nq6/lub/lkYrkuK3ojrflvpfvvIzpu5jorqTkuLoxMDAl77yM55uu5YmN5pyJMTAwJe+8jDkwJe+8jDgwJeS4ieenje+8jOS4gOiIrOaDheWGteS4jeeUqOS/ruaUueOAguiLpeacieS/ruaUue+8jOiusOW+l+S8oOWFpeWAvO+8jOS+i+WmgjkwJeWwseS8oOWFpTAuOeOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHRvcDogbnVtYmVyID0gMCwgbGVmdDogbnVtYmVyID0gMCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUFkKHRvcCwgbGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21BZCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyLCBzY2FsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSkgeyAvLyBvbmx5IHdlY2hhdCBzdXBwb3J0IGN1c3RvbSBhZFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ09ubHkgd2VjaGF0IHN1cHBvcnQgQ3VzdG9tIEFkJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/mqKHmnb815Liq5bqU55So5a695bqm5Li6Mzc177yM6Iul6K6+572u5LqG57yp5pS+5q+U5L6L77yM5YiZ5a695bqm5Lmf6ZyA6KaB6K6+572uXHJcbiAgICAgICAgICAgIC8vIGxldCB3aWR0aCA9IDM3NSAqIHRoaXMuX3NjYWxlO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3TGVmdCA9IChzeXMud2luZG93V2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3VG9wID0gc3lzLndpbmRvd0hlaWdodCAvIDI7IC8vIDEyMOaYr+mihOS8sOmrmOW6plxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbSA9IHd4LmNyZWF0ZUN1c3RvbUFkKHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIGZpeGVkOiB0cnVlIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZCBjdXN0b20gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6KeG6aKR5bm/5ZGK55So5oi354K55Ye76KGM5Li657uT5p6cXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVBZFZpZGVvUmVzdWx0IHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlKjmiLfnnIvlrozkuoblub/lkYrvvIzmuLjmiI/lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBBQ0NFUFQsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+S4remAlOWFs+mXreS6huW5v+WRiu+8jOWNs+acqueci+WujOeKtuaAgeOAguS4jeWPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFJFSkVDVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bm/5ZGK57uE5Lu25YaF6YOo5Y+R55Sf5LqG6ZSZ6K+v44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgRVJST1IsXHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURWaWRlbyB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZFZpZGVvOiBhbnkgPSBudWxsO1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5Y+v5Lul6L+e57ut55yL5pyA5aSn6KeG6aKR5Liq5pWw77yM5Y+v5pyA5aSn5YyW5ZWG5Lia5pWI546H44CC6buY6K6k5Li6M+S4quOAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHNob3cob25SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGNhbGxiYWNrID0gKHN0YXRlOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBzdGF0ZSwgY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9uQWRWaWRlb0Nsb3NlZCA9IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub2ZmQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuaXNFbmRlZCB8fCByZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc0NvbnZlcnRlZCA9IHJlcyBhcyB7IGlzRW5kZWQ6IGJvb2xlYW4sIGNvdW50OiBudW1iZXIgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzQ29udmVydGVkICYmIHJlc0NvbnZlcnRlZC5jb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCByZXNDb252ZXJ0ZWQuY291bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSB3eC5jcmVhdGVSZXdhcmRlZFZpZGVvQWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHR0LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkTXNnOiBbJ+WkmjHmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJywgJ+WGjeWkmuS4gOasoeWlluWKsSddLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkVGltZXM6IG1heFZpZGVvQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCBsb2FkIHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkVycm9yKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWQgdmlkZW8gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ubG9hZCgpLnRoZW4oKCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkpLmNhdGNoKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDYXRjaCB2aWRlbyBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5FUlJPUiwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdG9yeSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZW51bSBFQWRCYW5uZXJMb2NhdGlvbiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bGP5bmV6aG26YOoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgVE9QLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXlupXpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBCT1RUT00sXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEFkdmVydE1hbmFnZXIge1xyXG5cclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEFkdmVydE1hbmFnZXI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogQWR2ZXJ0TWFuYWdlciB7XHJcbiAgICAgICAgICAgIGlmICghQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIEFkdmVydE1hbmFnZXIuX2luc3RhbmNlID0gbmV3IEFkdmVydE1hbmFnZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF92aWRlbzogQURWaWRlbztcclxuICAgICAgICBwcml2YXRlIF9pbnRlcnN0aXRpYWw6IEFESW50ZXJzdGl0aWFsO1xyXG4gICAgICAgIHByaXZhdGUgX2Jhbm5lcjogQURCYW5uZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBfY3VzdG9tczogUmVjb3JkPHN0cmluZywgQURDdXN0b20+ID0ge307XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6aKE5Yqg6L295qiq5bmF5bm/5ZGK77yM5LiN5Lya5pi+56S644CC5Y+q5pyJ5L2g5Zyo6LCD55Soc2hvd0Jhbm5lcuaXtuaJjeS8muaYvuekuuOAglxyXG4gICAgICAgICAqIOWPr+mHjeWkjeiwg+eUqO+8jOS9huaYr+S8mumUgOavgeS4iuS4gOasoeeahOWunuS+i+OAguS4gOiIrOaDheWGte+8jOWFqOWxgOacieS4gOS4quWwseihjOS6hu+8jOWkquWkmuWNoOeUqOWGheWtmO+8jOiAjOS4lOayoeW/heimgeOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpVSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOm7mOiupOS4uui3n+Wxj+W5leS4gOagt+eahOWuveW6pu+8jOWPr+S7pemAmui/h+iuvue9rue8qeaUvuavlOS+i+adpeiwg+aVtOWkp+Wwj+OAguW9k+eEtu+8jOW5s+WPsOacieinhOWumuacgOWkp+aIluacgOWwj+WuveW6pu+8jOWHveaVsOWGhemDqOS8muiHquWKqOiuoeeul+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBsb2FkQmFubmVyKGFkVWlkOiBzdHJpbmcsIGxvY2F0aW9uOiBFQWRCYW5uZXJMb2NhdGlvbiB8IElQb3NpdGlvbiA9IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgbGV0IHNpemU6IElTaXplID0gZ2V0U3lzV2luU2l6ZSgpO1xyXG4gICAgICAgICAgICAvLyDlvZMgc3R5bGUud2lkdGgg5bCP5LqOIDMwMCDml7bvvIzkvJrlj5bkvZwgMzAw44CCIOW9kyBzdHlsZS53aWR0aCDlpKfkuo7lsY/luZXlrr3luqbml7bvvIzkvJrlj5bkvZzlsY/luZXlrr3luqbjgIJcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aCAqIHNjYWxlO1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIDwgMzAwID8gMzAwIDogd2lkdGg7IC8vIOacgOWwj+WAvOefq+ato1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoID4gc2l6ZS53aWR0aCA/IHNpemUud2lkdGggOiB3aWR0aDsgLy/mnIDlpKflgLznn6vmraNcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gdHlwZW9mIGxvY2F0aW9uID09PSAnbnVtYmVyJyA/IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24gPT09IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgd2lkdGgsIGZhbHNlKSA6IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24sIHdpZHRoLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrmqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Jhbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWluaUdhbWVTREs6IGJhbm5lciBpcyBudWxsLCB5b3UgbXVzdCBjYWxsIGxvYWRCYW5uZXIoLi4uKSBmaXJzdCEnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5qiq5bmF5bm/5ZGKXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5by55Ye65o+S5bGP5bm/5ZGKXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg2lkXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dJbnRlcnN0aXRpYWwoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsICYmIHRoaXMuX2ludGVyc3RpdGlhbC5hZHVpZCA9PT0gYWRVaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG5ldyBBREludGVyc3RpdGlhbChhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwuc2hvdygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliqDovb3ljp/nlJ/mqKHmnb/lub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93Q3VzdG9t5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB5pys5Ye95pWw77yM5Lya6LCD55So5peg5pWI77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklEXHJcbiAgICAgICAgICogQHBhcmFtIGxvY2F0aW9uIOS9jee9ruacieS4pOenjeaDheWGte+8mjHjgIHlj6/ku6XkvKDlhaXmnprkuL7lgLzvvIzpu5jorqTkuIrmlrk7IDLjgIHlj6/ku6Xoh6rlrprkuYnkvY3nva7kvKDlhaVJUG9zaXRpb27vvIzms6jmhI9JUG9zaXRpb27kuK3nmoR0b3DlkoxsZWZ06Lef5bmz5Y+w55qEdG9wLGxlZnTmmK/kuIDoh7TvvIjmsqHmnInkuZjku6Xorr7lpIflg4/ntKDmr5RyYXRpb++8ie+8jOmcgOimgeW8gOWPkeiAheiHquW3seiwg+ivleS9jee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBzY2FsZSDnvKnmlL7mr5TkvovvvIzpu5jorqTmmK8x77yM5Y2z5LiN57yp5pS+44CC6L+Z5Liq57yp5pS+5bm25LiN5piv6Ieq5bex5aGr77yM6ICM5piv5qC55o2u5b6u5L+hTVDlkI7lj7DkvaDphY3nva7nmoTljp/nlJ/mqKHmnb/lub/lkYrnmoTnvKnmlL7mr5TkvovloavvvIznm67liY3mnIkxMDAl77yMOTAl77yMODAl5LiJ56eN77yM5LiA6Iis5oOF5Ya15LiN55So5L+u5pS544CC6Iul5pyJ5ZCO5Y+w5L+u5pS577yM6K6w5b6X5Lyg5YWl5YC877yM5L6L5aaCOTAl5bCx5Lyg5YWlMC4544CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRDdXN0b20oYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNjYWxlOiBudW1iZXIgPSAxKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9jdXN0b20gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke2FkVWlkfSBoYXMgYmVlbiBsb2FkZWQuYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdID0gbmV3IEFEQ3VzdG9tKGFkVWlkLCBsb2NhdGlvbi50b3AsIGxvY2F0aW9uLmxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrnmoTllK/kuIDmoIfor4bnrKbjgILkvb/nlKjmraTmoIfor4bnrKbmnaXmn6Xmib7lkozmmL7npLrnibnlrprnmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiDmraTmlrnms5XlsJ3or5XmoLnmja7mj5DkvpvnmoRhZFVpZOaYvuekuuS4gOS4quiHquWumuS5ieW5v+WRiuOAguWmguaenOe7meWumueahGFkVWlk5a+55bqU55qE6Ieq5a6a5LmJ5bm/5ZGK5bey5Yqg6L2977yMXHJcbiAgICAgICAgICog5YiZ6LCD55So6K+l5bm/5ZGK55qE5pi+56S65pa55rOV44CC5aaC5p6c5bm/5ZGK5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IHNob3chYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmakOiXj+aMh+WumueahOiHquWumuS5ieW5v+WRiuWNleWFg1xyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleeUqOS6jumakOiXj+mAmui/h+W5v+WRiuWNleWFg+agh+ivhuespu+8iGFkVWlk77yJ5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c5oyH5a6a55qE5bm/5ZGK5Y2V5YWD5bey5Yqg6L295bm25pi+56S677yMXHJcbiAgICAgICAgICog5YiZ5bCG5YW26ZqQ6JeP77yb5aaC5p6c5bm/5ZGK5Y2V5YWD5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg+agh+ivhuespu+8jOeUqOS6juWUr+S4gOagh+ivhuS4gOS4quiHquWumuS5ieW5v+WRiuWNleWFg+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBoaWRlQ3VzdG9tKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXS5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFlvdSBoYXZlIG5vdCBsb2FkICR7YWRVaWR9IG9mIEN1c3RvbSBBRCwgY2FuIG5vdCBoaWRlIWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7lvq7kv6Hlkozmipbpn7Pop4bpopHlub/lkYrmnLrliLbkuI3lkIzvvIzlvq7kv6Hlj6/ku6XnnIvnmoTop4bpopHlub/lkYrkuKrmlbDlj6rmnIkw5ZKMMeS4qu+8jOaKlumfs+W5s+WPsOWImeWPr+S7peecizB+bWF4VmlkZW9Db3VudFxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpJROOAguWmguaenOS4juS4iuS4gOasoVVJROS4jeWQjO+8jOWImeWGhemDqOS8mumHjeaWsOWIm+W7uuWunuS+i+OAguW8gOWPkeiAheWujOWFqOS4jeeUqOWFs+W/g+i/meS4que7huiKguOAglxyXG4gICAgICAgICAqIEBwYXJhbSBvblZpZGVvUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIIgXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBvblZpZGVvUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5pyA5aSn6KeG6aKR5Liq5pWw44CC6buY6K6k5pivM++8jOS7heWvueaKlumfs+W5s+WPsOeUn+aViOOAguW+ruS/oeW5s+WPsOeci+WujOinhumikWNvdW5055qE57uT5p6c5rC46L+c5pivMeaIljBcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd1ZpZGVvKGFkVWlkOiBzdHJpbmcsIG9uVmlkZW9SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZGVvICYmIHRoaXMuX3ZpZGVvLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbmV3IEFEVmlkZW8oYWRVaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplIDmr4HlhoXpg6jmiYDmnInlrp7kvovvvIzmuIXnqbrlhoXlrZhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgZGVzdHJveUFsbCgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgaW4gdGhpcy5fY3VzdG9tcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbdmFsXT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tcyA9IHt9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVHYW1lQ2x1Ykljb24ge1xyXG4gICAgICAgIC8qKiDnu7/oibLlm77moIcgKi9cclxuICAgICAgICBHUkVFTiA9ICdncmVlbicsXHJcblxyXG4gICAgICAgIC8qKiDnuqLoibLlm77moIcgKi9cclxuICAgICAgICBXSElURSA9ICd3aGl0ZScsXHJcblxyXG4gICAgICAgIC8qKiDmnInpu5HoibLlnIbop5Log4zmma/nmoTnmb3oibLlm77moIcgKi9cclxuICAgICAgICBEQVJLID0gJ2RhcmsnLFxyXG5cclxuICAgICAgICAvKiog5pyJ55m96Imy5ZyG6KeS6IOM5pmv55qE57u/6Imy5Zu+5qCHICovXHJcbiAgICAgICAgTElHSFQgPSAnbGlnaHQnXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEdhbWVDbHViIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVDbHViO1xyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IEdhbWVDbHViIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgR2FtZUNsdWIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF9jbHViOiBhbnk7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5Yib5bu65ri45oiP5ZyI5oyJ6ZKuXHJcbiAgICAgICAgICogQHBhcmFtIGljb24gXHJcbiAgICAgICAgICogQHBhcmFtIHBvc2l0aW9uIFxyXG4gICAgICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICAgICAqIEBwYXJhbSBvcGVuTGluayBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjcmVhdGUoaWNvbjogRUdhbWVDbHViSWNvbiA9IEVHYW1lQ2x1Ykljb24uR1JFRU4sIHBvc2l0aW9uOiBJUG9zaXRpb24gPSB7IHRvcDogMCwgbGVmdDogMCB9LCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwIH0sIG9wZW5MaW5rPzogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jbHViID0gd3guY3JlYXRlR2FtZUNsdWJCdXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zaXRpb24ubGVmdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBwb3NpdGlvbi50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVubGluazogb3BlbkxpbmtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMr+WKqOexu+Wei1xyXG4gICAgICovXHJcbiAgICBleHBvcnQgZW51bSBFVmlyYnJhdGVUeXBlIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnn63mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBTSE9SVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZW/5oyv5YqoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgTE9OR1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICog5oqW6Z+z5L6n6L655qCP5LiT5bGe5o6l5Y+jXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBjbGFzcyBCeXRlZGFuY2VTaWRlYmFyIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmnKzmuLjmiI/lnKjmipbpn7Pnjq/looPkuIvlkK/liqjnm5HmjqfvvIzpnIDopoHmlL7lnKjlhajlsYDnjq/looPkuK3vvIzkv53or4Hog73nrKzkuIDml7bpl7TlkK/liqjjgILlm6DkuLrlj6/og73nm5HlkKzmipbpn7PlpLHotKXvvIjmipbpn7PlsI/muLjmiI/lrpjmlrnnmoTor7TmmI7vvInvvIFcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBsaXN0ZW5Gcm9tU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQub25TaG93KChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ29uU2hvdyBsYXVuY2ggcmVzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xhdW5jaCBmcm9tIHNpZGViYXInKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ05PVCBsYXVuY2ggZnJvbSBkb3V5aW4gc2lkZWJhciEnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gdHQuZ2V0TGF1bmNoT3B0aW9uc1N5bmMoKTtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zY2VuZSA9PT0gJzAyMTAzNicpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOajgOa1i+aKlumfs+S+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNoZWNrU2lkZUJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuY2hlY2tTY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNrIHNjZW5lIHN1Y2Nlc3M6IFwiLCByZXMuaXNFeGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCA8Ym9vbGVhbj5yZXMuaXNFeGlzdCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgZmFpbDpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDot7PovazliLDmipbpn7PkvqfovrnmoI9cclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBuYXZpZ2F0ZVRvU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90IGRvdXlpbiBwbGF0Zm9ybSFcIik7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvU2NlbmUoe1xyXG4gICAgICAgICAgICAgICAgc2NlbmU6IFwic2lkZWJhclwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgZmFpbGVkIHJlYXNvbjpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW5s+WPsOW4uOeUqEFQSeWQiOmbhlxyXG4gICAgICovXHJcbiAgICBleHBvcnQgY2xhc3MgQVBJIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Db2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9sb2dpbkFub255bW91c0NvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX3VzZXJJbmZvOiBhbnkgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF90YTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDUwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5b6u5L+h5bCP5ri45oiP77ya6Lez6L2s5Yiw5Y+m5aSW5LiA5qy+5bCP5ri45oiPXHJcbiAgICAgICAgICog5oqW6Z+z5bCP5ri45oiP77ya6Lez6L2s5Yiw5oyH5a6a55qE6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldElkIOW+ruS/oeWwj+a4uOaIj2FwcGlk5oiW6ICF6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG8odGFyZ2V0SWQ6IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gubmF2aWdhdGVUb01pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbzogJ2JhcidcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVudlZlcnNpb246ICdkZXZlbG9wJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvVmlkZW9WaWV3KHtcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImJ5dGVkYW5jZSBuYXZpZ2F0ZVRvVmlkZW9WaWV3IGZhaWxcIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsI/muLjmiI/lubPlj7DnmbvlvZXlip/og73jgILlvq7kv6Hov5Tlm55jb2Rl77yM5oqW6Z+z6L+U5ZueY29kZeWSjGFub255bW91c0NvZGXjgILnlKjkuo7nmbvlvZXnmoTlh63or4HvvIzpnIDopoHmiorov5nkuKpjb2Rl5Lyg5Zue5L2g55qE5pyN5Yqh5Zmo56iL5bqP5Lit5Y676LCD55SoY29kZTJTZXNzaW9uXHJcbiAgICAgICAgICogQHBhcmFtIGNhbGxiYWNrIChjb2RlLCBhbm9ueW1vdXNDb2RlKSDnrKzkuIDkuKrlj4LmlbDkuLpjb2Rl77yM5b6u5L+h5ZKM5oqW6Z+z6YO95pSv5oyB77yb56ys5LqM5Liq5Y+C5pWw5Li65Yy/5ZCN6K6+5aSHSUTvvIzku4Xmipbpn7PmlK/mjIHvvIzlpLHotKXpg73ov5Tlm55udWxsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxvZ2luKGNhbGxiYWNrOiAoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgbGV0IGxvZ2luUGxhdGZvcm0gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogeyBjb2RlOiBhbnk7IGVyck1zZzogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IHJlcy5jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGZhaWwnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5sb2dpbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gJHtyZXMuY29kZX0gJHtyZXMuYW5vbnltb3VzQ29kZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSByZXMuYW5vbnltb3VzQ29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gZmFpbGAsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdub3QgbWluaSBnYW1lIHBsYXRmb3JtLCBsb2dpbiBjb2RlcyBhcmUgYWxsIG51bGwnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAoIUFQSS5fbG9naW5Db2RlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlIGN1cnJlbnQgY29kZTpgLCBBUEkuX2xvZ2luQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlciBjdXJyZW50IGNvZGU6ICR7QVBJLl9sb2dpbkNvZGV9LCAke0FQSS5fbG9naW5Bbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gZXhwaXJlZGApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIG51bGwnKTtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWwj+a4uOaIj+W5s+WPsOeZu+W9leWKn+iDveOAguW+ruS/oei/lOWbnmNvZGXvvIzmipbpn7Pov5Tlm55jb2Rl5ZKMYW5vbnltb3VzQ29kZeOAgueUqOS6jueZu+W9leeahOWHreivge+8jOmcgOimgeaKiui/meS4qmNvZGXkvKDlm57kvaDnmoTmnI3liqHlmajnqIvluo/kuK3ljrvosIPnlKhjb2RlMlNlc3Npb25cclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgZ2V0VXNlckluZm8oY2FsbGJhY2s6ICh1c2VySW5mbzogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5nZXRVc2VySW5mbyh7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX3VzZXJJbmZvID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEFQSS5fdXNlckluZm8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDosIPnlKjlvq7kv6HkupHlh73mlbDjgILnlLHkuo7lj4LmlbDpnIDopoHoh6rlrprkuYnvvIzmiYDku6XkuLphbnnvvIzpnIDopoHoh6rooYzop6Pph4rjgILlh73mlbDlj6rlrozmiJDpgJrpgZPlkozlpITnkIbkuIDlnLrnmoTkvZznlKhcclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sg6L+U5Zue5LqR5Ye95pWw6LCD55So57uT5p6c44CC6ZyA6KaB5qOA5p+l6L+U5Zue5Y+C5pWw5piv5ZCm5Li656m677yM5aSx6LSl55qE5pe25YCZ5Li656m6XHJcbiAgICAgICAgICogQHBhcmFtIG5hbWUg5LqR5Ye95pWw55qE5ZCN5a2XXHJcbiAgICAgICAgICogQHBhcmFtIGRhdGEg5LqR5Ye95pWw55qE5YaF5a65XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNhbGxXZWNoYXRDbG91ZEZ1bmN0aW9uKGNhbGxiYWNrOiAocmVzOiBhbnkpID0+IHZvaWQsIG5hbWU6IHN0cmluZywgZGF0YToge30pIHtcclxuICAgICAgICAgICAgaWYgKCFpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTm90IHdlY2hhdCBwbGF0Zm9ybSwgbm90IHN1cHBvcnQgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghQVBJLl9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiBjYWxsYmFjaz8uKHJlcyksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZWNoYXQgY2xvdWQgZnVuY3Rpb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlrZjlgqjnlKjmiLfkv6Hmga/vvIzmlbDmja7ph4/kuI3og73lpKfjgILlj6/ku6XogIPomZHnlKjkuo7liIbmlbDmjpLooYzmppzjgILnlKjmiLfkuYvpl7Tlj6/lhbHkuqvmjpLooYzmlbDmja7jgIJcclxuICAgICAgICAgKiBAcGFyYW0ga2V5IFxyXG4gICAgICAgICAqIEBwYXJhbSB2YWx1ZSBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgc2V0VXNlckNsb3VkU3RvcmFnZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2V0VXNlckNsb3VkU3RvcmFnZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgS1ZEYXRhTGlzdDogW3sga2V5OiBrZXksIHZhbHVlOiB2YWx1ZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlLCB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICog5pWw5pWw5bmz5Y+w5Yid5aeL5YyW5Lul5Y+K55m75b2VXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9Jbml0KCl7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlvIDlp4vmjqXlhaXmlbDmlbDlubPlj7BcIik7XHJcbiAgICAgICAgICAgICAgICAvL2dldFdlY2hhdEdhbWVWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICBsZXQgYXBwSWQgPSBcIjEyMTU5MTM3OGZjMTQyMzg5M2RlYjEyMDQxNDEzZWIzXCI7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IGNjLmZ4LkdhbWVUb29sLmdldFdlY2hhdEdhbWVWZXJzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICBpZih0ZXN0ID09IFwi5q2j5byP54mIXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkID0gXCI4N2QxODk1OGNlYTE0NWYyOWQzMjY1NDcwZWNkMzQ4NlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcHBJZDogXCI3M2UxZWM2NTRmMTViNDdhMWE3MzU0ZmJhYmVjMDVhZFwiLCAvLyDpobnnm64gQVBQIElEXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSWQ6YXBwSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyVXJsOiBcImh0dHBzOi8vZGF0YS5uaWthNGZ1bi5jb21cIiwgLy8g5LiK5oql5Zyw5Z2AXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1RyYWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFNob3c6IHRydWUsIC8vIOiHquWKqOmHh+mbhiB0YV9tZ19zaG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEhpZGU6IHRydWUgLy8g6Ieq5Yqo6YeH6ZuGIHRhX21nX2hpZGVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy8g5Yib5bu6IFRBIOWunuS+i1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YSA9IG5ldyBUaGlua2luZ0FuYWx5dGljc0FQSShjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgLy92YXIgZGV2aWNlSWQgPSBBUEkuX3RhLmdldERldmljZUlkKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgQVBJLl90YS5sb2dpbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9UcmFjayhcImxvZ2luXCIscmVzdWx0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDliJ3lp4vljJZcclxuICAgICAgICAgICAgICAgIEFQSS5fdGEgLmluaXQoKTsgXHJcblxyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCLmlbDmlbDlubPlj7DliJ3lp4vljJbmiJDlip8hXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5UQS5jbGVhclN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICAgICAgLy/orr7nva7nlKjmiLflsZ7mgKdcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuVEEudXNlclNldCh7IHVzZXJuYW1lOiBcIuWkp+aguOahg1wiIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X3VzZXJTZXQodGltZSl7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLorr7nva7nlKjmiLfms6jlhozlsZ7mgKdcIik7XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnVzZXJTZXQoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOiuvue9ruWKqOaAgeWFrOWFseWxnuaAp1xyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCl7XHJcbiAgICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsICYmIEFQSS5fdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcnNpb25EYXRhID0gXCIxLjNcIjtcclxuICAgICAgICAgICAgICAgIC8vIEFQSS5fdGEudXNlclNldE9uY2UoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgICAgIHZhciBzdXBlclByb3BlcnRpZXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA6IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksIC8v5b2T5YmN5YWz5Y2h562J57qnICBudW1iZXJcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2hlYWx0aDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLCAgICAgICAgLy/lvZPliY3kvZPlipvlgLxcclxuICAgICAgICAgICAgICAgICAgICB0bXBfY29pbiA6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLC8v5b2T5YmN6YeR5biBXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogdmVyc2lvbkRhdGFcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnNldFN1cGVyUHJvcGVydGllcyhzdXBlclByb3BlcnRpZXMpOy8v6K6+572u5YWs5YWx5LqL5Lu25bGe5oCnXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RhdGljIGdldFdlY2hhdEdhbWVWZXJzaW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjb3VudEluZm8ubWluaVByb2dyYW0udmVyc2lvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOWFt+S9k+Wfi+eCuVxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfVHJhY2sobmFtZSwgZGF0YSwgY2FsbGJhY2s/OiAoc3VjY2VzczogYm9vbGVhbiwgZXJyb3I/OiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQVBJLl90YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWBh+iuviB0cmFjayDmlrnms5Xov5Tlm57kuIDkuKogUHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdGEudHJhY2soXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIC8vIOS6i+S7tuWQjeensFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhIC8vIOS6i+S7tuWxnuaApyBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXNxQzNCO0FBdHFDRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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Q0o7YUFDSjtRQUNMLENBQUM7UUF6ZWMsY0FBVSxHQUFXLElBQUksQ0FBQztRQUMxQix1QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFDbkMsK0JBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLGFBQVMsR0FBUSxJQUFJLENBQUM7UUFDdEIsT0FBRyxHQUFRLElBQUksQ0FBQztRQXNlbkMsVUFBQztLQTNlRCxBQTJlQyxJQUFBO0lBM2VZLGVBQUcsTUEyZWYsQ0FBQTtBQUVMLENBQUMsRUF0cUNnQixXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQXNxQzNCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOWwj+a4uOaIj+W5s+WPsFNES+W3peWFt+Wwgeijhe+8jOebruWJjeWPquaUr+aMgeW+ruS/oeWSjOaKlumfs+W5s+WPsFxyXG4gKi9cclxuZXhwb3J0IG5hbWVzcGFjZSBNaW5pR2FtZVNkayB7XHJcblxyXG4gICAgaW50ZXJmYWNlIElTaXplIHtcclxuICAgICAgICB3aWR0aDogbnVtYmVyO1xyXG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSVBvc2l0aW9uIHtcclxuICAgICAgICB0b3A6IG51bWJlcjtcclxuICAgICAgICBsZWZ0OiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzV2VjaGF0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cud3ggIT09IG51bGwgJiYgd2luZG93Lnd4ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQnl0ZWRhbmNlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cudHQgIT09IG51bGwgJiYgd2luZG93LnR0ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFN5c1dpblNpemUoKTogSVNpemUge1xyXG4gICAgICAgIGxldCBzeXM6IGFueTtcclxuICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHd4LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgc3lzID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xyXG4gICAgICAgIGlmIChzeXMpIHtcclxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IHN5cy53aW5kb3dXaWR0aDtcclxuICAgICAgICAgICAgc2l6ZS5oZWlnaHQgPSBzeXMud2luZG93SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmj5LlsY/lub/lkYrjgILlvq7kv6Hmipbpn7Ppg73mlK/mjIHvvIFcclxuICAgICAqL1xyXG4gICAgY2xhc3MgQURJbnRlcnN0aXRpYWwge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfaW50ZXJzdGl0aWFsOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSAmJiAhd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignd2VjaGF0IHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpICYmICF0dC5jcmVhdGVJbnRlcnN0aXRpYWxBZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdieXRlZGFuY2UgdW5zdXBwb3J0IGludGVyc3RpdGlhbCBBRCEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwubG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIGludGVyc3RpdGlhbCBhZCBzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGludGVyc3RpdGlhbCBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnRlcnN0aXRpYWwgYWQgb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREJhbm5lciB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9iYW5uZXI6IGFueTtcclxuXHJcbiAgICAgICAgZ2V0IGFkdWlkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmipbpn7Plkozlvq7kv6Hpg73mlK/mjIFcclxuICAgICAgICAgKiDmqKrluYXlub/lkYrjgILpooTkvLDlrr3luqbpu5jorqTkuLozMDDvvIzpooTkvLDpq5jluqbkuLoxNDDjgILlpoLmnpzkvaDkuI3noa7lrprlsLHmjInpu5jorqTlgLzmnaXjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIGlzVG9wIOaYr+WQpuWcqOWxj+W5lemhtumDqOWxleekuuOAguWGhemDqOS8muiHquWKqOWxheS4reiuoeeul+S9jee9ruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBiYW5uZXJXaWR0aCDmqKrluYXlub/lkYrnmoTpooTkvLDlrr3luqbjgILpu5jorqQzMDBcclxuICAgICAgICAgKiBAcGFyYW0gYXV0b1Nob3cg5bm/5ZGK5Yqg6L295a6M5oiQ5ZCO5piv5ZCm56uL5Yi75pi+56S677yM6buY6K6k5Li65LiN5pi+56S6XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZywgcGFyYW06IGJvb2xlYW4gfCBJUG9zaXRpb24sIGJhbm5lcldpZHRoOiBudW1iZXIgPSAzMDAsIGF1dG9TaG93OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGUoYXV0b1Nob3csIGJhbm5lcldpZHRoLCBwYXJhbSk7IC8vIOm7mOiupDMwMOavlOi+g+WQiOmAglxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGUoYXV0b1Nob3c6IGJvb2xlYW4sIGJhbm5lcldpZHRoOiBudW1iZXIsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgd2luU2l6ZSA9IGdldFN5c1dpblNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPSBiYW5uZXJXaWR0aCAqIDAuNDtcclxuICAgICAgICAgICAgbGV0IHRvcCA9IDAsIGxlZnQgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQgPSAod2luU2l6ZS53aWR0aCAtIGJhbm5lcldpZHRoKSAvIDJcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtID8gNSA6ICh3aW5TaXplLmhlaWdodCAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcGFyYW0ubGVmdDtcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtLnRvcDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIGFkSW50ZXJ2YWxzOiAzMCwvLyDoh6rliqjliLfmlrDpopHnjofkuI3og73lsI/kuo4zMOenklxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIHdpZHRoOiBiYW5uZXJXaWR0aCB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB3eC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IHR0LmNyZWF0ZUJhbm5lckFkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/Lm9uRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWQgYmFubmVyIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXV0b1Nob3cgJiYgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsYXNzIEFEQ3VzdG9tIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkQ3VzdG9tOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIHRvcCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXpobbpg6jnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gbGVmdCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXmnIDlt6bovrnnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg5Y6f55Sf5qih5p2/5bm/5ZGK55qE5bC65a+477yM6buY6K6k5Li6Me+8jOWNszEwMCXjgILmraTlgLzlnKjlvq7kv6HmnI3liqHlkI7nq6/lub/lkYrkuK3ojrflvpfvvIzpu5jorqTkuLoxMDAl77yM55uu5YmN5pyJMTAwJe+8jDkwJe+8jDgwJeS4ieenje+8jOS4gOiIrOaDheWGteS4jeeUqOS/ruaUueOAguiLpeacieS/ruaUue+8jOiusOW+l+S8oOWFpeWAvO+8jOS+i+WmgjkwJeWwseS8oOWFpTAuOeOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHRvcDogbnVtYmVyID0gMCwgbGVmdDogbnVtYmVyID0gMCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUFkKHRvcCwgbGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21BZCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyLCBzY2FsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSkgeyAvLyBvbmx5IHdlY2hhdCBzdXBwb3J0IGN1c3RvbSBhZFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ09ubHkgd2VjaGF0IHN1cHBvcnQgQ3VzdG9tIEFkJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/mqKHmnb815Liq5bqU55So5a695bqm5Li6Mzc177yM6Iul6K6+572u5LqG57yp5pS+5q+U5L6L77yM5YiZ5a695bqm5Lmf6ZyA6KaB6K6+572uXHJcbiAgICAgICAgICAgIC8vIGxldCB3aWR0aCA9IDM3NSAqIHRoaXMuX3NjYWxlO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3TGVmdCA9IChzeXMud2luZG93V2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3VG9wID0gc3lzLndpbmRvd0hlaWdodCAvIDI7IC8vIDEyMOaYr+mihOS8sOmrmOW6plxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbSA9IHd4LmNyZWF0ZUN1c3RvbUFkKHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIGZpeGVkOiB0cnVlIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZCBjdXN0b20gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6KeG6aKR5bm/5ZGK55So5oi354K55Ye76KGM5Li657uT5p6cXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVBZFZpZGVvUmVzdWx0IHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlKjmiLfnnIvlrozkuoblub/lkYrvvIzmuLjmiI/lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBBQ0NFUFQsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+S4remAlOWFs+mXreS6huW5v+WRiu+8jOWNs+acqueci+WujOeKtuaAgeOAguS4jeWPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFJFSkVDVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bm/5ZGK57uE5Lu25YaF6YOo5Y+R55Sf5LqG6ZSZ6K+v44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgRVJST1IsXHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURWaWRlbyB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZFZpZGVvOiBhbnkgPSBudWxsO1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5Y+v5Lul6L+e57ut55yL5pyA5aSn6KeG6aKR5Liq5pWw77yM5Y+v5pyA5aSn5YyW5ZWG5Lia5pWI546H44CC6buY6K6k5Li6M+S4quOAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHNob3cob25SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGNhbGxiYWNrID0gKHN0YXRlOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBzdGF0ZSwgY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9uQWRWaWRlb0Nsb3NlZCA9IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub2ZmQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuaXNFbmRlZCB8fCByZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc0NvbnZlcnRlZCA9IHJlcyBhcyB7IGlzRW5kZWQ6IGJvb2xlYW4sIGNvdW50OiBudW1iZXIgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzQ29udmVydGVkICYmIHJlc0NvbnZlcnRlZC5jb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCByZXNDb252ZXJ0ZWQuY291bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSB3eC5jcmVhdGVSZXdhcmRlZFZpZGVvQWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHR0LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkTXNnOiBbJ+WkmjHmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJywgJ+WGjeWkmuS4gOasoeWlluWKsSddLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkVGltZXM6IG1heFZpZGVvQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCBsb2FkIHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkVycm9yKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWQgdmlkZW8gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ubG9hZCgpLnRoZW4oKCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkpLmNhdGNoKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDYXRjaCB2aWRlbyBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5FUlJPUiwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdG9yeSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZW51bSBFQWRCYW5uZXJMb2NhdGlvbiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bGP5bmV6aG26YOoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgVE9QLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXlupXpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBCT1RUT00sXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEFkdmVydE1hbmFnZXIge1xyXG5cclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEFkdmVydE1hbmFnZXI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogQWR2ZXJ0TWFuYWdlciB7XHJcbiAgICAgICAgICAgIGlmICghQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIEFkdmVydE1hbmFnZXIuX2luc3RhbmNlID0gbmV3IEFkdmVydE1hbmFnZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF92aWRlbzogQURWaWRlbztcclxuICAgICAgICBwcml2YXRlIF9pbnRlcnN0aXRpYWw6IEFESW50ZXJzdGl0aWFsO1xyXG4gICAgICAgIHByaXZhdGUgX2Jhbm5lcjogQURCYW5uZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBfY3VzdG9tczogUmVjb3JkPHN0cmluZywgQURDdXN0b20+ID0ge307XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6aKE5Yqg6L295qiq5bmF5bm/5ZGK77yM5LiN5Lya5pi+56S644CC5Y+q5pyJ5L2g5Zyo6LCD55Soc2hvd0Jhbm5lcuaXtuaJjeS8muaYvuekuuOAglxyXG4gICAgICAgICAqIOWPr+mHjeWkjeiwg+eUqO+8jOS9huaYr+S8mumUgOavgeS4iuS4gOasoeeahOWunuS+i+OAguS4gOiIrOaDheWGte+8jOWFqOWxgOacieS4gOS4quWwseihjOS6hu+8jOWkquWkmuWNoOeUqOWGheWtmO+8jOiAjOS4lOayoeW/heimgeOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpVSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOm7mOiupOS4uui3n+Wxj+W5leS4gOagt+eahOWuveW6pu+8jOWPr+S7pemAmui/h+iuvue9rue8qeaUvuavlOS+i+adpeiwg+aVtOWkp+Wwj+OAguW9k+eEtu+8jOW5s+WPsOacieinhOWumuacgOWkp+aIluacgOWwj+WuveW6pu+8jOWHveaVsOWGhemDqOS8muiHquWKqOiuoeeul+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBsb2FkQmFubmVyKGFkVWlkOiBzdHJpbmcsIGxvY2F0aW9uOiBFQWRCYW5uZXJMb2NhdGlvbiB8IElQb3NpdGlvbiA9IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgbGV0IHNpemU6IElTaXplID0gZ2V0U3lzV2luU2l6ZSgpO1xyXG4gICAgICAgICAgICAvLyDlvZMgc3R5bGUud2lkdGgg5bCP5LqOIDMwMCDml7bvvIzkvJrlj5bkvZwgMzAw44CCIOW9kyBzdHlsZS53aWR0aCDlpKfkuo7lsY/luZXlrr3luqbml7bvvIzkvJrlj5bkvZzlsY/luZXlrr3luqbjgIJcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aCAqIHNjYWxlO1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIDwgMzAwID8gMzAwIDogd2lkdGg7IC8vIOacgOWwj+WAvOefq+ato1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoID4gc2l6ZS53aWR0aCA/IHNpemUud2lkdGggOiB3aWR0aDsgLy/mnIDlpKflgLznn6vmraNcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gdHlwZW9mIGxvY2F0aW9uID09PSAnbnVtYmVyJyA/IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24gPT09IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgd2lkdGgsIGZhbHNlKSA6IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24sIHdpZHRoLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrmqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Jhbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWluaUdhbWVTREs6IGJhbm5lciBpcyBudWxsLCB5b3UgbXVzdCBjYWxsIGxvYWRCYW5uZXIoLi4uKSBmaXJzdCEnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5qiq5bmF5bm/5ZGKXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5by55Ye65o+S5bGP5bm/5ZGKXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg2lkXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dJbnRlcnN0aXRpYWwoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsICYmIHRoaXMuX2ludGVyc3RpdGlhbC5hZHVpZCA9PT0gYWRVaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG5ldyBBREludGVyc3RpdGlhbChhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwuc2hvdygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliqDovb3ljp/nlJ/mqKHmnb/lub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93Q3VzdG9t5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB5pys5Ye95pWw77yM5Lya6LCD55So5peg5pWI77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklEXHJcbiAgICAgICAgICogQHBhcmFtIGxvY2F0aW9uIOS9jee9ruacieS4pOenjeaDheWGte+8mjHjgIHlj6/ku6XkvKDlhaXmnprkuL7lgLzvvIzpu5jorqTkuIrmlrk7IDLjgIHlj6/ku6Xoh6rlrprkuYnkvY3nva7kvKDlhaVJUG9zaXRpb27vvIzms6jmhI9JUG9zaXRpb27kuK3nmoR0b3DlkoxsZWZ06Lef5bmz5Y+w55qEdG9wLGxlZnTmmK/kuIDoh7TvvIjmsqHmnInkuZjku6Xorr7lpIflg4/ntKDmr5RyYXRpb++8ie+8jOmcgOimgeW8gOWPkeiAheiHquW3seiwg+ivleS9jee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBzY2FsZSDnvKnmlL7mr5TkvovvvIzpu5jorqTmmK8x77yM5Y2z5LiN57yp5pS+44CC6L+Z5Liq57yp5pS+5bm25LiN5piv6Ieq5bex5aGr77yM6ICM5piv5qC55o2u5b6u5L+hTVDlkI7lj7DkvaDphY3nva7nmoTljp/nlJ/mqKHmnb/lub/lkYrnmoTnvKnmlL7mr5TkvovloavvvIznm67liY3mnIkxMDAl77yMOTAl77yMODAl5LiJ56eN77yM5LiA6Iis5oOF5Ya15LiN55So5L+u5pS544CC6Iul5pyJ5ZCO5Y+w5L+u5pS577yM6K6w5b6X5Lyg5YWl5YC877yM5L6L5aaCOTAl5bCx5Lyg5YWlMC4544CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRDdXN0b20oYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNjYWxlOiBudW1iZXIgPSAxKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9jdXN0b20gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke2FkVWlkfSBoYXMgYmVlbiBsb2FkZWQuYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdID0gbmV3IEFEQ3VzdG9tKGFkVWlkLCBsb2NhdGlvbi50b3AsIGxvY2F0aW9uLmxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrnmoTllK/kuIDmoIfor4bnrKbjgILkvb/nlKjmraTmoIfor4bnrKbmnaXmn6Xmib7lkozmmL7npLrnibnlrprnmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiDmraTmlrnms5XlsJ3or5XmoLnmja7mj5DkvpvnmoRhZFVpZOaYvuekuuS4gOS4quiHquWumuS5ieW5v+WRiuOAguWmguaenOe7meWumueahGFkVWlk5a+55bqU55qE6Ieq5a6a5LmJ5bm/5ZGK5bey5Yqg6L2977yMXHJcbiAgICAgICAgICog5YiZ6LCD55So6K+l5bm/5ZGK55qE5pi+56S65pa55rOV44CC5aaC5p6c5bm/5ZGK5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IHNob3chYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmakOiXj+aMh+WumueahOiHquWumuS5ieW5v+WRiuWNleWFg1xyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleeUqOS6jumakOiXj+mAmui/h+W5v+WRiuWNleWFg+agh+ivhuespu+8iGFkVWlk77yJ5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c5oyH5a6a55qE5bm/5ZGK5Y2V5YWD5bey5Yqg6L295bm25pi+56S677yMXHJcbiAgICAgICAgICog5YiZ5bCG5YW26ZqQ6JeP77yb5aaC5p6c5bm/5ZGK5Y2V5YWD5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg+agh+ivhuespu+8jOeUqOS6juWUr+S4gOagh+ivhuS4gOS4quiHquWumuS5ieW5v+WRiuWNleWFg+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBoaWRlQ3VzdG9tKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXS5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFlvdSBoYXZlIG5vdCBsb2FkICR7YWRVaWR9IG9mIEN1c3RvbSBBRCwgY2FuIG5vdCBoaWRlIWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7lvq7kv6Hlkozmipbpn7Pop4bpopHlub/lkYrmnLrliLbkuI3lkIzvvIzlvq7kv6Hlj6/ku6XnnIvnmoTop4bpopHlub/lkYrkuKrmlbDlj6rmnIkw5ZKMMeS4qu+8jOaKlumfs+W5s+WPsOWImeWPr+S7peecizB+bWF4VmlkZW9Db3VudFxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpJROOAguWmguaenOS4juS4iuS4gOasoVVJROS4jeWQjO+8jOWImeWGhemDqOS8mumHjeaWsOWIm+W7uuWunuS+i+OAguW8gOWPkeiAheWujOWFqOS4jeeUqOWFs+W/g+i/meS4que7huiKguOAglxyXG4gICAgICAgICAqIEBwYXJhbSBvblZpZGVvUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIIgXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBvblZpZGVvUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5pyA5aSn6KeG6aKR5Liq5pWw44CC6buY6K6k5pivM++8jOS7heWvueaKlumfs+W5s+WPsOeUn+aViOOAguW+ruS/oeW5s+WPsOeci+WujOinhumikWNvdW5055qE57uT5p6c5rC46L+c5pivMeaIljBcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd1ZpZGVvKGFkVWlkOiBzdHJpbmcsIG9uVmlkZW9SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZGVvICYmIHRoaXMuX3ZpZGVvLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbmV3IEFEVmlkZW8oYWRVaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplIDmr4HlhoXpg6jmiYDmnInlrp7kvovvvIzmuIXnqbrlhoXlrZhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgZGVzdHJveUFsbCgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgaW4gdGhpcy5fY3VzdG9tcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbdmFsXT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tcyA9IHt9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVHYW1lQ2x1Ykljb24ge1xyXG4gICAgICAgIC8qKiDnu7/oibLlm77moIcgKi9cclxuICAgICAgICBHUkVFTiA9ICdncmVlbicsXHJcblxyXG4gICAgICAgIC8qKiDnuqLoibLlm77moIcgKi9cclxuICAgICAgICBXSElURSA9ICd3aGl0ZScsXHJcblxyXG4gICAgICAgIC8qKiDmnInpu5HoibLlnIbop5Log4zmma/nmoTnmb3oibLlm77moIcgKi9cclxuICAgICAgICBEQVJLID0gJ2RhcmsnLFxyXG5cclxuICAgICAgICAvKiog5pyJ55m96Imy5ZyG6KeS6IOM5pmv55qE57u/6Imy5Zu+5qCHICovXHJcbiAgICAgICAgTElHSFQgPSAnbGlnaHQnXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEdhbWVDbHViIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVDbHViO1xyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IEdhbWVDbHViIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgR2FtZUNsdWIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF9jbHViOiBhbnk7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5Yib5bu65ri45oiP5ZyI5oyJ6ZKuXHJcbiAgICAgICAgICogQHBhcmFtIGljb24gXHJcbiAgICAgICAgICogQHBhcmFtIHBvc2l0aW9uIFxyXG4gICAgICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICAgICAqIEBwYXJhbSBvcGVuTGluayBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjcmVhdGUoaWNvbjogRUdhbWVDbHViSWNvbiA9IEVHYW1lQ2x1Ykljb24uR1JFRU4sIHBvc2l0aW9uOiBJUG9zaXRpb24gPSB7IHRvcDogMCwgbGVmdDogMCB9LCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwIH0sIG9wZW5MaW5rPzogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jbHViID0gd3guY3JlYXRlR2FtZUNsdWJCdXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zaXRpb24ubGVmdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBwb3NpdGlvbi50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVubGluazogb3BlbkxpbmtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMr+WKqOexu+Wei1xyXG4gICAgICovXHJcbiAgICBleHBvcnQgZW51bSBFVmlyYnJhdGVUeXBlIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnn63mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBTSE9SVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZW/5oyv5YqoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgTE9OR1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAqIOaKlumfs+S+p+i+ueagj+S4k+WxnuaOpeWPo1xyXG4gKi9cclxuICAgIGV4cG9ydCBjbGFzcyBCeXRlZGFuY2VTaWRlYmFyIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmnKzmuLjmiI/lnKjmipbpn7Pnjq/looPkuIvlkK/liqjnm5HmjqfvvIzpnIDopoHmlL7lnKjlhajlsYDnjq/looPkuK3vvIzkv53or4Hog73nrKzkuIDml7bpl7TlkK/liqjjgILlm6DkuLrlj6/og73nm5HlkKzmipbpn7PlpLHotKXvvIjmipbpn7PlsI/muLjmiI/lrpjmlrnnmoTor7TmmI7vvInvvIFcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBsaXN0ZW5Gcm9tU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQub25TaG93KChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ29uU2hvdyBsYXVuY2ggcmVzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xhdW5jaCBmcm9tIHNpZGViYXInKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ05PVCBsYXVuY2ggZnJvbSBkb3V5aW4gc2lkZWJhciEnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gdHQuZ2V0TGF1bmNoT3B0aW9uc1N5bmMoKTtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zY2VuZSA9PT0gJzAyMTAzNicpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOajgOa1i+aKlumfs+S+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNoZWNrU2lkZUJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuY2hlY2tTY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNrIHNjZW5lIHN1Y2Nlc3M6IFwiLCByZXMuaXNFeGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCA8Ym9vbGVhbj5yZXMuaXNFeGlzdCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgZmFpbDpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDot7PovazliLDmipbpn7PkvqfovrnmoI9cclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBuYXZpZ2F0ZVRvU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90IGRvdXlpbiBwbGF0Zm9ybSFcIik7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvU2NlbmUoe1xyXG4gICAgICAgICAgICAgICAgc2NlbmU6IFwic2lkZWJhclwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgZmFpbGVkIHJlYXNvbjpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW5s+WPsOW4uOeUqEFQSeWQiOmbhlxyXG4gICAgICovXHJcbiAgICBleHBvcnQgY2xhc3MgQVBJIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Db2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9sb2dpbkFub255bW91c0NvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX3VzZXJJbmZvOiBhbnkgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF90YTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDUwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5b6u5L+h5bCP5ri45oiP77ya6Lez6L2s5Yiw5Y+m5aSW5LiA5qy+5bCP5ri45oiPXHJcbiAgICAgICAgICog5oqW6Z+z5bCP5ri45oiP77ya6Lez6L2s5Yiw5oyH5a6a55qE6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldElkIOW+ruS/oeWwj+a4uOaIj2FwcGlk5oiW6ICF6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG8odGFyZ2V0SWQ6IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gubmF2aWdhdGVUb01pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbzogJ2JhcidcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVudlZlcnNpb246ICdkZXZlbG9wJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvVmlkZW9WaWV3KHtcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImJ5dGVkYW5jZSBuYXZpZ2F0ZVRvVmlkZW9WaWV3IGZhaWxcIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsI/muLjmiI/lubPlj7DnmbvlvZXlip/og73jgILlvq7kv6Hov5Tlm55jb2Rl77yM5oqW6Z+z6L+U5ZueY29kZeWSjGFub255bW91c0NvZGXjgILnlKjkuo7nmbvlvZXnmoTlh63or4HvvIzpnIDopoHmiorov5nkuKpjb2Rl5Lyg5Zue5L2g55qE5pyN5Yqh5Zmo56iL5bqP5Lit5Y676LCD55SoY29kZTJTZXNzaW9uXHJcbiAgICAgICAgICogQHBhcmFtIGNhbGxiYWNrIChjb2RlLCBhbm9ueW1vdXNDb2RlKSDnrKzkuIDkuKrlj4LmlbDkuLpjb2Rl77yM5b6u5L+h5ZKM5oqW6Z+z6YO95pSv5oyB77yb56ys5LqM5Liq5Y+C5pWw5Li65Yy/5ZCN6K6+5aSHSUTvvIzku4Xmipbpn7PmlK/mjIHvvIzlpLHotKXpg73ov5Tlm55udWxsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxvZ2luKGNhbGxiYWNrOiAoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgbGV0IGxvZ2luUGxhdGZvcm0gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogeyBjb2RlOiBhbnk7IGVyck1zZzogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IHJlcy5jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGZhaWwnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5sb2dpbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gJHtyZXMuY29kZX0gJHtyZXMuYW5vbnltb3VzQ29kZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSByZXMuYW5vbnltb3VzQ29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gZmFpbGAsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdub3QgbWluaSBnYW1lIHBsYXRmb3JtLCBsb2dpbiBjb2RlcyBhcmUgYWxsIG51bGwnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAoIUFQSS5fbG9naW5Db2RlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlIGN1cnJlbnQgY29kZTpgLCBBUEkuX2xvZ2luQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlciBjdXJyZW50IGNvZGU6ICR7QVBJLl9sb2dpbkNvZGV9LCAke0FQSS5fbG9naW5Bbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gZXhwaXJlZGApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIG51bGwnKTtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICog5bCP5ri45oiP5bmz5Y+w55m75b2V5Yqf6IO944CC5b6u5L+h6L+U5ZueY29kZe+8jOaKlumfs+i/lOWbnmNvZGXlkoxhbm9ueW1vdXNDb2Rl44CC55So5LqO55m75b2V55qE5Yet6K+B77yM6ZyA6KaB5oqK6L+Z5LiqY29kZeS8oOWbnuS9oOeahOacjeWKoeWZqOeoi+W6j+S4reWOu+iwg+eUqGNvZGUyU2Vzc2lvblxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICovXHJcbiAgICAgICAgc3RhdGljIGdldFVzZXJJbmZvKGNhbGxiYWNrOiAodXNlckluZm86IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuZ2V0VXNlckluZm8oe1xyXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl91c2VySW5mbyA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhBUEkuX3VzZXJJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOiwg+eUqOW+ruS/oeS6keWHveaVsOOAgueUseS6juWPguaVsOmcgOimgeiHquWumuS5ie+8jOaJgOS7peS4umFuee+8jOmcgOimgeiHquihjOino+mHiuOAguWHveaVsOWPquWujOaIkOmAmumBk+WSjOWkhOeQhuS4gOWcuueahOS9nOeUqFxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayDov5Tlm57kupHlh73mlbDosIPnlKjnu5PmnpzjgILpnIDopoHmo4Dmn6Xov5Tlm57lj4LmlbDmmK/lkKbkuLrnqbrvvIzlpLHotKXnmoTml7blgJnkuLrnqbpcclxuICAgICAgICAgKiBAcGFyYW0gbmFtZSDkupHlh73mlbDnmoTlkI3lrZdcclxuICAgICAgICAgKiBAcGFyYW0gZGF0YSDkupHlh73mlbDnmoTlhoXlrrlcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24oY2FsbGJhY2s6IChyZXM6IGFueSkgPT4gdm9pZCwgbmFtZTogc3RyaW5nLCBkYXRhOiB7fSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOb3Qgd2VjaGF0IHBsYXRmb3JtLCBub3Qgc3VwcG9ydCBjYWxsV2VjaGF0Q2xvdWRGdW5jdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5faGFzSW5pdFdlY2hhdENsb3VkRnVuY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IGNhbGxiYWNrPy4ocmVzKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlY2hhdCBjbG91ZCBmdW5jdGlvbiBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWtmOWCqOeUqOaIt+S/oeaBr++8jOaVsOaNrumHj+S4jeiDveWkp+OAguWPr+S7peiAg+iZkeeUqOS6juWIhuaVsOaOkuihjOamnOOAgueUqOaIt+S5i+mXtOWPr+WFseS6q+aOkuihjOaVsOaNruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBrZXkgXHJcbiAgICAgICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzZXRVc2VyQ2xvdWRTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LnNldFVzZXJDbG91ZFN0b3JhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIEtWRGF0YUxpc3Q6IFt7IGtleToga2V5LCB2YWx1ZTogdmFsdWUsIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgKiDmlbDmlbDlubPlj7DliJ3lp4vljJbku6Xlj4rnmbvlvZVcclxuICAgICAgICAqL1xyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X0luaXQoKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuW8gOWni+aOpeWFpeaVsOaVsOW5s+WPsFwiKTtcclxuICAgICAgICAgICAgICAgIC8vZ2V0V2VjaGF0R2FtZVZlcnNpb25cclxuICAgICAgICAgICAgICAgIGxldCBhcHBJZCA9IFwiMTIxNTkxMzc4ZmMxNDIzODkzZGViMTIwNDE0MTNlYjNcIjtcclxuICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gY2MuZnguR2FtZVRvb2wuZ2V0V2VjaGF0R2FtZVZlcnNpb24oKTtcclxuICAgICAgICAgICAgICAgIGlmICh0ZXN0ID09IFwi5q2j5byP54mIXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZCA9IFwiODdkMTg5NThjZWExNDVmMjlkMzI2NTQ3MGVjZDM0ODZcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBjb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYXBwSWQ6IFwiNzNlMWVjNjU0ZjE1YjQ3YTFhNzM1NGZiYWJlYzA1YWRcIiwgLy8g6aG555uuIEFQUCBJRFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkOiBhcHBJZCxcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVcmw6IFwiaHR0cHM6Ly9kYXRhLm5pa2E0ZnVuLmNvbVwiLCAvLyDkuIrmiqXlnLDlnYBcclxuICAgICAgICAgICAgICAgICAgICBhdXRvVHJhY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwU2hvdzogdHJ1ZSwgLy8g6Ieq5Yqo6YeH6ZuGIHRhX21nX3Nob3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSGlkZTogdHJ1ZSAvLyDoh6rliqjph4fpm4YgdGFfbWdfaGlkZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvLyDliJvlu7ogVEEg5a6e5L6LXHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhID0gbmV3IFRoaW5raW5nQW5hbHl0aWNzQVBJKGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAvLyDliJ3lp4vljJZcclxuICAgICAgICAgICAgICAgIEFQSS5fdGEuaW5pdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X0xvZ2luKCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YS5sb2dpbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9UcmFjayhcImxvZ2luXCIsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBBUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X3VzZXJTZXQodGltZSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLorr7nva7nlKjmiLfms6jlhozlsZ7mgKdcIik7XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnVzZXJTZXQoeyByZWdpc3Rlcl90aW1lOiB0aW1lIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICog5pWw5pWw5bmz5Y+w6K6+572u5Yqo5oCB5YWs5YWx5bGe5oCnXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsICYmIEFQSS5fdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcnNpb25EYXRhID0gXCIxLjNcIjtcclxuICAgICAgICAgICAgICAgIC8vIEFQSS5fdGEudXNlclNldE9uY2UoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgICAgIHZhciBzdXBlclByb3BlcnRpZXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbDogKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCAvL+W9k+WJjeWFs+WNoeetiee6pyAgbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9oZWFsdGg6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCwgICAgICAgIC8v5b2T5YmN5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wX2NvaW46IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLC8v5b2T5YmN6YeR5biBXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogdmVyc2lvbkRhdGFcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnNldFN1cGVyUHJvcGVydGllcyhzdXBlclByb3BlcnRpZXMpOy8v6K6+572u5YWs5YWx5LqL5Lu25bGe5oCnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXRXZWNoYXRHYW1lVmVyc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjb3VudEluZm8ubWluaVByb2dyYW0udmVyc2lvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOWFt+S9k+Wfi+eCuVxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfVHJhY2sobmFtZSwgZGF0YSwgY2FsbGJhY2s/OiAoc3VjY2VzczogYm9vbGVhbiwgZXJyb3I/OiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmIChBUEkuX3RhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YGH6K6+IHRyYWNrIOaWueazlei/lOWbnuS4gOS4qiBQcm9taXNlXHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl90YS50cmFjayhcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgLy8g5LqL5Lu25ZCN56ewXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgLy8g5LqL5Lu25bGe5oCnIFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -11325,7 +11499,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/prop/Star.js';
+ var __filename = 'preview-scripts/assets/Script/prop/Lock.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -11333,8 +11507,8 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'd773dbWW6tAz6F+Z0L3IXUx', 'Star');
-// Script/prop/Star.ts
+cc._RF.push(module, '41cb8ugLSBH/5aNhnsJ5lX7', 'Lock');
+// Script/prop/Lock.ts
"use strict";
// Learn TypeScript:
@@ -11363,48 +11537,42 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var Map_1 = require("../Map");
+var NumberToImage_1 = require("../NumberToImage");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Star = /** @class */ (function (_super) {
- __extends(Star, _super);
- function Star() {
+var Lock = /** @class */ (function (_super) {
+ __extends(Lock, _super);
+ function Lock() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.time = 60;
- // mapInfo: number[][] = [];
- _this.star_SpriteFrame = null;
+ _this.time = 0;
return _this;
// update (dt) {}
}
- Star.prototype.onLoad = function () {
+ // mapInfo: number[][] = [];
+ Lock.prototype.onLoad = function () {
};
- Star.prototype.start = function () {
+ Lock.prototype.start = function () {
};
- Star.prototype.init = function (time) {
+ Lock.prototype.init = function (time) {
if (time)
this.time = time;
this.node.getChildByName("time").active = true;
- this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
- this.schedule(this.updateTime, 1);
+ NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false);
};
- Star.prototype.updateTime = function () {
- this.time--;
- this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ Lock.prototype.reduce = function () {
+ this.time -= 1;
+ NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false);
if (this.time <= 0) {
- this.unschedule(this.updateTime);
+ this.node.parent.getComponent("Block").type = 0;
this.node.destroy();
- Map_1.default._instance.failLevel();
- // this.node.destroy();
+ this.node.removeFromParent();
}
};
- __decorate([
- property(cc.SpriteAtlas)
- ], Star.prototype, "star_SpriteFrame", void 0);
- Star = __decorate([
+ Lock = __decorate([
ccclass
- ], Star);
- return Star;
+ ], Lock);
+ return Lock;
}(cc.Component));
-exports.default = Star;
+exports.default = Lock;
cc._RF.pop();
}
@@ -11417,7 +11585,656 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxTdGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUUzQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQW1DQztRQWpDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLDRCQUE0QjtRQUU1QixzQkFBZ0IsR0FBbUIsSUFBSSxDQUFDOztRQTRCeEMsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcscUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxvQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELG1CQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBMUJEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7a0RBQ2U7SUFOdkIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQW1DeEI7SUFBRCxXQUFDO0NBbkNELEFBbUNDLENBbkNpQyxFQUFFLENBQUMsU0FBUyxHQW1DN0M7a0JBbkNvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGFyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIHN0YXJfU3ByaXRlRnJhbWU6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgIH0gXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQodGltZSl7XHJcbiAgICAgICAgaWYodGltZSkgdGhpcy50aW1lID0gdGltZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHVwZGF0ZVRpbWUoKXtcclxuICAgICAgICB0aGlzLnRpbWUgLS07XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxMb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2xGLGtEQUE2QztBQUV2QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQStCQztRQTdCRyxVQUFJLEdBQVcsQ0FBQyxDQUFDOztRQTRCakIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcsNEJBQTRCO0lBRTVCLHFCQUFNLEdBQU47SUFFQSxDQUFDO0lBRUQsb0JBQUssR0FBTDtJQUNBLENBQUM7SUFFRCxtQkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBHLENBQUM7SUFFRCxxQkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDZix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQTVCZ0IsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQStCeEI7SUFBRCxXQUFDO0NBL0JELEFBK0JDLENBL0JpQyxFQUFFLENBQUMsU0FBUyxHQStCN0M7a0JBL0JvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4uL051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSAxO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '81314mE3BdESr87SAFK9cqv', 'lq_collide_system');
+// Script/lq_collide_system/lq_collide_system.js
+
+/*Obfuscated by JShaman.com*/'use strict';
+
+exports['__esModule'] = !![];
+exports['LQCollideSystem'] = void 0x0;
+var lq_const_1 = require('../lq_base/data/lq_const');
+var lq_math_util_1 = require('../lq_base/util/lq_math_util');
+var lq_collide_config_1 = require('./lq_collide_config');
+var lq_data_1 = require('../lq_base/data/lq_data');
+var Vec2 = cc['Vec2'];
+var game = cc['game'];
+var director = cc['director'];
+var Scheduler = cc['Scheduler'];
+var misc = cc['misc'];
+var LQQuadTree = function () {
+ function _0x56565e(_0x3d3a0e, _0x3fb055, _0x20ce04, _0x406033) {
+ this['collide_arr'] = [];
+ this['node_arr'] = [];
+ this['max_object'] = _0x3fb055 || 0xa;
+ this['max_level'] = _0x20ce04 || 0x4;
+ this['level'] = _0x406033 || 0x0;
+ this['rect'] = _0x3d3a0e;
+ this['collide_arr'] = [];
+ this['node_arr'] = [];
+ }
+ _0x56565e['prototype']['split'] = function () {
+ var _0x32a9cb = this['level'] + 0x1;
+ var _0x178d81 = this['rect']['width'] * 0.5;
+ var _0x1d1d97 = this['rect']['height'] * 0.5;
+ var _0x5f5093 = this['rect']['x'];
+ var _0x3269c2 = this['rect']['y'];
+ this['node_arr'][0x0] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093 + _0x178d81, _0x3269c2, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
+ this['node_arr'][0x1] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093, _0x3269c2, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
+ this['node_arr'][0x2] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093, _0x3269c2 + _0x1d1d97, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
+ this['node_arr'][0x3] = new _0x56565e(new lq_data_1['LQRect'](_0x5f5093 + _0x178d81, _0x3269c2 + _0x1d1d97, _0x178d81, _0x1d1d97), this['max_object'], this['max_level'], _0x32a9cb);
+ };
+ _0x56565e['prototype']['get_index'] = function (_0x59d6ec) {
+ var _0x1dc547 = [];
+ var _0x2ea7cd = this['rect']['x'] + this['rect']['half_width'];
+ var _0x5e97b7 = this['rect']['y'] + this['rect']['half_height'];
+ var _0x241f59 = _0x59d6ec['world_rect']['y'] + _0x59d6ec['world_rect']['half_height'] > _0x5e97b7;
+ var _0x437790 = _0x59d6ec['world_rect']['x'] - _0x59d6ec['world_rect']['half_width'] < _0x2ea7cd;
+ var _0x5e6619 = _0x59d6ec['world_rect']['x'] + _0x59d6ec['world_rect']['half_width'] > _0x2ea7cd;
+ var _0x3b42aa = _0x59d6ec['world_rect']['y'] - _0x59d6ec['world_rect']['half_height'] < _0x5e97b7;
+ if (_0x5e6619 && _0x241f59) {
+ _0x1dc547['push'](0x0);
+ }
+ if (_0x437790 && _0x241f59) {
+ _0x1dc547['push'](0x1);
+ }
+ if (_0x437790 && _0x3b42aa) {
+ _0x1dc547['push'](0x2);
+ }
+ if (_0x3b42aa && _0x5e6619) {
+ _0x1dc547['push'](0x3);
+ }
+ return _0x1dc547;
+ };
+ ;
+ _0x56565e['prototype']['insert'] = function (_0x32f23a) {
+ var _0x3850fe;
+ if (this['node_arr']['length']) {
+ _0x3850fe = this['get_index'](_0x32f23a);
+ for (var _0x4856cf = 0x0; _0x4856cf < _0x3850fe['length']; _0x4856cf++) {
+ this['node_arr'][_0x3850fe[_0x4856cf]]['insert'](_0x32f23a);
+ }
+ return;
+ }
+ this['collide_arr']['push'](_0x32f23a);
+ if (this['collide_arr']['length'] > this['max_object'] && this['level'] < this['max_level']) {
+ if (!this['node_arr']['length']) {
+ this['split']();
+ }
+ for (var _0x4856cf = 0x0; _0x4856cf < this['collide_arr']['length']; _0x4856cf++) {
+ var _0x2d136c = this['collide_arr'][_0x4856cf];
+ _0x3850fe = this['get_index'](_0x2d136c);
+ for (var _0x1e9f35 = 0x0; _0x1e9f35 < _0x3850fe['length']; _0x1e9f35++) {
+ this['node_arr'][_0x3850fe[_0x1e9f35]]['insert'](_0x2d136c);
+ }
+ }
+ this['collide_arr'] = [];
+ }
+ };
+ ;
+ _0x56565e['prototype']['retrieve'] = function (_0x77a71) {
+ var _0xaa8c7a;
+ var _0x42264c = this['get_index'](_0x77a71);
+ if (this['collide_arr']['length']) {
+ (_0xaa8c7a = _0x56565e['temp_collide_arr'])['push']['apply'](_0xaa8c7a, this['collide_arr']);
+ }
+ if (this['node_arr']['length']) {
+ for (var _0x4c3497 = 0x0; _0x4c3497 < _0x42264c['length']; _0x4c3497++) {
+ this['node_arr'][_0x42264c[_0x4c3497]]['retrieve'](_0x77a71);
+ }
+ }
+ };
+ ;
+ _0x56565e['prototype']['get_all_area'] = function () {
+ if (this['collide_arr']['length']) {
+ _0x56565e['all_collide_arr']['push'](this['collide_arr']);
+ }
+ if (this['node_arr']['length']) {
+ for (var _0x3d5c9f = 0x0; _0x3d5c9f < 0x4; _0x3d5c9f++) {
+ this['node_arr'][_0x3d5c9f]['get_all_area']();
+ }
+ }
+ };
+ _0x56565e['prototype']['clear'] = function () {
+ this['collide_arr'] = [];
+ for (var _0x170eca = 0x0; _0x170eca < this['node_arr']['length']; _0x170eca++) {
+ if (this['node_arr']['length']) {
+ this['node_arr'][_0x170eca]['clear']();
+ }
+ }
+ this['node_arr'] = [];
+ };
+ ;
+ _0x56565e['temp_collide_arr'] = [];
+ _0x56565e['all_collide_arr'] = [];
+ return _0x56565e;
+}();
+var LQCollideSystem = function () {
+ function _0x9bf60e() {}
+ _0x9bf60e['cache_polygon'] = function (_0xbc3d22) {
+ if (_0xbc3d22['_collide_shape'] === lq_const_1['LQCollideShape']['Rect']) {
+ _0xbc3d22['cache_polygon_points'] = [];
+ var _0x53235e = _0xbc3d22['world_rect']['top_left']();
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ _0x53235e = _0xbc3d22['world_rect']['bottom_left']();
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ _0x53235e = _0xbc3d22['world_rect']['bottom_right']();
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ _0x53235e = _0xbc3d22['world_rect']['top_right']();
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ } else if (_0xbc3d22['_collide_shape'] === lq_const_1['LQCollideShape']['Polygon']) {
+ _0xbc3d22['cache_polygon_points'] = [];
+ if (_0xbc3d22['node']['angle'] == 0x0) {
+ for (var _0x2f1e6c = 0x0; _0x2f1e6c < _0xbc3d22['_polygon_points']['length']; _0x2f1e6c++) {
+ var _0x53235e = _0xbc3d22['world_rect']['add'](_0xbc3d22['_polygon_points'][_0x2f1e6c]);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ }
+ } else {
+ var _0x1be630 = misc['degreesToRadians'](_0xbc3d22['node']['angle']);
+ var _0x1a0598 = Math['sin'](_0x1be630);
+ var _0x25967e = Math['cos'](_0x1be630);
+ var _0xfbf241 = function _0xfbf241(_0x5ed3a5) {
+ return new Vec2(_0x5ed3a5['x'] * _0x25967e - _0x5ed3a5['y'] * _0x1a0598 + _0xbc3d22['world_rect']['x'], _0x5ed3a5['x'] * _0x1a0598 + _0x5ed3a5['y'] * _0x25967e + _0xbc3d22['world_rect']['y']);
+ };
+ for (var _0x2f1e6c = 0x0; _0x2f1e6c < _0xbc3d22['_polygon_points']['length']; _0x2f1e6c++) {
+ var _0x53235e = _0xfbf241(_0xbc3d22['_polygon_points'][_0x2f1e6c]);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['x']);
+ _0xbc3d22['cache_polygon_points']['push'](_0x53235e['y']);
+ }
+ }
+ }
+ };
+ _0x9bf60e['_updateWorldMatrix'] = function (_0x296a1a) {
+ if (_0x296a1a['_parent']) {
+ _0x9bf60e['_updateWorldMatrix'](_0x296a1a['_parent']);
+ }
+ if (_0x296a1a['_worldMatDirty']) {
+ this['tmp_bool'] = !![];
+ _0x296a1a['_calculWorldMatrix']();
+ var _0x3d1ca2 = _0x296a1a['_children'];
+ for (var _0x2b4ec9 = 0x0, _0x600367 = _0x3d1ca2['length']; _0x2b4ec9 < _0x600367; _0x2b4ec9++) {
+ _0x3d1ca2[_0x2b4ec9]['_worldMatDirty'] = !![];
+ }
+ }
+ };
+ _0x9bf60e['transformMat4'] = function (_0x5d68b5, _0x2c4dd0, _0x190f88) {
+ var _0x523dc8 = _0x190f88['m'];
+ _0x5d68b5['x'] = _0x523dc8[0x0] * _0x2c4dd0['x'] + _0x523dc8[0x4] * _0x2c4dd0['y'] + _0x523dc8[0xc];
+ _0x5d68b5['y'] = _0x523dc8[0x1] * _0x2c4dd0['x'] + _0x523dc8[0x5] * _0x2c4dd0['y'] + _0x523dc8[0xd];
+ return _0x5d68b5;
+ };
+ _0x9bf60e['update_world_rect'] = function (_0x264b72) {
+ if (!_0x264b72['world_rect']) {
+ return;
+ }
+ this['tmp_bool'] = ![];
+ this['_updateWorldMatrix'](_0x264b72['node']);
+ if (this['tmp_bool']) {
+ _0x264b72['cache_polygon_points'] = undefined;
+ }
+ _0x9bf60e['transformMat4'](_0x264b72['world_rect'], _0x264b72['_offset'], _0x264b72['node']['_worldMatrix']);
+ };
+ _0x9bf60e['update_collide_logic'] = function (_0x1b9a2c) {
+ if (_0x1b9a2c['is_open_func']) {
+ for (var _0x1d8d8c in _0x1b9a2c['collide_map']) {
+ var _0x1406b5 = _0x1b9a2c['collide_map'][_0x1d8d8c];
+ if (_0x1406b5['status'] === 0x1) {
+ _0x1406b5['status'] = 0x2;
+ } else {
+ delete _0x1b9a2c['collide_map'][_0x1d8d8c];
+ _0x1b9a2c['on_exit'](_0x1406b5['collide']);
+ }
+ }
+ }
+ _0x1b9a2c['update_lq_collide']();
+ };
+ _0x9bf60e['collide_other'] = function (_0x64f064, _0x3becdd) {
+ if (_0x64f064['is_open_func']) {
+ var _0x45b029 = _0x64f064['collide_map'][_0x3becdd['collide_id']];
+ if (_0x45b029) {
+ _0x45b029['status'] = 0x1;
+ } else {
+ _0x64f064['collide_map'][_0x3becdd['collide_id']] = {
+ 'collide': _0x3becdd,
+ 'status': 0x1
+ };
+ _0x64f064['on_enter'](_0x3becdd);
+ }
+ }
+ if (_0x3becdd['is_open_func']) {
+ var _0x544a5c = _0x3becdd['collide_map'][_0x64f064['collide_id']];
+ if (_0x544a5c) {
+ _0x544a5c['status'] = 0x1;
+ } else {
+ _0x3becdd['collide_map'][_0x64f064['collide_id']] = {
+ 'collide': _0x64f064,
+ 'status': 0x1
+ };
+ _0x3becdd['on_enter'](_0x64f064);
+ }
+ }
+ _0x64f064['on_collide'](_0x3becdd);
+ _0x3becdd['on_collide'](_0x64f064);
+ };
+ _0x9bf60e['add_collide'] = function (_0x2e897d) {
+ this['update_world_rect'](_0x2e897d);
+ this['collide_arr']['push'](_0x2e897d);
+ };
+ _0x9bf60e['remove_collide'] = function (_0x416298) {
+ for (var _0x12059a = this['collide_arr']['length'] - 0x1; _0x12059a >= 0x0; _0x12059a--) {
+ if (this['collide_arr'][_0x12059a]['collide_id'] === _0x416298['collide_id']) {
+ this['collide_arr']['splice'](_0x12059a, 0x1);
+ break;
+ }
+ }
+ };
+ _0x9bf60e['line_point'] = function (_0x4a7370, _0x24c7a1, _0x4e18ee, _0x122356, _0x2bd713, _0x2d3b6e) {
+ return Math['abs'](this['distanceSquared'](_0x4a7370, _0x24c7a1, _0x4e18ee, _0x122356) - (this['distanceSquared'](_0x4a7370, _0x24c7a1, _0x2bd713, _0x2d3b6e) + this['distanceSquared'](_0x4e18ee, _0x122356, _0x2bd713, _0x2d3b6e))) <= 0x1;
+ };
+ _0x9bf60e['distanceSquared'] = function (_0x5cca3b, _0x11b678, _0x1f0b63, _0x52cec7) {
+ return Math['sqrt'](Math['pow'](_0x5cca3b - _0x1f0b63, 0x2) + Math['pow'](_0x11b678 - _0x52cec7, 0x2));
+ };
+ _0x9bf60e['polygon_point'] = function (_0x4236c0, _0x12e825, _0x5cd4dd) {
+ var _0xbd6fd0 = _0x4236c0['length'];
+ var _0x1f4fbc = ![];
+ var _0x267b58, _0x4a1bae;
+ for (_0x267b58 = 0x0, _0x4a1bae = _0xbd6fd0 - 0x2; _0x267b58 < _0xbd6fd0; _0x267b58 += 0x2) {
+ if (_0x4236c0[_0x267b58 + 0x1] > _0x5cd4dd !== _0x4236c0[_0x4a1bae + 0x1] > _0x5cd4dd && _0x12e825 < (_0x4236c0[_0x4a1bae] - _0x4236c0[_0x267b58]) * (_0x5cd4dd - _0x4236c0[_0x267b58 + 0x1]) / (_0x4236c0[_0x4a1bae + 0x1] - _0x4236c0[_0x267b58 + 0x1]) + _0x4236c0[_0x267b58]) {
+ _0x1f4fbc = !_0x1f4fbc;
+ }
+ _0x4a1bae = _0x267b58;
+ }
+ if (_0x1f4fbc) {
+ return !![];
+ }
+ for (_0x267b58 = 0x0; _0x267b58 < _0xbd6fd0; _0x267b58 += 0x2) {
+ var _0x574e3e = _0x4236c0[_0x267b58];
+ var _0x4b92d8 = _0x4236c0[_0x267b58 + 0x1];
+ var _0x5d39d4 = void 0x0,
+ _0x124e9c = void 0x0;
+ if (_0x267b58 === _0xbd6fd0 - 0x2) {
+ _0x5d39d4 = _0x4236c0[0x0];
+ _0x124e9c = _0x4236c0[0x1];
+ } else {
+ _0x5d39d4 = _0x4236c0[_0x267b58 + 0x2];
+ _0x124e9c = _0x4236c0[_0x267b58 + 0x3];
+ }
+ if (this['line_point'](_0x574e3e, _0x4b92d8, _0x5d39d4, _0x124e9c, _0x12e825, _0x5cd4dd)) {
+ return !![];
+ }
+ }
+ return ![];
+ };
+ _0x9bf60e['polygon_circle'] = function (_0x387188, _0x611012, _0x3707e8, _0x2432e1) {
+ if (this['polygon_point'](_0x387188, _0x611012, _0x3707e8)) {
+ return !![];
+ }
+ var _0x197657 = _0x387188['length'];
+ for (var _0x3df6fc = 0x0; _0x3df6fc < _0x197657 - 0x2; _0x3df6fc += 0x2) {
+ if (this['line_circle'](_0x387188[_0x3df6fc], _0x387188[_0x3df6fc + 0x1], _0x387188[_0x3df6fc + 0x2], _0x387188[_0x3df6fc + 0x3], _0x611012, _0x3707e8, _0x2432e1)) {
+ return !![];
+ }
+ }
+ return this['line_circle'](_0x387188[0x0], _0x387188[0x1], _0x387188[_0x197657 - 0x2], _0x387188[_0x197657 - 0x1], _0x611012, _0x3707e8, _0x2432e1);
+ };
+ _0x9bf60e['line_circle'] = function (_0x12bba1, _0x321290, _0x136703, _0x537e0e, _0x3ad147, _0x559a7d, _0x48a834) {
+ var _0x3bfd94 = [_0x3ad147 - _0x12bba1, _0x559a7d - _0x321290];
+ var _0x6da620 = [_0x136703 - _0x12bba1, _0x537e0e - _0x321290];
+ var _0x1feda4 = this['dot'](_0x6da620, _0x6da620);
+ var _0x53913d = this['dot'](_0x3bfd94, _0x6da620);
+ var _0x3674f5 = _0x53913d / _0x1feda4;
+ _0x3674f5 = _0x3674f5 < 0x0 ? 0x0 : _0x3674f5;
+ _0x3674f5 = _0x3674f5 > 0x1 ? 0x1 : _0x3674f5;
+ var _0x150033 = [_0x6da620[0x0] * _0x3674f5 + _0x12bba1 - _0x3ad147, _0x6da620[0x1] * _0x3674f5 + _0x321290 - _0x559a7d];
+ var _0x442af1 = this['dot'](_0x150033, _0x150033);
+ return _0x442af1 <= _0x48a834 * _0x48a834;
+ };
+ _0x9bf60e['dot'] = function (_0x1e79a5, _0x179c92) {
+ return _0x1e79a5[0x0] * _0x179c92[0x0] + _0x1e79a5[0x1] * _0x179c92[0x1];
+ };
+ _0x9bf60e['update_logic'] = function (_0xb17278) {
+ if (!this['is_enable']) {
+ return;
+ }
+ if (lq_collide_config_1['LQCollideConfig']['switch_quad_tree']) {
+ this['quad_tree']['clear']();
+ for (var _0x1337bd = this['collide_arr']['length'] - 0x1; _0x1337bd >= 0x0; _0x1337bd--) {
+ var _0x20181e = this['collide_arr'][_0x1337bd];
+ if (!_0x20181e) {
+ return;
+ }
+ if (!_0x20181e['isValid']) {
+ this['collide_arr']['splice'](_0x1337bd, 0x1);
+ continue;
+ }
+ this['update_collide_logic'](_0x20181e);
+ if (_0x20181e['is_enable']) {
+ this['update_world_rect'](_0x20181e);
+ this['quad_tree']['insert'](_0x20181e);
+ }
+ }
+ LQQuadTree['all_collide_arr'] = [];
+ this['quad_tree']['get_all_area']();
+ for (var _0x4af6ff = 0x0; _0x4af6ff < LQQuadTree['all_collide_arr']['length']; _0x4af6ff++) {
+ var _0x5cac71 = LQQuadTree['all_collide_arr'][_0x4af6ff];
+ for (var _0x1337bd = 0x0; _0x1337bd < _0x5cac71['length']; _0x1337bd++) {
+ var _0x549a66 = _0x5cac71[_0x1337bd];
+ for (var _0x5793ff = _0x1337bd + 0x1; _0x5793ff < _0x5cac71['length']; _0x5793ff++) {
+ var _0x4740fe = _0x5cac71[_0x5793ff];
+ if (_0x549a66['collide_category'] & _0x4740fe['collide_mask'] && _0x549a66 !== _0x4740fe) {
+ if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x549a66['world_rect'], _0x4740fe['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x4740fe['world_rect'], _0x4740fe['radius'], _0x549a66['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'], _0x4740fe['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] == 0x3 && _0x4740fe['_collide_shape'] == 0x2) {
+ if (!_0x549a66['cache_polygon_points']) {
+ this['cache_polygon'](_0x549a66);
+ }
+ if (this['polygon_circle'](_0x549a66['cache_polygon_points'], _0x4740fe['world_rect']['x'], _0x4740fe['world_rect']['y'], _0x4740fe['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] == 0x2 && _0x4740fe['_collide_shape'] == 0x3) {
+ if (!_0x4740fe['cache_polygon_points']) {
+ this['cache_polygon'](_0x4740fe);
+ }
+ if (this['polygon_circle'](_0x4740fe['cache_polygon_points'], _0x549a66['world_rect']['x'], _0x549a66['world_rect']['y'], _0x549a66['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else {
+ if (!_0x549a66['cache_polygon_points']) {
+ this['cache_polygon'](_0x549a66);
+ }
+ if (!_0x4740fe['cache_polygon_points']) {
+ this['cache_polygon'](_0x4740fe);
+ }
+ if (this['polygon_polygon'](_0x549a66['cache_polygon_points'], _0x4740fe['cache_polygon_points'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ var _0x5cac71 = [];
+ for (var _0x1337bd = this['collide_arr']['length'] - 0x1; _0x1337bd >= 0x0; _0x1337bd--) {
+ var _0x20181e = this['collide_arr'][_0x1337bd];
+ if (!_0x20181e) {
+ return;
+ }
+ if (!_0x20181e['isValid']) {
+ this['collide_arr']['splice'](_0x1337bd, 0x1);
+ continue;
+ }
+ this['update_collide_logic'](_0x20181e);
+ if (_0x20181e['is_enable']) {
+ this['update_world_rect'](_0x20181e);
+ _0x5cac71['push'](_0x20181e);
+ }
+ }
+ var _0x4f3337 = _0x5cac71['length'];
+ for (var _0x1337bd = 0x0; _0x1337bd < _0x4f3337; _0x1337bd++) {
+ var _0x549a66 = _0x5cac71[_0x1337bd];
+ for (var _0x5793ff = _0x1337bd + 0x1; _0x5793ff < _0x4f3337; _0x5793ff++) {
+ var _0x4740fe = _0x5cac71[_0x5793ff];
+ if (_0x549a66['collide_category'] & _0x4740fe['collide_mask']) {
+ if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x549a66['world_rect'], _0x4740fe['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x1 && _0x4740fe['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x4740fe['world_rect'], _0x4740fe['radius'], _0x549a66['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] === 0x2 && _0x4740fe['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x549a66['world_rect'], _0x549a66['radius'], _0x4740fe['world_rect'], _0x4740fe['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] == 0x3 && _0x4740fe['_collide_shape'] == 0x2) {
+ if (!_0x549a66['cache_polygon_points']) {
+ this['cache_polygon'](_0x549a66);
+ }
+ if (this['polygon_circle'](_0x549a66['cache_polygon_points'], _0x4740fe['world_rect']['x'], _0x4740fe['world_rect']['y'], _0x4740fe['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else if (_0x549a66['_collide_shape'] == 0x2 && _0x4740fe['_collide_shape'] == 0x3) {
+ if (!_0x4740fe['cache_polygon_points']) {
+ this['cache_polygon'](_0x4740fe);
+ }
+ if (this['polygon_circle'](_0x4740fe['cache_polygon_points'], _0x549a66['world_rect']['x'], _0x549a66['world_rect']['y'], _0x549a66['radius'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ } else {
+ if (!_0x549a66['cache_polygon_points']) {
+ this['cache_polygon'](_0x549a66);
+ }
+ if (!_0x4740fe['cache_polygon_points']) {
+ this['cache_polygon'](_0x4740fe);
+ }
+ if (this['polygon_polygon'](_0x549a66['cache_polygon_points'], _0x4740fe['cache_polygon_points'])) {
+ this['collide_other'](_0x549a66, _0x4740fe);
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+ _0x9bf60e['polygon_polygon'] = function (_0x1a152c, _0x484cd2) {
+ var _0x173f61 = _0x1a152c;
+ var _0x3fccda = _0x484cd2;
+ var _0x22eef9 = [_0x173f61, _0x3fccda];
+ var _0x3662ed, _0x10bbdb, _0x29133c, _0x5ce192, _0x8011c7, _0xdfe8bc;
+ for (var _0x3aee8c = 0x0; _0x3aee8c < _0x22eef9['length']; _0x3aee8c++) {
+ var _0x1ce8fd = _0x22eef9[_0x3aee8c];
+ for (var _0x2ab2ff = 0x0; _0x2ab2ff < _0x1ce8fd['length']; _0x2ab2ff += 0x2) {
+ var _0x373bd2 = (_0x2ab2ff + 0x2) % _0x1ce8fd['length'];
+ var _0x4b64a4 = {
+ 'x': _0x1ce8fd[_0x373bd2 + 0x1] - _0x1ce8fd[_0x2ab2ff + 0x1],
+ 'y': _0x1ce8fd[_0x2ab2ff] - _0x1ce8fd[_0x373bd2]
+ };
+ _0x3662ed = null;
+ _0x10bbdb = null;
+ for (_0xdfe8bc = 0x0; _0xdfe8bc < _0x173f61['length']; _0xdfe8bc += 0x2) {
+ _0x29133c = _0x4b64a4['x'] * _0x173f61[_0xdfe8bc] + _0x4b64a4['y'] * _0x173f61[_0xdfe8bc + 0x1];
+ if (_0x3662ed === null || _0x29133c < _0x3662ed) {
+ _0x3662ed = _0x29133c;
+ }
+ if (_0x10bbdb === null || _0x29133c > _0x10bbdb) {
+ _0x10bbdb = _0x29133c;
+ }
+ }
+ _0x5ce192 = null;
+ _0x8011c7 = null;
+ for (_0xdfe8bc = 0x0; _0xdfe8bc < _0x3fccda['length']; _0xdfe8bc += 0x2) {
+ _0x29133c = _0x4b64a4['x'] * _0x3fccda[_0xdfe8bc] + _0x4b64a4['y'] * _0x3fccda[_0xdfe8bc + 0x1];
+ if (_0x5ce192 === null || _0x29133c < _0x5ce192) {
+ _0x5ce192 = _0x29133c;
+ }
+ if (_0x8011c7 === null || _0x29133c > _0x8011c7) {
+ _0x8011c7 = _0x29133c;
+ }
+ }
+ if (_0x10bbdb < _0x5ce192 || _0x8011c7 < _0x3662ed) {
+ return ![];
+ }
+ }
+ }
+ return !![];
+ };
+ _0x9bf60e['get_group_by_index'] = function (_0x40e2f1) {
+ for (var _0xfca8d1 in lq_collide_config_1['LQCollideConfig']['collide_group_map']) {
+ var _0x5ac815 = lq_collide_config_1['LQCollideConfig']['collide_group_map'][_0xfca8d1];
+ if (_0x5ac815['index'] === _0x40e2f1) {
+ return _0x5ac815;
+ }
+ }
+ return undefined;
+ };
+ _0x9bf60e['get_info_by_id'] = function (_0xffbcdc) {
+ var _0x308325;
+ for (var _0x149f5e in lq_collide_config_1['LQCollideConfig']['collide_group_map']) {
+ var _0x12150f = lq_collide_config_1['LQCollideConfig']['collide_group_map'][_0x149f5e];
+ if (_0x12150f['id'] === _0xffbcdc) {
+ return _0x12150f;
+ }
+ if (!_0x308325) {
+ _0x308325 = _0x12150f;
+ }
+ }
+ return _0x308325;
+ };
+ _0x9bf60e['find_nearest_collide'] = function (_0x308082) {
+ var _0x3131c5 = [];
+ for (var _0xc3c380 = _0x9bf60e['collide_arr']['length'] - 0x1; _0xc3c380 >= 0x0; _0xc3c380--) {
+ var _0x585f4f = _0x9bf60e['collide_arr'][_0xc3c380];
+ if (_0x308082 === _0x585f4f || !_0x585f4f['is_enable']) {
+ continue;
+ }
+ if (_0x308082['follow_target_category']) {
+ if (_0x585f4f['collide_category'] === _0x308082['follow_target_category']) {
+ _0x3131c5['push'](_0x585f4f);
+ }
+ } else if ((_0x585f4f['collide_category'] & _0x308082['collide_mask']) !== 0x0) {
+ _0x3131c5['push'](_0x585f4f);
+ }
+ }
+ _0x3131c5['sort'](function (_0x3ddb83, _0x3ccf74) {
+ return _0x308082['world_rect']['sub'](_0x3ddb83['world_rect'])['magSqr']() - _0x308082['world_rect']['sub'](_0x3ccf74['world_rect'])['magSqr']();
+ });
+ return _0x3131c5[0x0];
+ };
+ _0x9bf60e['clear'] = function (_0x4cf6a6) {
+ if (_0x4cf6a6 === void 0x0) {
+ _0x4cf6a6 = ![];
+ }
+ if (_0x4cf6a6) {
+ for (var _0x537b2d = this['collide_arr']['length'] - 0x1; _0x537b2d >= 0x0; _0x537b2d--) {
+ var _0x197d2f = this['collide_arr'][_0x537b2d];
+ if (_0x197d2f['isValid']) {
+ _0x197d2f['node']['destroy']();
+ }
+ }
+ }
+ this['collide_arr'] = [];
+ };
+ _0x9bf60e['check_collide'] = function (_0x183de2) {
+ var _0x25cea1 = [];
+ var _0xa7b05;
+ if (lq_collide_config_1['LQCollideConfig']['switch_quad_tree']) {
+ LQQuadTree['temp_collide_arr'] = [];
+ this['quad_tree']['retrieve'](_0x183de2);
+ _0xa7b05 = LQQuadTree['temp_collide_arr'];
+ } else {
+ _0xa7b05 = this['collide_arr'];
+ }
+ for (var _0x381af2 = 0x0; _0x381af2 < _0xa7b05['length']; _0x381af2++) {
+ var _0x5db7b3 = _0xa7b05[_0x381af2];
+ if (_0x183de2 === _0x5db7b3) {
+ continue;
+ }
+ if (_0x183de2['collide_category'] & _0x5db7b3['collide_mask']) {
+ if (_0x183de2['_collide_shape'] === 0x1 && _0x5db7b3['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_rect'](_0x183de2['world_rect'], _0x5db7b3['world_rect'])) {
+ _0x25cea1['push'](_0x5db7b3);
+ }
+ } else if (_0x183de2['_collide_shape'] === 0x1 && _0x5db7b3['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x5db7b3['world_rect'], _0x5db7b3['radius'], _0x183de2['world_rect'])) {
+ _0x25cea1['push'](_0x5db7b3);
+ }
+ } else if (_0x183de2['_collide_shape'] === 0x2 && _0x5db7b3['_collide_shape'] === 0x1) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle_rect'](_0x183de2['world_rect'], _0x183de2['radius'], _0x5db7b3['world_rect'])) {
+ _0x25cea1['push'](_0x5db7b3);
+ }
+ } else if (_0x183de2['_collide_shape'] === 0x2 && _0x5db7b3['_collide_shape'] === 0x2) {
+ if (lq_math_util_1['LQMathUtil']['intersects_circle'](_0x183de2['world_rect'], _0x183de2['radius'], _0x5db7b3['world_rect'], _0x5db7b3['radius'])) {
+ _0x25cea1['push'](_0x5db7b3);
+ }
+ } else if (this['polygon_polygon'](_0x183de2, _0x5db7b3)) {
+ _0x25cea1['push'](_0x5db7b3);
+ }
+ }
+ }
+ return _0x25cea1;
+ };
+ _0x9bf60e['is_enable'] = ![];
+ _0x9bf60e['collide_arr'] = [];
+ _0x9bf60e['quad_tree'] = new LQQuadTree(new lq_data_1['LQRect'](lq_collide_config_1['LQCollideConfig']['active_area_x'], lq_collide_config_1['LQCollideConfig']['active_area_y'], lq_collide_config_1['LQCollideConfig']['active_area_width'], lq_collide_config_1['LQCollideConfig']['active_area_height']), lq_collide_config_1['LQCollideConfig']['max_node_len'], lq_collide_config_1['LQCollideConfig']['max_node_level']);
+ return _0x9bf60e;
+}();
+exports['LQCollideSystem'] = LQCollideSystem;
+var AutoRun = function () {
+ function _0xf5b087() {
+ this['flag'] = !![];
+ }
+ _0xf5b087['prototype']['update'] = function (_0x365e55) {
+ if (lq_collide_config_1['LQCollideConfig']['per_frame'] === 0x3c) {
+ LQCollideSystem['update_logic'](_0x365e55);
+ } else {
+ if (this['flag']) {
+ this['flag'] = ![];
+ LQCollideSystem['update_logic'](_0x365e55);
+ } else {
+ this['flag'] = !![];
+ }
+ }
+ };
+ return _0xf5b087;
+}();
+game['on'](game['EVENT_GAME_INITED'], function () {
+ if (lq_collide_config_1['LQCollideConfig']['switch_auto_run'] && !CC_EDITOR) {
+ var _0x287f86 = new AutoRun();
+ director['getScheduler']()['enableForTarget'](_0x287f86);
+ director['getScheduler']()['scheduleUpdate'](_0x287f86, Scheduler['PRIORITY_SYSTEM'], ![]);
+ }
+});
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9zeXN0ZW0uanMiXSwibmFtZXMiOlsiZXhwb3J0cyIsImxxX2NvbnN0XzEiLCJyZXF1aXJlIiwibHFfbWF0aF91dGlsXzEiLCJscV9jb2xsaWRlX2NvbmZpZ18xIiwibHFfZGF0YV8xIiwiVmVjMiIsImNjIiwiZ2FtZSIsImRpcmVjdG9yIiwiU2NoZWR1bGVyIiwibWlzYyIsIkxRUXVhZFRyZWUiLCJfMHg1NjU2NWUiLCJfMHgzZDNhMGUiLCJfMHgzZmIwNTUiLCJfMHgyMGNlMDQiLCJfMHg0MDYwMzMiLCJfMHgzMmE5Y2IiLCJfMHgxNzhkODEiLCJfMHgxZDFkOTciLCJfMHg1ZjUwOTMiLCJfMHgzMjY5YzIiLCJfMHg1OWQ2ZWMiLCJfMHgxZGM1NDciLCJfMHgyZWE3Y2QiLCJfMHg1ZTk3YjciLCJfMHgyNDFmNTkiLCJfMHg0Mzc3OTAiLCJfMHg1ZTY2MTkiLCJfMHgzYjQyYWEiLCJfMHgzMmYyM2EiLCJfMHgzODUwZmUiLCJfMHg0ODU2Y2YiLCJfMHgyZDEzNmMiLCJfMHgxZTlmMzUiLCJfMHg3N2E3MSIsIl8weGFhOGM3YSIsIl8weDQyMjY0YyIsIl8weDRjMzQ5NyIsIl8weDNkNWM5ZiIsIl8weDE3MGVjYSIsIkxRQ29sbGlkZVN5c3RlbSIsIl8weDliZjYwZSIsIl8weGJjM2QyMiIsIl8weDUzMjM1ZSIsIl8weDJmMWU2YyIsIl8weDFiZTYzMCIsIl8weDFhMDU5OCIsIk1hdGgiLCJfMHgyNTk2N2UiLCJfMHhmYmYyNDEiLCJfMHg1ZWQzYTUiLCJfMHgyOTZhMWEiLCJfMHgzZDFjYTIiLCJfMHgyYjRlYzkiLCJfMHg2MDAzNjciLCJfMHg1ZDY4YjUiLCJfMHgyYzRkZDAiLCJfMHgxOTBmODgiLCJfMHg1MjNkYzgiLCJfMHgyNjRiNzIiLCJ1bmRlZmluZWQiLCJfMHgxYjlhMmMiLCJfMHgxZDhkOGMiLCJfMHgxNDA2YjUiLCJfMHg2NGYwNjQiLCJfMHgzYmVjZGQiLCJfMHg0NWIwMjkiLCJfMHg1NDRhNWMiLCJfMHgyZTg5N2QiLCJfMHg0MTYyOTgiLCJfMHgxMjA1OWEiLCJfMHg0YTczNzAiLCJfMHgyNGM3YTEiLCJfMHg0ZTE4ZWUiLCJfMHgxMjIzNTYiLCJfMHgyYmQ3MTMiLCJfMHgyZDNiNmUiLCJfMHg1Y2NhM2IiLCJfMHgxMWI2NzgiLCJfMHgxZjBiNjMiLCJfMHg1MmNlYzciLCJfMHg0MjM2YzAiLCJfMHgxMmU4MjUiLCJfMHg1Y2Q0ZGQiLCJfMHhiZDZmZDAiLCJfMHgxZjRmYmMiLCJfMHgyNjdiNTgiLCJfMHg0YTFiYWUiLCJfMHg1NzRlM2UiLCJfMHg0YjkyZDgiLCJfMHg1ZDM5ZDQiLCJfMHgxMjRlOWMiLCJfMHgzODcxODgiLCJfMHg2MTEwMTIiLCJfMHgzNzA3ZTgiLCJfMHgyNDMyZTEiLCJfMHgxOTc2NTciLCJfMHgzZGY2ZmMiLCJfMHgxMmJiYTEiLCJfMHgzMjEyOTAiLCJfMHgxMzY3MDMiLCJfMHg1MzdlMGUiLCJfMHgzYWQxNDciLCJfMHg1NTlhN2QiLCJfMHg0OGE4MzQiLCJfMHgzYmZkOTQiLCJfMHg2ZGE2MjAiLCJfMHgxZmVkYTQiLCJfMHg1MzkxM2QiLCJfMHgzNjc0ZjUiLCJfMHgxNTAwMzMiLCJfMHg0NDJhZjEiLCJfMHgxZTc5YTUiLCJfMHgxNzljOTIiLCJfMHhiMTcyNzgiLCJfMHgxMzM3YmQiLCJfMHgyMDE4MWUiLCJfMHg0YWY2ZmYiLCJfMHg1Y2FjNzEiLCJfMHg1NDlhNjYiLCJfMHg1NzkzZmYiLCJfMHg0NzQwZmUiLCJfMHg0ZjMzMzciLCJfMHgxYTE1MmMiLCJfMHg0ODRjZDIiLCJfMHgxNzNmNjEiLCJfMHgzZmNjZGEiLCJfMHgyMmVlZjkiLCJfMHgzNjYyZWQiLCJfMHgxMGJiZGIiLCJfMHgyOTEzM2MiLCJfMHg1Y2UxOTIiLCJfMHg4MDExYzciLCJfMHhkZmU4YmMiLCJfMHgzYWVlOGMiLCJfMHgxY2U4ZmQiLCJfMHgyYWIyZmYiLCJfMHgzNzNiZDIiLCJfMHg0YjY0YTQiLCJfMHg0MGUyZjEiLCJfMHhmY2E4ZDEiLCJfMHg1YWM4MTUiLCJfMHhmZmJjZGMiLCJfMHgzMDgzMjUiLCJfMHgxNDlmNWUiLCJfMHgxMjE1MGYiLCJfMHgzMDgwODIiLCJfMHgzMTMxYzUiLCJfMHhjM2MzODAiLCJfMHg1ODVmNGYiLCJfMHgzZGRiODMiLCJfMHgzY2NmNzQiLCJfMHg0Y2Y2YTYiLCJfMHg1MzdiMmQiLCJfMHgxOTdkMmYiLCJfMHgxODNkZTIiLCJfMHgyNWNlYTEiLCJfMHhhN2IwNSIsIl8weDM4MWFmMiIsIl8weDVkYjdiMyIsIkF1dG9SdW4iLCJfMHhmNWIwODciLCJfMHgzNjVlNTUiLCJDQ19FRElUT1IiLCJfMHgyODdmODYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE2QixZQUFZOztBQUFDQSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUU7QUFBQ0EsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUMsS0FBSyxHQUFHO0FBQUMsSUFBSUMsVUFBVSxHQUFDQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7QUFBQyxJQUFJQyxjQUFjLEdBQUNELE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztBQUFDLElBQUlFLG1CQUFtQixHQUFDRixPQUFPLENBQUMscUJBQXFCLENBQUM7QUFBQyxJQUFJRyxTQUFTLEdBQUNILE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztBQUFDLElBQUlJLElBQUksR0FBQ0MsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlDLElBQUksR0FBQ0QsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlFLFFBQVEsR0FBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FBQztBQUFDLElBQUlHLFNBQVMsR0FBQ0gsRUFBRSxDQUFDLFdBQVcsQ0FBQztBQUFDLElBQUlJLElBQUksR0FBQ0osRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFDLElBQUlLLFVBQVUsR0FBQyxZQUFVO0VBQUMsU0FBU0MsU0FBU0EsQ0FBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFDLEVBQUU7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUMsRUFBRTtJQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBQ0YsU0FBUyxJQUFFLEdBQUc7SUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUNDLFNBQVMsSUFBRSxHQUFHO0lBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFDQyxTQUFTLElBQUUsR0FBRztJQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBQ0gsU0FBUztJQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBQyxFQUFFO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFDLEVBQUU7RUFBQztFQUFDRCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUMsWUFBVTtJQUFDLElBQUlLLFNBQVMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRztJQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUMsSUFBSVQsU0FBUyxDQUFDLElBQUlSLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQ2dCLFNBQVMsR0FBQ0YsU0FBUyxFQUFDRyxTQUFTLEVBQUNILFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUlMLFNBQVMsQ0FBQyxJQUFJUixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUNnQixTQUFTLEVBQUNDLFNBQVMsRUFBQ0gsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDRixTQUFTLENBQUM7SUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUMsSUFBSUwsU0FBUyxDQUFDLElBQUlSLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQ2dCLFNBQVMsRUFBQ0MsU0FBUyxHQUFDRixTQUFTLEVBQUNELFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUlMLFNBQVMsQ0FBQyxJQUFJUixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUNnQixTQUFTLEdBQUNGLFNBQVMsRUFBQ0csU0FBUyxHQUFDRixTQUFTLEVBQUNELFNBQVMsRUFBQ0MsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQ0YsU0FBUyxDQUFDO0VBQUMsQ0FBQztFQUFDTCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUMsVUFBU1UsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLEVBQUU7SUFBQyxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFBQyxJQUFJQyxTQUFTLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFBQyxJQUFJQyxTQUFTLEdBQUNKLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFDRyxTQUFTO0lBQUMsSUFBSUUsU0FBUyxHQUFDTCxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUNBLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBQ0UsU0FBUztJQUFDLElBQUlJLFNBQVMsR0FBQ04sU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUNFLFNBQVM7SUFBQyxJQUFJSyxTQUFTLEdBQUNQLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFDRyxTQUFTO0lBQUMsSUFBR0csU0FBUyxJQUFFRixTQUFTLEVBQUM7TUFBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR0ksU0FBUyxJQUFFRCxTQUFTLEVBQUM7TUFBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR0ksU0FBUyxJQUFFRSxTQUFTLEVBQUM7TUFBQ04sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsSUFBR00sU0FBUyxJQUFFRCxTQUFTLEVBQUM7TUFBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUFDO0lBQUMsT0FBT0EsU0FBUztFQUFDLENBQUM7RUFBQztFQUFDWCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsVUFBU2tCLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVM7SUFBQyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQztNQUFDQSxTQUFTLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDRCxTQUFTLENBQUM7TUFBQyxLQUFJLElBQUlFLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQ0QsU0FBUyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDRixTQUFTLENBQUM7TUFBQztNQUFDO0lBQU87SUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNBLFNBQVMsQ0FBQztJQUFDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDO01BQUMsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQztRQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtNQUFDO01BQUMsS0FBSSxJQUFJRSxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDQSxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNELFNBQVMsQ0FBQztRQUFDRCxTQUFTLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDRSxTQUFTLENBQUM7UUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDRyxTQUFTLEVBQUUsRUFBQztVQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQ0gsU0FBUyxDQUFDRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEs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UyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFO01BQUNBLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBQ0QsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDQSxTQUFTLEdBQUNELFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRTtNQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQUNELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBQ0EsU0FBUyxHQUFDRCxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7TUFBQ0EsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQUMsQ0FBQyxNQUFLLElBQUdELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHM0MsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUM7TUFBQzJDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFDLEVBQUU7TUFBQyxJQUFHQSxTQUFT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R0FBQyxVQUFTb0IsU0FBUyxFQUFDO0lBQUMsSUFBR0EsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFDO01BQUMsS0FBSSxJQUFJQyxTQUFTLElBQUlELFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBQztRQUFDLElBQUlFLFNBQVMsR0FBQ0YsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDQyxTQUFTLENBQUM7UUFBQyxJQUFHQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUcsR0FBRyxFQUFDO1VBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHO1FBQUMsQ0FBQyxNQUFJO1VBQUMsT0FBT0YsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDQyxTQUFTLENBQUM7VUFBQ0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFBQztNQUFDO0lBQUM7SUFBQ0YsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUNwQixTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUMsVUFBU3VCLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBR0QsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFDO01BQUMsSUFBSUUsU0FBUyxHQUFDRixTQUFTLENBQUMsYUFBYSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztNQUFDLElBQUdDLFNBQVMsRUFBQztRQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRztNQUFDLENBQUMsTUFBSTtRQUFDRixTQUFTLENBQUMsYUFBYSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFDO1VBQUMsU0FBUyxFQUFDQSxTQUFTO1VBQUMsUUFBUSxFQUFDO1FBQUcsQ0FBQztRQUFDRCxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUNDLFNBQVMsQ0FBQztNQUFDO0lBQUM7SUFBQyxJQUFHQSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUM7TUFBQyxJQUFJRSxTQUFTLEdBQUNGLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO01BQUMsSUFBR0csU0FBUyxFQUFDO1FBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHO01BQUMsQ0FBQyxNQUFJO1FBQUNGLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0QsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUM7VUFBQyxTQUFTLEVBQUNBLFNBQVM7VUFBQyxRQUFRLEVBQUM7UUFBRyxDQUFDO1FBQUNDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQ0QsU0FBUyxDQUFDO01BQUM7SUFBQztJQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUNDLFNBQVMsQ0FBQztJQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUNELFNBQVMsQ0FBQztFQUFDLENBQUM7RUFBQ3ZCLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBQyxVQUFTMkIsU0FBUyxFQUFDO0lBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUNBLFNBQVMsQ0FBQztJQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO0VBQUMsQ0FBQztFQUFDM0IsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEdBQUMsVUFBUzRCLFNBQVMsRUFBQztJQUFDLEtBQUksSUFBSUMsU0FBUyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsSUFBRSxHQUFHLEVBQUNBLFNBQVMsRUFBRSxFQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNBLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFHRCxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUM7UUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUNDLFNBQVMsRUFBQyxHQUFHLENBQUM7UUFBQztNQUFNO0lBQUM7RUFBQyxDQUFDO0VBQUM3QixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUMsVUFBUzhCLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUM7SUFBQyxPQUFPN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDd0IsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxDQUFDLElBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDRyxTQUFTLEVBQUNDLFNBQVMsQ0FBQyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDSCxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRztFQUFDLENBQUM7RUFBQ25DLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFDLFVBQVNvQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUM7SUFBQyxPQUFPakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM4QixTQUFTLEdBQUNFLFNBQVMsRUFBQyxHQUFHLENBQUMsR0FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQytCLFNBQVMsR0FBQ0UsU0FBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQUMsQ0FBQztFQUFDdkMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFDLFVBQVN3QyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDSCxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQUMsSUFBSUksU0FBUyxHQUFDLENBQUMsRUFBRTtJQUFDLElBQUlDLFNBQVMsRUFBQ0MsU0FBUztJQUFDLEtBQUlELFNBQVMsR0FBQyxHQUFHLEVBQUNDLFNBQVMsR0FBQ0gsU0FBUyxHQUFDLEdBQUcsRUFBQ0UsU0FBUyxHQUFDRixTQUFTLEVBQUNFLFNBQVMsSUFBRSxHQUFHLEVBQUM7TUFBQyxJQUFHTCxTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ0gsU0FBUyxLQUFHRixTQUFTLENBQUNNLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ0osU0FBUyxJQUFFRCxTQUFTLEdBQUMsQ0FBQ0QsU0FBUyxDQUFDTSxTQUFTLENBQUMsR0FBQ04sU0FBUyxDQUFDSyxTQUFTLENBQUMsS0FBR0gsU0FBUyxHQUFDRixTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFFTCxTQUFTLENBQUNNLFNBQVMsR0FBQyxHQUFHLENBQUMsR0FBQ04sU0FBUyxDQUFDSyxTQUFTLEdBQUMsR0FBRyxDQUFDLENBQUMsR0FBQ0wsU0FBUyxDQUFDSyxTQUFTLENBQUMsRUFBQztRQUFDRCxTQUFTLEdBQUMsQ0FBQ0EsU0FBUztNQUFDO01BQUNFLFNBQVMsR0FBQ0QsU0FBUztJQUFDO0lBQUMsSUFBR0QsU0FBUyxFQUFDO01BQUMsT0FBTSxDQUFDLENBQUMsRUFBRTtJQUFDO0lBQUMsS0FBSUMsU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDRixTQUFTLEVBQUNFLFNBQVMsSUFBRSxHQUFHLEVBQUM7TUFBQyxJQUFJRSxTQUFTLEdBQUNQLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDO01BQUMsSUFBSUcsU0FBUyxHQUFDUixTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUM7TUFBQyxJQUFJSSxTQUFTLEdBQUMsS0FBSyxHQUFHO1FBQUNDLFNBQVMsR0FBQyxLQUFLLEdBQUc7TUFBQyxJQUFHTCxTQUFTLEtBQUdGLFNBQVMsR0FBQyxHQUFHLEVBQUM7UUFBQ00sU0FBUyxHQUFDVCxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUNVLFNBQVMsR0FBQ1YsU0FBUyxDQUFDLEdBQUcsQ0FBQztNQUFDLENBQUMsTUFBSTtRQUFDUyxTQUFTLEdBQUNULFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQztRQUFDSyxTQUFTLEdBQUNWLFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQztNQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUNFLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ1QsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztRQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0lBQUMsT0FBTSxDQUFDLEVBQUU7RUFBQyxDQUFDO0VBQUMxQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxVQUFTbUQsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztNQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7SUFBQztJQUFDLElBQUlFLFNBQVMsR0FBQ0osU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUFDLEtBQUksSUFBSUssU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDRCxTQUFTLEdBQUMsR0FBRyxFQUFDQyxTQUFTLElBQUUsR0FBRyxFQUFDO01BQUMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNMLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDLEVBQUNMLFNBQVMsQ0FBQ0ssU0FBUyxHQUFDLEdBQUcsQ0FBQyxFQUFDTCxTQUFTLENBQUNLLFNBQVMsR0FBQyxHQUFHLENBQUMsRUFBQ0wsU0FBUyxDQUFDSyxTQUFTLEdBQUMsR0FBRyxDQUFDLEVBQUNKLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUMsRUFBQztRQUFDLE9BQU0sQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0lBQUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUNJLFNBQVMsR0FBQyxHQUFHLENBQUMsRUFBQ0osU0FBUyxDQUFDSSxTQUFTLEdBQUMsR0FBRyxDQUFDLEVBQUNILFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLENBQUM7RUFBQyxDQUFDO0VBQUN0RCxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUMsVUFBU3lELFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQztJQUFDLElBQUlDLFNBQVMsR0FBQyxDQUFDSCxTQUFTLEdBQUNKLFNBQVMsRUFBQ0ssU0FBUyxHQUFDSixTQUFTLENBQUM7SUFBQyxJQUFJTyxTQUFTLEdBQUMsQ0FBQ04sU0FBUyxHQUFDRixTQUFTLEVBQUNHLFNBQVMsR0FBQ0YsU0FBUyxDQUFDO0lBQUMsSUFBSVEsU0FBUyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQ0QsU0FBUyxFQUFDQSxTQUFTLENBQUM7SUFBQyxJQUFJRSxTQUFTLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDSCxTQUFTLEVBQUNDLFNBQVMsQ0FBQztJQUFDLElBQUlHLFNBQVMsR0FBQ0QsU0FBUyxHQUFDRCxTQUFTO0lBQUNFLFNBQVMsR0FBQ0EsU0FBUyxHQUFDLEdBQUcsR0FBQyxHQUFHLEdBQUNBLFNBQVM7SUFBQ0EsU0FBUyxHQUFDQSxTQUFTLEdBQUMsR0FBRyxHQUFDLEdBQUcsR0FBQ0EsU0FBUztJQUFDLElBQUlDLFNBQVMsR0FBQyxDQUFDSixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUNHLFNBQVMsR0FBQ1gsU0FBUyxHQUFDSSxTQUFTLEVBQUNJLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ0csU0FBUyxHQUFDVixTQUFTLEdBQUNJLFNBQVMsQ0FBQztJQUFDLElBQUlRLFNBQVMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUNELFNBQVMsRUFBQ0EsU0FBUyxDQUFDO0lBQUMsT0FBT0MsU0FBUyxJQUFFUCxTQUFTLEdBQUNBLFNBQVM7RUFBQyxDQUFDO0VBQUMvRCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUMsVUFBU3VFLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lB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QUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0UsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUssSUFBR0YsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUUsR0FBRyxJQUFFRSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBRSxHQUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUk7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLENBQUNFLFNBQVMsQ0FBQyxz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UyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDLENBQUNGLFNBQVMsRUFBQ0MsU0FBUyxDQUFDO0lBQUMsSUFBSUUsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVM7SUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDTyxTQUFTLEVBQUUsRUFBQztNQUFDLElBQUlDLFNBQVMsR0FBQ1IsU0FBUyxDQUFDTyxTQUFTLENBQUM7TUFBQyxLQUFJLElBQUlFLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLElBQUUsR0FBRyxFQUFDO1FBQUMsSUFBSUMsU0FBUyxHQUFDLENBQUNELFNBQVMsR0FBQyxHQUFHLElBQUVELFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFBQyxJQUFJRyxTQUFTLEdBQUM7VUFBQyxHQUFHLEVBQUNILFNBQVMsQ0FBQ0UsU0FBUyxHQUFDLEdBQUcsQ0FBQyxHQUFDRixTQUFTLENBQUNDLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxHQUFHLEVBQUNELFNBQVMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUNELFNBQVMsQ0FBQ0UsU0FBUztRQUFDLENBQUM7UUFBQ1QsU0FBUyxHQUFDLElBQUk7UUFBQ0MsU0FBUyxHQUFDLElBQUk7UUFBQyxLQUFJSSxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUNSLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ1EsU0FBUyxJQUFFLEdBQUcsRUFBQztVQUFDSCxTQUFTLEdBQUNRLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ2IsU0FBUyxDQUFDUSxTQUFTLENBQUMsR0FBQ0ssU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFDYixTQUFTLENBQUNRLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxJQUFHTCxTQUFT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O01BQUMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUM7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxFQUFFO1FBQUMxSCxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMwSCxTQUFTLENBQUM7TUFBQyxDQUFDLE1BQUk7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0VBQUMsQ0FBQztFQUFDLE9BQU9ELFNBQVM7QUFBQyxDQUFDLEVBQUU7QUFBQzNKLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsWUFBVTtFQUFDLElBQUdKLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBRSxDQUFDaUssU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLElBQUlKLE9BQU8sRUFBRTtJQUFDekosUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQzZKLFNBQVMsQ0FBQztJQUFDN0osUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzZKLFNBQVMsRUFBQzVKLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDO0VBQUM7QUFBQyxDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qT2JmdXNjYXRlZCBieSBKU2hhbWFuLmNvbSovJ3VzZSBzdHJpY3QnO2V4cG9ydHNbJ19fZXNNb2R1bGUnXT0hIVtdO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPXZvaWQgMHgwO3ZhciBscV9jb25zdF8xPXJlcXVpcmUoJy4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdCcpO3ZhciBscV9tYXRoX3V0aWxfMT1yZXF1aXJlKCcuLi9scV9iYXNlL3V0aWwvbHFfbWF0aF91dGlsJyk7dmFyIGxxX2NvbGxpZGVfY29uZmlnXzE9cmVxdWlyZSgnLi9scV9jb2xsaWRlX2NvbmZpZycpO3ZhciBscV9kYXRhXzE9cmVxdWlyZSgnLi4vbHFfYmFzZS9kYXRhL2xxX2RhdGEnKTt2YXIgVmVjMj1jY1snVmVjMiddO3ZhciBnYW1lPWNjWydnYW1lJ107dmFyIGRpcmVjdG9yPWNjWydkaXJlY3RvciddO3ZhciBTY2hlZHVsZXI9Y2NbJ1NjaGVkdWxlciddO3ZhciBtaXNjPWNjWydtaXNjJ107dmFyIExRUXVhZFRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBfMHg1NjU2NWUoXzB4M2QzYTBlLF8weDNmYjA1NSxfMHgyMGNlMDQsXzB4NDA2MDMzKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107dGhpc1snbWF4X29iamVjdCddPV8weDNmYjA1NXx8MHhhO3RoaXNbJ21heF9sZXZlbCddPV8weDIwY2UwNHx8MHg0O3RoaXNbJ2xldmVsJ109XzB4NDA2MDMzfHwweDA7dGhpc1sncmVjdCddPV8weDNkM2EwZTt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107fV8weDU2NTY1ZVsncHJvdG90eXBlJ11bJ3NwbGl0J109ZnVuY3Rpb24oKXt2YXIgXzB4MzJhOWNiPXRoaXNbJ2xldmVsJ10rMHgxO3ZhciBfMHgxNzhkODE9dGhpc1sncmVjdCddWyd3aWR0aCddKjAuNTt2YXIgXzB4MWQxZDk3PXRoaXNbJ3JlY3QnXVsnaGVpZ2h0J10qMC41O3ZhciBfMHg1ZjUwOTM9dGhpc1sncmVjdCddWyd4J107dmFyIF8weDMyNjljMj10aGlzWydyZWN0J11bJ3knXTt0aGlzWydub2RlX2FyciddWzB4MF09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMrXzB4MTc4ZDgxLF8weDMyNjljMixfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt0aGlzWydub2RlX2FyciddWzB4MV09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMsXzB4MzI2OWMyLF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgyXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MyxfMHgzMjY5YzIrXzB4MWQxZDk3LF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgzXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MytfMHgxNzhkODEsXzB4MzI2OWMyK18weDFkMWQ5NyxfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt9O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9pbmRleCddPWZ1bmN0aW9uKF8weDU5ZDZlYyl7dmFyIF8weDFkYzU0Nz1bXTt2YXIgXzB4MmVhN2NkPXRoaXNbJ3JlY3QnXVsneCddK3RoaXNbJ3JlY3QnXVsnaGFsZl93aWR0aCddO3ZhciBfMHg1ZTk3Yjc9dGhpc1sncmVjdCddWyd5J10rdGhpc1sncmVjdCddWydoYWxmX2hlaWdodCddO3ZhciBfMHgyNDFmNTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3knXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl9oZWlnaHQnXT5fMHg1ZTk3Yjc7dmFyIF8weDQzNzc5MD1fMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsneCddLV8weDU5ZDZlY1snd29ybGRfcmVjdCddWydoYWxmX3dpZHRoJ108XzB4MmVhN2NkO3ZhciBfMHg1ZTY2MTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3gnXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl93aWR0aCddPl8weDJlYTdjZDt2YXIgXzB4M2I0MmFhPV8weDU5ZDZlY1snd29ybGRfcmVjdCddWyd5J10tXzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ2hhbGZfaGVpZ2h0J108XzB4NWU5N2I3O2lmKF8weDVlNjYxOSYmXzB4MjQxZjU5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDApO31pZihfMHg0Mzc3OTAmJl8weDI0MWY1OSl7XzB4MWRjNTQ3WydwdXNoJ10oMHgxKTt9aWYoXzB4NDM3NzkwJiZfMHgzYjQyYWEpe18weDFkYzU0N1sncHVzaCddKDB4Mik7fWlmKF8weDNiNDJhYSYmXzB4NWU2NjE5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDMpO31yZXR1cm4gXzB4MWRjNTQ3O307O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2luc2VydCddPWZ1bmN0aW9uKF8weDMyZjIzYSl7dmFyIF8weDM4NTBmZTtpZih0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7XzB4Mzg1MGZlPXRoaXNbJ2dldF9pbmRleCddKF8weDMyZjIzYSk7Zm9yKHZhciBfMHg0ODU2Y2Y9MHgwO18weDQ4NTZjZjxfMHgzODUwZmVbJ2xlbmd0aCddO18weDQ4NTZjZisrKXt0aGlzWydub2RlX2FyciddW18weDM4NTBmZVtfMHg0ODU2Y2ZdXVsnaW5zZXJ0J10oXzB4MzJmMjNhKTt9cmV0dXJuO310aGlzWydjb2xsaWRlX2FyciddWydwdXNoJ10oXzB4MzJmMjNhKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXT50aGlzWydtYXhfb2JqZWN0J10mJnRoaXNbJ2xldmVsJ108dGhpc1snbWF4X2xldmVsJ10pe2lmKCF0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7dGhpc1snc3BsaXQnXSgpO31mb3IodmFyIF8weDQ4NTZjZj0weDA7XzB4NDg1NmNmPHRoaXNbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDQ4NTZjZisrKXt2YXIgXzB4MmQxMzZjPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NDg1NmNmXTtfMHgzODUwZmU9dGhpc1snZ2V0X2luZGV4J10oXzB4MmQxMzZjKTtmb3IodmFyIF8weDFlOWYzNT0weDA7XzB4MWU5ZjM1PF8weDM4NTBmZVsnbGVuZ3RoJ107XzB4MWU5ZjM1Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4Mzg1MGZlW18weDFlOWYzNV1dWydpbnNlcnQnXShfMHgyZDEzNmMpO319dGhpc1snY29sbGlkZV9hcnInXT1bXTt9fTs7XzB4NTY1NjVlWydwcm90b3R5cGUnXVsncmV0cmlldmUnXT1mdW5jdGlvbihfMHg3N2E3MSl7dmFyIF8weGFhOGM3YTt2YXIgXzB4NDIyNjRjPXRoaXNbJ2dldF9pbmRleCddKF8weDc3YTcxKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXSl7KF8weGFhOGM3YT1fMHg1NjU2NWVbJ3RlbXBfY29sbGlkZV9hcnInXSlbJ3B1c2gnXVsnYXBwbHknXShfMHhhYThjN2EsdGhpc1snY29sbGlkZV9hcnInXSk7fWlmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXtmb3IodmFyIF8weDRjMzQ5Nz0weDA7XzB4NGMzNDk3PF8weDQyMjY0Y1snbGVuZ3RoJ107XzB4NGMzNDk3Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4NDIyNjRjW18weDRjMzQ5N11dWydyZXRyaWV2ZSddKF8weDc3YTcxKTt9fX07O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9hbGxfYXJlYSddPWZ1bmN0aW9uKCl7aWYodGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10pe18weDU2NTY1ZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ3B1c2gnXSh0aGlzWydjb2xsaWRlX2FyciddKTt9aWYodGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ10pe2Zvcih2YXIgXzB4M2Q1YzlmPTB4MDtfMHgzZDVjOWY8MHg0O18weDNkNWM5ZisrKXt0aGlzWydub2RlX2FyciddW18weDNkNWM5Zl1bJ2dldF9hbGxfYXJlYSddKCk7fX19O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2NsZWFyJ109ZnVuY3Rpb24oKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO2Zvcih2YXIgXzB4MTcwZWNhPTB4MDtfMHgxNzBlY2E8dGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ107XzB4MTcwZWNhKyspe2lmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXt0aGlzWydub2RlX2FyciddW18weDE3MGVjYV1bJ2NsZWFyJ10oKTt9fXRoaXNbJ25vZGVfYXJyJ109W107fTs7XzB4NTY1NjVlWyd0ZW1wX2NvbGxpZGVfYXJyJ109W107XzB4NTY1NjVlWydhbGxfY29sbGlkZV9hcnInXT1bXTtyZXR1cm4gXzB4NTY1NjVlO30oKTt2YXIgTFFDb2xsaWRlU3lzdGVtPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gXzB4OWJmNjBlKCl7fV8weDliZjYwZVsnY2FjaGVfcG9seWdvbiddPWZ1bmN0aW9uKF8weGJjM2QyMil7aWYoXzB4YmMzZDIyWydfY29sbGlkZV9zaGFwZSddPT09bHFfY29uc3RfMVsnTFFDb2xsaWRlU2hhcGUnXVsnUmVjdCddKXtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109W107dmFyIF8weDUzMjM1ZT1fMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsndG9wX2xlZnQnXSgpO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7XzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydib3R0b21fbGVmdCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ2JvdHRvbV9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3RvcF9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTt9ZWxzZSBpZihfMHhiYzNkMjJbJ19jb2xsaWRlX3NoYXBlJ109PT1scV9jb25zdF8xWydMUUNvbGxpZGVTaGFwZSddWydQb2x5Z29uJ10pe18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXT1bXTtpZihfMHhiYzNkMjJbJ25vZGUnXVsnYW5nbGUnXT09MHgwKXtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydhZGQnXShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX1lbHNle3ZhciBfMHgxYmU2MzA9bWlzY1snZGVncmVlc1RvUmFkaWFucyddKF8weGJjM2QyMlsnbm9kZSddWydhbmdsZSddKTt2YXIgXzB4MWEwNTk4PU1hdGhbJ3NpbiddKF8weDFiZTYzMCk7dmFyIF8weDI1OTY3ZT1NYXRoWydjb3MnXShfMHgxYmU2MzApO3ZhciBfMHhmYmYyNDE9ZnVuY3Rpb24oXzB4NWVkM2E1KXtyZXR1cm4gbmV3IFZlYzIoXzB4NWVkM2E1Wyd4J10qXzB4MjU5NjdlLV8weDVlZDNhNVsneSddKl8weDFhMDU5OCtfMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsneCddLF8weDVlZDNhNVsneCddKl8weDFhMDU5OCtfMHg1ZWQzYTVbJ3knXSpfMHgyNTk2N2UrXzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3knXSk7fTtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGZiZjI0MShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX19fTtfMHg5YmY2MGVbJ191cGRhdGVXb3JsZE1hdHJpeCddPWZ1bmN0aW9uKF8weDI5NmExYSl7aWYoXzB4Mjk2YTFhWydfcGFyZW50J10pe18weDliZjYwZVsnX3VwZGF0ZVdvcmxkTWF0cml4J10oXzB4Mjk2YTFhWydfcGFyZW50J10pO31pZihfMHgyOTZhMWFbJ193b3JsZE1hdERpcnR5J10pe3RoaXNbJ3RtcF9ib29sJ109ISFbXTtfMHgyOTZhMWFbJ19jYWxjdWxXb3JsZE1hdHJpeCddKCk7dmFyIF8weDNkMWNhMj1fMHgyOTZhMWFbJ19jaGlsZHJlbiddO2Zvcih2YXIgXzB4MmI0ZWM5PTB4MCxfMHg2MDAzNjc9XzB4M2QxY2EyWydsZW5ndGgnXTtfMHgyYjRlYzk8XzB4NjAwMzY3O18weDJiNGVjOSsrKXtfMHgzZDFjYTJbXzB4MmI0ZWM5XVsnX3dvcmxkTWF0RGlydHknXT0hIVtdO319fTtfMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXT1mdW5jdGlvbihfMHg1ZDY4YjUsXzB4MmM0ZGQwLF8weDE5MGY4OCl7dmFyIF8weDUyM2RjOD1fMHgxOTBmODhbJ20nXTtfMHg1ZDY4YjVbJ3gnXT1fMHg1MjNkYzhbMHgwXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg0XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhjXTtfMHg1ZDY4YjVbJ3knXT1fMHg1MjNkYzhbMHgxXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg1XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhkXTtyZXR1cm4gXzB4NWQ2OGI1O307XzB4OWJmNjBlWyd1cGRhdGVfd29ybGRfcmVjdCddPWZ1bmN0aW9uKF8weDI2NGI3Mil7aWYoIV8weDI2NGI3Mlsnd29ybGRfcmVjdCddKXtyZXR1cm47fXRoaXNbJ3RtcF9ib29sJ109IVtdO3RoaXNbJ191cGRhdGVXb3JsZE1hdHJpeCddKF8weDI2NGI3Mlsnbm9kZSddKTtpZih0aGlzWyd0bXBfYm9vbCddKXtfMHgyNjRiNzJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109dW5kZWZpbmVkO31fMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXShfMHgyNjRiNzJbJ3dvcmxkX3JlY3QnXSxfMHgyNjRiNzJbJ19vZmZzZXQnXSxfMHgyNjRiNzJbJ25vZGUnXVsnX3dvcmxkTWF0cml4J10pO307XzB4OWJmNjBlWyd1cGRhdGVfY29sbGlkZV9sb2dpYyddPWZ1bmN0aW9uKF8weDFiOWEyYyl7aWYoXzB4MWI5YTJjWydpc19vcGVuX2Z1bmMnXSl7Zm9yKHZhciBfMHgxZDhkOGMgaW4gXzB4MWI5YTJjWydjb2xsaWRlX21hcCddKXt2YXIgXzB4MTQwNmI1PV8weDFiOWEyY1snY29sbGlkZV9tYXAnXVtfMHgxZDhkOGNdO2lmKF8weDE0MDZiNVsnc3RhdHVzJ109PT0weDEpe18weDE0MDZiNVsnc3RhdHVzJ109MHgyO31lbHNle2RlbGV0ZSBfMHgxYjlhMmNbJ2NvbGxpZGVfbWFwJ11bXzB4MWQ4ZDhjXTtfMHgxYjlhMmNbJ29uX2V4aXQnXShfMHgxNDA2YjVbJ2NvbGxpZGUnXSk7fX19XzB4MWI5YTJjWyd1cGRhdGVfbHFfY29sbGlkZSddKCk7fTtfMHg5YmY2MGVbJ2NvbGxpZGVfb3RoZXInXT1mdW5jdGlvbihfMHg2NGYwNjQsXzB4M2JlY2RkKXtpZihfMHg2NGYwNjRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NDViMDI5PV8weDY0ZjA2NFsnY29sbGlkZV9tYXAnXVtfMHgzYmVjZGRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NDViMDI5KXtfMHg0NWIwMjlbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHg2NGYwNjRbJ2NvbGxpZGVfbWFwJ11bXzB4M2JlY2RkWydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4M2JlY2RkLCdzdGF0dXMnOjB4MX07XzB4NjRmMDY0Wydvbl9lbnRlciddKF8weDNiZWNkZCk7fX1pZihfMHgzYmVjZGRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NTQ0YTVjPV8weDNiZWNkZFsnY29sbGlkZV9tYXAnXVtfMHg2NGYwNjRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NTQ0YTVjKXtfMHg1NDRhNWNbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHgzYmVjZGRbJ2NvbGxpZGVfbWFwJ11bXzB4NjRmMDY0Wydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4NjRmMDY0LCdzdGF0dXMnOjB4MX07XzB4M2JlY2RkWydvbl9lbnRlciddKF8weDY0ZjA2NCk7fX1fMHg2NGYwNjRbJ29uX2NvbGxpZGUnXShfMHgzYmVjZGQpO18weDNiZWNkZFsnb25fY29sbGlkZSddKF8weDY0ZjA2NCk7fTtfMHg5YmY2MGVbJ2FkZF9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4MmU4OTdkKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDJlODk3ZCk7dGhpc1snY29sbGlkZV9hcnInXVsncHVzaCddKF8weDJlODk3ZCk7fTtfMHg5YmY2MGVbJ3JlbW92ZV9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4NDE2Mjk4KXtmb3IodmFyIF8weDEyMDU5YT10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTIwNTlhPj0weDA7XzB4MTIwNTlhLS0pe2lmKHRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTIwNTlhXVsnY29sbGlkZV9pZCddPT09XzB4NDE2Mjk4Wydjb2xsaWRlX2lkJ10pe3RoaXNbJ2NvbGxpZGVfYXJyJ11bJ3NwbGljZSddKF8weDEyMDU5YSwweDEpO2JyZWFrO319fTtfMHg5YmY2MGVbJ2xpbmVfcG9pbnQnXT1mdW5jdGlvbihfMHg0YTczNzAsXzB4MjRjN2ExLF8weDRlMThlZSxfMHgxMjIzNTYsXzB4MmJkNzEzLF8weDJkM2I2ZSl7cmV0dXJuIE1hdGhbJ2FicyddKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4NGUxOGVlLF8weDEyMjM1NiktKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4MmJkNzEzLF8weDJkM2I2ZSkrdGhpc1snZGlzdGFuY2VTcXVhcmVkJ10oXzB4NGUxOGVlLF8weDEyMjM1NixfMHgyYmQ3MTMsXzB4MmQzYjZlKSkpPD0weDE7fTtfMHg5YmY2MGVbJ2Rpc3RhbmNlU3F1YXJlZCddPWZ1bmN0aW9uKF8weDVjY2EzYixfMHgxMWI2NzgsXzB4MWYwYjYzLF8weDUyY2VjNyl7cmV0dXJuIE1hdGhbJ3NxcnQnXShNYXRoWydwb3cnXShfMHg1Y2NhM2ItXzB4MWYwYjYzLDB4MikrTWF0aFsncG93J10oXzB4MTFiNjc4LV8weDUyY2VjNywweDIpKTt9O18weDliZjYwZVsncG9seWdvbl9wb2ludCddPWZ1bmN0aW9uKF8weDQyMzZjMCxfMHgxMmU4MjUsXzB4NWNkNGRkKXt2YXIgXzB4YmQ2ZmQwPV8weDQyMzZjMFsnbGVuZ3RoJ107dmFyIF8weDFmNGZiYz0hW107dmFyIF8weDI2N2I1OCxfMHg0YTFiYWU7Zm9yKF8weDI2N2I1OD0weDAsXzB4NGExYmFlPV8weGJkNmZkMC0weDI7XzB4MjY3YjU4PF8weGJkNmZkMDtfMHgyNjdiNTgrPTB4Mil7aWYoXzB4NDIzNmMwW18weDI2N2I1OCsweDFdPl8weDVjZDRkZCE9PV8weDQyMzZjMFtfMHg0YTFiYWUrMHgxXT5fMHg1Y2Q0ZGQmJl8weDEyZTgyNTwoXzB4NDIzNmMwW18weDRhMWJhZV0tXzB4NDIzNmMwW18weDI2N2I1OF0pKihfMHg1Y2Q0ZGQtXzB4NDIzNmMwW18weDI2N2I1OCsweDFdKS8oXzB4NDIzNmMwW18weDRhMWJhZSsweDFdLV8weDQyMzZjMFtfMHgyNjdiNTgrMHgxXSkrXzB4NDIzNmMwW18weDI2N2I1OF0pe18weDFmNGZiYz0hXzB4MWY0ZmJjO31fMHg0YTFiYWU9XzB4MjY3YjU4O31pZihfMHgxZjRmYmMpe3JldHVybiEhW107fWZvcihfMHgyNjdiNTg9MHgwO18weDI2N2I1ODxfMHhiZDZmZDA7XzB4MjY3YjU4Kz0weDIpe3ZhciBfMHg1NzRlM2U9XzB4NDIzNmMwW18weDI2N2I1OF07dmFyIF8weDRiOTJkOD1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4MV07dmFyIF8weDVkMzlkND12b2lkIDB4MCxfMHgxMjRlOWM9dm9pZCAweDA7aWYoXzB4MjY3YjU4PT09XzB4YmQ2ZmQwLTB4Mil7XzB4NWQzOWQ0PV8weDQyMzZjMFsweDBdO18weDEyNGU5Yz1fMHg0MjM2YzBbMHgxXTt9ZWxzZXtfMHg1ZDM5ZDQ9XzB4NDIzNmMwW18weDI2N2I1OCsweDJdO18weDEyNGU5Yz1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4M107fWlmKHRoaXNbJ2xpbmVfcG9pbnQnXShfMHg1NzRlM2UsXzB4NGI5MmQ4LF8weDVkMzlkNCxfMHgxMjRlOWMsXzB4MTJlODI1LF8weDVjZDRkZCkpe3JldHVybiEhW107fX1yZXR1cm4hW107fTtfMHg5YmY2MGVbJ3BvbHlnb25fY2lyY2xlJ109ZnVuY3Rpb24oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKXtpZih0aGlzWydwb2x5Z29uX3BvaW50J10oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgpKXtyZXR1cm4hIVtdO312YXIgXzB4MTk3NjU3PV8weDM4NzE4OFsnbGVuZ3RoJ107Zm9yKHZhciBfMHgzZGY2ZmM9MHgwO18weDNkZjZmYzxfMHgxOTc2NTctMHgyO18weDNkZjZmYys9MHgyKXtpZih0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFtfMHgzZGY2ZmNdLF8weDM4NzE4OFtfMHgzZGY2ZmMrMHgxXSxfMHgzODcxODhbXzB4M2RmNmZjKzB4Ml0sXzB4Mzg3MTg4W18weDNkZjZmYysweDNdLF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKSl7cmV0dXJuISFbXTt9fXJldHVybiB0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFsweDBdLF8weDM4NzE4OFsweDFdLF8weDM4NzE4OFtfMHgxOTc2NTctMHgyXSxfMHgzODcxODhbXzB4MTk3NjU3LTB4MV0sXzB4NjExMDEyLF8weDM3MDdlOCxfMHgyNDMyZTEpO307XzB4OWJmNjBlWydsaW5lX2NpcmNsZSddPWZ1bmN0aW9uKF8weDEyYmJhMSxfMHgzMjEyOTAsXzB4MTM2NzAzLF8weDUzN2UwZSxfMHgzYWQxNDcsXzB4NTU5YTdkLF8weDQ4YTgzNCl7dmFyIF8weDNiZmQ5ND1bXzB4M2FkMTQ3LV8weDEyYmJhMSxfMHg1NTlhN2QtXzB4MzIxMjkwXTt2YXIgXzB4NmRhNjIwPVtfMHgxMzY3MDMtXzB4MTJiYmExLF8weDUzN2UwZS1fMHgzMjEyOTBdO3ZhciBfMHgxZmVkYTQ9dGhpc1snZG90J10oXzB4NmRhNjIwLF8weDZkYTYyMCk7dmFyIF8weDUzOTEzZD10aGlzWydkb3QnXShfMHgzYmZkOTQsXzB4NmRhNjIwKTt2YXIgXzB4MzY3NGY1PV8weDUzOTEzZC9fMHgxZmVkYTQ7XzB4MzY3NGY1PV8weDM2NzRmNTwweDA/MHgwOl8weDM2NzRmNTtfMHgzNjc0ZjU9XzB4MzY3NGY1PjB4MT8weDE6XzB4MzY3NGY1O3ZhciBfMHgxNTAwMzM9W18weDZkYTYyMFsweDBdKl8weDM2NzRmNStfMHgxMmJiYTEtXzB4M2FkMTQ3LF8weDZkYTYyMFsweDFdKl8weDM2NzRmNStfMHgzMjEyOTAtXzB4NTU5YTdkXTt2YXIgXzB4NDQyYWYxPXRoaXNbJ2RvdCddKF8weDE1MDAzMyxfMHgxNTAwMzMpO3JldHVybiBfMHg0NDJhZjE8PV8weDQ4YTgzNCpfMHg0OGE4MzQ7fTtfMHg5YmY2MGVbJ2RvdCddPWZ1bmN0aW9uKF8weDFlNzlhNSxfMHgxNzljOTIpe3JldHVybiBfMHgxZTc5YTVbMHgwXSpfMHgxNzljOTJbMHgwXStfMHgxZTc5YTVbMHgxXSpfMHgxNzljOTJbMHgxXTt9O18weDliZjYwZVsndXBkYXRlX2xvZ2ljJ109ZnVuY3Rpb24oXzB4YjE3Mjc4KXtpZighdGhpc1snaXNfZW5hYmxlJ10pe3JldHVybjt9aWYobHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ3N3aXRjaF9xdWFkX3RyZWUnXSl7dGhpc1sncXVhZF90cmVlJ11bJ2NsZWFyJ10oKTtmb3IodmFyIF8weDEzMzdiZD10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTMzN2JkPj0weDA7XzB4MTMzN2JkLS0pe3ZhciBfMHgyMDE4MWU9dGhpc1snY29sbGlkZV9hcnInXVtfMHgxMzM3YmRdO2lmKCFfMHgyMDE4MWUpe3JldHVybjt9aWYoIV8weDIwMTgxZVsnaXNWYWxpZCddKXt0aGlzWydjb2xsaWRlX2FyciddWydzcGxpY2UnXShfMHgxMzM3YmQsMHgxKTtjb250aW51ZTt9dGhpc1sndXBkYXRlX2NvbGxpZGVfbG9naWMnXShfMHgyMDE4MWUpO2lmKF8weDIwMTgxZVsnaXNfZW5hYmxlJ10pe3RoaXNbJ3VwZGF0ZV93b3JsZF9yZWN0J10oXzB4MjAxODFlKTt0aGlzWydxdWFkX3RyZWUnXVsnaW5zZXJ0J10oXzB4MjAxODFlKTt9fUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddPVtdO3RoaXNbJ3F1YWRfdHJlZSddWydnZXRfYWxsX2FyZWEnXSgpO2Zvcih2YXIgXzB4NGFmNmZmPTB4MDtfMHg0YWY2ZmY8TFFRdWFkVHJlZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDRhZjZmZisrKXt2YXIgXzB4NWNhYzcxPUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddW18weDRhZjZmZl07Zm9yKHZhciBfMHgxMzM3YmQ9MHgwO18weDEzMzdiZDxfMHg1Y2FjNzFbJ2xlbmd0aCddO18weDEzMzdiZCsrKXt2YXIgXzB4NTQ5YTY2PV8weDVjYWM3MVtfMHgxMzM3YmRdO2Zvcih2YXIgXzB4NTc5M2ZmPV8weDEzMzdiZCsweDE7XzB4NTc5M2ZmPF8weDVjYWM3MVsnbGVuZ3RoJ107XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSYmXzB4NTQ5YTY2IT09XzB4NDc0MGZlKXtpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSl7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWydyYWRpdXMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlX3JlY3QnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGUnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09MHgzJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PTB4Mil7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKHRoaXNbJ3BvbHlnb25fY2lyY2xlJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd4J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J11bJ3knXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDMpe2lmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneCddLF8weDU0OWE2Nlsnd29ybGRfcmVjdCddWyd5J10sXzB4NTQ5YTY2WydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2V7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX3BvbHlnb24nXShfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319fX19fX1lbHNle3ZhciBfMHg1Y2FjNzE9W107Zm9yKHZhciBfMHgxMzM3YmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDEzMzdiZD49MHgwO18weDEzMzdiZC0tKXt2YXIgXzB4MjAxODFlPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTMzN2JkXTtpZighXzB4MjAxODFlKXtyZXR1cm47fWlmKCFfMHgyMDE4MWVbJ2lzVmFsaWQnXSl7dGhpc1snY29sbGlkZV9hcnInXVsnc3BsaWNlJ10oXzB4MTMzN2JkLDB4MSk7Y29udGludWU7fXRoaXNbJ3VwZGF0ZV9jb2xsaWRlX2xvZ2ljJ10oXzB4MjAxODFlKTtpZihfMHgyMDE4MWVbJ2lzX2VuYWJsZSddKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDIwMTgxZSk7XzB4NWNhYzcxWydwdXNoJ10oXzB4MjAxODFlKTt9fXZhciBfMHg0ZjMzMzc9XzB4NWNhYzcxWydsZW5ndGgnXTtmb3IodmFyIF8weDEzMzdiZD0weDA7XzB4MTMzN2JkPF8weDRmMzMzNztfMHgxMzM3YmQrKyl7dmFyIF8weDU0OWE2Nj1fMHg1Y2FjNzFbXzB4MTMzN2JkXTtmb3IodmFyIF8weDU3OTNmZj1fMHgxMzM3YmQrMHgxO18weDU3OTNmZjxfMHg0ZjMzMzc7XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSl7aWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgxJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfcmVjdCddKF8weDU0OWE2Nlsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGVfcmVjdCddKF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDIpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlJ10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MyYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDIpe2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXVsneCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd5J10sXzB4NDc0MGZlWydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09MHgzKXtpZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9jaXJjbGUnXShfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J11bJ3gnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneSddLF8weDU0OWE2NlsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNle2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9wb2x5Z29uJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fX19fX19O18weDliZjYwZVsncG9seWdvbl9wb2x5Z29uJ109ZnVuY3Rpb24oXzB4MWExNTJjLF8weDQ4NGNkMil7dmFyIF8weDE3M2Y2MT1fMHgxYTE1MmM7dmFyIF8weDNmY2NkYT1fMHg0ODRjZDI7dmFyIF8weDIyZWVmOT1bXzB4MTczZjYxLF8weDNmY2NkYV07dmFyIF8weDM2NjJlZCxfMHgxMGJiZGIsXzB4MjkxMzNjLF8weDVjZTE5MixfMHg4MDExYzcsXzB4ZGZlOGJjO2Zvcih2YXIgXzB4M2FlZThjPTB4MDtfMHgzYWVlOGM8XzB4MjJlZWY5WydsZW5ndGgnXTtfMHgzYWVlOGMrKyl7dmFyIF8weDFjZThmZD1fMHgyMmVlZjlbXzB4M2FlZThjXTtmb3IodmFyIF8weDJhYjJmZj0weDA7XzB4MmFiMmZmPF8weDFjZThmZFsnbGVuZ3RoJ107XzB4MmFiMmZmKz0weDIpe3ZhciBfMHgzNzNiZDI9KF8weDJhYjJmZisweDIpJV8weDFjZThmZFsnbGVuZ3RoJ107dmFyIF8weDRiNjRhND17J3gnOl8weDFjZThmZFtfMHgzNzNiZDIrMHgxXS1fMHgxY2U4ZmRbXzB4MmFiMmZmKzB4MV0sJ3knOl8weDFjZThmZFtfMHgyYWIyZmZdLV8weDFjZThmZFtfMHgzNzNiZDJdfTtfMHgzNjYyZWQ9bnVsbDtfMHgxMGJiZGI9bnVsbDtmb3IoXzB4ZGZlOGJjPTB4MDtfMHhkZmU4YmM8XzB4MTczZjYxWydsZW5ndGgnXTtfMHhkZmU4YmMrPTB4Mil7XzB4MjkxMzNjPV8weDRiNjRhNFsneCddKl8weDE3M2Y2MVtfMHhkZmU4YmNdK18weDRiNjRhNFsneSddKl8weDE3M2Y2MVtfMHhkZmU4YmMrMHgxXTtpZihfMHgzNjYyZWQ9PT1udWxsfHxfMHgyOTEzM2M8XzB4MzY2MmVkKXtfMHgzNjYyZWQ9XzB4MjkxMzNjO31pZihfMHgxMGJiZGI9PT1udWxsfHxfMHgyOTEzM2M+XzB4MTBiYmRiKXtfMHgxMGJiZGI9XzB4MjkxMzNjO319XzB4NWNlMTkyPW51bGw7XzB4ODAxMWM3PW51bGw7Zm9yKF8weGRmZThiYz0weDA7XzB4ZGZlOGJjPF8weDNmY2NkYVsnbGVuZ3RoJ107XzB4ZGZlOGJjKz0weDIpe18weDI5MTMzYz1fMHg0YjY0YTRbJ3gnXSpfMHgzZmNjZGFbXzB4ZGZlOGJjXStfMHg0YjY0YTRbJ3knXSpfMHgzZmNjZGFbXzB4ZGZlOGJjKzB4MV07aWYoXzB4NWNlMTkyPT09bnVsbHx8XzB4MjkxMzNjPF8weDVjZTE5Mil7XzB4NWNlMTkyPV8weDI5MTMzYzt9aWYoXzB4ODAxMWM3PT09bnVsbHx8XzB4MjkxMzNjPl8weDgwMTFjNyl7XzB4ODAxMWM3PV8weDI5MTMzYzt9fWlmKF8weDEwYmJkYjxfMHg1Y2UxOTJ8fF8weDgwMTFjNzxfMHgzNjYyZWQpe3JldHVybiFbXTt9fX1yZXR1cm4hIVtdO307XzB4OWJmNjBlWydnZXRfZ3JvdXBfYnlfaW5kZXgnXT1mdW5jdGlvbihfMHg0MGUyZjEpe2Zvcih2YXIgXzB4ZmNhOGQxIGluIGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddKXt2YXIgXzB4NWFjODE1PWxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddW18weGZjYThkMV07aWYoXzB4NWFjODE1WydpbmRleCddPT09XzB4NDBlMmYxKXtyZXR1cm4gXzB4NWFjODE1O319cmV0dXJuIHVuZGVmaW5lZDt9O18weDliZjYwZVsnZ2V0X2luZm9fYnlfaWQnXT1mdW5jdGlvbihfMHhmZmJjZGMpe3ZhciBfMHgzMDgzMjU7Zm9yKHZhciBfMHgxNDlmNWUgaW4gbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ10pe3ZhciBfMHgxMjE1MGY9bHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ11bXzB4MTQ5ZjVlXTtpZihfMHgxMjE1MGZbJ2lkJ109PT1fMHhmZmJjZGMpe3JldHVybiBfMHgxMjE1MGY7fWlmKCFfMHgzMDgzMjUpe18weDMwODMyNT1fMHgxMjE1MGY7fX1yZXR1cm4gXzB4MzA4MzI1O307XzB4OWJmNjBlWydmaW5kX25lYXJlc3RfY29sbGlkZSddPWZ1bmN0aW9uKF8weDMwODA4Mil7dmFyIF8weDMxMzFjNT1bXTtmb3IodmFyIF8weGMzYzM4MD1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddLTB4MTtfMHhjM2MzODA+PTB4MDtfMHhjM2MzODAtLSl7dmFyIF8weDU4NWY0Zj1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bXzB4YzNjMzgwXTtpZihfMHgzMDgwODI9PT1fMHg1ODVmNGZ8fCFfMHg1ODVmNGZbJ2lzX2VuYWJsZSddKXtjb250aW51ZTt9aWYoXzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe2lmKF8weDU4NWY0ZlsnY29sbGlkZV9jYXRlZ29yeSddPT09XzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe18weDMxMzFjNVsncHVzaCddKF8weDU4NWY0Zik7fX1lbHNlIGlmKChfMHg1ODVmNGZbJ2NvbGxpZGVfY2F0ZWdvcnknXSZfMHgzMDgwODJbJ2NvbGxpZGVfbWFzayddKSE9PTB4MCl7XzB4MzEzMWM1WydwdXNoJ10oXzB4NTg1ZjRmKTt9fV8weDMxMzFjNVsnc29ydCddKGZ1bmN0aW9uKF8weDNkZGI4MyxfMHgzY2NmNzQpe3JldHVybiBfMHgzMDgwODJbJ3dvcmxkX3JlY3QnXVsnc3ViJ10oXzB4M2RkYjgzWyd3b3JsZF9yZWN0J10pWydtYWdTcXInXSgpLV8weDMwODA4Mlsnd29ybGRfcmVjdCddWydzdWInXShfMHgzY2NmNzRbJ3dvcmxkX3JlY3QnXSlbJ21hZ1NxciddKCk7fSk7cmV0dXJuIF8weDMxMzFjNVsweDBdO307XzB4OWJmNjBlWydjbGVhciddPWZ1bmN0aW9uKF8weDRjZjZhNil7aWYoXzB4NGNmNmE2PT09dm9pZCAweDApe18weDRjZjZhNj0hW107fWlmKF8weDRjZjZhNil7Zm9yKHZhciBfMHg1MzdiMmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDUzN2IyZD49MHgwO18weDUzN2IyZC0tKXt2YXIgXzB4MTk3ZDJmPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NTM3YjJkXTtpZihfMHgxOTdkMmZbJ2lzVmFsaWQnXSl7XzB4MTk3ZDJmWydub2RlJ11bJ2Rlc3Ryb3knXSgpO319fXRoaXNbJ2NvbGxpZGVfYXJyJ109W107fTtfMHg5YmY2MGVbJ2NoZWNrX2NvbGxpZGUnXT1mdW5jdGlvbihfMHgxODNkZTIpe3ZhciBfMHgyNWNlYTE9W107dmFyIF8weGE3YjA1O2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydzd2l0Y2hfcXVhZF90cmVlJ10pe0xRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXT1bXTt0aGlzWydxdWFkX3RyZWUnXVsncmV0cmlldmUnXShfMHgxODNkZTIpO18weGE3YjA1PUxRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXTt9ZWxzZXtfMHhhN2IwNT10aGlzWydjb2xsaWRlX2FyciddO31mb3IodmFyIF8weDM4MWFmMj0weDA7XzB4MzgxYWYyPF8weGE3YjA1WydsZW5ndGgnXTtfMHgzODFhZjIrKyl7dmFyIF8weDVkYjdiMz1fMHhhN2IwNVtfMHgzODFhZjJdO2lmKF8weDE4M2RlMj09PV8weDVkYjdiMyl7Y29udGludWU7fWlmKF8weDE4M2RlMlsnY29sbGlkZV9jYXRlZ29yeSddJl8weDVkYjdiM1snY29sbGlkZV9tYXNrJ10pe2lmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX3JlY3QnXShfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSxfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4MTgzZGUyWyd3b3JsZF9yZWN0J10sXzB4MTgzZGUyWydyYWRpdXMnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZSddKF8weDE4M2RlMlsnd29ybGRfcmVjdCddLF8weDE4M2RlMlsncmFkaXVzJ10sXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKHRoaXNbJ3BvbHlnb25fcG9seWdvbiddKF8weDE4M2RlMixfMHg1ZGI3YjMpKXtfMHgyNWNlYTFbJ3B1c2gnXShfMHg1ZGI3YjMpO319fXJldHVybiBfMHgyNWNlYTE7fTtfMHg5YmY2MGVbJ2lzX2VuYWJsZSddPSFbXTtfMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ109W107XzB4OWJmNjBlWydxdWFkX3RyZWUnXT1uZXcgTFFRdWFkVHJlZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnYWN0aXZlX2FyZWFfeCddLGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydhY3RpdmVfYXJlYV95J10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX3dpZHRoJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX2hlaWdodCddKSxscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnbWF4X25vZGVfbGVuJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ21heF9ub2RlX2xldmVsJ10pO3JldHVybiBfMHg5YmY2MGU7fSgpO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPUxRQ29sbGlkZVN5c3RlbTt2YXIgQXV0b1J1bj1mdW5jdGlvbigpe2Z1bmN0aW9uIF8weGY1YjA4Nygpe3RoaXNbJ2ZsYWcnXT0hIVtdO31fMHhmNWIwODdbJ3Byb3RvdHlwZSddWyd1cGRhdGUnXT1mdW5jdGlvbihfMHgzNjVlNTUpe2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydwZXJfZnJhbWUnXT09PTB4M2Mpe0xRQ29sbGlkZVN5c3RlbVsndXBkYXRlX2xvZ2ljJ10oXzB4MzY1ZTU1KTt9ZWxzZXtpZih0aGlzWydmbGFnJ10pe3RoaXNbJ2ZsYWcnXT0hW107TFFDb2xsaWRlU3lzdGVtWyd1cGRhdGVfbG9naWMnXShfMHgzNjVlNTUpO31lbHNle3RoaXNbJ2ZsYWcnXT0hIVtdO319fTtyZXR1cm4gXzB4ZjViMDg3O30oKTtnYW1lWydvbiddKGdhbWVbJ0VWRU5UX0dBTUVfSU5JVEVEJ10sZnVuY3Rpb24oKXtpZihscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnc3dpdGNoX2F1dG9fcnVuJ10mJiFDQ19FRElUT1Ipe3ZhciBfMHgyODdmODY9bmV3IEF1dG9SdW4oKTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnZW5hYmxlRm9yVGFyZ2V0J10oXzB4Mjg3Zjg2KTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnc2NoZWR1bGVVcGRhdGUnXShfMHgyODdmODYsU2NoZWR1bGVyWydQUklPUklUWV9TWVNURU0nXSwhW10pO319KTsiXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -11990,154 +12807,6 @@ cc._RF.pop();
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTyxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFDdkMsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFDekMsSUFBTyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0FBQ3pELElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0FBQ2pDLElBQU8sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7QUFDaEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUN0QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3RCLElBQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7QUFDeEIsSUFBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN4QixxREFBeUU7QUFDekUseURBQXVFO0FBQ3ZFLHlEQUFvRDtBQUNwRCxtREFBK0M7QUFDL0MscURBQWdEO0FBQ2hELDZEQUF3RDtBQUN4RCw4QkFBaUM7QUFLakM7SUFBK0IsNkJBQVM7SUFBeEM7UUFBQSxxRUFpZUM7UUFwZGEsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFHOUIsY0FBUSxHQUFZLElBQUksQ0FBQztRQWtCNUIsb0JBQWMsR0FBbUIseUJBQWMsQ0FBQyxJQUFJLENBQUM7UUFzQnBELDBC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QUFRLENBQUM7WUFDTixPQUFPLEVBQUUsV0FBVztZQUNwQixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZELENBQUM7WUFDRCxXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDO3lDQUdEO0lBY0Q7UUFEQyxRQUFRLEVBQUU7NENBQ2dDO0lBRzNDO1FBREMsUUFBUSxDQUFDLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDOzJDQUcvQjtJQWVEO1FBUkMsUUFBUSxDQUFDO1lBQ04sSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPO2dCQUNILGFBQWE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLHlCQUFjLENBQUMsT0FBTyxDQUFDO1lBQzFELENBQUM7WUFDRCxXQUFXLEVBQUUsUUFBUTtTQUN4QixDQUFDO21EQUdEO0lBUUQ7UUFEQyxRQUFRLEVBQUU7c0RBQ29IO0lBRy9IO1FBREMsUUFBUSxFQUFFOzhDQUMyQjtJQUd0QztRQURDLFFBQVEsQ0FBQyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsQ0FBQztrREFDRjtJQW5KdkIsU0FBUztRQUhyQixPQUFPO1FBQ1AsZ0JBQWdCLENBQUMsK0JBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDO09BQ04sU0FBUyxDQWllckI7SUFBRCxnQkFBQztDQWplRCxBQWllQyxDQWplOEIsU0FBUyxHQWlldkM7QUFqZVksOEJBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2NjbGFzcyA9IGNjLl9kZWNvcmF0b3IuY2NjbGFzcztcclxuaW1wb3J0IHByb3BlcnR5ID0gY2MuX2RlY29yYXRvci5wcm9wZXJ0eTtcclxuaW1wb3J0IHJlcXVpcmVDb21wb25lbnQgPSBjYy5fZGVjb3JhdG9yLnJlcXVpcmVDb21wb25lbnQ7XHJcbmltcG9ydCBtZW51ID0gY2MuX2RlY29yYXRvci5tZW51O1xyXG5pbXBvcnQgQ29tcG9uZW50ID0gY2MuQ29tcG9uZW50O1xyXG5pbXBvcnQgRW51bSA9IGNjLkVudW07XHJcbmltcG9ydCBTaXplID0gY2MuU2l6ZTtcclxuaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5pbXBvcnQgR3JhcGhpY3MgPSBjYy5HcmFwaGljcztcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5pbXBvcnQgbWFjcm8gPSBjYy5tYWNybztcclxuaW1wb3J0IENvbG9yID0gY2MuQ29sb3I7XHJcbmltcG9ydCB7TFFDb2xsaWRlU2hhcGUsIExRQ29sbGlkZVN0YXR1c30gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQge0xRQ29sbGlkZUNvbmZpZywgTFFDb2xsaWRlSW5mb0xpc3R9IGZyb20gXCIuL2xxX2NvbGxpZGVfY29uZmlnXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlU3lzdGVtfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbVwiO1xyXG5pbXBvcnQge0xRUmVjdH0gZnJvbSBcIi4uL2xxX2Jhc2UvZGF0YS9scV9kYXRhXCI7XHJcbmltcG9ydCB7TFFDb2xsaWRlQmFzZX0gZnJvbSBcIi4vbHFfY29sbGlkZV9iYXNlXCI7XHJcbmltcG9ydCB7TFFHYW1lVXRpbH0gZnJvbSBcIi4uL2xxX2Jhc2UvdXRpbC9scV9nYW1lX3V0aWxcIjtcclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbkBjY2NsYXNzXHJcbkByZXF1aXJlQ29tcG9uZW50KExRQ29sbGlkZUJhc2UpXHJcbkBtZW51KFwibHEvY29sbGlkZVwiKVxyXG5leHBvcnQgY2xhc3MgTFFDb2xsaWRlIGV4dGVuZHMgQ29tcG9uZW50IHtcclxuICAgIHZlbG9jaXR5OiBhbnk7XHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn57uY5Yi25b2i54q2J30pXHJcbiAgICBnZXQgZHJhd19jb2xsaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kcmF3X2NvbGxpZGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRyYXdfY29sbGlkZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2RyYXdfY29sbGlkZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJvdGVjdGVkIF9kcmF3X2NvbGxpZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dG9vbHRpcDogJ+iDveWQpuenu+WKqCd9KVxyXG4gICAgcHJvdGVjdGVkIGNhbl9tb3ZlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn56Kw5pKe5b2i54q277yMTm9uZeWwseaYr+aXoOaVjO+8jOS4jeWPguS4jueisOaSnicsXHJcbiAgICAgICAgdHlwZTogRW51bShMUUNvbGxpZGVTaGFwZSksXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfc2hhcGUoKTogTFFDb2xsaWRlU2hhcGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb2xsaWRlX3NoYXBlKHZhbHVlOiBMUUNvbGxpZGVTaGFwZSkge1xyXG4gICAgICAgIHRoaXMuX2NvbGxpZGVfc2hhcGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9jb2xsaWRlX3NoYXBlOiBMUUNvbGxpZGVTaGFwZSA9IExRQ29sbGlkZVNoYXBlLlJlY3Q7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0eXBlOiBFbnVtKExRQ29sbGlkZUluZm9MaXN0KSwgdG9vbHRpcDogJ+eisOaSnuexu+WIqycsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7nsbvliKsnXHJcbiAgICB9KVxyXG4gICAgZ2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSBMUUNvbGxpZGVTeXN0ZW0uZ2V0X2luZm9fYnlfaWQodGhpcy5jb2xsaWRlX2dyb3VwX2lkKS5pbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxpZGVfZ3JvdXBfaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbGxpZGVfZ3JvdXBfaW5kZXgodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29sbGlkZV9ncm91cF9pbmRleCA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsaWRlX2dyb3VwX2luZGV4ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2dyb3VwX2lkID0gTFFDb2xsaWRlU3lzdGVtLmdldF9ncm91cF9ieV9pbmRleCh2YWx1ZSkuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KHtzZXJpYWxpemFibGU6IGZhbHNlfSlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVfZ3JvdXBfaW5kZXggPSAtMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3Zpc2libGU6IGZhbHNlfSlcclxuICAgIHByb3RlY3RlZCBjb2xsaWRlX2dyb3VwX2lkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dmlzaWJsZTogZmFsc2V9KVxyXG4gICAgcHJvdGVjdGVkIGNvbGxpZGVfc2NsZTogbnVtYmVyID0gMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICdjb2xsaWRl5Y2K5b6EJyxcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ+WNiuW+hCdcclxuICAgIH0pXHJcbiAgICBnZXQgcmFkaXVzKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcmFkaXVzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9yYWRpdXMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHJvdGVjdGVkIF9yYWRpdXM6IG51bWJlciA9IDUwO1xyXG5cclxuICAgIC8vIOeJqeS9k+mAn+W6plxyXG4gICAgLy8gcHVibGljIHZlbG9jaXR5OiBWZWMyID0gbmV3IFZlYzIoMCwgMCk7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAnY29sbGlkZemVv+WuvScsXHJcbiAgICAgICAgdmlzaWJsZSgpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sbGlkZV9zaGFwZSA9PT0gTFFDb2xsaWRlU2hhcGUuUmVjdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRpc3BsYXlOYW1lOiAn6ZW/5a69J1xyXG4gICAgfSlcclxuICAgIGdldCBzaXplKCk6IFNpemUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzaXplKHZhbHVlOiBTaXplKSB7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmxkX3JlY3QpIHtcclxuICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LndpZHRoID0gdmFsdWUud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB2YWx1ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX3dpZHRoID0gdmFsdWUud2lkdGggKiAwLjU7XHJcbiAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oYWxmX2hlaWdodCA9IHZhbHVlLmhlaWdodCAqIDAuNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kcmF3X3NoYXBlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQHByb3BlcnR5KClcclxuICAgIHByb3RlY3RlZCBfc2l6ZTogU2l6ZSA9IG5ldyBTaXplKDEwMCwgMTAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn5L2N572u5YGP56e7J30pXHJcbiAgICBnZXQgb2Zmc2V0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG9mZnNldCh2YWx1ZTogVmVjMikge1xyXG4gICAgICAgIHRoaXMuX29mZnNldCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdHlwZTogVmVjMixcclxuICAgICAgICB2aXNpYmxlKCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xsaWRlX3NoYXBlID09PSBMUUNvbGxpZGVTaGFwZS5Qb2x5Z29uO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICflpJrovrnlvaLnorDmkp7ngrknXHJcbiAgICB9KVxyXG4gICAgZ2V0IHBvbHlnb25fcG9pbnRzKCk6IFZlYzJbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvbHlnb25fcG9pbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwb2x5Z29uX3BvaW50cyh2YWx1ZTogVmVjMltdKSB7XHJcbiAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9wb2x5Z29uX3BvaW50czogVmVjMltdID0gW25ldyBWZWMyKC00NSwgLTQ1KSwgbmV3IFZlYzIoNDUsIC00NSksIG5ldyBWZWMyKDYwLCA0MCksIG5ldyBWZWMyKDAsIDcwKSwgbmV3IFZlYzIoLTYwLCA0MCldO1xyXG4gICAgLy9jb2xsaWRl56Kw5pKe5L2N572u5YGP56e7XHJcbiAgICBAcHJvcGVydHkoKVxyXG4gICAgcHVibGljIF9vZmZzZXQ6IFZlYzIgPSBuZXcgVmVjMigwLCAwKTtcclxuXHJcbiAgICBAcHJvcGVydHkoe2Rpc3BsYXlOYW1lOiAn6Ieq5a6a5LmJ5a2X56ym5LiyJ30pXHJcbiAgICBwdWJsaWMgZGF0YV9zdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gICAgLy/mr4/kuKpjb2xsaWRl55qEaWTllK/kuIBcclxuICAgIHB1YmxpYyBjb2xsaWRlX2lkOiBudW1iZXIgPSAwO1xyXG4gICAgLy/nirbmgIFcclxuICAgIHB1YmxpYyBjb2xsaWRlX3N0YXR1czogTFFDb2xsaWRlU3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAvL+aYr+WQpuWPr+eisOaSnlxyXG4gICAgcHVibGljIGlzX2VuYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+aYr+WQpuW8gOWQr+eisOaSnuWJjeWQjueahOWHveaVsFxyXG4gICAgcHVibGljIGlzX29wZW5fZnVuYzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvL+eisOaSnuexu+WIq1xyXG4gICAgcHVibGljIGNvbGxpZGVfY2F0ZWdvcnkgPSAwO1xyXG4gICAgLy/norDmkp7nrZvpgIlcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hc2sgPSAwO1xyXG4gICAgLy/nvJPlrZjlpJrovrnlvaLnorDmkp7mlbDmja5cclxuICAgIHB1YmxpYyBjYWNoZV9wb2x5Z29uX3BvaW50czogbnVtYmVyW107XHJcbiAgICAvL+e7mOWItmNvbGxpZGXlvaLnirbnu4Tku7ZcclxuICAgIHByaXZhdGUgX2RlYnVnRHJhd2VyITogR3JhcGhpY3M7XHJcbiAgICBwdWJsaWMgd29ybGRfcmVjdCE6IExRUmVjdDtcclxuICAgIHB1YmxpYyBjb2xsaWRlX21hcDogeyBba2V5OiBudW1iZXJdOiB7IGNvbGxpZGU6IExRQ29sbGlkZSwgc3RhdHVzOiAxIHwgMiB9IH0gPSB7fTtcclxuICAgIHB1YmxpYyBmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpZF9tYWtlcjogbnVtYmVyID0gMTtcclxuXHJcbiAgICAvL+ajgOa1i+e7mOWItue7hOS7tuaYr+WQpua3u+WKoFxyXG4gICAgcHJpdmF0ZSBjaGVja0RlYnVnRHJhd1ZhbGlkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fZGVidWdEcmF3ZXIgfHwgIXRoaXMuX2RlYnVnRHJhd2VyLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoJ0NvbGxpZGUnKTtcclxuICAgICAgICAgICAgICAgIG5vZGUuekluZGV4ID0gbWFjcm8uTUFYX1pJTkRFWDtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIG5vZGUuX29iakZsYWdzID0gMTA5NjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5hZGRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVdpZHRoID0gMztcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLnN0cm9rZUNvbG9yID0gbmV3IENvbG9yKDI1NSwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5maWxsQ29sb3IgPSBuZXcgQ29sb3IoMjU1LCAwLCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyID0gbm9kZS5nZXRDb21wb25lbnQoR3JhcGhpY3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v57uY5Yi25b2i54q2XHJcbiAgICBwcm90ZWN0ZWQgZHJhd19zaGFwZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2RyYXdfY29sbGlkZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZGVidWdEcmF3ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoZWNrRGVidWdEcmF3VmFsaWQoKTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jbGVhcigpO1xyXG5cclxuICAgICAgICBsZXQgbzEgPSB7a2V5OiAnc2NhbGVYJywgdmFsdWU6IHRoaXMubm9kZS5zY2FsZX07XHJcbiAgICAgICAgbGV0IG8yID0ge2tleTogJ3NjYWxlWScsIHZhbHVlOiB0aGlzLm5vZGUuc2NhbGV9O1xyXG4gICAgICAgIExRR2FtZVV0aWwucmVjdXJzaW9uX25vZGVfcHJvcGVydHkodGhpcy5ub2RlLCBvMSk7XHJcbiAgICAgICAgTFFHYW1lVXRpbC5yZWN1cnNpb25fbm9kZV9wcm9wZXJ0eSh0aGlzLm5vZGUsIG8yKTtcclxuICAgICAgICBpZiAobzEudmFsdWUgPT09IDAgfHwgbzIudmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWCA9IDEgLyBvMS52YWx1ZTtcclxuICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5ub2RlLnNjYWxlWSA9IDEgLyBvMi52YWx1ZTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuX2NvbGxpZGVfc2hhcGUpIHtcclxuICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5jaXJjbGUoK3RoaXMuX29mZnNldC54LCArdGhpcy5fb2Zmc2V0LnksIHRoaXMuX3JhZGl1cyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlJlY3Q6XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8oLXRoaXMuX3NpemUud2lkdGggKiAwLjUgKyB0aGlzLl9vZmZzZXQueCwgLXRoaXMuX3NpemUuaGVpZ2h0ICogMC41ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIubGluZVRvKC10aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsICt0aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9zaXplLndpZHRoICogMC41ICsgdGhpcy5fb2Zmc2V0LngsIC10aGlzLl9zaXplLmhlaWdodCAqIDAuNSArIHRoaXMuX29mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbygtdGhpcy5fc2l6ZS53aWR0aCAqIDAuNSArIHRoaXMuX29mZnNldC54LCAtdGhpcy5fc2l6ZS5oZWlnaHQgKiAwLjUgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5tb3ZlVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLl9wb2x5Z29uX3BvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnRHJhd2VyLmxpbmVUbyh0aGlzLl9wb2x5Z29uX3BvaW50c1tpXS54ICsgdGhpcy5fb2Zmc2V0LngsIHRoaXMuX3BvbHlnb25fcG9pbnRzW2ldLnkgKyB0aGlzLl9vZmZzZXQueSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z0RyYXdlci5saW5lVG8odGhpcy5fcG9seWdvbl9wb2ludHNbMF0ueCArIHRoaXMuX29mZnNldC54LCB0aGlzLl9wb2x5Z29uX3BvaW50c1swXS55ICsgdGhpcy5fb2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWdEcmF3ZXIuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ku4XnlKjkuo7nn6nlvaJcclxuICAgIHB1YmxpYyB1cGRhdGVfc2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NpemUud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3Qud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl93aWR0aCA9IHdpZHRoICogMC41O1xyXG4gICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG5cclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdF9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICB0aGlzLndvcmxkX3JlY3QgPSBuZXcgTFFSZWN0KDAsIDAsIHRoaXMuX3NpemUud2lkdGgsIHRoaXMuX3NpemUuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmRyYXdfc2hhcGUoKTtcclxuICAgICAgICBjb25zdCBpbmZvID0gTFFDb2xsaWRlU3lzdGVtLmdldF9pbmZvX2J5X2lkKHRoaXMuY29sbGlkZV9ncm91cF9pZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX21hc2sgPSBpbmZvLm1hc2s7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlX2NhdGVnb3J5ID0gaW5mby5jYXRlZ29yeTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfaWQgPSBMUUNvbGxpZGUuaWRfbWFrZXIrKztcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsaXNpb25BcmVhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xsaXNpb25BcmVhKCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3NpemUud2lkdGg9PTAgfHwgdGhpcy5fc2l6ZS5oZWlnaHQ9PTAgfHwgTWFwQ29ucm9sZXIuX2luc3RhbmNlID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGUpe1xyXG4gICAgICAgICAgICBsZXQgc2NhbGVYID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUuc2NhbGU7XHJcbiAgICAgICAgICAgIGxldCBzY2FsZVkgPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5zY2FsZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzY2FsZVggPT09IDAgfHwgc2NhbGVYID09IHVuZGVmaW5lZCB8fCBzY2FsZVggPT0gbnVsbCB8fCBzY2FsZVggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29sbGlkZV9zaGFwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5DaXJjbGU6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5ZyG5b2i56Kw5pKe5Yy65Z+f5Y2K5b6E5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmFkaXVzID0gdGhpcy5fcmFkaXVzICogTWF0aC5tYXgoc2NhbGVYLCBzY2FsZVkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMUUNvbGxpZGVTaGFwZS5SZWN0OlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOefqeW9oueisOaSnuWMuuWfn+WwuuWvuOabtOaWsFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZGF0YV9zdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zaXplLndpZHRoICE9PSAxMCAmJiB0aGlzLmRhdGFfc3RyaW5nIT1cIi0xXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYodGhpcy5fc2l6ZS53aWR0aCA9PSAxMDUgfHwgdGhpcy5fc2l6ZS5oZWlnaHQgPT0gMTA1KXt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaXplLndpZHRoID0gdGhpcy5fc2l6ZS53aWR0aCAqIHNjYWxlWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVYKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NpemUuaGVpZ2h0IT09IDEwICYmIHRoaXMuZGF0YV9zdHJpbmchPVwiLTFcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZih0aGlzLl9zaXplLndpZHRoID09IDEwNSB8fCB0aGlzLl9zaXplLmhlaWdodCA9PSAxMDUpe31cclxuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpemUuaGVpZ2h0ID0gdGhpcy5fc2l6ZS5oZWlnaHQgKiBzY2FsZVk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pS+5aSn5YCN5pWwXCIsc2NhbGVZKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS53aWR0aCA9IHRoaXMuX3NpemUud2lkdGggKiBzY2FsZVg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fc2l6ZS5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIHNjYWxlWTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy53b3JsZF9yZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC53aWR0aCA9IHRoaXMuX3NpemUud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ybGRfcmVjdC5oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JsZF9yZWN0LmhhbGZfd2lkdGggPSB0aGlzLl9zaXplLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmxkX3JlY3QuaGFsZl9oZWlnaHQgPSB0aGlzLl9zaXplLmhlaWdodCAqIDAuNTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExRQ29sbGlkZVNoYXBlLlBvbHlnb246XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5aSa6L655b2i56Kw5pKe54K55Z2Q5qCH5pu05pawXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9seWdvbl9wb2ludHMgPSB0aGlzLl9wb2x5Z29uX3BvaW50cy5tYXAocG9pbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFZlYzIocG9pbnQueCAqIHNjYWxlWCwgcG9pbnQueSAqIHNjYWxlWSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHJhd19zaGFwZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZV9scV9jb2xsaWRlKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb2xsaWRlX3N0YXR1cyA9PT0gTFFDb2xsaWRlU3RhdHVzLkxpdmUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKHRoaXMubm9kZS5uYW1lICsgJ+mHjeWkjea3u+WKoCcpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLkxpdmU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmFkZF9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlX2xxX2NvbGxpZGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZV9zdGF0dXMgIT09IExRQ29sbGlkZVN0YXR1cy5MaXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc19lbmFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVfc3RhdHVzID0gTFFDb2xsaWRlU3RhdHVzLklkbGU7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLnJlbW92ZV9jb2xsaWRlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVfbHFfY29sbGlkZSgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gcHVibGljIG9uX2NvbGxpZGUoY29sbGlkZTogTFFDb2xsaWRlKTogdm9pZCB7XHJcbiAgICAvLyAgICAgaWYoY29sbGlkZS5ub2RlLnBhcmVudC51dWlkID09IHRoaXMubm9kZS5wYXJlbnQudXVpZCl7XHJcbiAgICAvLyAgICAgICAgIHJldHVybjtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAvLyAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgLy8gICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgIC8vICAgICAgICAgICAgIGlmKGJsb2NrLmlzVG91Y2gpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOaSnlwiLHRoaXMubm9kZS5uYW1lKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PSBcInRvcFwiICl7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPiAodGhpcy5ub2RlLnBhcmVudC55K3RoaXMubm9kZS5oZWlnaHQpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVZID0gMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJsZWZ0XCIgKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZUxlZnQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcblxyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJhcIik7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYID4gKHRoaXMubm9kZS5wYXJlbnQueCkpe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVggPSAxO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgIFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9lbnRlcihjb2xsaWRlOiBMUUNvbGxpZGUpIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHRoaXMubm9kZS5uYW1lICsgJyBvbl9lbnRlcicpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBvbl9leGl0KGNvbGxpZGU6IExRQ29sbGlkZSkge1xyXG4gICAgICAgIGlmKHRoaXMuZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGUpKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTFFDb2xsaWRlQ29uZmlnLnN3aXRjaF9wcmludF9sb2cpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYoIWJsb2NrLmlzVG91Y2gpe1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgIGJsb2NrLmNoZWNrQ29sbGlzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT0gXCJ0b3BcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlVXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlRG93biA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcImxlZnRcIiApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlTGVmdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5tb3ZlUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25fY29sbGlkZShjb2xsaWRlOiBMUUNvbGxpZGUpOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLmRpc2FibGVDb2xsaWRlcihjb2xsaWRlKSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKExRQ29sbGlkZUNvbmZpZy5zd2l0Y2hfcHJpbnRfbG9nKSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suaXNUb3VjaCl7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suY2hlY2tDb2xsaXNpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5pKeXCIsdGhpcy5ub2RlLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5uYW1lID09IFwidG9wXCIgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coY29sbGlkZS5ub2RlLnBhcmVudC5uYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVVwID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRZID4gKHRoaXMubm9kZS5wYXJlbnQueSt0aGlzLm5vZGUucGFyZW50LmhlaWdodCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUubmFtZSA9PT0gXCJkb3duXCIpe1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZURvd24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2sudG91Y2hQb2ludFkgPCAodGhpcy5ub2RlLnBhcmVudC55ICkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2subW92ZVkgPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwibGVmdFwiICl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVMZWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnRvdWNoUG9pbnRYIDwgKHRoaXMubm9kZS5wYXJlbnQueCAtIHRoaXMubm9kZS5wYXJlbnQud2lkdGgpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ub2RlLm5hbWUgPT09IFwicmlnaHRcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihibG9jay50b3VjaFBvaW50WCA+ICh0aGlzLm5vZGUucGFyZW50LngpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm1vdmVYID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZUNvbGxpZGVyKGNvbGxpZGU6IExRQ29sbGlkZSl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgaWYoY29sbGlkZS5ub2RlICYmIHRoaXMubm9kZSl7XHJcbiAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgJiYgdGhpcy5ub2RlLnBhcmVudCl7XHJcbiAgICAgICAgICAgICAgICBpZihjb2xsaWRlLm5vZGUucGFyZW50LnV1aWQgPT0gdGhpcy5ub2RlLnBhcmVudC51dWlkKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkJsb2NrXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGJsb2NrLnR5cGUgPT0gMSB8fCBibG9jay50eXBlID09IDEwIHx8IGJsb2NrLnR5cGUgPT0gOSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbGxpZGUubm9kZS5wYXJlbnQgPT0gYmxvY2suYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxufSJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/prop/Adhesive.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '5fc5bz1aV5PKIBJQh99jpm2', 'Adhesive');
-// Script/prop/Adhesive.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Adhesive = /** @class */ (function (_super) {
- __extends(Adhesive, _super);
- function Adhesive() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.time = 60;
- _this.pos = { x: 0, y: 0 };
- return _this;
- }
- Adhesive.prototype.onLoad = function () {
- this.pos.x = this.pos.y = 0;
- this.target = null;
- };
- Adhesive.prototype.start = function () {
- };
- Adhesive.prototype.init = function (node) {
- this.pos.x = node.x - this.node.x;
- this.pos.y = node.y - this.node.y;
- this.target = node;
- };
- Adhesive.prototype.remove = function () {
- var _this = this;
- this.target = null;
- for (var j = 0; j < this.node.children.length; j++) {
- if (this.node.children[j].active == true) {
- this.node.children[j].getComponent(sp.Skeleton).setAnimation(0, "animation", false);
- }
- }
- setTimeout(function () {
- _this.node.active = false;
- }, 2000);
- };
- Adhesive.prototype.update = function (dt) {
- if (this.target != null) {
- this.node.x = this.target.x - this.pos.x;
- this.node.y = this.target.y - this.pos.y;
- }
- };
- Adhesive = __decorate([
- ccclass
- ], Adhesive);
- return Adhesive;
-}(cc.Component));
-exports.default = Adhesive;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxBZGhlc2l2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVDQztRQXJDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUcsR0FBUSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDOztJQW9DNUIsQ0FBQztJQWpDRyx5QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELHVCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5QkFBTSxHQUFOO1FBQUEsaUJBVUM7UUFURyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQzNDLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQzthQUNyRjtTQUNKO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFHRCx5QkFBTSxHQUFOLFVBQVEsRUFBRTtRQUNOLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBdENnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBdUM1QjtJQUFELGVBQUM7Q0F2Q0QsQUF1Q0MsQ0F2Q3FDLEVBQUUsQ0FBQyxTQUFTLEdBdUNqRDtrQkF2Q29CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkaGVzaXZlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcG9zOiBhbnkgPSB7eDogMCwgeTogMH07XHJcbiAgICB0YXJnZXQ6IGFueTtcclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLnBvcy54ID0gdGhpcy5wb3MueSA9IDA7XHJcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChub2RlKXtcclxuICAgICAgICB0aGlzLnBvcy54ID0gbm9kZS54IC0gdGhpcy5ub2RlLng7XHJcbiAgICAgICAgdGhpcy5wb3MueSA9IG5vZGUueSAtIHRoaXMubm9kZS55O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbm9kZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoKXtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XHJcbiAgICAgICAgZm9yKGxldCBqID0wOyBqPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGorKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltqXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5bal0uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMCxcImFuaW1hdGlvblwiLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDIwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy50YXJnZXQgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGhpcy50YXJnZXQueCAtIHRoaXMucG9zLng7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGhpcy50YXJnZXQueSAtIHRoaXMucG9zLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event');
-// migration/use_v2.1-2.2.1_cc.Toggle_event.js
-
-"use strict";
-
-/*
- * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.
- * You do not need to manually add this script in any other project.
- * If you don't use cc.Toggle in your project, you can delete this script directly.
- * If your project is hosted in VCS such as git, submit this script together.
- *
- * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,
- * 你无需在任何其它项目中手动添加此脚本。
- * 如果你的项目中没用到 Toggle,可直接删除该脚本。
- * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。
- */
-
-if (cc.Toggle) {
- // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code
- // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件
- cc.Toggle._triggerEventInScript_isChecked = true;
-}
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsRUFBRSxDQUFDQyxNQUFNLEVBQUU7RUFDWDtFQUNBO0VBQ0FELEVBQUUsQ0FBQ0MsTUFBTSxDQUFDQywrQkFBK0IsR0FBRyxJQUFJO0FBQ3BEIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBUaGlzIHNjcmlwdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBDb2NvcyBDcmVhdG9yIGFuZCBpcyBvbmx5IHVzZWQgZm9yIHByb2plY3RzIGNvbXBhdGlibGUgd2l0aCB0aGUgdjIuMS4wIO+9niAyLjIuMSB2ZXJzaW9uLlxyXG4gKiBZb3UgZG8gbm90IG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoaXMgc2NyaXB0IGluIGFueSBvdGhlciBwcm9qZWN0LlxyXG4gKiBJZiB5b3UgZG9uJ3QgdXNlIGNjLlRvZ2dsZSBpbiB5b3VyIHByb2plY3QsIHlvdSBjYW4gZGVsZXRlIHRoaXMgc2NyaXB0IGRpcmVjdGx5LlxyXG4gKiBJZiB5b3VyIHByb2plY3QgaXMgaG9zdGVkIGluIFZDUyBzdWNoIGFzIGdpdCwgc3VibWl0IHRoaXMgc2NyaXB0IHRvZ2V0aGVyLlxyXG4gKlxyXG4gKiDmraTohJrmnKznlLEgQ29jb3MgQ3JlYXRvciDoh6rliqjnlJ/miJDvvIzku4XnlKjkuo7lhbzlrrkgdjIuMS4wIH4gMi4yLjEg54mI5pys55qE5bel56iL77yMXHJcbiAqIOS9oOaXoOmcgOWcqOS7u+S9leWFtuWug+mhueebruS4reaJi+WKqOa3u+WKoOatpOiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67kuK3msqHnlKjliLAgVG9nZ2xl77yM5Y+v55u05o6l5Yig6Zmk6K+l6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruacieaJmOeuoeS6jiBnaXQg562J54mI5pys5bqT77yM6K+35bCG5q2k6ISa5pys5LiA5bm25LiK5Lyg44CCXHJcbiAqL1xyXG5cclxuaWYgKGNjLlRvZ2dsZSkge1xyXG4gICAgLy8gV2hldGhlciB0byB0cmlnZ2VyICd0b2dnbGUnIGFuZCAnY2hlY2tFdmVudHMnIGV2ZW50cyB3aGVuIG1vZGlmeWluZyAndG9nZ2xlLmlzQ2hlY2tlZCcgaW4gdGhlIGNvZGVcclxuICAgIC8vIOWcqOS7o+eggeS4reS/ruaUuSAndG9nZ2xlLmlzQ2hlY2tlZCcg5pe25piv5ZCm6Kem5Y+RICd0b2dnbGUnIOS4jiAnY2hlY2tFdmVudHMnIOS6i+S7tlxyXG4gICAgY2MuVG9nZ2xlLl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQgPSB0cnVlO1xyXG59XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -13383,6 +14052,240 @@ cc._RF.pop();
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkVBQXdFO0FBQ3hFLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUN6QyxJQUFZLFNBdUJaO0FBdkJBLFdBQVksU0FBUztJQUNsQixTQUFTO0lBQ1QscUVBQVMsQ0FBQTtJQUNULFNBQVM7SUFDVCxpRkFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULFNBQVM7SUFDVCxxRUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULE9BQU87SUFDUCxxRUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHFFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AscUVBQVMsQ0FBQTtJQUNULE9BQU87SUFDUCxrRkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQXZCWSxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQXVCckI7QUFFRCxJQUFZLFVBc0JYO0FBdEJELFdBQVksVUFBVTtJQUVsQixTQUFTO0lBQ1QsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLDJEQUFRLENBQUE7SUFDUixTQUFTO0lBQ1QsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLHVFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AsMkRBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCwyREFBUSxDQUFBO0lBQ1IsT0FBTztJQUNQLDJEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AsMkRBQVEsQ0FBQTtBQUNaLENBQUMsRUF0QlcsVUFBVSxHQUFWLGtCQUFV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b0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBRXJFLFNBQVM7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBRXJFLFNBQVM7WUFDVCxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFD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QUFDO2dCQUNGLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1lBQ1YsS0FBSyxDQUFDO2dCQUNGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztn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QUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssU0FBUztnQkFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFD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LElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjt3QkFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRTs0QkFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjtxQkFDSjt5QkFBTTt3QkFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRTs0QkFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjs2QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTs0QkFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO2dDQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7NkJBQ3ZCOzRCQUNELElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUM7Z0NBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzZCQUNsQjt5QkFDSjt3QkFFRCxJQUFJLElBQUksQ0FBQyxJ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d0JBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzt3QkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUMxRDtpQkFDSjthQUNSO1NBQ0o7SUFFTCxDQUFDO0lBcHBDRDtRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBTWhDO1FBSkMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDNUIsQ0FBQzt3Q0FDZ0M7SUFNbEM7UUFKQyxRQUFRLENBQUM7WUFDTixPQUFPLEVBQUUsTUFBTTtZQUNmLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTztTQUNuQixDQUFDO3VDQUNlO0lBTWpCO1FBSkMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFLE1BQU07WUFDZixJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU87U0FDbkIsQ0FBQztzQ0FDYztJQUdoQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2tEQUNjO0lBeEN0QixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBd3FDekI7SUFBRCxZQUFDO0NBeHFDRCxBQXdxQ0MsQ0F4cUNrQyxFQUFFLENBQUMsU0FBUyxHQXdxQzlDO2tCQXhxQ29CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGVTeXN0ZW0gfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlX3N5c3RlbVwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuIGV4cG9ydCBlbnVtIEJsb2NrVHlwZXtcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIuaZrumAmuWdl1wiID0gMCwgIFxyXG4gICAgLyrotbfngrnlnLDlnZcgKi9cclxuICAgIFwi5Y+g5Yqg5Z2X5LiLXCIgPSAxLCAgXHJcbiAgICAvKua5v+WcsCAqL1xyXG4gICAgXCLpkqXljJnlnZdcIiA9IDIsICBcclxuICAgIC8q5bGx5bOwICovXHJcbiAgICBcIuS4iumUgeWdl1wiID0gMywgIFxyXG4gICAgLyrnu4jngrnlnLDlnZcgKi9cclxuICAgIFwi5Ya757uT5Z2XXCIgPSA0LCAgXHJcbiAgICAvKuaBr+WjpCAqL1xyXG4gICAgXCLmmJ/mmJ/lnZdcIiA9IDUsICAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLngrjlvLnlnZdcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuawtOW5s+Wdl1wiID0gNywgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5Z6C55u05Z2XXCIgPSA4LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLnspjlkIjlnZdcIiA9IDksICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWPoOWKoOWdl+S4ilwiID0gMTAsICBcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQmxvY2tDb2xvcntcclxuXHJcbiAgICAvKui1t+eCueWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLngbDoibJcIiA9IDksXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBhdGhUeXBle1xyXG4gICAgZXJyID0gXCJlcnJcIixcclxuICAgIHVwID0gXCJ1cFwiLCAgXHJcbiAgICBkb3duID0gXCJkb3duXCIsICBcclxuICAgIGxlZnQgPSBcImxlZnRcIixcclxuICAgIHJpZ2h0ID0gXCJyaWdodFwiLFxyXG4gICAgdXBfbGVmdCA9IFwidXBfbGVmdFwiLFxyXG4gICAgdXBfcmlnaHQgPSBcInVwX3JpZ2h0XCIsXHJcbiAgICBkb3duX2xlZnQgPSBcImRvd25fbGVmdFwiLFxyXG4gICAgZG93bl9yaWdodCA9IFwiZG93bl9yaWdodFwiLFxyXG4gICAgbGVmdF91cCA9IFwibGVmdF91cFwiLFxyXG4gICAgbGVmdF9kb3duID0gXCJsZWZ0X2Rvd25cIixcclxuICAgIHJpZ2h0X3VwID0gXCJyaWdodF91cFwiLFxyXG4gICAgcmlnaHRfZG93biA9IFwicmlnaHRfZG93blwiLFxyXG59XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgbW92ZUludGVydmFsID0gMDsgLy8g57qmIDYwIEZQUyBcclxuICAgIHByaXZhdGUgbGFzdE1vdmVUaW1lID0gMDsgIC8vIOS4iuS4i+S4pOS4quWAvOadpeiwg+iKgui3n+aJi++8jOS4gOS4quaYr+aXtumXtOi9tO+8jOS4gOS4quaYr+i3neemu+i9tFxyXG4gICAgcHJpdmF0ZSBtYXhTcGVlZCA9IDMwMDsgICAgLy8gIOacgOWkp+enu+WKqOi3neemu1xyXG5cclxuICAgIC8vIHByaXZhdGUgb3RoZXJDb2xsaWRlcjogY2MuQ29sbGlkZXIgPSBudWxsO1xyXG4gICAgLy8gQHByb3BlcnR5KHtcclxuICAgIC8vICAgICB0b29sdGlwOiAn56Kw5pKe5b2i54q277yMTm9uZeWwseaYr+aXoOaVjO+8jOS4jeWPguS4jueisOaSnicsXHJcbiAgICAvLyAgICAgdHlwZTogY2MuRW51bShCbG9ja1R5cGUpLFxyXG4gICAgLy8gICAgIC8vIGRlZmF1bHQ6IEJsb2NrVHlwZS5Ob21hbCxcclxuICAgIC8vICAgICBkaXNwbGF5TmFtZTogJ+eisOaSnuW9oueKtidcclxuICAgIC8vIH0pXHJcbiAgICBcclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIH0pXHJcbiAgICB0eXBlOiBCbG9ja1R5cGUgPSBCbG9ja1R5cGUu5pmu6YCa5Z2XO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oQmxvY2tDb2xvciksXHJcbiAgICB9KVxyXG4gICAgY29sb3I6IEJsb2NrQ29sb3IgPSBCbG9ja0NvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfmqKrlkJHplb/luqYnLFxyXG4gICAgICAgIHR5cGU6IGNjLkludGVnZXIsXHJcbiAgICB9KVxyXG4gICAgaGVuZzogTnVtYmVyID0gMTtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfnq5blkJHplb/luqYnLFxyXG4gICAgICAgIHR5cGU6IGNjLkludGVnZXIsXHJcbiAgICB9KVxyXG4gICAgc2h1OiBOdW1iZXIgPSAxO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGljZV9TcHJpdGVGcmFtZTogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuICAgIC8vIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIC8vIFVJOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcbiAgICBwcml2YXRlIGluaXRpYWxUb3VjaE9mZnNldDogY2MuVmVjMiA9IG51bGw7XHJcbiAgICBwcml2YXRlIG9mZnNldFRvbGVyYW5jZSA9IDEwMDsgLy8g5YGP56e75a655b+N5bqmOyBcclxuXHJcbiAgICBhbGxCbG9ja3M6YW55OyAgICAgICAvL+aJgOacieeahOaWueWdlyznlKjkuo7orqHnrpdwb3NYLHBvc1nmtojpmaRcclxuICAgIHRvdWNoUG9pbnQ6IGNjLlZlYzIgPSBudWxsOyAgICAgLy/op6bmkbjngrlcclxuICAgIGlzVG91Y2g6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAgLy/mmK/lkKbop6bmkbhcclxuICAgIHBvc1g6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRY5Z2Q5qCHXHJcbiAgICBwb3NZOiBudW1iZXIgPSAwOyAgICAgICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qEWeWdkOagh1xyXG4gICAgbW92ZUxlZnQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5bem56e7O1xyXG4gICAgbW92ZVJpZ2h0OiBib29sZWFuID0gdHJ1ZTsgICAgIC8v5piv5ZCm5Y+v5Lul5Y+z56e7O1xyXG4gICAgbW92ZVVwOiBib29sZWFuID0gdHJ1ZTsgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK56e7O1xyXG4gICAgbW92ZURvd246IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5LiL56e7O1xyXG4gICAgbW92ZUNvcm5lcjogbnVtYmVyID0gMDsgICAgICAgIC8v5piv5ZCm56Kw5pKe6KeS6JC9XHJcbiAgICBtb3ZlWTpudW1iZXIgPSAwOyAgICAgICAgICAvL+aYr+WQpuWPr+S7peS4iuS4i+enu+WKqDtcclxuICAgIG1vdmVYOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5bem5Y+z56e75YqoO1xyXG4gICAgdG91Y2hQb2ludFg6IG51bWJlciA9IDA7ICAgICAgICAvL+inpuaRuOeCuVjlnZDmoIc7XHJcbiAgICB0b3VjaFBvaW50WTogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WeWdkOaghztcclxuICAgIGJsb2NrSWQ6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/mlrnlnZdJRDtcclxuICAgIHN0YWNraW5nOiBjYy5WZWMyOyAgICAgICAgICAgICAgLy/lj6DliqDmlrnlnZdcclxuICAgIGFkaGVzaXZlOiBjYy5WZWMyOyAgICAgICAgICAgICAgLy/nspjlkIjmlrnlnZdcclxuICAgIGxldmVsOiBudW1iZXIgPSAwOyAgICAgICAgICAgIC8v5Y+g5Yqg5pa55Z2X5bGC5pWwO1xyXG4gICAgcHo6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG92ZXI6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAvL+aWueWdl+aYr+WQpuWkseaViOW3sua2iOWksVxyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcbiAgICBvdGhlckNvbGxpZGVyOiBhbnk7XHJcbiAgICBtb3ZlU3RhY2s6IGJvb2xlYW47XHJcbiAgICB0b3VjaERlbHRhOiBjYy5WZWMyID0gY2MudjIoMCwgMCk7IFxyXG4gICAgYWRoZXNpdmVOb2RlOiBhbnk7XHJcbiAgICBjaGVja0NvbGxpc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICB0aGlzLnB6ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFja2luZyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgdGhpcy5hZGhlc2l2ZSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgdGhpcy5hZGhlc2l2ZU5vZGUgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudChjYy5Qb2x5Z29uQ29sbGlkZXIpO1xyXG4gICAgICAgIHRoaXMub3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb2xsaXNpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG4gICAgLy9jcmVhdGVBZCDkuLrmmK/lkKbliJvlu7rnspjlkIjlv6vlm77niYdcclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSxjcmVhdGVBZCl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGlmKG5vZGUpIHRoaXMuYmxvY2tfSW5mby5ub2RlID0gbm9kZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBibG9ja19JbmZvLnR5cGU7XHJcbiAgICAgICAgdGhpcy5jb2xvciA9IGJsb2NrX0luZm8uY29sb3I7XHJcbiAgICAgICAgdGhpcy5ibG9ja0lkID0gYmxvY2tfSW5mby5pZDtcclxuICAgICAgICAvLyBpZihwb3NYJiZwb3NZKXtcclxuICAgICAgICAvLyAgICAgdGhpcy5wb3NYID0gcG9zWDtcclxuICAgICAgICAvLyAgICAgdGhpcy5wb3NZID0gcG9zWTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55Z2X5bGC57qnXCIsdGhpcy5ub2RlLnpJbmRleCk7XHJcbiAgICAgICAgdGhpcy5pbml0Q29sb3IoKTtcclxuICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0QmxvY2tzKCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMudHlwZSAhPSBCbG9ja1R5cGUu5Y+g5Yqg5Z2X5LiKKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX1NUQVJULCB0aGlzLnRvdWNoU3RhcnQsIHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfQ0FOQ0VMLCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZVsnX3RvdWNoTGlzdGVuZXInXS5zZXRTd2FsbG93VG91Y2hlcyhmYWxzZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8g6K6h566X5L2N572u5YGP56e7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zT2Zmc2V0ID0gY2MudjIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54IC0gdGhpcy5ibG9ja19JbmZvLm5vZGUueCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgLSB0aGlzLmJsb2NrX0luZm8ubm9kZS55XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjcmVhdGVBZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS56SW5kZXggPj0gdGhpcy5ibG9ja19JbmZvLm5vZGUuekluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVBZGhlc2l2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY3JlYXRlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0TmFtZXMgPSBbJ3RvcCcsICdkb3duJywgJ2xlZnQnLCAncmlnaHQnXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgY2MuTm9kZSAmJiB0YXJnZXROYW1lcy5pbmNsdWRlcyhjaGlsZC5uYW1lKSAmJiBjaGlsZC5nZXRDb21wb25lbnQoXCJscV9jb2xsaWRlXCIpLmRhdGFfc3RyaW5nICE9IFwiLTFcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkQ2hpbGQgPSBjYy5pbnN0YW50aWF0ZShjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9uZWRDaGlsZC5nZXRDb21wb25lbnQoXCJscV9jb2xsaWRlXCIpLmRhdGFfc3RyaW5nID0gXCItMVwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVkQ2hpbGQucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g6I635Y+W5a2Q6IqC54K555u45a+55LqO54i26IqC54K555qE5L2N572uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBvcyA9IGNoaWxkLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDosIPmlbTlrZDoioLngrnkvY3nva7ku6Xkv53or4Hnm7jlr7nkvY3nva7kuI3lj5hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lZENoaWxkLnNldFBvc2l0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlUG9zLnggLSBwb3NPZmZzZXQueCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVBvcy55IC0gcG9zT2Zmc2V0LnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRoZXNpdmUgPSBwb3NPZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPG1hcEluZm8ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrUmVjdCA9IG1hcEluZm9baV0uZ2V0Qm91bmRpbmdCb3goKTtcclxuICAgICAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mih0aGlzLm5vZGUucG9zaXRpb24ueC01LCB0aGlzLm5vZGUucG9zaXRpb24ueSsxMClcclxuICAgICAgICAgICAgICAgIGlmKGJsb2NrUmVjdC5jb250YWlucyhwb2ludCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc1kgPSBtYXBJbmZvW2ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1k7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gbWFwSW5mb1tpXS54ICsgNjU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgICAgICBpPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJ4el9cIit0aGlzLmJsb2NrX0luZm8uYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXQuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLmljZV9TcHJpdGVGcmFtZS5fc3ByaXRlRnJhbWVzW25hbWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGl0LnNldEFuY2hvclBvaW50KHRoaXMubm9kZS5hbmNob3JYLHRoaXMubm9kZS5hbmNob3JZKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdC5zZXRQb3NpdGlvbigxMywtMTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaGl0LmFuY2hvclggPT0gMC41KSB0aGlzLmhpdC5zZXRQb3NpdGlvbigwLC0xMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmhpdC5hbmNob3JYID09IDAuMzMpIHRoaXMuaGl0LnNldFBvc2l0aW9uKC0xMywtMTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5oaXQuYW5jaG9yWCA9PSAwLjY2KSB0aGlzLmhpdC5zZXRQb3NpdGlvbigyLC05KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmhpdC5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpdC5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL+WIneWni+WMluaWueWdl+exu+Wei1xyXG4gICAgaW5pdFR5cGUoKXtcclxuICAgICAgICBsZXQgcG9zQ29uZmlnID0gY2MuZnguR2FtZUNvbmZpZy5QUk9QX0lORk9bdGhpcy5ibG9ja19JbmZvLmJsb2NrXTtcclxuICAgICAgICBcclxuICAgICAgICBzd2l0Y2godGhpcy50eXBlKXtcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu54K45by55Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IGJvb20gPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIGJvb20ucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgYm9vbS5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMS54LHBvc0NvbmZpZy5wb3MxLnkpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvPy5ib29tVGltZSkgXHJcbiAgICAgICAgICAgICAgICAgICAgYm9vbS5nZXRDb21wb25lbnQoXCJCb29tXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmJvb21UaW1lKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu5pif5pif5Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXIgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIHN0YXIuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgICAgICAgICAgc3Rhci5hbmNob3JZID0gdGhpcy5ub2RlLmFuY2hvclk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3Rhci5nZXRDb21wb25lbnQoXCJTdGFyXCIpLnN0YXJfU3ByaXRlRnJhbWUuZ2V0U3ByaXRlRnJhbWUoXCJzdGFyX1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jayk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24ocG9zQ29uZmlnLnBvczQueCAtIDEwLHBvc0NvbmZpZy5wb3M0LnkpO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7pkqXljJnlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQga2V5ID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBrZXkucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAga2V5LnNldFBvc2l0aW9uKHBvc0NvbmZpZy5wb3MxLngscG9zQ29uZmlnLnBvczEueSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBCbG9ja1R5cGUu5LiK6ZSB5Z2XOlxyXG4gICAgICAgICAgICAgICAgbGV0IGxvY2sgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIGxvY2sucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgbG9jay5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMS54LHBvc0NvbmZpZy5wb3MxLnkpO1xyXG4gICAgICAgICAgICAgICAgbG9jay5nZXRDb21wb25lbnQoXCJMb2NrXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmxvY2tUaW1lKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7lhrvnu5PlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBmcmVlemUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgbGV0ICBuYW1lID0gXCJpY2VfXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNwcml0ZUZyYW1lID0gdGhpcy5pY2VfU3ByaXRlRnJhbWUuX3Nwcml0ZUZyYW1lc1tuYW1lXTtcclxuICAgICAgICAgICAgICAgIGZyZWV6ZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgICAgIGxldCBmcmVlemVYID0gcG9zQ29uZmlnLnBvczYueC0odGhpcy5ub2RlLndpZHRoKih0aGlzLm5vZGUuYW5jaG9yWC0wLjUpKTsgbGV0IGZyZWV6ZVkgPSBwb3NDb25maWcucG9zNi55ICsgdGhpcy5ub2RlLmhlaWdodC8yO1xyXG4gICAgICAgICAgICAgICAgZnJlZXplLnNldFBvc2l0aW9uKGZyZWV6ZVgsZnJlZXplWSk7XHJcbiAgICAgICAgICAgICAgICBmcmVlemUuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLmluaXQodGhpcy5ibG9ja19JbmZvLmZyZWV6ZVRpbWUpO1xyXG4gICAgICAgICAgICAgICAgZnJlZXplLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zNS54LTEwLWZyZWV6ZVgscG9zQ29uZmlnLnBvczUueS0yLWZyZWV6ZVkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlLuawtOW5s+WdlzpcclxuICAgICAgICAgICAgICAgIGxldCBob3Jpem9udGFsID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGxldCBoZW5nID0gXCJoZW5nXCIgKyB0aGlzLmhlbmc7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLmdldENoaWxkQnlOYW1lKGhlbmcpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsLnNldFBvc2l0aW9uKHBvc0NvbmZpZy5wb3MyLngtMyxwb3NDb25maWcucG9zMi55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEJsb2NrVHlwZS7lnoLnm7TlnZc6XHJcbiAgICAgICAgICAgICAgICBsZXQgdmVydGljYWwgPSBjYy5pbnN0YW50aWF0ZShNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfUHJvcFt0aGlzLnR5cGVdKTtcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIGxldCBzaHUgPSBcInNodVwiICsgdGhpcy5zaHU7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC5nZXRDaGlsZEJ5TmFtZShzaHUpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC5zZXRQb3NpdGlvbihwb3NDb25maWcucG9zMy54LHBvc0NvbmZpZy5wb3MzLnkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlLuWPoOWKoOWdl+S4ijpcclxuICAgICAgICAgICAgICAgIHRoaXMubW92ZVN0YWNrID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX1NUQVJUKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5vZmYoY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAyMDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5nZXRTdGFja2luZ1BvcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnNldFBvc2l0aW9uKHRoaXMubm9kZS54ICsgcG9zLngsdGhpcy5ub2RlLnkgKyBwb3MueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIodGhpcy5ub2RlLnggLSB0aGlzLmJsb2NrX0luZm8ubm9kZS54LHRoaXMubm9kZS55IC0gdGhpcy5ibG9ja19JbmZvLm5vZGUueSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuc2NhbGVYICo9IDAuNztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZVkgKj0gMC43O1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImxlZnRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInJpZ2h0XCIgfHwgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWUgPT0gXCJ0b3BcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImRvd25cIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pa55Z2X6aKc6ImyXHJcbiAgICBpbml0Q29sb3IoKXsgICAgICAgICAgIFxyXG4gICAgIFxyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb2xvcitcImNvbG9yXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG5cclxuICAgICAgICBsZXQgbnVtYmVyID0gTWF0aC5mbG9vcigodGhpcy5jb2xvci0xKS8yKTtcclxuXHJcbiAgICAgICAgbGV0IGJsb2NrU3ByaXRlRnJhbWUgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuQmxvY2tfQ29sb3JbbnVtYmVyXS5fc3ByaXRlRnJhbWVzO1xyXG4gICAgICAgIHZhciBzcHJpdGVGcmFtZSA9IGJsb2NrU3ByaXRlRnJhbWVbbmFtZV07XHJcbiAgICAgIFxyXG4gICAgICAgIC8vIGlmKHRoaXMudHlwZSA9PSBCbG9ja1R5cGUu5Ya757uT5Z2XKXtcclxuICAgICAgICAvLyAgICAgbmFtZSA9IFwiaWNlX1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jaztcclxuICAgICAgICAvLyAgICAgc3ByaXRlRnJhbWUgPSB0aGlzLmljZV9TcHJpdGVGcmFtZS5fc3ByaXRlRnJhbWVzW25hbWVdO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu657KY5ZCI5b+r6L+e5o6l5aSEXHJcbiAgICBjcmVhdGVBZGhlc2l2ZSgpe1xyXG4gICAgICAgIGxldCBib3ggPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmFsbEJsb2Nrcy5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgYm94LnB1c2goY2MudjIodGhpcy5hbGxCbG9ja3NbaV0ueCt0aGlzLnBvc1gsdGhpcy5hbGxCbG9ja3NbaV0ueSt0aGlzLnBvc1kpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG90aGVyQm94ID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYWxsQmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBvdGhlckJveC5wdXNoKGNjLnYyKHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFsbEJsb2Nrc1tpXS54K3RoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYWxsQmxvY2tzW2ldLnkrdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSkpOyBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaz0wOyBrPGJveC5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaj0wOyBqPG90aGVyQm94Lmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKChib3hba10ueCA9PSBvdGhlckJveFtqXS54KzEgfHwgYm94W2tdLnggPT0gb3RoZXJCb3hbal0ueC0xKSAmJiAoYm94W2tdLnkgPT0gb3RoZXJCb3hbal0ueSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8v5ZyoWOi9tCDnm7jpgrtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IGJveFtrXS54ID09IG90aGVyQm94W2pdLngrMSA/IFwibGVmdFwiIDogXCJyaWdodFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRoZXNpdmUobGVmdCxib3hba10pO1xyXG4gICAgICAgICAgICAgICAgICAgIG90aGVyQm94LnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBqLS07IC8vIOiwg+aVtOe0ouW8lVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGogPCAwKSBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKChib3hba10ueSA9PSBvdGhlckJveFtqXS55KzEgfHwgYm94W2tdLnkgPT0gb3RoZXJCb3hbal0ueS0xKSAmJiAoYm94W2tdLnggPT0gb3RoZXJCb3hbal0ueCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8v5ZyoWei9tCDnm7jpgrtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZG93biA9IGJveFtrXS55ID09IG90aGVyQm94W2pdLnkrMSA/IFwiZG93blwiIDogXCJ1cFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRoZXNpdmUoZG93bixib3hba10pO1xyXG4gICAgICAgICAgICAgICAgICAgIG90aGVyQm94LnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBqLS07IC8vIOiwg+aVtOe0ouW8lVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGogPCAwKSBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gbGV0IGFkaGVzaXZlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy50eXBlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lhbfkvZPmt7vliqDnspjlkIjlv6vplIHpk77mlrnms5VcclxuICAgIGFkZEFkaGVzaXZlKGRpcmFjdGlvbixib3gpe1xyXG4gICAgICAgIGxldCBwb3MgPSBjYy52Mihib3gueCAtIHRoaXMucG9zWCxib3gueSAtIHRoaXMucG9zWSk7XHJcbiAgICAgICAgbGV0IGFkaGVzaXZlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbMTBdKTtcclxuICAgICAgICBhZGhlc2l2ZS5wYXJlbnQgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIik7XHJcbiAgICAgICAgLy8gYWRoZXNpdmUucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYWRoZXNpdmVcIik7XHJcbiAgICAgICAgYWRoZXNpdmUuc2V0UG9zaXRpb24oIDEyMCpwb3MueCAtIDY1ICsgdGhpcy5ub2RlLngsIDEyMCpwb3MueSArIDYwICsgdGhpcy5ub2RlLnkpO1xyXG4gICAgICAgIGlmKGRpcmFjdGlvbiA9PSBcImxlZnRcIiB8fCBkaXJhY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgYWRoZXNpdmUuZ2V0Q2hpbGRCeU5hbWUoXCJoZW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGFkaGVzaXZlLmdldENoaWxkQnlOYW1lKFwiaGVuZ1wiKS54ID0gLTYwO1xyXG4gICAgICAgICAgICBpZihkaXJhY3Rpb24gPT0gXCJyaWdodFwiKSBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueCA9IDYwO1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueCArPSA5O1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcImhlbmdcIikueSArPSA3O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS55ID0gLTYwO1xyXG4gICAgICAgICAgICBpZihkaXJhY3Rpb24gPT0gXCJ1cFwiKSBhZGhlc2l2ZS5nZXRDaGlsZEJ5TmFtZShcInNodVwiKS55ID0gNjA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkaGVzaXZlLmdldENvbXBvbmVudChcIkFkaGVzaXZlXCIpLmluaXQodGhpcy5ub2RlKTtcclxuICAgICAgICB0aGlzLmFkaGVzaXZlTm9kZS5wdXNoKGFkaGVzaXZlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBZGhlc2l2ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuYWRoZXNpdmVOb2RlLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmFkaGVzaXZlTm9kZS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWRoZXNpdmUgPSB0aGlzLmFkaGVzaXZlTm9kZVtpXTtcclxuICAgICAgICAgICAgICAgIGFkaGVzaXZlLmdldENvbXBvbmVudChcIkFkaGVzaXZlXCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5pa55Z2X6JC954K5XHJcbiAgICBibG9ja0ZhbGwocG9pbnQpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSB0cnVlKSByZXR1cm47XHJcbiAgICAgICAgLy8gLy8g5YGH6K6+IE1hcENvbnJvbGVyIOaciee9keagvOS/oeaBr++8jOi/memHjOeugOWNleekuuS+i1xyXG4gICAgICAgIGNvbnN0IG1hcFdpZHRoID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IG1hcEhlaWdodCA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBIZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgY2VsbFNpemUgPSAxMjA7IC8vIOavj+S4quagvOWtkOeahOWkp+Wwj++8jOagueaNruWunumZheaDheWGteiwg+aVtFxyXG5cclxuICAgICAgICAvLyDorqHnrpfngrnmiYDlnKjnmoTnvZHmoLzlnZDmoIdcclxuICAgICAgICBjb25zdCBncmlkWCA9IE1hdGguZmxvb3IoKHBvaW50LnggKyAobWFwV2lkdGggKiBjZWxsU2l6ZSAvIDIpKSAvIGNlbGxTaXplKTtcclxuICAgICAgICBjb25zdCBncmlkWSA9IE1hdGguZmxvb3IoKHBvaW50LnkgKyAobWFwSGVpZ2h0ICogY2VsbFNpemUgLyAyKSkgLyBjZWxsU2l6ZSk7XHJcblxyXG4gICAgICAgIC8vIOajgOafpee9keagvOWdkOagh+aYr+WQpui2iueVjFxyXG4gICAgICAgIGlmIChncmlkWCA+PSAwICYmIGdyaWRYIDwgbWFwV2lkdGggJiYgZ3JpZFkgPj0gMCAmJiBncmlkWSA8IG1hcEhlaWdodCkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXBCbG9jayA9IE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW2dyaWRYXVtncmlkWV07XHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUmVjdCA9IG1hcEJsb2NrLmdldEJvdW5kaW5nQm94KCk7XHJcblxyXG4gICAgICAgICAgICAvLyDkvb/nlKggY2MuSW50ZXJzZWN0aW9uLnBvaW50SW5SZWN0IOaWueazleWIpOaWreeCueaYr+WQpuWcqOefqeW9ouiMg+WbtOWGhVxyXG4gICAgICAgICAgICBpZiAoYmxvY2tSZWN0LmNvbnRhaW5zKHBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgLy/lr7vmib7okL3ngrlcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlTWFwQmxvY2soKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1g7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc1kgPSBtYXBCbG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IDUwICsgdGhpcy5wb3NYIC0gdGhpcy5wb3NZICogMztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZflsYLnuqdcIix0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gbWFwQmxvY2sueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBCbG9jay55IC0gNjA7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja19JbmZvLm5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS55ID0gdGhpcy5ub2RlLnkgLSB0aGlzLmFkaGVzaXZlLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLnR5cGUgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikubW92ZVN0YWNrID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54ICsgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc3RhY2tpbmcueDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS55ID0gdGhpcy5ub2RlLnkgKyB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zdGFja2luZy55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICBsZXQgamcgPSBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hlY2tQYXNzKHRoaXMubm9kZSx0aGlzLmFsbEJsb2Nrcyk7XHJcblxyXG4gICAgICAgIGlmKGpnID49IDApe1xyXG4gICAgICAgICAgICB0aGlzLm92ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlU3RhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCb3hDb2xsaWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZU1hcEJsb2NrKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGpnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnVwRG9vcih0aGlzLmNvbG9yKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRWaWJyYXRlKFwibWVkaXVtXCIsMSlcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVCb3hDb2xsaWRlcigpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwibGVmdFwiIHx8IHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwicmlnaHRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInRvcFwiIHx8IHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwiZG93blwiKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQWN0aW9uKGRpcmFjdGlvbil7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9NT1ZFKTtcclxuICAgICAgICB0aGlzLm5vZGUub2ZmKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9mZihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQpO1xyXG4gICAgICAgIHRoaXMubm9kZS5hZGRDb21wb25lbnQoY2MuTWFzayk7XHJcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGxldCBwb3MgPSB0aGlzLm5vZGUuZ2V0UG9zaXRpb24oKTtcclxuICAgICAgICBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLuWPoOWKoOWdl+S4iyl7XHJcbiAgICAgICAgICAgIGxldCBzY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgICAgICBsZXQgc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHRoaXMucG9zWCx0aGlzLnBvc1ksdHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmxvY2tfSW5mby5ub2RlKVxyXG4gICAgICAgICAgICAudG8oMC4zLHtwb3NpdGlvbjpwb3Msc2NhbGVYOnNjYWxlWD4wPzE6LTEsc2NhbGVZOnNjYWxlWT4wPzE6LTF9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLueymOWQiOWdlyl7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVtb3ZlQWRoZXNpdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsXHJcbiAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7ngrjlvLnlnZcpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RvcEJvb20oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgIFxyXG4gICAgICAgIGxldCB0aW1lID0gMC4zMztcclxuICAgICAgICAvLyB0aGlzLm5vZGUuekluZGV4ID0gMDtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKHRoaXMubm9kZS53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IodGhpcy5ub2RlLmhlaWdodCAvIDEyMCk7XHJcblxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwieGlhb2NodVwiLG51bGwpO1xyXG4gICAgICAgIH0sIDMwMCApO1xyXG4gICAgICAgIHRoaXMuc2V0VmlicmF0ZShcImxpZ2h0XCIsMylcclxuXHJcbiAgICAgICAgaWYoZGlyYWN0aW9uID09IDApe1xyXG4gICAgICAgICAgICB0aW1lID0gMC4zMypoZWlnaHQ7XHJcbiAgICAgICAgICAgIC8vIHRpbWUgPSAwLjk5O1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vZGUuY2hpbGRyZW4ubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuY2hpbGRyZW5baV0pXHJcbiAgICAgICAgICAgICAgICAudG8odGltZSx7eTp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueSArIHRoaXMubm9kZS5jaGlsZHJlblswXS5oZWlnaHR9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXJhY3Rpb24gPT0gMSl7XHJcbiAgICAgICAgICAgIHRpbWUgPSAwLjMzKmhlaWdodDtcclxuICAgICAgICAgICAgLy8gdGltZSA9IDAuOTlcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmNoaWxkcmVuW2ldKSBcclxuICAgICAgICAgICAgICAudG8odGltZSx7eTp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueSAtIHRoaXMubm9kZS5jaGlsZHJlblswXS5oZWlnaHR9KVxyXG4gICAgICAgICAgICAgIC5zdGFydCgpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gICBcclxuICAgICAgICBlbHNlIGlmKGRpcmFjdGlvbiA9PSAyKXtcclxuICAgICAgICAgICAgdGltZSA9IDAuMzMqd2lkdGg7XHJcbiAgICAgICAgICAgIC8vIHRpbWUgPSAwLjk5XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5jaGlsZHJlbltpXSkgXHJcbiAgICAgICAgICAgICAgICAudG8odGltZSx7eDp0aGlzLm5vZGUuY2hpbGRyZW5baV0ueCAtIHRoaXMubm9kZS5jaGlsZHJlblswXS53aWR0aH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmFjdGlvbiA9PSAzKXtcclxuICAgICAgICAgICAgdGltZSA9IDAuMzMqd2lkdGhcclxuICAgICAgICAgICAgLy8gdGltZSA9IDAuOTlcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmNoaWxkcmVuW2ldKSBcclxuICAgICAgICAgICAgICAgIC50byh0aW1lLHt4OnRoaXMubm9kZS5jaGlsZHJlbltpXS54ICsgdGhpcy5ub2RlLmNoaWxkcmVuWzBdLndpZHRofSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgbGV0IHRlbXBDb2xvciA9IHRoaXMuY29sb3I7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnVwRG9vcih0ZW1wQ29sb3IpOyBcclxuICAgICAgICAgICAgfSwgMjUwKTtcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5uZXh0TGV2ZWwoKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgIH0sIHRpbWUqMTAwMCk7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIHRvdWNoU3RhcnQoZXZlbnQpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciB8fCBNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZU92ZXIpIHJldHVybjtcclxuICAgICAgICAvLyDov5Tlm57kuJbnlYzlnZDmoIdcclxuICAgICAgICBsZXQgdG91Y2hMb2MgPSBldmVudC5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9hcGkvemgvY2xhc3Nlcy9JbnRlcnNlY3Rpb24uaHRtbCDmo4DmtYvovoXliqnnsbtcclxuICAgICAgICAvLyBsZXQgcG9zID0gdGhpcy5jb2xsaWRlci53b3JsZC5wb2ludHNcclxuXHJcbiAgICAgICAgaWYoIXRoaXMuY29sbGlkZXIud29ybGQpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWIpOaWreinpuaRuOeCueaYr+WQpuWcqOWkmui+ueW9ouWGhVxyXG4gICAgICAgIGlmIChjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblBvbHlnb24odG91Y2hMb2MsIHRoaXMuY29sbGlkZXIud29ybGQucG9pbnRzKSkge1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuaGFtbWVyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5oYW1tZXJNYXNrLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBpZih0aGlzLnR5cGUgIT0gQmxvY2tUeXBlLuS4iumUgeWdlyAmJiB0aGlzLnR5cGUgIT0gQmxvY2tUeXBlLuWGu+e7k+Wdlyl7XHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2Uuc3RhcnRVcGRhdGUoKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImhpdFwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IDIwMDtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudHlwZSA9PSA5KXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2NrX0luZm8ubm9kZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLnpJbmRleCA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaGl0LmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5kb3duRG9vcih0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcix0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMudHlwZSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5tb3ZlU3RhY2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCB0b3VjaFBvaW50ID0gZXZlbnQuZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMubm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIodG91Y2hQb2ludCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnRYID0gbG9jYWwueDtcclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hQb2ludFkgPSBsb2NhbC55O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlTGVmdCA9IHRoaXMubW92ZVJpZ2h0ID0gdGhpcy5tb3ZlVXAgPSB0aGlzLm1vdmVEb3duID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNUb3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVDb3JuZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbiA9IGNjLnYyKHRoaXMubm9kZS54LWxvY2FsLngsdGhpcy5ub2RlLnktbG9jYWwueSk7XHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlUmlzZUZhbGwodGhpcy5jb2xvcix0cnVlKTtcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5kb3duRG9vcih0aGlzLmNvbG9yLHRoaXMudHlwZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpYnJhdGUoXCJsaWdodFwiLDEpXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmhpdCkgdGhpcy5oaXQuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRvdWNoRW5kKGV2ZW50KXtcclxuICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZU92ZXIpIHJldHVybjtcclxuICAgICAgICBpZih0aGlzLmlzVG91Y2gpe1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoRGVsdGEgPSBjYy52MigwLCAwKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuY2hhbmdlUmlzZUZhbGwodGhpcy5jb2xvcixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImRvd25cIixudWxsKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnJlbW92ZU9uZUJsb2NrKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNUb3VjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuekluZGV4ID0gdGhpcy5sZXZlbDtcclxuICAgICAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudHlwZSA9PSA5KXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaXNUb3VjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnQgPSBldmVudC5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICBsZXQgbG9jYWwgPSBjYy52Mih0aGlzLm5vZGUueCAtIDUwLHRoaXMubm9kZS55ICsgNTAgKTtcclxuICAgICAgICAgICAgaWYodGhpcy50eXBlICE9IDEwKXtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0ZhbGwobG9jYWwpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2FsVGVtcCA9IGNjLnYyKHRoaXMuYmxvY2tfSW5mby5ub2RlLngtNTAsdGhpcy5ibG9ja19JbmZvLm5vZGUueSs1MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrRmFsbChsb2NhbFRlbXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm1vdmVMZWZ0ID0gdGhpcy5tb3ZlUmlnaHQgPSB0aGlzLm1vdmVVcCA9IHRoaXMubW92ZURvd24gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgdG91Y2hNb3ZlKGV2ZW50OiBjYy5FdmVudC5FdmVudFRvdWNoKSB7XHJcbiAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmdhbWVPdmVyKSByZXR1cm47XHJcbiAgICAgICAgLy8gY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIC8vIOWmguaenOi3neemu+S4iuasoeenu+WKqOaXtumXtOWwj+S6jumXtOmalOaXtumXtO+8jOebtOaOpei/lOWbnlxyXG4gICAgICAgIC8vIGlmIChjdXJyZW50VGltZSAtIHRoaXMubGFzdE1vdmVUaW1lIDwgdGhpcy5tb3ZlSW50ZXJ2YWwpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyB0aGlzLmxhc3RNb3ZlVGltZSA9IGN1cnJlbnRUaW1lO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1RvdWNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gZXZlbnQuZ2V0RGVsdGEoKTtcclxuICAgICAgICAgICAgY29uc3QgdG91Y2hQb2ludCA9IGV2ZW50LmdldExvY2F0aW9uKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsID0gdGhpcy5ub2RlLnBhcmVudC5jb252ZXJ0VG9Ob2RlU3BhY2VBUih0b3VjaFBvaW50KTtcclxuICAgICAgICAgICAgdGhpcy50b3VjaFBvaW50WCA9IGxvY2FsLng7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hQb2ludFkgPSBsb2NhbC55O1xyXG4gICAgICAgICAgICBkZWx0YS54ID0gdGhpcy50b3VjaFBvaW50WCAtIHRoaXMubm9kZS54ICsgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbi54O1xyXG4gICAgICAgICAgICBkZWx0YS55ID0gdGhpcy50b3VjaFBvaW50WSAtIHRoaXMubm9kZS55ICsgIHRoaXMucmVsYXRpdmVfUG9zaXRpb24ueTtcclxuXHJcbiAgICAgICAgICAgIC8vIOmZkOWItuenu+WKqOmAn+W6plxyXG4gICAgICAgICAgICB0aGlzLnRvdWNoUG9pbnRYID0gbG9jYWwueDtcclxuICAgICAgICAgICAgdGhpcy50b3VjaFBvaW50WSA9IGxvY2FsLnk7XHJcbiAgICAgICAgICAgIGRlbHRhLnggPSB0aGlzLnRvdWNoUG9pbnRYIC0gdGhpcy5ub2RlLnggKyB0aGlzLnJlbGF0aXZlX1Bvc2l0aW9uLng7XHJcbiAgICAgICAgICAgIGRlbHRhLnkgPSB0aGlzLnRvdWNoUG9pbnRZIC0gdGhpcy5ub2RlLnkgKyAgdGhpcy5yZWxhdGl2ZV9Qb3NpdGlvbi55O1xyXG5cclxuICAgICAgICAgICAgLy8g6ZmQ5Yi256e75Yqo6YCf5bqmXHJcbiAgICAgICAgICAgIGRlbHRhLnggPSBNYXRoLm1heCgtdGhpcy5tYXhTcGVlZCwgTWF0aC5taW4odGhpcy5tYXhTcGVlZCwgZGVsdGEueCkpO1xyXG4gICAgICAgICAgICBkZWx0YS55ID0gTWF0aC5tYXgoLXRoaXMubWF4U3BlZWQsIE1hdGgubWluKHRoaXMubWF4U3BlZWQsIGRlbHRhLnkpKTtcclxuXHJcbiAgICAgICAgICAgIC8vIOiusOW9leinpuaRuOenu+WKqOeahOWinumHj1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoRGVsdGEgPSBkZWx0YTsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v6LaF5Ye66ZmQ5Yi25Yik5patXHJcbiAgICBleGNlZWRzKHN0ZXB4LHN0ZXB5KXtcclxuICAgICBcclxuICAgIH1cclxuXHJcbiAgICBlbGltaW5hdGUoKXtcclxuICAgICAgICAvL+mUpOWtkOeKtuaAgea2iOWksVxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIC8v5aaC5p6c5pa55Z2X5piv5pyJ54m55q6K54q25oCB77yM5YiZ54m55q6K5aSE55CGXHJcbiAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7lhrvnu5PlnZcpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgyKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMudHlwZSA9PSBCbG9ja1R5cGUu5LiK6ZSB5Z2XKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5nZXRDb21wb25lbnQoXCJMb2NrXCIpLnJlZHVjZSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL+WmguaenOaWueWdl+WPr+S7pea2iOmZpFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5zcGVjaWFsX1RyZWF0bWVudCh0aGlzLm5vZGUpO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICB0aGlzLnJlbW92ZU1hcEJsb2NrKCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5ub2RlLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIGlmKHNlbGYudHlwZSA9PSBCbG9ja1R5cGUu5Y+g5Yqg5Z2X5LiLKXtcclxuICAgICAgICAgICAgICAgIGxldCBzY2FsZVggPSBzZWxmLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNjYWxlWSA9IHNlbGYubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgICAgICAgICBzZWxmLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5yZXN0b3JlTm9tYWwodGhpcy5wb3NYLHRoaXMucG9zWSx0cnVlKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHNlbGYuYmxvY2tfSW5mby5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMSx7cG9zaXRpb246cG9zLHNjYWxlWDpzY2FsZVg+MD8xOi0xLHNjYWxlWTpzY2FsZVk+MD8xOi0xfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoc2VsZi50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgc2VsZi5ibG9ja19JbmZvLm5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzdG9yZU5vbWFsKHNlbGYuYmxvY2tfSW5mby5ub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsXHJcbiAgICAgICAgICAgICAgICBzZWxmLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHNlbGYudHlwZSA9PSBCbG9ja1R5cGUu54K45by55Z2XKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdG9wQm9vbSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UubmV4dExldmVsKCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gICAgfVxyXG4gICAgIFxyXG4gICAgc2V0VmlicmF0ZSh0eXBlLCBjb3VudCl7XHJcbiAgICAgICAgLy8gcmV0dXJuO1xyXG4gICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4pe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNvdW50ID09IDEpe1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGltZSA9IDE1MDtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTw0OyBpKyspe1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgLy8g5Yik5pat5piv5ZCm5Zyo5b6u5L+h546v5aKDXHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZVNob3J0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRpbWUqaSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgc2V0TW92ZUNvcm5lcihkaXJhY3Rpb24pe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjbXVwZGF0ZSgpIHtcclxuICAgICAgICBsZXQgY206YW55ID0gY2MuZGlyZWN0b3IuZ2V0Q29sbGlzaW9uTWFuYWdlcigpOyAgICAgICAgXHJcbiAgICAgICAgY20udXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdG9yZU5vbWFsKHBvc1gscG9zWSx0eXBlKXtcclxuICAgICAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSW5mby5ub2RlID0gbnVsbDtcclxuICAgICAgICB0aGlzLm1vdmVTdGFjayA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBCbG9jaygpO1xyXG4gICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgIGxldCBqID0gMTAwMDtcclxuICAgICAgICBmb3IobGV0IGkgPTA7IGk8IHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltpXS5uYW1lID09IFwiTmV3IE5vZGVcIil7XHJcbiAgICAgICAgICAgICAgICBqID0gaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihpID4gail7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5baV0uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodHlwZSl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImxlZnRcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcInJpZ2h0XCIgfHwgdGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWUgPT0gXCJ0b3BcIiB8fCB0aGlzLm5vZGUuY2hpbGRyZW5baV0ubmFtZSA9PSBcImRvd25cIilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5baV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfU1RBUlQsIHRoaXMudG91Y2hTdGFydCwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX01PVkUsIHRoaXMudG91Y2hNb3ZlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfQ0FOQ0VMLCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGVbJ190b3VjaExpc3RlbmVyJ10uc2V0U3dhbGxvd1RvdWNoZXMoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaGl0ID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICB0aGlzLmhpdC5hZGRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICB0aGlzLmhpdC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInh6X1wiK3RoaXMuYmxvY2tfSW5mby5ibG9jaztcclxuICAgICAgICB0aGlzLmhpdC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMuaWNlX1Nwcml0ZUZyYW1lLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgdGhpcy5oaXQuc2V0QW5jaG9yUG9pbnQodGhpcy5ub2RlLmFuY2hvclgsdGhpcy5ub2RlLmFuY2hvclkpO1xyXG4gICAgICAgIHRoaXMuaGl0LnNldFBvc2l0aW9uKDEzLC0xMSk7XHJcbiAgICAgICAgaWYodGhpcy5oaXQuYW5jaG9yWCA9PSAwLjUpIHRoaXMuaGl0LnNldFBvc2l0aW9uKDAsLTExKTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuaGl0LmFuY2hvclggPT0gMC4zMykgdGhpcy5oaXQuc2V0UG9zaXRpb24oLTEzLC0xMSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmhpdC5hbmNob3JYID09IDAuNjYpIHRoaXMuaGl0LnNldFBvc2l0aW9uKDIsLTkpO1xyXG4gICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Ya757uT54q25oCB5oGi5aSN5Li65bi46KeE54q25oCBXHJcbiAgICByZXNldEZyZWV6ZSgpe1xyXG4gICAgICAgIHRoaXMudHlwZSA9IDA7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvLnR5cGUgPSAwO1xyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb2xvcitcImNvbG9yXCIrdGhpcy5ibG9ja19JbmZvLmJsb2NrO1xyXG4gICAgICAgIGxldCBudW1iZXIgPSBNYXRoLmZsb29yKCh0aGlzLmNvbG9yLTEpLzIpO1xyXG4gICAgICAgIGxldCBibG9ja1Nwcml0ZUZyYW1lID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yW251bWJlcl0uX3Nwcml0ZUZyYW1lcztcclxuICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSBibG9ja1Nwcml0ZUZyYW1lW25hbWVdO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0QmxvY2tzKCl7XHJcbiAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbXTtcclxuICAgICAgICBzd2l0Y2godGhpcy5ibG9ja19JbmZvLmJsb2NrKXtcclxuICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3NdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MxLHBvczJdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczMscG9zNF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczYgPSBjYy52MigtMSwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3ID0gY2MudjIoLTIsMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M1LHBvczYscG9zN107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczggPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczkgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczEwID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczgscG9zOSxwb3MxMF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczExID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxMiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczEzID0gY2MudjIoLTEsMSk7ICAgIFxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczE0ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczExLHBvczEyLHBvczEzLHBvczE0XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTUgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczE2ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MxNyA9IGNjLnYyKDAsMik7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTggPSBjYy52MigtMSwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczE1LHBvczE2LHBvczE3LHBvczE4XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMTkgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIwID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyMSA9IGNjLnYyKC0xLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIyID0gY2MudjIoLTIsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MxOSxwb3MyMCxwb3MyMSxwb3MyMl07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA4OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczIzID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MyNCA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczI1ID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjYgPSBjYy52MigtMSwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczIzLHBvczI0LHBvczI1LHBvczI2XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDk6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjcgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczI4ID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMjkgPSBjYy52MigtMiwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzMCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MyNyxwb3MyOCxwb3MyOSxwb3MzMF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMDpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzMSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMzIgPSBjYy52MigxLDIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczMzID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzNCA9IGNjLnYyKDAsMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MzMSxwb3MzMixwb3MzMyxwb3MzNF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzNSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zMzYgPSBjYy52MigyLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczM3ID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzOCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3MzNSxwb3MzNixwb3MzNyxwb3MzOF07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxMjpcclxuICAgICAgICAgICAgICAgIGxldCBwb3MzOSA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDAgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQxID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbcG9zMzkscG9zNDAscG9zNDEscG9zNDJdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTM6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDMgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQ0ID0gY2MudjIoLTEsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDUgPSBjYy52MigtMiwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0NiA9IGNjLnYyKC0yLDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxCbG9ja3MgPSBbcG9zNDMscG9zNDQscG9zNDUscG9zNDZdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTQ6XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNDcgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczQ4ID0gY2MudjIoMCwxKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M0OSA9IGNjLnYyKC0xLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUwID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczQ3LHBvczQ4LHBvczQ5LHBvczUwXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE1OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M1MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczUzID0gY2MudjIoLTIsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNTQgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczUxLHBvczUyLHBvczUzLHBvczU0XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE2OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU1ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M1NiA9IGNjLnYyKDEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNTcgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU4ID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczU1LHBvczU2LHBvczU3LHBvczU4XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE3OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczU5ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2MCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjEgPSBjYy52MigwLDIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczYyID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M1OSxwb3M2MCxwb3M2MSxwb3M2Ml07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxODpcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2MyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjQgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczY1ID0gY2MudjIoMCwyKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2NiA9IGNjLnYyKDEsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNjcgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczYzLHBvczY0LHBvczY1LHBvczY2LHBvczY3XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDE5OlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczY4ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M2OSA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzAgPSBjYy52MigtMSwwKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3BvczY4LHBvczY5LHBvczcwXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDIwOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczcxID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3MiA9IGNjLnYyKC0xLDApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczczID0gY2MudjIoLTEsMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbEJsb2NrcyA9IFtwb3M3MSxwb3M3Mixwb3M3M107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAyMTpcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3NCA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzUgPSBjYy52MigwLDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvczc2ID0gY2MudjIoMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3Bvczc0LHBvczc1LHBvczc2XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDIyOlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvczc3ID0gY2MudjIoMCwwKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3M3OCA9IGNjLnYyKDAsMSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zNzkgPSBjYy52MigtMSwxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQmxvY2tzID0gW3Bvczc3LHBvczc4LHBvczc5XTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TWFwQmxvY2soKXtcclxuICAgICAgICBpZih0aGlzLmFsbEJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5hbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuYWxsQmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IHggPSB0aGlzLnBvc1ggKyBwb3MueDtcclxuICAgICAgICAgICAgICAgIGxldCB5ID0gdGhpcy5wb3NZICsgcG9zLnk7IFxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgPSB0aGlzLm5vZGUudXVpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVNYXBCbG9jaygpe1xyXG4gICAgICAgIGlmKHRoaXMucG9zWCA9PSAwICYmIHRoaXMucG9zWSA9PSAwKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmFsbEJsb2Nrcyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYWxsQmxvY2tzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5hbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYWxsQmxvY2tzW2ldKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuYWxsQmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeCA9IHRoaXMucG9zWCArIHBvcy54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeSA9IHRoaXMucG9zWSArIHBvcy55OyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbeF1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy/lj6DliqDlnZfvvIzkvY3nva7lt67lvILvvIzmoKHlh4bkvY3nva5cclxuICAgIGdldFN0YWNraW5nUG9zKCl7XHJcbiAgICAgICAgc3dpdGNoKHRoaXMubm9kZS5uYW1lKXtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMSwyMik7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMzYsMjMpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2syXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE4LDQwKTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrM1wiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC01OSwyNSk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTksNTcpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2s1XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTM2LDM4KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrNlwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xOSw5Nyk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazdcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTksNjEpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2s4XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTU1LDI0KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrOVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazEwXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE3LDk2KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTcsNTgpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxMlwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0yMCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazEzXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTkyLDI1KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTgsNjApO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxNVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC01OCwyNCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazE2XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTIwLDYwKTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMTdcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtMTcsNjApO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2sxOFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xNyw2MCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazE5XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTIwLDI0KTtcclxuICAgICAgICAgICAgY2FzZSBcImJsb2NrMjBcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYy52MigtNTQsMjUpO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmxvY2syMVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNjLnYyKC0xNyw2MCk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJibG9jazIyXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2MudjIoLTE3LDYwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNUb3VjaCAmJiB0aGlzLnRvdWNoRGVsdGEubWFnKCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMubW92ZUxlZnQgPSB0aGlzLm1vdmVSaWdodCA9IHRoaXMubW92ZVVwID0gdGhpcy5tb3ZlRG93biA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMudG91Y2hEZWx0YTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ggPSB0aGlzLm5vZGUueCArIGRlbHRhLng7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdZID0gdGhpcy5ub2RlLnkgKyBkZWx0YS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoTWF0aC5wb3cobmV3WCAtIHRoaXMubm9kZS54LCAyKSArIE1hdGgucG93KG5ld1kgLSB0aGlzLm5vZGUueSwgMikpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1hZyA9IE1hdGgucm91bmQoZGVsdGEubWFnKCkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVkgPT09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvdWNoUG9pbnRZIDw9IHRoaXMubm9kZS55ICsgdGhpcy5ub2RlLmhlaWdodC8yKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmKHRoaXMubW92ZVkgPT09IC0xKXtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b3VjaFBvaW50WSA+PSB0aGlzLm5vZGUueSArIHRoaXMubm9kZS5oZWlnaHQvMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVYID09PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b3VjaFBvaW50WCA8PSB0aGlzLm5vZGUueCAtIHRoaXMubm9kZS53aWR0aC8yKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZih0aGlzLm1vdmVYID09PSAtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG91Y2hQb2ludFggPj0gdGhpcy5ub2RlLnggLSB0aGlzLm5vZGUud2lkdGgvMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBtYWcgPSAxMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGVlZFNjYWxlID0gMC41OyBcclxuICAgICAgICAgICAgICAgICAgICBkZWx0YS54ICo9IHNwZWVkU2NhbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsdGEueSAqPSBzcGVlZFNjYWxlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWFnID4gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWcgPSBNYXRoLmZsb29yKG1hZyAvIDUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBtYWcgPSAyO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcHggPSBkZWx0YS54IC8gbWFnO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcHkgPSBkZWx0YS55IC8gbWFnO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYWc7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVDb3JuZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBYID0gdGhpcy5ub2RlLnggKyBzdGVweDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wWSA9IHRoaXMubm9kZS55ICsgc3RlcHk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jaGVja0NvbGxpc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnR5cGUgIT09IDggJiYgdGhpcy50eXBlICE9PSAxMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IE1hdGgucm91bmQodGVtcFgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnR5cGUgIT09IDcgJiYgdGhpcy50eXBlICE9PSAxMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9ICBNYXRoLnJvdW5kKHRlbXBZKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1hNYWluID0gTWF0aC5hYnMoc3RlcHgpID4gTWF0aC5hYnMoc3RlcHkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNYTWFpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZS54ID4gdGVtcFgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlTGVmdCAmJiB0aGlzLm1vdmVYID09PSAwICYmIHRoaXMudHlwZSAhPT0gOCAmJiB0aGlzLnR5cGUgIT09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGVtcFg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVggIT09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVYID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS54IDw9IHRlbXBYKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW92ZVJpZ2h0ICYmIHRoaXMubW92ZVggPT09IDAgJiYgdGhpcy50eXBlICE9PSA4ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSB0ZW1wWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWCAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub2RlLnkgPiB0ZW1wWSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vdmVEb3duICYmIHRoaXMubW92ZVkgPT09IDAgJiYgdGhpcy50eXBlICE9PSA3ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSB0ZW1wWTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWSAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlLnkgPD0gdGVtcFkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlVXAgJiYgdGhpcy5tb3ZlWSA9PT0gMCAmJiB0aGlzLnR5cGUgIT09IDcgJiYgdGhpcy50eXBlICE9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9IHRlbXBZO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVZICE9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZS55ID4gdGVtcFkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlRG93biAmJiB0aGlzLm1vdmVZID09PSAwICYmIHRoaXMudHlwZSAhPT0gNyAmJiB0aGlzLnR5cGUgIT09IDEwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGVtcFk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZVkgIT09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVZID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS55IDw9IHRlbXBZKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW92ZVVwICYmIHRoaXMubW92ZVkgPT09IDAgJiYgdGhpcy50eXBlICE9PSA3ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSB0ZW1wWTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWSAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub2RlLnggPiB0ZW1wWCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vdmVMZWZ0ICYmIHRoaXMubW92ZVggPT09IDAgJiYgdGhpcy50eXBlICE9PSA4ICYmIHRoaXMudHlwZSAhPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSB0ZW1wWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlWCAhPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlLnggPD0gdGVtcFgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3ZlUmlnaHQgJiYgdGhpcy5tb3ZlWCA9PT0gMCAmJiB0aGlzLnR5cGUgIT09IDggJiYgdGhpcy50eXBlICE9PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IHRlbXBYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVYICE9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlWCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgTFFDb2xsaWRlU3lzdGVtLnVwZGF0ZV9sb2dpYyhkdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyDnp7vliqjlrozmiJDlkI7ph43nva7op6bmkbjlop7ph49cclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hEZWx0YSA9IGNjLnYyKDAsIDApOyBcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLnR5cGUgPT0gQmxvY2tUeXBlLuWPoOWKoOWdl+S4iiAmJiB0aGlzLm1vdmVTdGFjayA9PSB0cnVlKXtcclxuICAgICAgICAgICAgaWYodGhpcy5zdGFja2luZy54ICE9IDAgfHwgdGhpcy5zdGFja2luZy55IT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IHRoaXMuYmxvY2tfSW5mby5ub2RlLnggKyB0aGlzLnN0YWNraW5nLng7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueSA9IHRoaXMuYmxvY2tfSW5mby5ub2RlLnkgKyB0aGlzLnN0YWNraW5nLnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja19JbmZvLm5vZGUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy50eXBlID09IEJsb2NrVHlwZS7nspjlkIjlnZcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmFkaGVzaXZlLnggIT0wICYmIHRoaXMuYWRoZXNpdmUueSE9MCAmJiB0aGlzLmJsb2NrX0luZm8ubm9kZSE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueSA9IHRoaXMubm9kZS55IC0gdGhpcy5hZGhlc2l2ZS55O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaXNUb3VjaCA9PSAgdHJ1ZSAmJiB0aGlzLmJsb2NrX0luZm8ubm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pc1RvdWNoID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExRQ29sbGlkZVN5c3RlbS51cGRhdGVfbG9naWMoZHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueCA9IHRoaXMubm9kZS54IC0gdGhpcy5hZGhlc2l2ZS54O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja19JbmZvLm5vZGUueSA9IHRoaXMubm9kZS55IC0gdGhpcy5hZGhlc2l2ZS55O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/prop/Star.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'd773dbWW6tAz6F+Z0L3IXUx', 'Star');
+// Script/prop/Star.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Map_1 = require("../Map");
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var Star = /** @class */ (function (_super) {
+ __extends(Star, _super);
+ function Star() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 60;
+ // mapInfo: number[][] = [];
+ _this.star_SpriteFrame = null;
+ return _this;
+ // update (dt) {}
+ }
+ Star.prototype.onLoad = function () {
+ };
+ Star.prototype.start = function () {
+ };
+ Star.prototype.init = function (time) {
+ if (time)
+ this.time = time;
+ this.node.getChildByName("time").active = true;
+ this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ this.schedule(this.updateTime, 1);
+ };
+ Star.prototype.updateTime = function () {
+ this.time--;
+ this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString();
+ if (this.time <= 0) {
+ this.unschedule(this.updateTime);
+ this.node.destroy();
+ Map_1.default._instance.failLevel();
+ // this.node.destroy();
+ }
+ };
+ __decorate([
+ property(cc.SpriteAtlas)
+ ], Star.prototype, "star_SpriteFrame", void 0);
+ Star = __decorate([
+ ccclass
+ ], Star);
+ return Star;
+}(cc.Component));
+exports.default = Star;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxTdGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUUzQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQW1DQztRQWpDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLDRCQUE0QjtRQUU1QixzQkFBZ0IsR0FBbUIsSUFBSSxDQUFDOztRQTRCeEMsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcscUJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxvQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELG1CQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBMUJEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7a0RBQ2U7SUFOdkIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQW1DeEI7SUFBRCxXQUFDO0NBbkNELEFBbUNDLENBbkNpQyxFQUFFLENBQUMsU0FBUyxHQW1DN0M7a0JBbkNvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGFyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIHN0YXJfU3ByaXRlRnJhbWU6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgIH0gXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQodGltZSl7XHJcbiAgICAgICAgaWYodGltZSkgdGhpcy50aW1lID0gdGltZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHVwZGF0ZVRpbWUoKXtcclxuICAgICAgICB0aGlzLnRpbWUgLS07XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMudGltZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmKHRoaXMudGltZSA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/Window.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '3bad2uyOw5MzLq3b5g9aHn2', 'Window');
+// Script/Window.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var NewClass = /** @class */ (function (_super) {
+ __extends(NewClass, _super);
+ function NewClass() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ // LIFE-CYCLE CALLBACKS:
+ NewClass.prototype.onLoad = function () {
+ this.can_Touch = false;
+ };
+ NewClass.prototype.start = function () {
+ };
+ NewClass.prototype.init = function (data) {
+ var _this = this;
+ this.can_Touch = false;
+ this.node.getChildByName("win").active = false;
+ this.node.getChildByName("lose").active = false;
+ this.node.getChildByName("finishi").active = false;
+ this.node.getChildByName(data.result).active = true;
+ if (data.result == "lose") {
+ this.setErrLabel(data.code);
+ }
+ var target = this.node.getChildByName(data.result);
+ target.getChildByName("btn").active = false;
+ target.opacity = 0;
+ target.scale = 2;
+ target.getChildByName("tip").opacity = 0;
+ if (data.result == "win") {
+ var lianXi = false;
+ if (cc.fx.GameConfig.GM_INFO.level == 2)
+ lianXi = true;
+ target.getChildByName("yes").active = !lianXi;
+ target.getChildByName("start").active = lianXi;
+ }
+ cc.tween(target)
+ .delay(0.1)
+ .to(0.25, { opacity: 255, scale: 1 })
+ .delay(0.3)
+ .call(function () {
+ if (target.name == "lose") {
+ cc.tween(target.getChildByName("tip"))
+ .to(0.5, { opacity: 255 })
+ .delay(0.5)
+ .call(function () {
+ _this.can_Touch = true;
+ target.getChildByName("btn").active = true;
+ })
+ .start();
+ }
+ else {
+ _this.can_Touch = true;
+ target.getChildByName("btn").active = true;
+ }
+ })
+ .start();
+ };
+ NewClass.prototype.setErrLabel = function (code) {
+ var tip = this.node.getChildByName("lose").getChildByName("tip").getComponent(cc.Label);
+ tip.string = cc.fx.GameConfig.TIP_ERR[code];
+ };
+ NewClass.prototype.click_Next = function () {
+ var _this = this;
+ if (!this.can_Touch) {
+ return;
+ }
+ this.can_Touch = false;
+ cc.tween(this.node)
+ .to(0.3, { opacity: 0 })
+ .call(function () {
+ _this.node.active = false;
+ cc.director.loadScene("GameScene");
+ })
+ .start();
+ };
+ NewClass = __decorate([
+ ccclass
+ ], NewClass);
+ return NewClass;
+}(cc.Component));
+exports.default = NewClass;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXaW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7O0lBMkVBLENBQUM7SUF4RUcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUFULGlCQXdDQztRQXZDRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FB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Q0FBQztJQUNiLENBQUM7SUF4RWdCLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyRTVCO0lBQUQsZUFBQztDQTNFRCxBQTJFQyxDQTNFcUMsRUFBRSxDQUFDLFNBQVMsR0EyRWpEO2tCQTNFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgY2FuX1RvdWNoOiBib29sZWFuO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5jYW5fVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ3aW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9zZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmaW5pc2hpXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZihkYXRhLnJlc3VsdCA9PSBcImxvc2VcIil7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyTGFiZWwoZGF0YS5jb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRhcmdldC5vcGFjaXR5ID0gMDsgdGFyZ2V0LnNjYWxlID0gMjt0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYoZGF0YS5yZXN1bHQgPT0gXCJ3aW5cIil7XHJcbiAgICAgICAgICAgIHZhciBsaWFuWGkgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDIpIGxpYW5YaSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSAhbGlhblhpO1xyXG4gICAgICAgICAgICB0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydFwiKS5hY3RpdmUgPSBsaWFuWGk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLnR3ZWVuKHRhcmdldClcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NSxzY2FsZToxfSlcclxuICAgICAgICAuZGVsYXkoMC4zKVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5uYW1lID09IFwibG9zZVwiKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKSlcclxuICAgICAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbl9Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiYnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuX1RvdWNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyTGFiZWwoY29kZSl7XHJcbiAgICAgICAgdmFyIHRpcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXBcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aXAuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5USVBfRVJSW2NvZGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrX05leHQoKXtcclxuICAgICAgICBpZighdGhpcy5jYW5fVG91Y2gpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuX1RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgIC50bygwLjMse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -13551,620 +14454,6 @@ cc._RF.pop();
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBRXRCLElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN0QixtREFBSSxDQUFBO0lBQUUscURBQUssQ0FBQTtJQUFFLHFEQUFLLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBRXpCO0FBRUQsSUFBWSxxQkFFWDtBQUZELFdBQVkscUJBQXFCO0lBQzdCLGlFQUFJLENBQUE7SUFBRSxtRUFBSyxDQUFBO0lBQUUsK0RBQUcsQ0FBQTtBQUNwQixDQUFDLEVBRlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFFaEM7QUFFRCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDdEIsbURBQVEsQ0FBQTtJQUFFLHVEQUFNLENBQUE7SUFBRSx5REFBTyxDQUFBO0FBQzdCLENBQUMsRUFGVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUV6QjtBQUVELElBQVksa0JBRVg7QUFGRCxXQUFZLGtCQUFrQjtJQUMxQiwrREFBTSxDQUFBO0lBQUUsMkRBQUksQ0FBQTtJQUFFLDJEQUFJLENBQUE7QUFDdEIsQ0FBQyxFQUZXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBRTdCO0FBRUQsSUFBWSxlQUVYO0FBRkQsV0FBWSxlQUFlO0lBQ3ZCLHFEQUFJLENBQUE7SUFBRSxxREFBSSxDQUFBO0FBQ2QsQ0FBQyxFQUZXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBRTFCO0FBRUQsSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLDZCQUFpQixDQUFBO0lBQUUsK0JBQW1CLENBQUE7SUFBRSw2QkFBaUIsQ0FBQTtJQUN6RCwrQkFBbUIsQ0FBQTtJQUFFLG1D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O0lBQUUsaURBQUksQ0FBQTtBQUN0QyxDQUFDLEVBRlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFFeEI7QUFFRDtJQUFBO0lBRUEsQ0FBQztJQURpQixnQkFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdkMsY0FBQztDQUZELEFBRUMsSUFBQTtBQUZZLDBCQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZlYzIgPSBjYy5WZWMyO1xyXG5cclxuZXhwb3J0IGVudW0gTFFSZWNvcmRTdGF0dXMge1xyXG4gICAgSWRsZSwgU3RhcnQsIFBhdXNlXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQnVsbGV0RW1pdHRlclN0YXR1cyB7XHJcbiAgICBJZGxlLCBTdGFydCwgRW5kXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ29sbGlkZVNoYXBlIHtcclxuICAgIFJlY3QgPSAxLCBDaXJjbGUsIFBvbHlnb25cclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFGb2xsb3dUYXJnZXRNb2RlIHtcclxuICAgIEFsd2F5cywgT25jZSwgUGFzc1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNvbGxpZGVTdGF0dXMge1xyXG4gICAgSWRsZSwgTGl2ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUVhc2luZyB7XHJcbiAgICBCYWNrSW4gPSAnYmFja0luJywgQmFja091dCA9ICdiYWNrT3V0JywgcXVhZEluID0gJ3F1YWRJbicsXHJcbiAgICBxdWFkT3V0ID0gJ3F1YWRPdXQnLCBxdWFkSW5PdXQgPSAncXVhZEluT3V0JywgY3ViaWNJbiA9ICdjdWJpY0luJywgZXhwb091dCA9ICdleHBvT3V0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBSZXF1ZXN0VHlwZSB7XHJcbiAgICBHZXQgPSAnZ2V0JywgUG9zdCA9ICdwb3N0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUh0dHBEYXRhVHlwZSB7XHJcbiAgICBUZXh0LCBCaW5hcnlcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFQbGF0Zm9ybVR5cGUge1xyXG4gICAgdW5rbm93biA9ICfmnKrnn6XlubPlj7AnLCBhbGwgPSAn5YWo5bmz5Y+wJywgd3ggPSAn5b6u5L+hJywgdHQgPSAn5a2X6IqC6Lez5YqoJywgb3BwbyA9ICdvcHBvJywgdml2byA9ICd2aXZvJywgcXEgPSAncXEnLCBiYWlkdSA9ICfnmb7luqYnLCBrd2FpZ2FtZSA9ICflv6vmiYsnLCBhbmRyb2lkID0gJ+WuieWNkycsIGlvcyA9ICfoi7nmnpwnLCBicm93c2VyID0gJ+a1j+iniOWZqCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFCeXRlRGFuY2VUeXBlIHtcclxuICAgIHR0ID0gJ+WktOadoScsIHR0X2xpdGUgPSAn5aS05p2h5p6B6YCf54mIJywgZG91eWluID0gJ+aKlumfsycsIGRvdXlpbl9saXRlID0gJ+aKlumfs+aegemAn+eJiCcsIHBweCA9ICfnmq7nmq7omb4nLCBkZXZ0b29scyA9ICflrZfoioLlvIDlj5Hlt6XlhbcnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQW5hbHlzaXNUYWcge1xyXG4gICAgVmlkZW9Db21wbGV0ZSA9ICd2aWRlb19jb21wbGV0ZScsIFZpZGVvQmVnaW4gPSAndmlkZW9fYmVnaW4nLCBWaWRlb0ludGVycnVwdCA9ICd2aWRlb19pbnRlcnJ1cHQnLCBJbnRlcnN0aXRpYWxTaG93ID0gJ2ludGVyc3RpdGlhbF9zaG93JywgQmFubmVyU2hvdyA9ICdiYW5uZXJfc2hvdycsIEV4cG9ydFNob3cgPSAnZXhwb3J0X3Nob3cnLCBOYXRpdmVTaG93ID0gJ25hdGl2ZV9zaG93JywgTmF0aXZlQ2xpY2sgPSAnbmF0aXZlX3Nob3cnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExRQ2FsbEJhc2Uge1xyXG4gICAgSW5pdFNkaywgS2VlcFNjcmVlbk9uLCBWaWJyYXRlLCBHZXRWZXJzaW9uQ29kZSwgR2V0VmVyc2lvbk5hbWUsIE9wZW5VcmwsIERlbGV0ZURpciwgRGVsZXRlRmlsZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUUNhbGxBZCB7XHJcbiAgICBTaG93QmFubmVyLCBIaWRlQmFubmVyLCBTaG93VmlkZW8sIFNob3dJbnRlcnN0aXRpYWwsIFNob3dOYXRpdmUsIENhY2hlQWRcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFBZEVyclN0ciB7XHJcbiAgICBVbnN1cHBvcnRlZCA9ICfkuI3mlK/mjIEnLCBOb1BhcmFtZXRlcnMgPSAn5rKh5pyJ6YWN572u5Y+C5pWwJywgTm9BRCA9ICfmmoLml6Dlub/lkYonLCBWZXJzaW9uT2xkID0gJ+eJiOacrOi/h+S9jicsIFZpZGVvSW50ZXJydXB0ID0gJ+S4reaWreaSreaUvicsIEluc3RhbmNlRXJyID0gJ+WunuS+i+S4uuepuicsIEFscmVhZHlFeGlzdCA9ICflt7Lnu4/lrZjlnKgnLCBJbnRlcnZhbFRvb1Nob3J0ID0gJ+mXtOmalOWkquefrSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTFFMZXZlbFN0YXR1cyB7XHJcbiAgICBCZWdpbiwgRmFpbGVkLCBDb21wbGV0ZVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMUU9wZXJhdGVUeXBlIHtcclxuICAgIENsaWNrTm9kZSwgQ2xpY2tTY3JlZW4sIE1vdmUsIE51bGxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRQ29uc3Qge1xyXG4gICAgcHVibGljIHN0YXRpYyBWRUNfWkVSTyA9IFZlYzIuWkVSTztcclxufVxyXG5cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_platform_util.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '35875T0lsRL3rzhNkUdX4/G', 'lq_platform_util');
-// Script/lq_base/util/lq_platform_util.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQPlatformUtil = void 0;
-var lq_const_1 = require("../data/lq_const");
-var LQPlatformUtil = /** @class */ (function () {
- function LQPlatformUtil() {
- }
- LQPlatformUtil.init = function () {
- if (typeof qq !== 'undefined') {
- this.platform_type = lq_const_1.LQPlatformType.qq;
- }
- else if (typeof swan !== 'undefined') {
- this.platform_type = lq_const_1.LQPlatformType.baidu;
- }
- else if (typeof tt !== 'undefined') {
- this.platform_type = lq_const_1.LQPlatformType.tt;
- var info = tt.getSystemInfoSync();
- switch (info.appName) {
- case 'Toutiao':
- this.byte_dance_type = lq_const_1.LQByteDanceType.tt;
- break;
- case 'news_article_lite':
- this.byte_dance_type = lq_const_1.LQByteDanceType.tt_lite;
- break;
- case 'Douyin':
- this.byte_dance_type = lq_const_1.LQByteDanceType.douyin;
- break;
- case 'douyin_lite':
- this.byte_dance_type = lq_const_1.LQByteDanceType.douyin_lite;
- break;
- case 'PPX':
- this.byte_dance_type = lq_const_1.LQByteDanceType.ppx;
- break;
- case 'devtools':
- this.byte_dance_type = lq_const_1.LQByteDanceType.devtools;
- break;
- }
- }
- else if (typeof qg !== 'undefined') {
- if (!!qg.getBattle) {
- this.platform_type = lq_const_1.LQPlatformType.oppo;
- }
- else {
- this.platform_type = lq_const_1.LQPlatformType.vivo;
- }
- }
- else if (typeof wx !== 'undefined') {
- this.platform_type = lq_const_1.LQPlatformType.wx;
- }
- else if (typeof jsb !== 'undefined') {
- if (cc.sys.os === cc.sys.OS_ANDROID) {
- this.platform_type = lq_const_1.LQPlatformType.android;
- }
- else if (cc.sys.os === cc.sys.OS_IOS) {
- this.platform_type = lq_const_1.LQPlatformType.ios;
- }
- else {
- this.platform_type = lq_const_1.LQPlatformType.unknown;
- }
- }
- else if (cc.sys.isBrowser) {
- this.platform_type = lq_const_1.LQPlatformType.browser;
- }
- };
- LQPlatformUtil.get_platform = function () {
- return this.platform_type;
- };
- LQPlatformUtil.get_byte_dance = function () {
- return this.byte_dance_type;
- };
- LQPlatformUtil.is_wx = function () {
- return this.platform_type === lq_const_1.LQPlatformType.wx;
- };
- LQPlatformUtil.is_tt = function () {
- return this.platform_type === lq_const_1.LQPlatformType.tt;
- };
- LQPlatformUtil.is_oppo = function () {
- return this.platform_type === lq_const_1.LQPlatformType.oppo;
- };
- LQPlatformUtil.is_vivo = function () {
- return this.platform_type === lq_const_1.LQPlatformType.vivo;
- };
- LQPlatformUtil.is_ov = function () {
- return this.platform_type === lq_const_1.LQPlatformType.oppo || this.platform_type === lq_const_1.LQPlatformType.vivo;
- };
- LQPlatformUtil.is_browser = function () {
- return this.platform_type === lq_const_1.LQPlatformType.browser;
- };
- LQPlatformUtil.is_android = function () {
- return this.platform_type === lq_const_1.LQPlatformType.android;
- };
- LQPlatformUtil.is_ios = function () {
- return this.platform_type === lq_const_1.LQPlatformType.ios;
- };
- LQPlatformUtil.is_native = function () {
- return this.platform_type === lq_const_1.LQPlatformType.android || this.platform_type === lq_const_1.LQPlatformType.ios;
- };
- LQPlatformUtil.is_qq = function () {
- return this.platform_type === lq_const_1.LQPlatformType.qq;
- };
- LQPlatformUtil.is_baidu = function () {
- return this.platform_type === lq_const_1.LQPlatformType.baidu;
- };
- LQPlatformUtil.is_kwaigame = function () {
- return this.platform_type === lq_const_1.LQPlatformType.kwaigame;
- };
- return LQPlatformUtil;
-}());
-exports.LQPlatformUtil = LQPlatformUtil;
-LQPlatformUtil.init();
-if (LQPlatformUtil.is_tt()) {
- // console.log('---------当前平台:' + LQPlatformUtil.get_byte_dance());
-}
-else {
- // console.log('---------当前平台:' + LQPlatformUtil.get_platform());
-}
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wbGF0Zm9ybV91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRTtBQUVqRTtJQUFBO0lBNEdBLENBQUM7SUF4R2lCLG1CQUFJLEdBQWxCO1FBQ0ksSUFBSSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBYyxDQUFDLEVBQUUsQ0FBQztTQUMxQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcseUJBQWMsQ0FBQyxLQUFLLENBQUM7U0FDN0M7YUFBTSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLHlCQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsS0FBSyxTQUFTO29CQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU07Z0JBQ1YsS0FBSyxtQkFBbUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxPQUFPLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1YsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxNQUFNLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1YsS0FBSyxhQUFhO29CQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxXQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBQ1YsS0FBSyxLQUFLO29CQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxHQUFHLENBQUM7b0JBQzNDLE1BQU07Z0JBQ1YsS0FBSyxV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dUJBQVEsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUsseUJBQWMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVhLDBCQUFXLEdBQXpCO1FBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsUUFBUSxDQUFDO0lBQzFELENBQUM7SUFDTCxxQkFBQztBQUFELENBNUdBLEFBNEdDLElBQUE7QUE1R1ksd0NBQWM7QUE4RzNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUN4QixtRUFBbUU7Q0FDdEU7S0FBTTtJQUNILGlFQUFpRTtDQUNwRSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TFFCeXRlRGFuY2VUeXBlLCBMUVBsYXRmb3JtVHlwZX0gZnJvbSBcIi4uL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBsYXRmb3JtVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBwbGF0Zm9ybV90eXBlOiBMUVBsYXRmb3JtVHlwZTtcclxuICAgIHByaXZhdGUgc3RhdGljIGJ5dGVfZGFuY2VfdHlwZTogTFFCeXRlRGFuY2VUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW5pdCgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHFxICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5xcTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2FuICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0dCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0dC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGluZm8uYXBwTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnVG91dGlhbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICduZXdzX2FydGljbGVfbGl0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHRfbGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvdXlpbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZG91eWluO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZG91eWluX2xpdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnl0ZV9kYW5jZV90eXBlID0gTFFCeXRlRGFuY2VUeXBlLmRvdXlpbl9saXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnUFBYJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ5dGVfZGFuY2VfdHlwZSA9IExRQnl0ZURhbmNlVHlwZS5wcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZXZ0b29scyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZGV2dG9vbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBxZyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgaWYgKCEhcWcuZ2V0QmF0dGxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5vcHBvO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS53eDtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc2IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmIChjYy5zeXMub3MgPT09IGNjLnN5cy5PU19BTkRST0lEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNjLnN5cy5vcyA9PT0gY2Muc3lzLk9TX0lPUykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudW5rbm93bjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9wbGF0Zm9ybSgpOiBMUVBsYXRmb3JtVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ieXRlX2RhbmNlKCk6IExRQnl0ZURhbmNlVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnl0ZV9kYW5jZV90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfd3goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUud3g7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS50dDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX29wcG8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUub3BwbztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX3Zpdm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX292KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLm9wcG8gfHwgdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS52aXZvO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYnJvd3NlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYW5kcm9pZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfaW9zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmlvcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX25hdGl2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkIHx8IHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfcXEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUucXE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc19iYWlkdSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX2t3YWlnYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmt3YWlnYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5MUVBsYXRmb3JtVXRpbC5pbml0KCk7XHJcbmlmIChMUVBsYXRmb3JtVXRpbC5pc190dCgpKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnLS0tLS0tLS0t5b2T5YmN5bmz5Y+wOicgKyBMUVBsYXRmb3JtVXRpbC5nZXRfYnl0ZV9kYW5jZSgpKTtcclxufSBlbHNlIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCctLS0tLS0tLS3lvZPliY3lubPlj7A6JyArIExRUGxhdGZvcm1VdGlsLmdldF9wbGF0Zm9ybSgpKTtcclxufVxyXG4iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/MapBlock.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '52958xsurVAp54WMo+xFDo6', 'MapBlock');
-// Script/MapBlock.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var NewClass = /** @class */ (function (_super) {
- __extends(NewClass, _super);
- function NewClass() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.label = null;
- _this.block_Id = '';
- // LIFE-CYCLE CALLBACKS:
- _this.posX = 0; //地图块的X坐标
- _this.posY = 0; //地图块的Y坐标
- _this.direction = ""; //地图块的方向
- return _this;
- // update (dt) {}
- }
- // onLoad () {}
- NewClass.prototype.start = function () {
- this.direction = "";
- this.block_Id = "";
- // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction;
- };
- NewClass.prototype.setDiraction = function (direction) {
- this.direction = direction;
- // this.node.getChildByName("num").getComponent(cc.Label).string = this.direction;
- };
- NewClass.prototype.init = function (posX, posY) {
- this.posX = posX;
- this.posY = posY;
- };
- __decorate([
- property(cc.Label)
- ], NewClass.prototype, "label", void 0);
- __decorate([
- property
- ], NewClass.prototype, "block_Id", void 0);
- NewClass = __decorate([
- ccclass
- ], NewClass);
- return NewClass;
-}(cc.Component));
-exports.default = NewClass;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxNYXBCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQWdDQztRQTdCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsd0JBQXdCO1FBRXhCLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLFVBQUksR0FBVyxDQUFDLENBQUMsQ0FBZSxTQUFTO1FBQ3pDLGVBQVMsR0FBVyxFQUFFLENBQUMsQ0FBVSxRQUFROztRQW1CekMsaUJBQWlCO0lBQ3JCLENBQUM7SUFuQkcsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrRkFBa0Y7SUFDdEYsQ0FBQztJQUVELCtCQUFZLEdBQVosVUFBYSxTQUFTO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLGtGQUFrRjtJQUN0RixDQUFDO0lBRUQsdUJBQUksR0FBSixVQUFLLElBQUksRUFBQyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQTFCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYTtJQU5MLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FnQzVCO0lBQUQsZUFBQztDQWhDRCxBQWdDQyxDQWhDcUMsRUFBRSxDQUFDLFNBQVMsR0FnQ2pEO2tCQWhDb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBibG9ja19JZDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBkaXJlY3Rpb246IHN0cmluZyA9IFwiXCI7ICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qE5pa55ZCRXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYmxvY2tfSWQgPSBcIlwiO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpcmFjdGlvbihkaXJlY3Rpb24pe1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uOyAgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQocG9zWCxwb3NZKXtcclxuICAgICAgICB0aGlzLnBvc1ggPSBwb3NYO1xyXG4gICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_math_util.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '997fc58y39OFLflh6T58fZD', 'lq_math_util');
-// Script/lq_base/util/lq_math_util.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQMathUtil = void 0;
-var LQMathUtil = /** @class */ (function () {
- function LQMathUtil() {
- }
- LQMathUtil.random = function (min, max) {
- if (min === max) {
- return min;
- }
- else if (min < max) {
- return Math.random() * (max - min) + min;
- }
- else {
- return Math.random() * (min - max) + max;
- }
- };
- LQMathUtil.random_int = function (min, max) {
- return Math.floor(this.random(min, max));
- };
- LQMathUtil.get_radians = function (pos, target_pos) {
- var r = Math.atan2(target_pos.y - pos.y, target_pos.x - pos.x);
- return r > 0 ? r : r + 6.28;
- };
- LQMathUtil.intersects_rect = function (r1, r2) {
- return Math.abs(r1.x - r2.x) < r1.half_width + r2.half_width && Math.abs(r1.y - r2.y) < r1.half_height + r2.half_height;
- };
- LQMathUtil.intersects_point_rect = function (p, r) {
- return (p.x > r.x - r.width * 0.5) && (p.x < r.x + r.width * 0.5) && (p.y > r.y - r.height * 0.5) && (p.y < r.y + r.height * 0.5);
- };
- LQMathUtil.intersects_point_circle = function (p1, p2, r) {
- return p1.sub(p2).magSqr() < r * r;
- };
- LQMathUtil.intersects_circle = function (p1, r1, p2, r2) {
- return p1.sub(p2).mag() < r1 + r2;
- };
- LQMathUtil.intersects_circle_rect = function (p, r, rect) {
- var relative_x = p.x - rect.x;
- var relative_y = p.y - rect.y;
- var dx = Math.min(relative_x, rect.half_width);
- var dx1 = Math.max(dx, -rect.half_width);
- var dy = Math.min(relative_y, rect.half_height);
- var dy1 = Math.max(dy, -rect.half_height);
- return (dx1 - relative_x) * (dx1 - relative_x) + (dy1 - relative_y) * (dy1 - relative_y) <= r * r;
- };
- return LQMathUtil;
-}());
-exports.LQMathUtil = LQMathUtil;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9tYXRoX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7SUFBQTtJQTZDQSxDQUFDO0lBNUNpQixpQkFBTSxHQUFwQixVQUFxQixHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUM1QzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVhLHFCQUFVLEdBQXhCLFVBQXlCLEdBQVcsRUFBRSxHQUFXO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFYSxzQkFBVyxHQUF6QixVQUEwQixHQUFTLEVBQUUsVUFBZ0I7UUFDakQsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVhLDBCQUFlLEdBQTdCLFVBQThCLEVBQVMsRUFBRSxFQUFTO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDNUgsQ0FBQztJQUVhLGdDQUFxQixHQUFuQyxVQUFvQyxDQUFPLEVBQUUsQ0FBUTtRQUNqRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVhLGtDQUF1QixHQUFyQyxVQUFzQyxFQUFRLEVBQUUsRUFBUSxFQUFFLENBQVM7UUFDL0QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVhLDRCQUFpQixHQUEvQixVQUFnQyxFQUFRLEVBQUUsRUFBVSxFQUFFLEVBQVEsRUFBRSxFQUFVO1FBQ3RFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFYSxpQ0FBc0IsR0FBcEMsVUFBcUMsQ0FBTyxFQUFFLENBQVMsRUFBRSxJQUFXO1FBQ2hFLElBQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0E3Q0EsQUE2Q0MsSUFBQTtBQTdDWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVBvcywgSVJlY3R9IGZyb20gXCIuLi9kYXRhL2xxX2ludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRTWF0aFV0aWwge1xyXG4gICAgcHVibGljIHN0YXRpYyByYW5kb20obWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAobWluID09PSBtYXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1pbjtcclxuICAgICAgICB9IGVsc2UgaWYgKG1pbiA8IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogKG1pbiAtIG1heCkgKyBtYXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZG9tX2ludChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKG1pbiwgbWF4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfcmFkaWFucyhwb3M6IElQb3MsIHRhcmdldF9wb3M6IElQb3MpIHtcclxuICAgICAgICBjb25zdCByID0gTWF0aC5hdGFuMih0YXJnZXRfcG9zLnkgLSBwb3MueSwgdGFyZ2V0X3Bvcy54IC0gcG9zLngpO1xyXG4gICAgICAgIHJldHVybiByID4gMCA/IHIgOiByICsgNi4yODtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGludGVyc2VjdHNfcmVjdChyMTogSVJlY3QsIHIyOiBJUmVjdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmFicyhyMS54IC0gcjIueCkgPCByMS5oYWxmX3dpZHRoICsgcjIuaGFsZl93aWR0aCAmJiBNYXRoLmFicyhyMS55IC0gcjIueSkgPCByMS5oYWxmX2hlaWdodCArIHIyLmhhbGZfaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9yZWN0KHA6IElQb3MsIHI6IElSZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChwLnggPiByLnggLSByLndpZHRoICogMC41KSAmJiAocC54IDwgci54ICsgci53aWR0aCAqIDAuNSkgJiYgKHAueSA+IHIueSAtIHIuaGVpZ2h0ICogMC41KSAmJiAocC55IDwgci55ICsgci5oZWlnaHQgKiAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9jaXJjbGUocDE6IElQb3MsIHAyOiBJUG9zLCByOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gcDEuc3ViKHAyKS5tYWdTcXIoKSA8IHIgKiByO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGUocDE6IElQb3MsIHIxOiBudW1iZXIsIHAyOiBJUG9zLCByMjogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHAxLnN1YihwMikubWFnKCkgPCByMSArIHIyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGVfcmVjdChwOiBJUG9zLCByOiBudW1iZXIsIHJlY3Q6IElSZWN0KSB7XHJcbiAgICAgICAgY29uc3QgcmVsYXRpdmVfeCA9IHAueCAtIHJlY3QueDtcclxuICAgICAgICBjb25zdCByZWxhdGl2ZV95ID0gcC55IC0gcmVjdC55O1xyXG4gICAgICAgIGNvbnN0IGR4ID0gTWF0aC5taW4ocmVsYXRpdmVfeCwgcmVjdC5oYWxmX3dpZHRoKTtcclxuICAgICAgICBjb25zdCBkeDEgPSBNYXRoLm1heChkeCwgLXJlY3QuaGFsZl93aWR0aCk7XHJcbiAgICAgICAgY29uc3QgZHkgPSBNYXRoLm1pbihyZWxhdGl2ZV95LCByZWN0LmhhbGZfaGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkeTEgPSBNYXRoLm1heChkeSwgLXJlY3QuaGFsZl9oZWlnaHQpO1xyXG4gICAgICAgIHJldHVybiAoZHgxIC0gcmVsYXRpdmVfeCkgKiAoZHgxIC0gcmVsYXRpdmVfeCkgKyAoZHkxIC0gcmVsYXRpdmVfeSkgKiAoZHkxIC0gcmVsYXRpdmVfeSkgPD0gciAqIHI7XHJcbiAgICB9XHJcbn0iXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/Barrier.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '90c37YHUUVPsY0mlNmom67u', 'Barrier');
-// Script/Barrier.ts
-
-"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var Map_1 = require("./Map");
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var Block = /** @class */ (function (_super) {
- __extends(Block, _super);
- function Block() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- // 新增缓存变量
- _this.selfBoxColliders = [];
- _this.allBoxColliders = [];
- // @property({
- // tooltip: '碰撞形状,None就是无敌,不参与碰撞',
- // type: cc.Enum(BlockType),
- // // default: BlockType.Nomal,
- // displayName: '碰撞形状'
- // })
- // LIFE-CYCLE CALLBACKS:
- // @property(cc.SpriteAtlas)
- // UI: cc.SpriteAtlas = null;
- _this.initialTouchOffset = null;
- _this.offsetTolerance = 100; // 偏移容忍度;
- _this.touchPoint = null; //触摸点
- _this.isTouch = false; //是否触摸
- _this.posX = 0; //地图块的X坐标
- _this.posY = 0; //地图块的Y坐标
- _this.moveLeft = true; //是否可以左移;
- _this.moveRight = true; //是否可以右移;
- _this.moveUp = true; //是否可以上移;
- _this.moveDown = true; //是否可以下移;
- _this.moveCorner = 0; //是否碰撞角落
- _this.moveY = 0; //是否可以上下移动;
- _this.moveX = 0; //是否可以左右移动;
- _this.touchPointX = 0; //触摸点X坐标;
- _this.touchPointY = 0; //触摸点Y坐标;
- _this.blockId = 0; //方块ID;
- _this.level = 0; //叠加方块层数;
- _this.pz = false;
- return _this;
- }
- Block.prototype.onLoad = function () {
- // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);
- // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this);
- // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this);
- // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this);
- this.pz = false;
- this.stacking = cc.v2(0, 0);
- // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider)
- // .filter(collider => collider.tag < 4);
- };
- Block.prototype.start = function () {
- };
- Block.prototype.jsonDeepClone = function (obj) {
- return JSON.parse(JSON.stringify(obj));
- };
- Block.prototype.init = function (block_Info, posX, posY, node) {
- this.block_Info = this.jsonDeepClone(block_Info);
- var mapInfo = Map_1.default._instance.mapInfo;
- console.log("block_Info", this.block_Info);
- for (var i = 0; i < mapInfo.length; i++) {
- var blockRect = mapInfo[i].getBoundingBox();
- // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内
- var point = cc.v2(this.node.position.x - 5, this.node.position.y + 10);
- if (blockRect.contains(point)) {
- this.posX = mapInfo[i].getComponent("MapBlock").posX;
- this.posY = mapInfo[i].getComponent("MapBlock").posY;
- this.level = 50 + this.posX - this.posY * 3;
- this.node.zIndex = this.level;
- this.node.x = mapInfo[i].x + 65;
- this.node.y = mapInfo[i].y - 60;
- i = 10000;
- break;
- }
- }
- };
- Block = __decorate([
- ccclass
- ], Block);
- return Block;
-}(cc.Component));
-exports.default = Block;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQTBGQztRQXhGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVyxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3ZDLFdBQUssR0FBVyxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3ZDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFvRHhCLENBQUM7SUExQ0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLCtDQUErQztZQUMvQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1lBQ3RFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNWLE1BQU07YUFDVDtTQUNKO0lBRUwsQ0FBQztJQXhGZ0IsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQTBGekI7SUFBRCxZQUFDO0NBMUZELEFBMEZDLENBMUZrQyxFQUFFLENBQUMsU0FBUyxHQTBGOUM7a0JBMUZvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbGxpc2lvbkRldGVjdGlvbiBmcm9tIFwiLi9Db2xsaXNpb25EZXRlY3Rpb25cIjtcclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuL01hcFwiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2NrczogYW55OyAgICAgICAvL+aJgOacieeahOaWueWdlyznlKjkuo7orqHnrpdwb3NYLHBvc1nmtojpmaRcclxuICAgIHRvdWNoUG9pbnQ6IGNjLlZlYzIgPSBudWxsOyAgICAgLy/op6bmkbjngrlcclxuICAgIGlzVG91Y2g6IGJvb2xlYW4gPSBmYWxzZTsgICAgICAgLy/mmK/lkKbop6bmkbhcclxuICAgIHBvc1g6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRY5Z2Q5qCHXHJcbiAgICBwb3NZOiBudW1iZXIgPSAwOyAgICAgICAgICAgICAgIC8v5Zyw5Zu+5Z2X55qEWeWdkOagh1xyXG4gICAgbW92ZUxlZnQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5bem56e7O1xyXG4gICAgbW92ZVJpZ2h0OiBib29sZWFuID0gdHJ1ZTsgICAgIC8v5piv5ZCm5Y+v5Lul5Y+z56e7O1xyXG4gICAgbW92ZVVwOiBib29sZWFuID0gdHJ1ZTsgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK56e7O1xyXG4gICAgbW92ZURvd246IGJvb2xlYW4gPSB0cnVlOyAgICAgIC8v5piv5ZCm5Y+v5Lul5LiL56e7O1xyXG4gICAgbW92ZUNvcm5lcjogbnVtYmVyID0gMDsgICAgICAgIC8v5piv5ZCm56Kw5pKe6KeS6JC9XHJcbiAgICBtb3ZlWTogbnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrkuIvnp7vliqg7XHJcbiAgICBtb3ZlWDogbnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86IGFueTtcclxuICAgIF90b3VjaExpc3RlbmVyOiBhbnk7XHJcbiAgICByZWxhdGl2ZV9Qb3NpdGlvbjogY2MuVmVjMjsgIC8v54K55Ye75ZKM5pa55Z2X55u45a+55L2N572uXHJcbiAgICBwcml2YXRlIF9ldmVudE1hbmFnZXI6IGFueTtcclxuICAgIGhpdDogY2MuTm9kZTtcclxuXHJcblxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfU1RBUlQsIHRoaXMudG91Y2hTdGFydCwgdGhpcyk7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX01PVkUsIHRoaXMudG91Y2hNb3ZlLCB0aGlzKTsgIFxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsIHRoaXMudG91Y2hFbmQsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICB0aGlzLnB6ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFja2luZyA9IGNjLnYyKDAsIDApO1xyXG4gICAgICAgIC8vIHRoaXMuc2VsZkJveENvbGxpZGVycyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnRzSW5DaGlsZHJlbihjYy5Cb3hDb2xsaWRlcilcclxuICAgICAgICAvLyAuZmlsdGVyKGNvbGxpZGVyID0+IGNvbGxpZGVyLnRhZyA8IDQpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAganNvbkRlZXBDbG9uZTxUPihvYmo6IFQpOiBUIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KGJsb2NrX0luZm8sIHBvc1gsIHBvc1ksIG5vZGUpIHtcclxuICAgICAgICB0aGlzLmJsb2NrX0luZm8gPSB0aGlzLmpzb25EZWVwQ2xvbmUoYmxvY2tfSW5mbyk7XHJcbiAgICAgICAgbGV0IG1hcEluZm8gPSBNYXBDb25yb2xlci5faW5zdGFuY2UubWFwSW5mbztcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJsb2NrX0luZm9cIiwgdGhpcy5ibG9ja19JbmZvKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcEluZm8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrUmVjdCA9IG1hcEluZm9baV0uZ2V0Qm91bmRpbmdCb3goKTtcclxuICAgICAgICAgICAgLy8g5L2/55SoIGNjLkludGVyc2VjdGlvbi5wb2ludEluUmVjdCDmlrnms5XliKTmlq3ngrnmmK/lkKblnKjnn6nlvaLojIPlm7TlhoVcclxuICAgICAgICAgICAgbGV0IHBvaW50ID0gY2MudjIodGhpcy5ub2RlLnBvc2l0aW9uLnggLSA1LCB0aGlzLm5vZGUucG9zaXRpb24ueSArIDEwKVxyXG4gICAgICAgICAgICBpZiAoYmxvY2tSZWN0LmNvbnRhaW5zKHBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NYID0gbWFwSW5mb1tpXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NZID0gbWFwSW5mb1tpXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IDUwICsgdGhpcy5wb3NYIC0gdGhpcy5wb3NZICogMztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSB0aGlzLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnggPSBtYXBJbmZvW2ldLnggKyA2NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS55ID0gbWFwSW5mb1tpXS55IC0gNjA7XHJcbiAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuIl19
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage');
-// Script/module/Storage/Storage.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StorageMessage = void 0;
-//缓存浏览器数据
-var StorageMessage = {
- getStorage: function (key) {
- var result = null;
- if (cc.sys.localStorage.getItem(key)) {
- var result = cc.sys.localStorage.getItem(key);
- }
- if (result) {
- result = JSON.parse(result);
- }
- return result;
- },
- setStorage: function (key, value) {
- //主动拉起分享接口
- var temp = JSON.stringify(value);
- cc.sys.localStorage.setItem(key, temp);
- },
- removeStorage: function (key) {
- //主动删除消息接口
- if (cc.sys.localStorage.getItem(key)) {
- cc.sys.localStorage.removeItem(key);
- }
- },
-};
-exports.StorageMessage = StorageMessage;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXHJcbnZhciBTdG9yYWdlTWVzc2FnZSA9IHtcclxuICAgIGdldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXkpe1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICAgIHZhciByZXN1bHQgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0sXHJcbiAgICBzZXRTdG9yYWdlIDogZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAvL+S4u+WKqOaLiei1t+WIhuS6q+aOpeWPo1xyXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRlbXApXHJcbiAgICB9LFxyXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XHJcbiAgICAgIC8v5Li75Yqo5Yig6Zmk5raI5oGv5o6l5Y+jXHJcbiAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgU3RvcmFnZU1lc3NhZ2UgfTsiXX0=
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_data.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'a54702UNV9NA7pYgQd6eA5/', 'lq_data');
-// Script/lq_base/data/lq_data.ts
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.LQPlatformData = exports.LQShareData = exports.LQNativeComponent = exports.LQRect = void 0;
-var Vec2 = cc.Vec2;
-var Rect = cc.Rect;
-var LQRect = /** @class */ (function () {
- function LQRect(x, y, width, height) {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- this.half_width = width * 0.5;
- this.half_height = height * 0.5;
- }
- LQRect.prototype.top_left = function () {
- return new Vec2(this.x - this.half_width, this.y + this.half_height);
- };
- LQRect.prototype.top_right = function () {
- return new Vec2(this.x + this.half_width, this.y + this.half_height);
- };
- LQRect.prototype.bottom_left = function () {
- return new Vec2(this.x - this.half_width, this.y - this.half_height);
- };
- LQRect.prototype.bottom_right = function () {
- return new Vec2(this.x + this.half_width, this.y - this.half_height);
- };
- LQRect.prototype.pos = function () {
- return new Vec2(this.x, this.y);
- };
- LQRect.prototype.sub = function (pos) {
- return new Vec2(pos.x - this.x, pos.y - this.y);
- };
- LQRect.prototype.add = function (pos) {
- return new Vec2(pos.x + this.x, pos.y + this.y);
- };
- LQRect.prototype.to_cocos_rect = function () {
- return new Rect(this.x - this.half_width, this.y - this.half_height, this.width, this.height);
- };
- return LQRect;
-}());
-exports.LQRect = LQRect;
-var LQNativeComponent = /** @class */ (function () {
- function LQNativeComponent() {
- this.node_btn_arr = [];
- }
- return LQNativeComponent;
-}());
-exports.LQNativeComponent = LQNativeComponent;
-var LQShareData = /** @class */ (function () {
- function LQShareData(obj) {
- if (obj.title) {
- this.title = obj.title;
- }
- if (obj.remote_url) {
- this.remote_url = obj.remote_url;
- }
- if (obj.url_id) {
- this.url_id = obj.url_id;
- }
- if (obj.query) {
- this.query = obj.query;
- }
- if (obj.content) {
- this.content = obj.content;
- }
- if (obj.extra) {
- this.extra = obj.extra;
- }
- if (obj.type) {
- this.type = obj.type;
- }
- }
- return LQShareData;
-}());
-exports.LQShareData = LQShareData;
-var LQPlatformData = /** @class */ (function () {
- function LQPlatformData() {
- }
- return LQPlatformData;
-}());
-exports.LQPlatformData = LQPlatformData;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUt0QjtJQVFJLGdCQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDM0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVNLHlCQUFRLEdBQWY7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sMEJBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNEJBQVcsR0FBbEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNkJBQVksR0FBbkI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sb0JBQUcsR0FBVjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLG9CQUFHLEdBQVYsVUFBVyxHQUFTO1FBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxvQkFBRyxHQUFWLFVBQVcsR0FBUztRQUNoQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sOEJBQWEsR0FBcEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQWhEQSxBQWdEQyxJQUFBO0FBaERZLHdCQUFNO0FBa0RuQjtJQUFBO1FBQ1csaUJBQVksR0FBVyxFQUFFLENBQUM7SUFNckMsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FQQSxBQU9DLElBQUE7QUFQWSw4Q0FBaUI7QUFTOUI7SUFTSSxxQkFBWSxHQUE0SDtRQUNwSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDMUI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FoQ0EsQUFnQ0MsSUFBQTtBQWhDWSxrQ0FBVztBQWtDeEI7SUFBQTtJQWlCQSxDQUFDO0lBQUQscUJBQUM7QUFBRCxDQWpCQSxBQWlCQyxJQUFBO0FBakJZLHdDQUFjIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9zLCBJUmVjdH0gZnJvbSBcIi4vbHFfaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuaW1wb3J0IFJlY3QgPSBjYy5SZWN0O1xyXG5pbXBvcnQgU3ByaXRlID0gY2MuU3ByaXRlO1xyXG5pbXBvcnQgTGFiZWwgPSBjYy5MYWJlbDtcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRUmVjdCBpbXBsZW1lbnRzIElSZWN0IHtcclxuICAgIHB1YmxpYyB4OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgeTogbnVtYmVyO1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhhbGZfaGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB0aGlzLmhhbGZfd2lkdGggPSB3aWR0aCAqIDAuNTtcclxuICAgICAgICB0aGlzLmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b3BfbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgKyB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9wX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSArIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBib3R0b21fbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgLSB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYm90dG9tX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSAtIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwb3MoKTogY2MuVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHRoaXMueCwgdGhpcy55KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3ViKHBvczogSVBvcyk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMihwb3MueCAtIHRoaXMueCwgcG9zLnkgLSB0aGlzLnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGQocG9zOiBJUG9zKTogVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHBvcy54ICsgdGhpcy54LCBwb3MueSArIHRoaXMueSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvX2NvY29zX3JlY3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHRoaXMueCAtIHRoaXMuaGFsZl93aWR0aCwgdGhpcy55IC0gdGhpcy5oYWxmX2hlaWdodCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFOYXRpdmVDb21wb25lbnQge1xyXG4gICAgcHVibGljIG5vZGVfYnRuX2FycjogTm9kZVtdID0gW107XHJcbiAgICBwdWJsaWMgc3ByaXRlX2xvZ28hOiBTcHJpdGU7XHJcbiAgICBwdWJsaWMgc3ByaXRlX2ltZyE6IFNwcml0ZTtcclxuICAgIHB1YmxpYyBzcHJpdGVfYWRfdGlwITogU3ByaXRlO1xyXG4gICAgcHVibGljIGxhYmVsX3RpdGxlITogTGFiZWw7XHJcbiAgICBwdWJsaWMgbGFiZWxfZGVzYyE6IExhYmVsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFTaGFyZURhdGEge1xyXG4gICAgcHVibGljIHRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbW90ZV91cmwhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdXJsX2lkITogc3RyaW5nO1xyXG4gICAgcHVibGljIHF1ZXJ5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbnRlbnQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0cmEhOiBhbnk7XHJcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvYmo/OiB7IHRpdGxlPzogc3RyaW5nLCByZW1vdGVfdXJsPzogc3RyaW5nLCB1cmxfaWQ/OiBzdHJpbmcsIHF1ZXJ5Pzogc3RyaW5nLCBjb250ZW50Pzogc3RyaW5nLCBleHRyYT86IGFueSwgdHlwZT86IHN0cmluZyB9KSB7XHJcbiAgICAgICAgaWYgKG9iai50aXRsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb2JqLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLnJlbW90ZV91cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdGVfdXJsID0gb2JqLnJlbW90ZV91cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmoudXJsX2lkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsX2lkID0gb2JqLnVybF9pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai5xdWVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gb2JqLnF1ZXJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gb2JqLmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmouZXh0cmEpIHtcclxuICAgICAgICAgICAgdGhpcy5leHRyYSA9IG9iai5leHRyYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IG9iai50eXBlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRUGxhdGZvcm1EYXRhIHtcclxuICAgIHB1YmxpYyBhcHBfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcHJpbnRfbG9nITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93X3NoYXJlX21lbnUhOiBib29sZWFuO1xyXG4gICAgcHVibGljIGtlZXBfc2NyZWVuX29uITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBiYW5uZXJfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYmFubmVyX3dpZHRoITogbnVtYmVyO1xyXG4gICAgcHVibGljIGludGVyc3RpdGlhbF9pZCE6IHN0cmluZztcclxuICAgIHB1YmxpYyBuYXRpdmVfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdmlkZW9faWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNfdmlkZW9fZnJlZSE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNfY2FjaGVfdmlkZW8hOiBib29sZWFuO1xyXG4gICAgcHVibGljIGFkX3R5cGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfa2V5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIHN3aXRjaF9hZCE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgc2hhcmVfZGF0YV9hcnIhOiBMUVNoYXJlRGF0YVtdO1xyXG59Il19
//------QC-SOURCE-SPLIT------
(function() {
@@ -14356,651 +14645,6 @@ cc._RF.pop();
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9iYXNlX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQWtEO0FBQ2xELDZDQUFnRDtBQUNoRCxJQUFPLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBR3RCO0lBQUE7SUE0SkEsQ0FBQztJQTNKRywwREFBMEQ7SUFFNUMsb0JBQVMsR0FBdkIsVUFBMkIsR0FBUSxFQUFFLENBQUk7UUFDckMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNYLE1BQU07YUFDVDtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRWEsZ0NBQXFCLEdBQW5DLFVBQW9DLE9BQWUsRUFBRSxRQUFnQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFO2dCQUN6QixTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE1BQU07YUFDVDtTQUNKO1FBQ0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENB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R0FBeEIsVUFBeUIsR0FBUTtRQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixPQUFPLEdBQUcsQ0FBQztTQUNkO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUFDO1FBQ3RELEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0wsaUJBQUM7QUFBRCxDQTVKQSxBQTRKQyxJQUFBO0FBNUpZLGdDQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMUVBsYXRmb3JtVXRpbH0gZnJvbSBcIi4vbHFfcGxhdGZvcm1fdXRpbFwiO1xyXG5pbXBvcnQge0xRUGxhdGZvcm1UeXBlfSBmcm9tIFwiLi4vZGF0YS9scV9jb25zdFwiO1xyXG5pbXBvcnQgdmlldyA9IGNjLnZpZXc7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUUJhc2VVdGlsIHtcclxuICAgIC8vIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdW5pdF9hcnIgPSBbJ0snLCAnTScsICdCJywgJ1QnXTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGhhc192YWx1ZTxUPihhcnI6IFRbXSwgdjogVCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBoYXMgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyW2ldID09PSB2KSB7XHJcbiAgICAgICAgICAgICAgICBoYXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF92YWx1ZV9ieV9kdXJhdGlvbihwZXJjZW50OiBudW1iZXIsIHRpbWVsaW5lOiBWZWMyW10pOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0aW1lbGluZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBlbmRfaW5kZXggPSAtMTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRpbWVsaW5lLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aW1lbGluZVtpXS54ID4gcGVyY2VudCkge1xyXG4gICAgICAgICAgICAgICAgZW5kX2luZGV4ID0gaTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbmRfaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aW1lbGluZVt0aW1lbGluZS5sZW5ndGggLSAxXS55O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdGFydF9pbmRleCA9IGVuZF9pbmRleCAtIDE7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55ICsgKHRpbWVsaW5lW2VuZF9pbmRleF0ueSAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS55KSAqICgocGVyY2VudCAtIHRpbWVsaW5lW3N0YXJ0X2luZGV4XS54KSAvICh0aW1lbGluZVtlbmRfaW5kZXhdLnggLSB0aW1lbGluZVtzdGFydF9pbmRleF0ueCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbnVtYmVyX3RvX2NvdW50aW5nKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobnVtIDwgMTAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtICsgJyc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDApICsgJ0snO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtIDwgMTAwMDAwMDAwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwKSArICdNJztcclxuICAgICAgICB9IGVsc2UgaWYgKG51bSA8IDEwMDAwMDAwMDAwMDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtIC8gMTAwMDAwMDAwMCkgKyAnQic7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW0gPCAxMDAwMDAwMDAwMDAwMDAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAvIDEwMDAwMDAwMDAwMDApICsgJ1QnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gLyAxMDAwMDAwMDAwMDAwKSArICdUJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG51bWJlcl90b190aW1lKHRpbWU6IG51bWJlcik6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSB7XHJcbiAgICAgICAgY29uc3QgdCA9IE1hdGguZmxvb3IodGltZSAvICg2MCAqIDYwKSk7XHJcbiAgICAgICAgdGltZSA9IHRpbWUgLSB0ICogNjAgKiA2MDtcclxuICAgICAgICBsZXQgaG91ciA9IHQudG9TdHJpbmcoKTtcclxuICAgICAgICBsZXQgbWluID0gTWF0aC5mbG9vcih0aW1lIC8gNjApLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHNlYyA9ICh0aW1lICUgNjApLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGlmIChob3VyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBob3VyID0gJzAnICsgaG91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbi5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgbWluID0gJzAnICsgbWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VjLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBzZWMgPSAnMCcgKyBzZWM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbaG91ciwgbWluLCBzZWNdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2V0X25vcm1hbF9hbmdsZShhbmdsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlID4gMzYwKSB7XHJcbiAgICAgICAgICAgIGFuZ2xlIC09IDM2MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgICAgICBhbmdsZSArPSAzNjA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhcmVfdmVyc2lvbih2MTogc3RyaW5nLCB2Mjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgdjFfYXJyID0gdjEuc3BsaXQoJy4nKTtcclxuICAgICAgICBsZXQgdjJfYXJyID0gdjIuc3BsaXQoJy4nKTtcclxuICAgICAgICBjb25zdCBsZW4gPSBNYXRoLm1heCh2MV9hcnIubGVuZ3RoLCB2Ml9hcnIubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgd2hpbGUgKHYxX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjFfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKHYyX2Fyci5sZW5ndGggPCBsZW4pIHtcclxuICAgICAgICAgICAgdjJfYXJyLnB1c2goJzAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBudW0xID0gcGFyc2VJbnQodjFfYXJyW2ldKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtMiA9IHBhcnNlSW50KHYyX2FycltpXSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobnVtMSA+IG51bTIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bTEgPCBudW0yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190b2RheShkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IGQyO1xyXG4gICAgICAgIGlmIChkYXRlICYmIGRhdGUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGQyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZDIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICBkMi5zZXREYXRlKGQyLmdldERhdGUoKSAtIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZDEuZ2V0RnVsbFllYXIoKSA9PT0gZDIuZ2V0RnVsbFllYXIoKSAmJiBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmIGQxLmdldERhdGUoKSA9PT0gZDIuZ2V0RGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfc2FmZV9hcmVhKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGNiID0gKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAod2lkdGggPT09IDIyODAgJiYgaGVpZ2h0ID09PSAxMDgwKSB8fCAod2lkdGggPT09IDE3OTIgJiYgaGVpZ2h0ID09PSA4MjgpIHx8ICh3aWR0aCA9PT0gMjQzNiAmJiBoZWlnaHQgPT09IDExMjUpIHx8ICh3aWR0aCA9PT0gMjY4OCAmJiBoZWlnaHQgPT09IDEyNDIpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChMUVBsYXRmb3JtVXRpbC5nZXRfcGxhdGZvcm0oKSkge1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmJhaWR1OlxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3lzX2luZm9fc3dhbiA9IHN3YW4uZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbldpZHRoLCBzeXNfaW5mb19zd2FuLnBpeGVsUmF0aW8gKiBzeXNfaW5mb19zd2FuLnNjcmVlbkhlaWdodCk7XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUucXE6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzeXNfaW5mb19xcSA9IHFxLmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc3lzX2luZm9fcXEucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3FxLnNjcmVlbldpZHRoLCBzeXNfaW5mb19xcS5waXhlbFJhdGlvICogc3lzX2luZm9fcXEuc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS50dDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3R0ID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb190dC5waXhlbFJhdGlvICogc3lzX2luZm9fdHQuc2NyZWVuV2lkdGgsIHN5c19pbmZvX3R0LnBpeGVsUmF0aW8gKiBzeXNfaW5mb190dC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLm9wcG86XHJcbiAgICAgICAgICAgIGNhc2UgTFFQbGF0Zm9ybVR5cGUudml2bzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3Zpdm8gPSBxZy5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNiKHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuV2lkdGgsIHN5c19pbmZvX3Zpdm8ucGl4ZWxSYXRpbyAqIHN5c19pbmZvX3Zpdm8uc2NyZWVuSGVpZ2h0KTtcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS53eDpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN5c19pbmZvX3d4ID0gd3guZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYihzeXNfaW5mb193eC5waXhlbFJhdGlvICogc3lzX2luZm9fd3guc2NyZWVuV2lkdGgsIHN5c19pbmZvX3d4LnBpeGVsUmF0aW8gKiBzeXNfaW5mb193eC5zY3JlZW5IZWlnaHQpO1xyXG4gICAgICAgICAgICBjYXNlIExRUGxhdGZvcm1UeXBlLmFuZHJvaWQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBMUVBsYXRmb3JtVHlwZS5pb3M6XHJcbiAgICAgICAgICAgICAgICBsZXQgc2l6ZSA9IHZpZXcuZ2V0RnJhbWVTaXplKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2Ioc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBkZWVwX2Nsb25lKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuZXdfb2JqID0gKG9iaiBpbnN0YW5jZW9mIEFycmF5ID8gW10gOiB7fSkgYXMgYW55O1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld19vYmpba2V5XSA9IHRoaXMuZGVlcF9jbG9uZShvYmpba2V5XSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuZXdfb2JqW2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3X29iajtcclxuICAgIH1cclxufSJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/Script/module/RankList/List.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List');
-// Script/module/RankList/List.ts
-
-"use strict";
-// Learn TypeScript:
-// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StartAxisType = exports.ListType = void 0;
-var ItemRender_1 = require("./ItemRender");
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-/**列表排列方式 */
-var ListType;
-(function (ListType) {
- /**水平排列 */
- ListType[ListType["Horizontal"] = 1] = "Horizontal";
- /**垂直排列 */
- ListType[ListType["Vertical"] = 2] = "Vertical";
- /**网格排列 */
- ListType[ListType["Grid"] = 3] = "Grid";
-})(ListType = exports.ListType || (exports.ListType = {}));
-/**网格布局中的方向 */
-var StartAxisType;
-(function (StartAxisType) {
- /**水平排列 */
- StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal";
- /**垂直排列 */
- StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical";
-})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {}));
-/**
- * 列表
- * 根据cocos_example的listView改动而来
- * @author chenkai 2020.7.8
- * @example
- * 1.创建cocos的ScrollView组件,添加List,设置List属性即可
- *
- */
-var List = /** @class */ (function (_super) {
- __extends(List, _super);
- function List() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- //==================== 属性面板 =========================
- /**列表选项 */
- _this.itemRender = null;
- /**排列方式 */
- _this.type = ListType.Vertical;
- /**网格布局中的方向 */
- _this.startAxis = StartAxisType.Horizontal;
- /**列表项之间X间隔 */
- _this.spaceX = 0;
- /**列表项之间Y间隔 */
- _this.spaceY = 0;
- /**上间距 */
- _this.padding_top = 0;
- /**下间距 */
- _this.padding_buttom = 0;
- /**左间距 */
- _this.padding_left = 0;
- _this._padding = 0;
- /**右间距 */
- _this.padding_right = 0;
- //====================== 滚动容器 ===============================
- /**列表滚动容器 */
- _this.scrollView = null;
- /**scrollView的内容容器 */
- _this.content = null;
- //======================== 列表项 ===========================
- /**列表项数据 */
- _this.itemDataList = [];
- /**应创建的实例数量 */
- _this.spawnCount = 0;
- /**存放列表项实例的数组 */
- _this.itemList = [];
- /**item的高度 */
- _this.itemHeight = 0;
- /**item的宽度 */
- _this.itemWidth = 0;
- /**存放不再使用中的列表项 */
- _this.itemPool = [];
- //======================= 计算参数 ==========================
- /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */
- _this.halfScrollView = 0;
- /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */
- _this.lastContentPosX = 0;
- /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */
- _this.lastContentPosY = 0;
- /**网格行数 */
- _this.gridRow = 0;
- /**网格列数 */
- _this.gridCol = 0;
- /**刷新时间,单位s */
- _this.updateTimer = 0;
- /**刷新间隔,单位s */
- _this.updateInterval = 0.1;
- /**是否滚动容器 */
- _this.bScrolling = false;
- /**刷新的函数 */
- _this.updateFun = function () { };
- return _this;
- }
- List.prototype.onLoad = function () {
- this.itemHeight = this.itemRender.height;
- this.itemWidth = this.itemRender.width;
- this.scrollView = this.node.getComponent(cc.ScrollView);
- this.content = this.scrollView.content;
- this.content.anchorX = 0;
- this.content.anchorY = 1;
- this.content.removeAllChildren();
- this.scrollView.node.on("scrolling", this.onScrolling, this);
- };
- /**
- * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据)
- * @param itemDataList item数据列表
- */
- List.prototype.setData = function (itemDataList) {
- this.itemDataList = itemDataList.slice();
- this.updateContent();
- };
- /**计算列表的各项参数 */
- List.prototype.countListParam = function () {
- var dataLen = this.itemDataList.length;
- if (this.type == ListType.Vertical) {
- this.scrollView.horizontal = false;
- this.scrollView.vertical = true;
- this.content.width = this.content.parent.width;
- this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom;
- this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个
- this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围
- this.updateFun = this.updateV;
- }
- else if (this.type == ListType.Horizontal) {
- this.scrollView.horizontal = true;
- this.scrollView.vertical = false;
- this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right;
- this.content.height = this.content.parent.height;
- this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2;
- this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;
- this.updateFun = this.udpateH;
- }
- else if (this.type == ListType.Grid) {
- if (this.startAxis == StartAxisType.Vertical) {
- this.scrollView.horizontal = false;
- this.scrollView.vertical = true;
- this.content.width = this.content.parent.width;
- //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效
- if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) {
- this.padding_left = 0;
- this.padding_right = 0;
- console.error("padding_left或padding_right过大");
- }
- this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX));
- this.gridRow = Math.ceil(dataLen / this.gridCol);
- this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom;
- this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2;
- this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY;
- this.updateFun = this.updateGrid_V;
- }
- else if (this.startAxis == StartAxisType.Horizontal) {
- this.scrollView.horizontal = true;
- this.scrollView.vertical = false;
- //计算高间隔
- this.content.height = this.content.parent.height;
- //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效
- if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) {
- this.padding_top = 0;
- this.padding_buttom = 0;
- console.error("padding_top或padding_buttom过大");
- }
- this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY));
- this.gridCol = Math.ceil(dataLen / this.gridRow);
- this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right;
- this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2;
- this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;
- this.updateFun = this.updateGrid_H;
- }
- }
- };
- /**
- * 创建列表
- * @param startIndex 起始显示的数据索引 0表示第一项
- * @param offset scrollView偏移量
- */
- List.prototype.createList = function (startIndex, offset) {
- //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端
- if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) {
- startIndex = this.itemDataList.length - this.spawnCount;
- offset = this.scrollView.getMaxScrollOffset();
- //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项
- }
- else if (this.itemDataList.length <= this.spawnCount) {
- startIndex = 0;
- }
- for (var i = 0; i < this.spawnCount; i++) {
- var item = void 0;
- //需要显示的数据索引在数据范围内,则item实例显示出来
- if (i + startIndex < this.itemDataList.length) {
- if (this.itemList[i] == null) {
- item = this.getItem();
- this.itemList.push(item);
- item.parent = this.content;
- }
- else {
- item = this.itemList[i];
- }
- //需要显示的数据索引超过了数据范围,则item实例隐藏起来
- }
- else {
- //item实例数量 > 需要显示的数据量
- if (this.itemList.length > (this.itemDataList.length - startIndex)) {
- item = this.itemList.pop();
- item.removeFromParent();
- this.itemPool.push(item);
- }
- continue;
- }
- var itemRender = item.getComponent(ItemRender_1.default);
- itemRender.itemIndex = i + startIndex;
- itemRender.data = this.itemDataList[i + startIndex];
- itemRender.dataChanged();
- if (this.type == ListType.Vertical) {
- //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。
- item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top);
- }
- else if (this.type == ListType.Horizontal) {
- item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2);
- }
- else if (this.type == ListType.Grid) {
- if (this.startAxis == StartAxisType.Vertical) {
- var row = Math.floor((i + startIndex) / this.gridCol);
- var col = (i + startIndex) % this.gridCol;
- item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);
- item.opacity = 255;
- }
- else if (this.startAxis == StartAxisType.Horizontal) {
- var row = (i + startIndex) % this.gridRow;
- var col = Math.floor((i + startIndex) / this.gridRow);
- item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);
- item.opacity = 255;
- }
- }
- }
- this.scrollView.scrollToOffset(offset);
- };
- /**获取一个列表项 */
- List.prototype.getItem = function () {
- if (this.itemPool.length == 0) {
- return cc.instantiate(this.itemRender);
- }
- else {
- return this.itemPool.pop();
- }
- };
- List.prototype.update = function (dt) {
- if (this.bScrolling == false) {
- return;
- }
- this.updateTimer += dt;
- if (this.updateTimer < this.updateInterval) {
- return;
- }
- this.updateTimer = 0;
- this.bScrolling = false;
- this.updateFun();
- };
- List.prototype.onScrolling = function () {
- this.bScrolling = true;
- };
- /**垂直排列 */
- List.prototype.updateV = function () {
- var items = this.itemList;
- var item;
- var bufferZone = this.halfScrollView;
- var isUp = this.scrollView.content.y > this.lastContentPosY;
- var offset = (this.itemHeight + this.spaceY) * items.length;
- for (var i = 0; i < items.length; i++) {
- item = items[i];
- var viewPos = this.getPositionInView(item);
- if (isUp) {
- //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界
- if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex + items.length;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.y = item.y - offset;
- }
- }
- else {
- //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界
- if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex - items.length;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.y = item.y + offset;
- }
- }
- }
- this.lastContentPosY = this.scrollView.content.y;
- };
- /**水平排列 */
- List.prototype.udpateH = function () {
- var items = this.itemList;
- var item;
- var bufferZone = this.halfScrollView;
- var isRight = this.scrollView.content.x > this.lastContentPosX;
- var offset = (this.itemWidth + this.spaceX) * items.length;
- for (var i = 0; i < items.length; i++) {
- item = items[i];
- var viewPos = this.getPositionInView(item);
- if (isRight) {
- //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界
- if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex - items.length;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.x = item.x - offset;
- }
- }
- else {
- //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界
- if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex + items.length;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.x = item.x + offset;
- }
- }
- }
- this.lastContentPosX = this.scrollView.content.x;
- };
- /**网格垂直排列 */
- List.prototype.updateGrid_V = function () {
- var items = this.itemList;
- var item;
- var bufferZone = this.halfScrollView;
- var isUp = this.scrollView.content.y > this.lastContentPosY;
- var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol);
- for (var i = 0; i < items.length; i++) {
- item = items[i];
- var viewPos = this.getPositionInView(item);
- if (isUp) {
- //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界
- if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol;
- if (this.itemDataList[itemIndex] != null) {
- item.y = item.y - offset;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.opacity = 255;
- }
- else {
- item.y = item.y - offset;
- itemRender.itemIndex = itemIndex;
- item.opacity = 0;
- }
- }
- }
- else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界
- if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol;
- if (this.itemDataList[itemIndex] != null) {
- item.y = item.y + offset;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.opacity = 255;
- }
- else {
- item.y = item.y + offset;
- itemRender.itemIndex = itemIndex;
- item.opacity = 0;
- }
- }
- }
- }
- this.lastContentPosY = this.scrollView.content.y;
- };
- /**网格水平排列 */
- List.prototype.updateGrid_H = function () {
- var items = this.itemList;
- var item;
- var bufferZone = this.halfScrollView;
- var isRight = this.scrollView.content.x > this.lastContentPosX;
- var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow);
- for (var i = 0; i < items.length; i++) {
- item = items[i];
- var viewPos = this.getPositionInView(item);
- if (isRight) {
- //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界
- if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow;
- if (this.itemDataList[itemIndex] != null) {
- item.x = item.x - offset;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.opacity = 255;
- }
- else {
- item.x = item.x - offset;
- itemRender.itemIndex = itemIndex;
- item.opacity = 0;
- }
- }
- }
- else {
- //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界
- if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {
- var itemRender = item.getComponent(ItemRender_1.default);
- var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow;
- if (this.itemDataList[itemIndex] != null) {
- item.x = item.x + offset;
- itemRender.itemIndex = itemIndex;
- itemRender.data = this.itemDataList[itemIndex];
- itemRender.dataChanged();
- item.opacity = 255;
- }
- else {
- item.x = item.x + offset;
- itemRender.itemIndex = itemIndex;
- item.opacity = 0;
- }
- }
- }
- }
- this.lastContentPosX = this.scrollView.content.x;
- };
- /**获取item在scrollView的局部坐标 */
- List.prototype.getPositionInView = function (item) {
- var worldPos = item.parent.convertToWorldSpaceAR(item.position);
- var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos);
- return viewPos;
- };
- /**获取列表数据 */
- List.prototype.getListData = function () {
- return this.itemDataList;
- };
- /**
- * 增加一项数据到列表的末尾
- * @param data 数据
- */
- List.prototype.addItem = function (data) {
- this.itemDataList.push(data);
- this.updateContent();
- };
- /**
- * 增加一项数据到列表指定位置
- * @param index 位置,0表示第1项
- * @param data 数据
- */
- List.prototype.addItemAt = function (index, data) {
- if (this.itemDataList[index] != null || this.itemDataList.length == index) {
- this.itemDataList.splice(index, 1, data);
- this.updateContent();
- }
- };
- /**
- * 删除一项数据
- * @param index 删除项的位置 ,0表示第1项
- */
- List.prototype.deleteItem = function (index) {
- if (this.itemDataList[index] != null) {
- this.itemDataList.splice(index, 1);
- this.updateContent();
- }
- };
- /**
- * 改变一项数据
- * @param index 位置,0表示第1项
- * @param data 替换的数据
- */
- List.prototype.changeItem = function (index, data) {
- if (this.itemDataList[index] != null) {
- this.itemDataList[index] = data;
- this.updateContent();
- }
- };
- /**获取第一个Item的位置 */
- List.prototype.updateContent = function () {
- //显示列表实例为0个
- if (this.itemList.length == 0) {
- this.countListParam();
- this.createList(0, new cc.Vec2(0, 0));
- //显示列表的实例不为0个,则需要重新排列item实例数组
- }
- else {
- if (this.type == ListType.Vertical) {
- this.itemList.sort(function (a, b) {
- return b.y - a.y;
- });
- }
- else if (this.type == ListType.Horizontal) {
- this.itemList.sort(function (a, b) {
- return a.x - b.x;
- });
- }
- else if (this.type == ListType.Grid) {
- if (this.startAxis == StartAxisType.Vertical) {
- this.itemList.sort(function (a, b) {
- return a.x - b.x;
- });
- this.itemList.sort(function (a, b) {
- return b.y - a.y;
- });
- }
- else if (this.startAxis == StartAxisType.Horizontal) {
- this.itemList.sort(function (a, b) {
- return b.y - a.y;
- });
- this.itemList.sort(function (a, b) {
- return a.x - b.x;
- });
- }
- }
- this.countListParam();
- //获取第一个item实例需要显示的数据索引
- var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex;
- if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) {
- startIndex += (startIndex + this.spawnCount) % this.gridCol;
- }
- else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) {
- startIndex += (startIndex + this.spawnCount) % this.gridRow;
- }
- //getScrollOffset()和scrollToOffset()的x值是相反的
- var offset = this.scrollView.getScrollOffset();
- offset.x = -offset.x;
- this.createList(startIndex, offset);
- }
- };
- /**销毁 */
- List.prototype.onDestroy = function () {
- //清理列表项
- var len = this.itemList.length;
- for (var i = 0; i < len; i++) {
- if (cc.isValid(this.itemList[i], true)) {
- this.itemList[i].destroy();
- }
- }
- this.itemList.length = 0;
- //清理对象池
- len = this.itemPool.length;
- for (var i = 0; i < len; i++) {
- if (cc.isValid(this.itemPool[i], true)) {
- this.itemPool[i].destroy();
- }
- }
- this.itemPool.length = 0;
- //清理列表数据
- this.itemDataList.length = 0;
- };
- __decorate([
- property({ type: cc.Node, tooltip: "列表项" })
- ], List.prototype, "itemRender", void 0);
- __decorate([
- property({ type: cc.Enum(ListType), tooltip: "排列方式" })
- ], List.prototype, "type", void 0);
- __decorate([
- property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } })
- ], List.prototype, "startAxis", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
- ], List.prototype, "spaceX", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } })
- ], List.prototype, "spaceY", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } })
- ], List.prototype, "padding_top", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } })
- ], List.prototype, "padding_buttom", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
- ], List.prototype, "padding_left", void 0);
- __decorate([
- property(cc.Integer)
- ], List.prototype, "_padding", void 0);
- __decorate([
- property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } })
- ], List.prototype, "padding_right", void 0);
- List = __decorate([
- ccclass
- ], List);
- return List;
-}(cc.Component));
-exports.default = List;
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiwyQ0FBcUM7QUFFL0IsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUMsWUFBWTtBQUNaLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNoQixVQUFVO0lBQ1YsbURBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDViwrQ0FBWSxDQUFBO0lBQ1osVUFBVTtJQUNWLHVDQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkI7QUFFRCxjQUFjO0FBQ2QsSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLFVBQVU7SUFDViw2REFBYyxDQUFBO0lBQ2QsVUFBVTtJQUNWLHlEQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUxXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBS3hCO0FBRUQ7Ozs7Ozs7R0FPRztBQUVIO0lBQWtDLHdCQUFZO0lBQTlDO1FBQUEscUVBeWlCQztRQXZpQkcscURBQXFEO1FBQ3JELFVBQVU7UUFFSCxnQkFBVSxHQUFZLElBQUksQ0FBQztRQUVsQyxVQUFVO1FBRUgsVUFBSSxHQUFhLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFMUMsY0FBYztRQUVQLGVBQVMsR0FBa0IsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUUzRCxjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixTQUFTO1FBRUYsaUJBQVcsR0FBVyxDQUFDLENB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SSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs4Q0FDdEc7SUFLaEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTztJQUk1QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7K0NBQ3JHO0lBMUNoQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBeWlCeEI7SUFBRCxXQUFDO0NBemlCRCxBQXlpQkMsQ0F6aUJpQyxFQUFFLENBQUMsU0FBUyxHQXlpQjdDO2tCQXppQm9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgSXRlbVJlbmRlciBmcm9tIFwiLi9JdGVtUmVuZGVyXCJcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG4vKirliJfooajmjpLliJfmlrnlvI8gKi9cclxuZXhwb3J0IGVudW0gTGlzdFR5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG4gICAgLyoq572R5qC85o6S5YiXICovXHJcbiAgICBHcmlkID0gM1xyXG59XHJcblxyXG4vKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuZXhwb3J0IGVudW0gU3RhcnRBeGlzVHlwZSB7XHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIEhvcml6b250YWwgPSAxLFxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBWZXJ0aWNhbCA9IDIsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDliJfooahcclxuICog5qC55o2uY29jb3NfZXhhbXBsZeeahGxpc3RWaWV35pS55Yqo6ICM5p2lXHJcbiAqIEBhdXRob3IgY2hlbmthaSAyMDIwLjcuOFxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgMS7liJvlu7pjb2Nvc+eahFNjcm9sbFZpZXfnu4Tku7bvvIzmt7vliqBMaXN077yM6K6+572uTGlzdOWxnuaAp+WNs+WPr1xyXG4gKiAgXHJcbiAqL1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXN0IGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09IOWxnuaAp+mdouadvyA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpgInpobkgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIHRvb2x0aXA6IFwi5YiX6KGo6aG5XCIgfSlcclxuICAgIHB1YmxpYyBpdGVtUmVuZGVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvKirmjpLliJfmlrnlvI8gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oTGlzdFR5cGUpLCB0b29sdGlwOiBcIuaOkuWIl+aWueW8j1wiIH0pXHJcbiAgICBwdWJsaWMgdHlwZTogTGlzdFR5cGUgPSBMaXN0VHlwZS5WZXJ0aWNhbDtcclxuXHJcbiAgICAvKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oU3RhcnRBeGlzVHlwZSksIHRvb2x0aXA6IFwi572R5qC85biD5bGA5Lit55qE5pa55ZCRXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3RhcnRBeGlzOiBTdGFydEF4aXNUeXBlID0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFjpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WOmXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VYOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFnpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WemXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkIH0gfSlcclxuICAgIHB1YmxpYyBzcGFjZVk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5LiK6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuS4iumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHBhZGRpbmdfdG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4i+mXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIvpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2J1dHRvbTogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlt6bpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5bem6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2xlZnQ6IG51bWJlciA9IDA7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuSW50ZWdlcilcclxuICAgIHB1YmxpYyBfcGFkZGluZzogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlj7Ppl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5Y+z6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3JpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PSDmu5rliqjlrrnlmaggPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo5rua5Yqo5a655ZmoICovXHJcbiAgICBwdWJsaWMgc2Nyb2xsVmlldzogY2MuU2Nyb2xsVmlldyA9IG51bGw7XHJcbiAgICAvKipzY3JvbGxWaWV355qE5YaF5a655a655ZmoICovXHJcbiAgICBwcml2YXRlIGNvbnRlbnQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09IOWIl+ihqOmhuSA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOmhueaVsOaNriAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIC8qKuW6lOWIm+W7uueahOWunuS+i+aVsOmHjyAqL1xyXG4gICAgcHJpdmF0ZSBzcGF3bkNvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5YiX6KGo6aG55a6e5L6L55qE5pWw57uEICovXHJcbiAgICBwcml2YXRlIGl0ZW1MaXN0OiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG4gICAgLyoqaXRlbeeahOmrmOW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqaXRlbeeahOWuveW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICAvKirlrZjmlL7kuI3lho3kvb/nlKjkuK3nmoTliJfooajpobkgKi9cclxuICAgIHByaXZhdGUgaXRlbVBvb2w6IEFycmF5PGNjLk5vZGU+ID0gW107XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PT09PSDorqHnrpflj4LmlbAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKui3neemu3Njcm9sbFZpZXfkuK3lv4PngrnnmoTot53nprvvvIzotoXov4fov5nkuKrot53nprvnmoRpdGVt5Lya6KKr6YeN572u77yM5LiA6Iis6K6+572u5Li6IHNjcm9sbFZJZXcuaGVpZ2h0LzIgKyBpdGVtLmhlaWd0LzIgKyBzcGFjZe+8jOWboOS4uui/meS4qui3neemu2l0ZW3mraPlpb3otoXlh7pzY3JvbGxWaWV35pi+56S66IyD5Zu0ICovXHJcbiAgICBwcml2YXRlIGhhbGZTY3JvbGxWaWV3OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFjlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWOWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeW3pui/mOaYr+WQkeWPs+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1g6IG51bWJlciA9IDA7XHJcbiAgICAvKirkuIrkuIDmrKFjb250ZW5055qEWeWAvO+8jOeUqOS6juWSjOeOsOWcqGNvbnRlbnTnmoRZ5YC85q+U6L6D77yM5b6X5Ye65piv5ZCR5LiK6L+Y5piv5ZCR5LiL5rua5YqoICovXHJcbiAgICBwcml2YXRlIGxhc3RDb250ZW50UG9zWTogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOihjOaVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkUm93OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq572R5qC85YiX5pWwICovXHJcbiAgICBwcml2YXRlIGdyaWRDb2w6IG51bWJlciA9IDA7XHJcbiAgICAvKirliLfmlrDml7bpl7TvvIzljZXkvY1zICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVyOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw6Ze06ZqU77yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnRlcnZhbDogbnVtYmVyID0gMC4xO1xyXG4gICAgLyoq5piv5ZCm5rua5Yqo5a655ZmoICovXHJcbiAgICBwcml2YXRlIGJTY3JvbGxpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKuWIt+aWsOeahOWHveaVsCAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGdW46IEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLml0ZW1IZWlnaHQgPSB0aGlzLml0ZW1SZW5kZXIuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuaXRlbVdpZHRoID0gdGhpcy5pdGVtUmVuZGVyLndpZHRoO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU2Nyb2xsVmlldyk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQ7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LmFuY2hvclggPSAwO1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JZID0gMTtcclxuICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcubm9kZS5vbihcInNjcm9sbGluZ1wiLCB0aGlzLm9uU2Nyb2xsaW5nLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIl+ihqOaVsOaNriAo5YiX6KGo5pWw5o2u5aSN5Yi25L2/55So77yM5aaC5p6c5YiX6KGo5pWw5o2u5pS55Y+Y77yM5YiZ6ZyA6KaB6YeN5paw6K6+572u5LiA6YGN5pWw5o2uKVxyXG4gICAgICogQHBhcmFtIGl0ZW1EYXRhTGlzdCBpdGVt5pWw5o2u5YiX6KGoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREYXRhKGl0ZW1EYXRhTGlzdDogQXJyYXk8YW55Pikge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0ID0gaXRlbURhdGFMaXN0LnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvKirorqHnrpfliJfooajnmoTlkITpobnlj4LmlbAgKi9cclxuICAgIHByaXZhdGUgY291bnRMaXN0UGFyYW0oKSB7XHJcbiAgICAgICAgbGV0IGRhdGFMZW4gPSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmNvbnRlbnQucGFyZW50LndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gZGF0YUxlbiAqIHRoaXMuaXRlbUhlaWdodCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICsgMjsgLy/orqHnrpfliJvlu7rnmoRpdGVt5a6e5L6L5pWw6YeP77yM5q+U5b2T5YmNc2Nyb2xsVmlld+WuueWZqOiDveaUvuS4i+eahGl0ZW3mlbDph4/lho3liqDkuIoy5LiqXHJcbiAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZOyAvL+iuoeeul2J1ZmZlclpvbmXvvIxpdGVt55qE5pi+56S66IyD5Zu0XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVWO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gZGF0YUxlbiAqIHRoaXMuaXRlbVdpZHRoICsgKGRhdGFMZW4gLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSkgKyAyO1xyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51ZHBhdGVIO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodCArIHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVggPiB0aGlzLmNvbnRlbnQud2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfbGVmdCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX3JpZ2h0ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ19sZWZ05oiWcGFkZGluZ19yaWdodOi/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQud2lkdGggLSB0aGlzLnBhZGRpbmdfbGVmdCAtIHRoaXMucGFkZGluZ19yaWdodCkgLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkUm93ID0gTWF0aC5jZWlsKGRhdGFMZW4gLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IHRoaXMuZ3JpZFJvdyAqIHRoaXMuaXRlbUhlaWdodCArICh0aGlzLmdyaWRSb3cgLSAxKSAqIHRoaXMuc3BhY2VZICsgdGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b207XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICogdGhpcy5ncmlkQ29sICsgdGhpcy5ncmlkQ29sICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGdW4gPSB0aGlzLnVwZGF0ZUdyaWRfVjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy52ZXJ0aWNhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy/orqHnrpfpq5jpl7TpmpRcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbSArIHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZID4gdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ190b3AgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19idXR0b20gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJwYWRkaW5nX3RvcOaIlnBhZGRpbmdfYnV0dG9t6L+H5aSnXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguZmxvb3IoKHRoaXMuY29udGVudC5oZWlnaHQgLSB0aGlzLnBhZGRpbmdfdG9wIC0gdGhpcy5wYWRkaW5nX2J1dHRvbSkgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbCA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuZ3JpZENvbCAqIHRoaXMuaXRlbVdpZHRoICsgKHRoaXMuZ3JpZENvbCAtIDEpICogdGhpcy5zcGFjZVggKyB0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICogdGhpcy5ncmlkUm93ICsgdGhpcy5ncmlkUm93ICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvIDIgKyB0aGlzLml0ZW1XaWR0aCAvIDIgKyB0aGlzLnNwYWNlWDtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX0g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rliJfooaggXHJcbiAgICAgKiBAcGFyYW0gc3RhcnRJbmRleCDotbflp4vmmL7npLrnmoTmlbDmja7ntKLlvJUgMOihqOekuuesrOS4gOmhuVxyXG4gICAgICogQHBhcmFtIG9mZnNldCAgICAgc2Nyb2xsVmlld+WBj+enu+mHj1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZUxpc3Qoc3RhcnRJbmRleDogbnVtYmVyLCBvZmZzZXQ6IGNjLlZlYzIpIHtcclxuICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA+IOiZmuaLn+WIl+ihqOmVv+W6pu+8jCDliKDpmaTmnIDmnKvlsL7lh6DkuKrmlbDmja7ml7bvvIzliJfooajpnIDopoHph43nva7kvY3nva7liLBzY3JvbGxWaWV35pyA5bqV56uvXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA+IHRoaXMuc3Bhd25Db3VudCAmJiAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCAtIDEpID49IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gdGhpcy5zcGF3bkNvdW50O1xyXG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0TWF4U2Nyb2xsT2Zmc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA8PSDomZrmi5/liJfooajplb/luqbvvIwg6ZqQ6JeP5aSa5L2Z55qE6Jma5ouf5YiX6KGo6aG5IFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIDw9IHRoaXMuc3Bhd25Db3VudCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zcGF3bkNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV5Zyo5pWw5o2u6IyD5Zu05YaF77yM5YiZaXRlbeWunuS+i+aYvuekuuWHuuadpVxyXG4gICAgICAgICAgICBpZiAoaSArIHN0YXJ0SW5kZXggPCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1MaXN0W2ldID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5nZXRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV6LaF6L+H5LqG5pWw5o2u6IyD5Zu077yM5YiZaXRlbeWunuS+i+makOiXj+i1t+adpVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5a6e5L6L5pWw6YePID4g6ZyA6KaB5pi+56S655qE5pWw5o2u6YePXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdC5sZW5ndGggPiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gc3RhcnRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdC5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1Qb29sLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpICsgc3RhcnRJbmRleDtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaSArIHN0YXJ0SW5kZXhdO1xyXG4gICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAvL+WboOS4umNvbnRlbnTnmoTplJrngrlY5pivMO+8jOaJgOS7pWl0ZW3nmoR45YC85pivY29udGVudC53aXRoLzLooajnpLrlsYXkuK3vvIzplJrngrlZ5pivMe+8jOaJgOS7pWl0ZW3nmoR55YC85LuOY29udGVudOmhtumDqOWQkeS4i+aYrzDliLDotJ/ml6DnqbfjgILmiYDku6VpdGVtLnk9IC1pdGVtLmhlaWdodC8y5pe277yM5piv5ZyoY29udGVudOeahOmhtumDqOOAglxyXG4gICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbih0aGlzLmNvbnRlbnQud2lkdGggLyAyLCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5zcGFjZVkgKiAoaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBpICsgc3RhcnRJbmRleCkgKyB0aGlzLnNwYWNlWCAqIChpICsgc3RhcnRJbmRleCkgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLXRoaXMuY29udGVudC5oZWlnaHQgLyAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSAoaSArIHN0YXJ0SW5kZXgpICUgdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2wgPSBNYXRoLmZsb29yKChpICsgc3RhcnRJbmRleCkgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBjb2wpICsgdGhpcy5zcGFjZVggKiBjb2wgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIHJvdykgLSB0aGlzLnNwYWNlWSAqIHJvdyAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W5LiA5Liq5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGdldEl0ZW0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVBvb2wubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNjLmluc3RhbnRpYXRlKHRoaXMuaXRlbVJlbmRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbVBvb2wucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmJTY3JvbGxpbmcgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyICs9IGR0O1xyXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVyIDwgdGhpcy51cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSAwO1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRnVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5iU2Nyb2xsaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNVcCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiK5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4iui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIvmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiL5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4i+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA+IGJ1ZmZlclpvbmUgJiYgaXRlbS55IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2J1dHRvbSA+IC10aGlzLmNvbnRlbnQuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdWRwYXRlSCgpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNSaWdodCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnggPiB0aGlzLmxhc3RDb250ZW50UG9zWDtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpICogaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9WKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1VwID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueSA+IHRoaXMubGFzdENvbnRlbnRQb3NZO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpICogKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCkgKiB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHsvL2l0ZW3kuIvmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiL6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4iuaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIrmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiK6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS55ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3RvcCA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0Q29udGVudFBvc1kgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKue9keagvOawtOW5s+aOkuWIlyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkX0goKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpICogdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5ZpdGVt5Zyoc2Nyb2xsVmlld+eahOWxgOmDqOWdkOaghyAqL1xyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvbkluVmlldyhpdGVtKSB7XHJcbiAgICAgICAgbGV0IHdvcmxkUG9zID0gaXRlbS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuY29udmVydFRvTm9kZVNwYWNlQVIod29ybGRQb3MpO1xyXG4gICAgICAgIHJldHVybiB2aWV3UG9zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluWIl+ihqOaVsOaNriAqL1xyXG4gICAgcHVibGljIGdldExpc3REYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1EYXRhTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWinuWKoOS4gOmhueaVsOaNruWIsOWIl+ihqOeahOacq+WwvlxyXG4gICAgICogQHBhcmFtIGRhdGEg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnB1c2goZGF0YSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajmjIflrprkvY3nva5cclxuICAgICAqIEBwYXJhbSBpbmRleCAgIOS9jee9ru+8jDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtQXQoaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsIHx8IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9PSBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5zcGxpY2UoaW5kZXgsIDEsIGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTkuIDpobnmlbDmja5cclxuICAgICAqIEBwYXJhbSBpbmRleCDliKDpmaTpobnnmoTkvY3nva4gLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pS55Y+Y5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva4sMOihqOekuuesrDHpoblcclxuICAgICAqIEBwYXJhbSBkYXRhICDmm7/mjaLnmoTmlbDmja5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZUl0ZW0oaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bnrKzkuIDkuKpJdGVt55qE5L2N572uICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgLy/mmL7npLrliJfooajlrp7kvovkuLow5LiqXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoMCwgbmV3IGNjLlZlYzIoMCwgMCkpO1xyXG4gICAgICAgICAgICAvL+aYvuekuuWIl+ihqOeahOWunuS+i+S4jeS4ujDkuKrvvIzliJnpnIDopoHph43mlrDmjpLliJdpdGVt5a6e5L6L5pWw57uEXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvdW50TGlzdFBhcmFtKCk7XHJcblxyXG4gICAgICAgICAgICAvL+iOt+WPluesrOS4gOS4qml0ZW3lrp7kvovpnIDopoHmmL7npLrnmoTmlbDmja7ntKLlvJVcclxuICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSB0aGlzLml0ZW1MaXN0WzBdLmdldENvbXBvbmVudChJdGVtUmVuZGVyKS5pdGVtSW5kZXg7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ICs9IChzdGFydEluZGV4ICsgdGhpcy5zcGF3bkNvdW50KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9nZXRTY3JvbGxPZmZzZXQoKeWSjHNjcm9sbFRvT2Zmc2V0KCnnmoR45YC85piv55u45Y+N55qEXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQ6IGNjLlZlYzIgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0U2Nyb2xsT2Zmc2V0KCk7XHJcbiAgICAgICAgICAgIG9mZnNldC54ID0gLSBvZmZzZXQueDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGlzdChzdGFydEluZGV4LCBvZmZzZXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirplIDmr4EgKi9cclxuICAgIHB1YmxpYyBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy/muIXnkIbliJfooajpoblcclxuICAgICAgICBsZXQgbGVuID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1MaXN0W2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtTGlzdC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5a+56LGh5rGgXHJcbiAgICAgICAgbGVuID0gdGhpcy5pdGVtUG9vbC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1Qb29sW2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtUG9vbC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo5pWw5o2uXHJcbiAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG4iXX0=
//------QC-SOURCE-SPLIT------
(function() {
@@ -15156,7 +14800,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js';
+ var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -15164,171 +14808,28 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer');
-// Script/TmoTiledLayer.js
+cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1');
+// migration/use_v2.1-2.2.1_cc.Toggle_event_1.js
"use strict";
-exports.__esModule = true;
-exports["default"] = void 0;
-// Learn cc.Class:
-// - https://docs.cocos.com/creator/manual/en/scripting/class.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+/*
+ * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.
+ * You do not need to manually add this script in any other project.
+ * If you don't use cc.Toggle in your project, you can delete this script directly.
+ * If your project is hosted in VCS such as git, submit this script together.
+ *
+ * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,
+ * 你无需在任何其它项目中手动添加此脚本。
+ * 如果你的项目中没用到 Toggle,可直接删除该脚本。
+ * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。
+ */
-var _mat4_temp = cc.mat4();
-var _vec2_temp = cc.v2();
-var _vec2_temp2 = cc.v2();
-var _default = cc.Class({
- "extends": cc.TiledLayer,
- // 此处修改 增加firstTmxLayer参数
- _init: function _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {
- // 修改结束
- this._cullingDirty = true;
- this._layerInfo = layerInfo;
- this._mapInfo = mapInfo;
- // 此处修改 保存firstTmxLayer参数
- this._firstTmxLayer = firstTmxLayer;
- this._tiledMap = tiledMap;
- // 修改结束
-
- var size = layerInfo._layerSize;
-
- // layerInfo
- this._layerName = layerInfo.name;
- this._tiles = layerInfo._tiles;
- this._properties = layerInfo.properties;
- this._layerSize = size;
- this._minGID = layerInfo._minGID;
- this._maxGID = layerInfo._maxGID;
- this._opacity = layerInfo._opacity;
- this._renderOrder = mapInfo.renderOrder;
- this._staggerAxis = mapInfo.getStaggerAxis();
- this._staggerIndex = mapInfo.getStaggerIndex();
- this._hexSideLength = mapInfo.getHexSideLength();
- this._animations = mapInfo.getTileAnimations();
-
- // tilesets
- this._tilesets = tilesets;
- // textures
- this._textures = textures;
- // grid texture
- this._texGrids = texGrids;
-
- // mapInfo
- this._layerOrientation = mapInfo.orientation;
- this._mapTileSize = mapInfo.getTileSize();
- var maptw = this._mapTileSize.width;
- var mapth = this._mapTileSize.height;
- var layerW = this._layerSize.width;
- var layerH = this._layerSize.height;
- if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {
- // handle hex map
- var TiledMap = cc.TiledMap;
- var StaggerAxis = TiledMap.StaggerAxis;
- var StaggerIndex = TiledMap.StaggerIndex;
- var width = 0,
- height = 0;
- this._odd_even = this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD ? 1 : -1;
- if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {
- this._diffX1 = (maptw - this._hexSideLength) / 2;
- this._diffY1 = 0;
- height = mapth * (layerH + 0.5);
- width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);
- } else {
- this._diffX1 = 0;
- this._diffY1 = (mapth - this._hexSideLength) / 2;
- width = maptw * (layerW + 0.5);
- height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);
- }
- this.node.setContentSize(width, height);
- } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {
- var wh = layerW + layerH;
- this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);
- } else {
- this.node.setContentSize(layerW * maptw, layerH * mapth);
- }
-
- // offset (after layer orientation is set);
- this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);
- this._useAutomaticVertexZ = false;
- this._vertexZvalue = 0;
- this._syncAnchorPoint();
- this._prepareToRender();
- },
- _updateCulling: function _updateCulling() {
- if (CC_EDITOR) {
- this.enableCulling(false);
- } else if (this._enableCulling) {
- // 此处修改 若不为首个layer 直接复用firstLayer的结果
- // this._firstTmxLayer不为空时 表示当前layer不是首个layer
- var firstTmxLayer = this._firstTmxLayer;
- if (!!firstTmxLayer) {
- this._cullingRect = firstTmxLayer._cullingRect;
- this._cullingDirty = firstTmxLayer._cacheCullingDirty;
- return;
- }
- // 修改结束
-
- this.node._updateWorldMatrix();
- cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);
- var rect = cc.visibleRect;
- var camera = cc.Camera.findCamera(this.node);
- if (camera) {
- _vec2_temp.x = 0;
- _vec2_temp.y = 0;
- _vec2_temp2.x = _vec2_temp.x + rect.width;
- _vec2_temp2.y = _vec2_temp.y + rect.height;
- camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);
- camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);
- cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);
- cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);
- this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);
- // 此处修改 若为首个layer 缓存_cullingDirty。
- // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果
- if (!firstTmxLayer) {
- this._cacheCullingDirty = this._cullingDirty;
- }
- // 修改结束
- }
- }
- },
- _traverseAllGrid: function _traverseAllGrid() {
- var tiles = this._tiles;
- var texGrids = this._texGrids;
- var tilesetIndexArr = this._tilesetIndexArr;
- var tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};
- var TiledMap = cc.TiledMap;
- var TileFlag = TiledMap.TileFlag;
- var FLIPPED_MASK = TileFlag.FLIPPED_MASK;
- var singleTexture = this._tiledMap.isSingleTexture();
- tilesetIndexArr.length = 0;
- for (var i = 0; i < tiles.length; i++) {
- var gid = tiles[i];
- if (gid === 0) continue;
- gid = (gid & FLIPPED_MASK) >>> 0;
- var grid = texGrids[gid];
- if (!grid) {
- cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", gid);
- continue;
- }
- var tilesetIdx = grid.texId;
- if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;
- tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;
- tilesetIndexArr.push(tilesetIdx);
-
- // 此处修改 当只有一个图集时 可以直接停止遍历
- if (singleTexture) {
- break;
- }
- // 修改结束
- }
- }
-});
-exports["default"] = _default;
-module.exports = exports["default"];
+if (cc.Toggle) {
+ // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code
+ // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件
+ cc.Toggle._triggerEventInScript_isChecked = true;
+}
cc._RF.pop();
}
@@ -15341,7 +14842,504 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJfZGVmYXVsdCIsIkNsYXNzIiwiVGlsZWRMYXllciIsIl9pbml0IiwibGF5ZXJJbmZvIiwibWFwSW5mbyIsInRpbGVzZXRzIiwidGV4dHVyZXMiLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiZmlyc3RUbXhMYXllciIsIl9jdWxsaW5nRGlydHkiLCJfbGF5ZXJJbmZvIiwiX21hcEluZm8iLCJfZmlyc3RUbXhMYXllciIsIl90aWxlZE1hcCIsInNpemUiLCJfbGF5ZXJTaXplIiwiX2xheWVyTmFtZSIsIm5hbWUiLCJfdGlsZXMiLCJfcHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJfbWluR0lEIiwiX21heEdJRCIsIl9vcGFjaXR5IiwiX3JlbmRlck9yZGVyIiwicmVuZGVyT3JkZXIiLCJfc3RhZ2dlckF4aXMiLCJnZXRTdGFnZ2VyQXhpcyIsIl9zdGFnZ2VySW5kZXgiLCJnZXRTdGFnZ2VySW5kZXgiLCJfaGV4U2lkZUxlbmd0aCIsImdldEhleFNpZGVMZW5ndGgiLCJfYW5pbWF0aW9ucyIsImdldFRpbGVBbmltYXRpb25zIiwiX3RpbGVzZXRzIiwiX3RleHR1cmVzIiwiX3RleEdyaWRzIiwiX2xheWVyT3JpZW50YXRpb24iLCJvcmllbnRhdGlvbiIsIl9tYXBUaWxlU2l6ZSIsImdldFRpbGVTaXplIiwibWFwdHciLCJ3aWR0aCIsIm1hcHRoIiwiaGVpZ2h0IiwibGF5ZXJXIiwibGF5ZXJIIiwiVGlsZWRNYXAiLCJPcmllbnRhdGlvbiIsIkhFWCIsIlN0YWdnZXJBeGlzIiwiU3RhZ2dlckluZGV4IiwiX29kZF9ldmVuIiwiU1RBR0dFUklOREVYX09ERCIsIlNUQUdHRVJBWElTX1giLCJfZGlmZlgxIiwiX2RpZmZZMSIsIk1hdGgiLCJmbG9vciIsIm5vZGUiLCJzZXRDb250ZW50U2l6ZSIsIklTTyIsIndoIiwiX29mZnNldCIsIm9mZnNldCIsIngiLCJ5IiwiX3VzZUF1dG9tYXRpY1ZlcnRleFoiLCJfdmVydGV4WnZhbHVlIiwiX3N5bmNBbmNob3JQb2ludCIsIl9wcmVwYXJlVG9SZW5kZXIiLCJfdXBkYXRlQ3VsbGluZyIsIkNDX0VESVRPUiIsImVuYWJsZUN1bGxpbmciLCJfZW5hYmxlQ3VsbGluZyIsIl9jdWxsaW5nUmVjdCIsIl9jYWNoZUN1bGxpbmdEaXJ0eSIsIl91cGRhdGVXb3JsZE1hdHJpeCIsIk1hdDQiLCJpbnZlcnQiLCJfd29ybGRNYXRyaXgiLCJyZWN0IiwidmlzaWJsZVJlY3QiLCJjYW1lcmEiLCJDYW1lcmEiLCJmaW5kQ2FtZXJhIiwiZ2V0U2NyZWVuVG9Xb3JsZFBvaW50IiwiVmVjMiIsInRyYW5zZm9ybU1hdDQiLCJfdXBkYXRlVmlld1BvcnQiLCJfdHJhdmVyc2VBbGxHcmlkIiwidGlsZXMiLCJ0aWxlc2V0SW5kZXhBcnIiLCJfdGlsZXNldEluZGV4QXJyIiwidGlsZXNldEluZGV4VG9BcnJJbmRleCIsIl90aWxlc2V0SW5kZXhUb0FyckluZGV4IiwiVGlsZUZsYWciLCJGTElQUEVEX01BU0siLCJzaW5nbGVUZXh0dXJlIiwiaXNTaW5nbGVUZXh0dXJlIiwibGVuZ3RoIiwiaSIsImdpZCIsImdyaWQiLCJlcnJvciIsInRpbGVzZXRJZHgiLCJ0ZXhJZCIsInVuZGVmaW5lZCIsInB1c2giLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFJLEVBQUU7QUFDMUIsSUFBSUMsVUFBVSxHQUFHRixFQUFFLENBQUNHLEVBQUUsRUFBRTtBQUN4QixJQUFJQyxXQUFXLEdBQUdKLEVBQUUsQ0FBQ0csRUFBRSxFQUFFO0FBQUMsSUFBQUUsUUFBQSxHQUVY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QUFBL0csUUFBQTtBQUFBZ0gsTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxubGV0IF9tYXQ0X3RlbXAgPSBjYy5tYXQ0KCk7XHJcbmxldCBfdmVjMl90ZW1wID0gY2MudjIoKTtcclxubGV0IF92ZWMyX3RlbXAyID0gY2MudjIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLlRpbGVkTGF5ZXIsXHJcblxyXG4gICAgLy8g5q2k5aSE5L+u5pS5IOWinuWKoGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgIF9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGlsZWRNYXAsIGZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2xheWVySW5mbyA9IGxheWVySW5mbztcclxuICAgICAgICB0aGlzLl9tYXBJbmZvID0gbWFwSW5mbztcclxuICAgICAgICAvLyDmraTlpITkv67mlLkg5L+d5a2YZmlyc3RUbXhMYXllcuWPguaVsFxyXG4gICAgICAgIHRoaXMuX2ZpcnN0VG14TGF5ZXIgPSBmaXJzdFRteExheWVyO1xyXG4gICAgICAgIHRoaXMuX3RpbGVkTWFwID0gdGlsZWRNYXA7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgIGxldCBzaXplID0gbGF5ZXJJbmZvLl9sYXllclNpemU7XHJcblxyXG4gICAgICAgIC8vIGxheWVySW5mb1xyXG4gICAgICAgIHRoaXMuX2xheWVyTmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG4gICAgICAgIHRoaXMuX3RpbGVzID0gbGF5ZXJJbmZvLl90aWxlcztcclxuICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gbGF5ZXJJbmZvLnByb3BlcnRpZXM7XHJcbiAgICAgICAgdGhpcy5fbGF5ZXJTaXplID0gc2l6ZTtcclxuICAgICAgICB0aGlzLl9taW5HSUQgPSBsYXllckluZm8uX21pbkdJRDtcclxuICAgICAgICB0aGlzLl9tYXhHSUQgPSBsYXllckluZm8uX21heEdJRDtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gbGF5ZXJJbmZvLl9vcGFjaXR5O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlck9yZGVyID0gbWFwSW5mby5yZW5kZXJPcmRlcjtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VyQXhpcyA9IG1hcEluZm8uZ2V0U3RhZ2dlckF4aXMoKTtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VySW5kZXggPSBtYXBJbmZvLmdldFN0YWdnZXJJbmRleCgpO1xyXG4gICAgICAgIHRoaXMuX2hleFNpZGVMZW5ndGggPSBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKTtcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zID0gbWFwSW5mby5nZXRUaWxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyB0aWxlc2V0c1xyXG4gICAgICAgIHRoaXMuX3RpbGVzZXRzID0gdGlsZXNldHM7XHJcbiAgICAgICAgLy8gdGV4dHVyZXNcclxuICAgICAgICB0aGlzLl90ZXh0dXJlcyA9IHRleHR1cmVzO1xyXG4gICAgICAgIC8vIGdyaWQgdGV4dHVyZVxyXG4gICAgICAgIHRoaXMuX3RleEdyaWRzID0gdGV4R3JpZHM7XHJcblxyXG4gICAgICAgIC8vIG1hcEluZm9cclxuICAgICAgICB0aGlzLl9sYXllck9yaWVudGF0aW9uID0gbWFwSW5mby5vcmllbnRhdGlvbjtcclxuICAgICAgICB0aGlzLl9tYXBUaWxlU2l6ZSA9IG1hcEluZm8uZ2V0VGlsZVNpemUoKTtcclxuXHJcbiAgICAgICAgbGV0IG1hcHR3ID0gdGhpcy5fbWFwVGlsZVNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IG1hcHRoID0gdGhpcy5fbWFwVGlsZVNpemUuaGVpZ2h0O1xyXG4gICAgICAgIGxldCBsYXllclcgPSB0aGlzLl9sYXllclNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IGxheWVySCA9IHRoaXMuX2xheWVyU2l6ZS5oZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5IRVgpIHtcclxuICAgICAgICAgICAgLy8gaGFuZGxlIGhleCBtYXBcclxuICAgICAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckF4aXMgPSBUaWxlZE1hcC5TdGFnZ2VyQXhpcztcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckluZGV4ID0gVGlsZWRNYXAuU3RhZ2dlckluZGV4O1xyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSAwLCBoZWlnaHQgPSAwO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb2RkX2V2ZW4gPSAodGhpcy5fc3RhZ2dlckluZGV4ID09PSBTdGFnZ2VySW5kZXguU1RBR0dFUklOREVYX09ERCkgPyAxIDogLTE7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGFnZ2VyQXhpcyA9PT0gU3RhZ2dlckF4aXMuU1RBR0dFUkFYSVNfWCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gKG1hcHR3IC0gdGhpcy5faGV4U2lkZUxlbmd0aCkgLyAyO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlkxID0gMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IG1hcHRoICogKGxheWVySCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IChtYXB0dyArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllclcgLyAyKSArIG1hcHR3ICogKGxheWVyVyAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IChtYXB0aCAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHdpZHRoID0gbWFwdHcgKiAobGF5ZXJXICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IChtYXB0aCArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllckggLyAyKSArIG1hcHRoICogKGxheWVySCAlIDIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xheWVyT3JpZW50YXRpb24gPT09IGNjLlRpbGVkTWFwLk9yaWVudGF0aW9uLklTTykge1xyXG4gICAgICAgICAgICBsZXQgd2ggPSBsYXllclcgKyBsYXllckg7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZShtYXB0dyAqIDAuNSAqIHdoLCBtYXB0aCAqIDAuNSAqIHdoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobGF5ZXJXICogbWFwdHcsIGxheWVySCAqIG1hcHRoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG9mZnNldCAoYWZ0ZXIgbGF5ZXIgb3JpZW50YXRpb24gaXMgc2V0KTtcclxuICAgICAgICB0aGlzLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG4gICAgICAgIHRoaXMuX3VzZUF1dG9tYXRpY1ZlcnRleFogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl92ZXJ0ZXhadmFsdWUgPSAwO1xyXG4gICAgICAgIHRoaXMuX3N5bmNBbmNob3JQb2ludCgpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVUb1JlbmRlcigpO1xyXG4gICAgfSxcclxuICAgIF91cGRhdGVDdWxsaW5nKCkge1xyXG4gICAgICAgIGlmIChDQ19FRElUT1IpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVDdWxsaW5nKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2VuYWJsZUN1bGxpbmcpIHtcclxuICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4jeS4uummluS4qmxheWVyIOebtOaOpeWkjeeUqGZpcnN0TGF5ZXLnmoTnu5PmnpxcclxuICAgICAgICAgICAgLy8gdGhpcy5fZmlyc3RUbXhMYXllcuS4jeS4uuepuuaXtiDooajnpLrlvZPliY1sYXllcuS4jeaYr+mmluS4qmxheWVyXHJcbiAgICAgICAgICAgIGxldCBmaXJzdFRteExheWVyID0gdGhpcy5fZmlyc3RUbXhMYXllcjtcclxuICAgICAgICAgICAgaWYgKCEhZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VsbGluZ1JlY3QgPSBmaXJzdFRteExheWVyLl9jdWxsaW5nUmVjdDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdEaXJ0eSA9IGZpcnN0VG14TGF5ZXIuX2NhY2hlQ3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ub2RlLl91cGRhdGVXb3JsZE1hdHJpeCgpO1xyXG4gICAgICAgICAgICBjYy5NYXQ0LmludmVydChfbWF0NF90ZW1wLCB0aGlzLm5vZGUuX3dvcmxkTWF0cml4KTtcclxuICAgICAgICAgICAgbGV0IHJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuICAgICAgICAgICAgbGV0IGNhbWVyYSA9IGNjLkNhbWVyYS5maW5kQ2FtZXJhKHRoaXMubm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChjYW1lcmEpIHtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAueCA9IDA7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnkgPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueCA9IF92ZWMyX3RlbXAueCArIHJlY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wMi55ID0gX3ZlYzJfdGVtcC55ICsgcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjYW1lcmEuZ2V0U2NyZWVuVG9Xb3JsZFBvaW50KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXAsIF9tYXQ0X3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAyLCBfdmVjMl90ZW1wMiwgX21hdDRfdGVtcCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmlld1BvcnQoX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wLnksIF92ZWMyX3RlbXAyLnggLSBfdmVjMl90ZW1wLngsIF92ZWMyX3RlbXAyLnkgLSBfdmVjMl90ZW1wLnkpO1xyXG4gICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4uummluS4qmxheWVyIOe8k+WtmF9jdWxsaW5nRGlydHnjgIJcclxuICAgICAgICAgICAgICAgIC8vIF9jdWxsaW5nRGlydHnkvJrlnKjloavlhYXmuLLmn5PmlbDmja7lkI7ooqvmlLnkuLpmYWxzZSDmiYDku6XpnIDopoHnvJPlrZjov5nph4znmoTnu5PmnpxcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlQ3VsbGluZ0RpcnR5ID0gdGhpcy5fY3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RyYXZlcnNlQWxsR3JpZCAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzID0gdGhpcy5fdGlsZXM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleEFyciA9IHRoaXMuX3RpbGVzZXRJbmRleEFycjtcclxuICAgICAgICBsZXQgdGlsZXNldEluZGV4VG9BcnJJbmRleCA9IHRoaXMuX3RpbGVzZXRJbmRleFRvQXJySW5kZXggPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICBjb25zdCBUaWxlRmxhZyA9IFRpbGVkTWFwLlRpbGVGbGFnO1xyXG4gICAgICAgIGNvbnN0IEZMSVBQRURfTUFTSyA9IFRpbGVGbGFnLkZMSVBQRURfTUFTSztcclxuXHJcbiAgICAgICAgbGV0IHNpbmdsZVRleHR1cmUgPSB0aGlzLl90aWxlZE1hcC5pc1NpbmdsZVRleHR1cmUoKTtcclxuXHJcbiAgICAgICAgdGlsZXNldEluZGV4QXJyLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZ2lkID0gdGlsZXNbaV07XHJcbiAgICAgICAgICAgIGlmIChnaWQgPT09IDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBnaWQgPSAoKGdpZCAmIEZMSVBQRURfTUFTSykgPj4+IDApO1xyXG4gICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzW2dpZF07XHJcbiAgICAgICAgICAgIGlmICghZ3JpZCkge1xyXG4gICAgICAgICAgICAgICAgY2MuZXJyb3IoXCJDQ1RpbGVkTGF5ZXI6X3RyYXZlcnNlQWxsR3JpZCBncmlkIGlzIG51bGwsIGdpZCBpczpcIiwgZ2lkKTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCB0aWxlc2V0SWR4ID0gZ3JpZC50ZXhJZDtcclxuICAgICAgICAgICAgaWYgKHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gIT09IHVuZGVmaW5lZCkgY29udGludWU7XHJcbiAgICAgICAgICAgIHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gPSB0aWxlc2V0SW5kZXhBcnIubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhBcnIucHVzaCh0aWxlc2V0SWR4KTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDlvZPlj6rmnInkuIDkuKrlm77pm4bml7Yg5Y+v5Lul55u05o6l5YGc5q2i6YGN5Y6GXHJcbiAgICAgICAgICAgIGlmIChzaW5nbGVUZXh0dXJlKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG59KTtcclxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQU0sRUFBRTtFQUNYO0VBQ0E7RUFDQUQsRUFBRSxDQUFDQyxNQUFNLENBQUNDLCtCQUErQixHQUFHLElBQUk7QUFDcEQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/prop/Adhesive.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '5fc5bz1aV5PKIBJQh99jpm2', 'Adhesive');
+// Script/prop/Adhesive.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var Adhesive = /** @class */ (function (_super) {
+ __extends(Adhesive, _super);
+ function Adhesive() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 60;
+ _this.pos = { x: 0, y: 0 };
+ return _this;
+ }
+ Adhesive.prototype.onLoad = function () {
+ this.pos.x = this.pos.y = 0;
+ this.target = null;
+ };
+ Adhesive.prototype.start = function () {
+ };
+ Adhesive.prototype.init = function (node) {
+ this.pos.x = node.x - this.node.x;
+ this.pos.y = node.y - this.node.y;
+ this.target = node;
+ };
+ Adhesive.prototype.remove = function () {
+ var _this = this;
+ this.target = null;
+ for (var j = 0; j < this.node.children.length; j++) {
+ if (this.node.children[j].active == true) {
+ this.node.children[j].getComponent(sp.Skeleton).setAnimation(0, "animation", false);
+ }
+ }
+ setTimeout(function () {
+ _this.node.active = false;
+ }, 2000);
+ };
+ Adhesive.prototype.update = function (dt) {
+ if (this.target != null) {
+ this.node.x = this.target.x - this.pos.x;
+ this.node.y = this.target.y - this.pos.y;
+ }
+ };
+ Adhesive = __decorate([
+ ccclass
+ ], Adhesive);
+ return Adhesive;
+}(cc.Component));
+exports.default = Adhesive;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxBZGhlc2l2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVDQztRQXJDRyxVQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUcsR0FBUSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDOztJQW9DNUIsQ0FBQztJQWpDRyx5QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELHVCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5QkFBTSxHQUFOO1FBQUEsaUJBVUM7UUFURyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQzNDLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQzthQUNyRjtTQUNKO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFHRCx5QkFBTSxHQUFOLFVBQVEsRUFBRTtRQUNOLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBdENnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBdUM1QjtJQUFELGVBQUM7Q0F2Q0QsQUF1Q0MsQ0F2Q3FDLEVBQUUsQ0FBQyxTQUFTLEdBdUNqRDtrQkF2Q29CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkaGVzaXZlIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcG9zOiBhbnkgPSB7eDogMCwgeTogMH07XHJcbiAgICB0YXJnZXQ6IGFueTtcclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLnBvcy54ID0gdGhpcy5wb3MueSA9IDA7XHJcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChub2RlKXtcclxuICAgICAgICB0aGlzLnBvcy54ID0gbm9kZS54IC0gdGhpcy5ub2RlLng7XHJcbiAgICAgICAgdGhpcy5wb3MueSA9IG5vZGUueSAtIHRoaXMubm9kZS55O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbm9kZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoKXtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XHJcbiAgICAgICAgZm9yKGxldCBqID0wOyBqPHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGg7IGorKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5jaGlsZHJlbltqXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuY2hpbGRyZW5bal0uZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMCxcImFuaW1hdGlvblwiLGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDIwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgaWYodGhpcy50YXJnZXQgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGhpcy50YXJnZXQueCAtIHRoaXMucG9zLng7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGhpcy50YXJnZXQueSAtIHRoaXMucG9zLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_math_util.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '997fc58y39OFLflh6T58fZD', 'lq_math_util');
+// Script/lq_base/util/lq_math_util.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQMathUtil = void 0;
+var LQMathUtil = /** @class */ (function () {
+ function LQMathUtil() {
+ }
+ LQMathUtil.random = function (min, max) {
+ if (min === max) {
+ return min;
+ }
+ else if (min < max) {
+ return Math.random() * (max - min) + min;
+ }
+ else {
+ return Math.random() * (min - max) + max;
+ }
+ };
+ LQMathUtil.random_int = function (min, max) {
+ return Math.floor(this.random(min, max));
+ };
+ LQMathUtil.get_radians = function (pos, target_pos) {
+ var r = Math.atan2(target_pos.y - pos.y, target_pos.x - pos.x);
+ return r > 0 ? r : r + 6.28;
+ };
+ LQMathUtil.intersects_rect = function (r1, r2) {
+ return Math.abs(r1.x - r2.x) < r1.half_width + r2.half_width && Math.abs(r1.y - r2.y) < r1.half_height + r2.half_height;
+ };
+ LQMathUtil.intersects_point_rect = function (p, r) {
+ return (p.x > r.x - r.width * 0.5) && (p.x < r.x + r.width * 0.5) && (p.y > r.y - r.height * 0.5) && (p.y < r.y + r.height * 0.5);
+ };
+ LQMathUtil.intersects_point_circle = function (p1, p2, r) {
+ return p1.sub(p2).magSqr() < r * r;
+ };
+ LQMathUtil.intersects_circle = function (p1, r1, p2, r2) {
+ return p1.sub(p2).mag() < r1 + r2;
+ };
+ LQMathUtil.intersects_circle_rect = function (p, r, rect) {
+ var relative_x = p.x - rect.x;
+ var relative_y = p.y - rect.y;
+ var dx = Math.min(relative_x, rect.half_width);
+ var dx1 = Math.max(dx, -rect.half_width);
+ var dy = Math.min(relative_y, rect.half_height);
+ var dy1 = Math.max(dy, -rect.half_height);
+ return (dx1 - relative_x) * (dx1 - relative_x) + (dy1 - relative_y) * (dy1 - relative_y) <= r * r;
+ };
+ return LQMathUtil;
+}());
+exports.LQMathUtil = LQMathUtil;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9tYXRoX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7SUFBQTtJQTZDQSxDQUFDO0lBNUNpQixpQkFBTSxHQUFwQixVQUFxQixHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUM1QzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVhLHFCQUFVLEdBQXhCLFVBQXlCLEdBQVcsRUFBRSxHQUFXO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFYSxzQkFBVyxHQUF6QixVQUEwQixHQUFTLEVBQUUsVUFBZ0I7UUFDakQsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVhLDBCQUFlLEdBQTdCLFVBQThCLEVBQVMsRUFBRSxFQUFTO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDNUgsQ0FBQztJQUVhLGdDQUFxQixHQUFuQyxVQUFvQyxDQUFPLEVBQUUsQ0FBUTtRQUNqRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVhLGtDQUF1QixHQUFyQyxVQUFzQyxFQUFRLEVBQUUsRUFBUSxFQUFFLENBQVM7UUFDL0QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVhLDRCQUFpQixHQUEvQixVQUFnQyxFQUFRLEVBQUUsRUFBVSxFQUFFLEVBQVEsRUFBRSxFQUFVO1FBQ3RFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFYSxpQ0FBc0IsR0FBcEMsVUFBcUMsQ0FBTyxFQUFFLENBQVMsRUFBRSxJQUFXO1FBQ2hFLElBQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0E3Q0EsQUE2Q0MsSUFBQTtBQTdDWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVBvcywgSVJlY3R9IGZyb20gXCIuLi9kYXRhL2xxX2ludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRTWF0aFV0aWwge1xyXG4gICAgcHVibGljIHN0YXRpYyByYW5kb20obWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAobWluID09PSBtYXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1pbjtcclxuICAgICAgICB9IGVsc2UgaWYgKG1pbiA8IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogKG1pbiAtIG1heCkgKyBtYXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZG9tX2ludChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKG1pbiwgbWF4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfcmFkaWFucyhwb3M6IElQb3MsIHRhcmdldF9wb3M6IElQb3MpIHtcclxuICAgICAgICBjb25zdCByID0gTWF0aC5hdGFuMih0YXJnZXRfcG9zLnkgLSBwb3MueSwgdGFyZ2V0X3Bvcy54IC0gcG9zLngpO1xyXG4gICAgICAgIHJldHVybiByID4gMCA/IHIgOiByICsgNi4yODtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGludGVyc2VjdHNfcmVjdChyMTogSVJlY3QsIHIyOiBJUmVjdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmFicyhyMS54IC0gcjIueCkgPCByMS5oYWxmX3dpZHRoICsgcjIuaGFsZl93aWR0aCAmJiBNYXRoLmFicyhyMS55IC0gcjIueSkgPCByMS5oYWxmX2hlaWdodCArIHIyLmhhbGZfaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9yZWN0KHA6IElQb3MsIHI6IElSZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChwLnggPiByLnggLSByLndpZHRoICogMC41KSAmJiAocC54IDwgci54ICsgci53aWR0aCAqIDAuNSkgJiYgKHAueSA+IHIueSAtIHIuaGVpZ2h0ICogMC41KSAmJiAocC55IDwgci55ICsgci5oZWlnaHQgKiAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9jaXJjbGUocDE6IElQb3MsIHAyOiBJUG9zLCByOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gcDEuc3ViKHAyKS5tYWdTcXIoKSA8IHIgKiByO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGUocDE6IElQb3MsIHIxOiBudW1iZXIsIHAyOiBJUG9zLCByMjogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHAxLnN1YihwMikubWFnKCkgPCByMSArIHIyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGVfcmVjdChwOiBJUG9zLCByOiBudW1iZXIsIHJlY3Q6IElSZWN0KSB7XHJcbiAgICAgICAgY29uc3QgcmVsYXRpdmVfeCA9IHAueCAtIHJlY3QueDtcclxuICAgICAgICBjb25zdCByZWxhdGl2ZV95ID0gcC55IC0gcmVjdC55O1xyXG4gICAgICAgIGNvbnN0IGR4ID0gTWF0aC5taW4ocmVsYXRpdmVfeCwgcmVjdC5oYWxmX3dpZHRoKTtcclxuICAgICAgICBjb25zdCBkeDEgPSBNYXRoLm1heChkeCwgLXJlY3QuaGFsZl93aWR0aCk7XHJcbiAgICAgICAgY29uc3QgZHkgPSBNYXRoLm1pbihyZWxhdGl2ZV95LCByZWN0LmhhbGZfaGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkeTEgPSBNYXRoLm1heChkeSwgLXJlY3QuaGFsZl9oZWlnaHQpO1xyXG4gICAgICAgIHJldHVybiAoZHgxIC0gcmVsYXRpdmVfeCkgKiAoZHgxIC0gcmVsYXRpdmVfeCkgKyAoZHkxIC0gcmVsYXRpdmVfeSkgKiAoZHkxIC0gcmVsYXRpdmVfeSkgPD0gciAqIHI7XHJcbiAgICB9XHJcbn0iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '4bd21i88J9KfoWB6fqk7oW1', 'lq_collide_config');
+// Script/lq_collide_system/lq_collide_config.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQCollideConfig = exports.LQCollideInfoList = void 0;
+var LQCollideInfoList;
+(function (LQCollideInfoList) {
+ LQCollideInfoList[LQCollideInfoList["default"] = 0] = "default";
+ LQCollideInfoList[LQCollideInfoList["role"] = 1] = "role";
+ LQCollideInfoList[LQCollideInfoList["role_bullet"] = 2] = "role_bullet";
+ LQCollideInfoList[LQCollideInfoList["enemy"] = 3] = "enemy";
+ LQCollideInfoList[LQCollideInfoList["enemy_bullet"] = 4] = "enemy_bullet";
+ LQCollideInfoList[LQCollideInfoList["prop"] = 5] = "prop";
+})(LQCollideInfoList = exports.LQCollideInfoList || (exports.LQCollideInfoList = {}));
+var LQCollideConfig = /** @class */ (function () {
+ function LQCollideConfig() {
+ }
+ LQCollideConfig.switch_auto_run = true;
+ LQCollideConfig.switch_print_log = true;
+ LQCollideConfig.switch_quad_tree = false;
+ LQCollideConfig.max_node_len = 10;
+ LQCollideConfig.per_frame = 60;
+ LQCollideConfig.max_node_level = 4;
+ LQCollideConfig.active_area_x = 0;
+ LQCollideConfig.active_area_y = 0;
+ LQCollideConfig.active_area_width = 1000;
+ LQCollideConfig.active_area_height = 1000;
+ LQCollideConfig.collide_group_map = {
+ "default": { id: 1, category: 1, index: 0, mask: 1 },
+ "role": { id: 2, category: 2, index: 1, mask: 56 },
+ "role_bullet": { id: 3, category: 4, index: 2, mask: 8 },
+ "enemy": { id: 4, category: 8, index: 3, mask: 6 },
+ "enemy_bullet": { id: 5, category: 16, index: 4, mask: 2 },
+ "prop": { id: 6, category: 32, index: 5, mask: 2 },
+ };
+ return LQCollideConfig;
+}());
+exports.LQCollideConfig = LQCollideConfig;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9jb2xsaWRlX3N5c3RlbVxcbHFfY29sbGlkZV9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLCtEQUFPLENBQUE7SUFBRSx5REFBSSxDQUFBO0lBQUUsdUVBQVcsQ0FBQTtJQUFFLDJEQUFLLENBQUE7SUFBRSx5RUFBWSxDQUFBO0lBQUUseURBQUksQ0FBQTtBQUN6RCxDQUFDLEVBRlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFFNUI7QUFFRDtJQUFBO0lBbUJBLENBQUM7SUFsQmlCLCtCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGdDQUFnQixHQUFZLElBQUksQ0FBQztJQUNqQyxnQ0FBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsNEJBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIseUJBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsOEJBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsNkJBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsaUNBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLGtDQUFrQixHQUFXLElBQUksQ0FBQztJQUNsQyxpQ0FBaUIsR0FBRztRQUM5QixTQUFTLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2xELE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7UUFDaEQsYUFBYSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztRQUN0RCxPQUFPLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDO1FBQ2hELGNBQWMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUM7UUFDeEQsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBQztLQUNuRCxDQUFBO0lBQ0wsc0JBQUM7Q0FuQkQsQUFtQkMsSUFBQTtBQW5CWSwwQ0FBZSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExRQ29sbGlkZUluZm9MaXN0IHtcclxuICAgIGRlZmF1bHQsIHJvbGUsIHJvbGVfYnVsbGV0LCBlbmVteSwgZW5lbXlfYnVsbGV0LCBwcm9wXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMUUNvbGxpZGVDb25maWcge1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfYXV0b19ydW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hfcHJpbnRfbG9nOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBzdGF0aWMgc3dpdGNoX3F1YWRfdHJlZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZW46IG51bWJlciA9IDEwO1xyXG4gICAgcHVibGljIHN0YXRpYyBwZXJfZnJhbWU6IG51bWJlciA9IDYwO1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhfbm9kZV9sZXZlbDogbnVtYmVyID0gNDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfeTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aXZlX2FyZWFfd2lkdGg6IG51bWJlciA9IDEwMDA7XHJcbiAgICBwdWJsaWMgc3RhdGljIGFjdGl2ZV9hcmVhX2hlaWdodDogbnVtYmVyID0gMTAwMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgY29sbGlkZV9ncm91cF9tYXAgPSB7XHJcbiAgICAgICAgXCJkZWZhdWx0XCI6IHtpZDogMSwgY2F0ZWdvcnk6IDEsIGluZGV4OiAwLCBtYXNrOiAxfSxcclxuICAgICAgICBcInJvbGVcIjoge2lkOiAyLCBjYXRlZ29yeTogMiwgaW5kZXg6IDEsIG1hc2s6IDU2fSxcclxuICAgICAgICBcInJvbGVfYnVsbGV0XCI6IHtpZDogMywgY2F0ZWdvcnk6IDQsIGluZGV4OiAyLCBtYXNrOiA4fSxcclxuICAgICAgICBcImVuZW15XCI6IHtpZDogNCwgY2F0ZWdvcnk6IDgsIGluZGV4OiAzLCBtYXNrOiA2fSxcclxuICAgICAgICBcImVuZW15X2J1bGxldFwiOiB7aWQ6IDUsIGNhdGVnb3J5OiAxNiwgaW5kZXg6IDQsIG1hc2s6IDJ9LFxyXG4gICAgICAgIFwicHJvcFwiOiB7aWQ6IDYsIGNhdGVnb3J5OiAzMiwgaW5kZXg6IDUsIG1hc2s6IDJ9LFxyXG4gICAgfVxyXG59Il19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_base/util/lq_platform_util.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '35875T0lsRL3rzhNkUdX4/G', 'lq_platform_util');
+// Script/lq_base/util/lq_platform_util.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQPlatformUtil = void 0;
+var lq_const_1 = require("../data/lq_const");
+var LQPlatformUtil = /** @class */ (function () {
+ function LQPlatformUtil() {
+ }
+ LQPlatformUtil.init = function () {
+ if (typeof qq !== 'undefined') {
+ this.platform_type = lq_const_1.LQPlatformType.qq;
+ }
+ else if (typeof swan !== 'undefined') {
+ this.platform_type = lq_const_1.LQPlatformType.baidu;
+ }
+ else if (typeof tt !== 'undefined') {
+ this.platform_type = lq_const_1.LQPlatformType.tt;
+ var info = tt.getSystemInfoSync();
+ switch (info.appName) {
+ case 'Toutiao':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.tt;
+ break;
+ case 'news_article_lite':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.tt_lite;
+ break;
+ case 'Douyin':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.douyin;
+ break;
+ case 'douyin_lite':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.douyin_lite;
+ break;
+ case 'PPX':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.ppx;
+ break;
+ case 'devtools':
+ this.byte_dance_type = lq_const_1.LQByteDanceType.devtools;
+ break;
+ }
+ }
+ else if (typeof qg !== 'undefined') {
+ if (!!qg.getBattle) {
+ this.platform_type = lq_const_1.LQPlatformType.oppo;
+ }
+ else {
+ this.platform_type = lq_const_1.LQPlatformType.vivo;
+ }
+ }
+ else if (typeof wx !== 'undefined') {
+ this.platform_type = lq_const_1.LQPlatformType.wx;
+ }
+ else if (typeof jsb !== 'undefined') {
+ if (cc.sys.os === cc.sys.OS_ANDROID) {
+ this.platform_type = lq_const_1.LQPlatformType.android;
+ }
+ else if (cc.sys.os === cc.sys.OS_IOS) {
+ this.platform_type = lq_const_1.LQPlatformType.ios;
+ }
+ else {
+ this.platform_type = lq_const_1.LQPlatformType.unknown;
+ }
+ }
+ else if (cc.sys.isBrowser) {
+ this.platform_type = lq_const_1.LQPlatformType.browser;
+ }
+ };
+ LQPlatformUtil.get_platform = function () {
+ return this.platform_type;
+ };
+ LQPlatformUtil.get_byte_dance = function () {
+ return this.byte_dance_type;
+ };
+ LQPlatformUtil.is_wx = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.wx;
+ };
+ LQPlatformUtil.is_tt = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.tt;
+ };
+ LQPlatformUtil.is_oppo = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.oppo;
+ };
+ LQPlatformUtil.is_vivo = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.vivo;
+ };
+ LQPlatformUtil.is_ov = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.oppo || this.platform_type === lq_const_1.LQPlatformType.vivo;
+ };
+ LQPlatformUtil.is_browser = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.browser;
+ };
+ LQPlatformUtil.is_android = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.android;
+ };
+ LQPlatformUtil.is_ios = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.ios;
+ };
+ LQPlatformUtil.is_native = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.android || this.platform_type === lq_const_1.LQPlatformType.ios;
+ };
+ LQPlatformUtil.is_qq = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.qq;
+ };
+ LQPlatformUtil.is_baidu = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.baidu;
+ };
+ LQPlatformUtil.is_kwaigame = function () {
+ return this.platform_type === lq_const_1.LQPlatformType.kwaigame;
+ };
+ return LQPlatformUtil;
+}());
+exports.LQPlatformUtil = LQPlatformUtil;
+LQPlatformUtil.init();
+if (LQPlatformUtil.is_tt()) {
+ // console.log('---------当前平台:' + LQPlatformUtil.get_byte_dance());
+}
+else {
+ // console.log('---------当前平台:' + LQPlatformUtil.get_platform());
+}
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wbGF0Zm9ybV91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRTtBQUVqRTtJQUFBO0lBNEdBLENBQUM7SUF4R2lCLG1CQUFJLEdBQWxCO1FBQ0ksSUFBSSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBYyxDQUFDLEVBQUUsQ0FBQztTQUMxQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcseUJBQWMsQ0FBQyxLQUFLLENBQUM7U0FDN0M7YUFBTSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLHlCQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsS0FBSyxTQUFTO29CQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU07Z0JBQ1YsS0FBSyxtQkFBbUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxPQUFPLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1YsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxNQUFNLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1YsS0FBSyxhQUFhO29CQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxXQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBQ1YsS0FBSyxLQUFLO29CQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxHQUFHLENBQUM7b0JBQzNDLE1BQU07Z0JBQ1YsS0FBSyxV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dUJBQVEsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUsseUJBQWMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVhLDBCQUFXLEdBQXpCO1FBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLHlCQUFjLENBQUMsUUFBUSxDQUFDO0lBQzFELENBQUM7SUFDTCxxQkFBQztBQUFELENBNUdBLEFBNEdDLElBQUE7QUE1R1ksd0NBQWM7QUE4RzNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUN4QixtRUFBbUU7Q0FDdEU7S0FBTTtJQUNILGlFQUFpRTtDQUNwRSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TFFCeXRlRGFuY2VUeXBlLCBMUVBsYXRmb3JtVHlwZX0gZnJvbSBcIi4uL2RhdGEvbHFfY29uc3RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBsYXRmb3JtVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBwbGF0Zm9ybV90eXBlOiBMUVBsYXRmb3JtVHlwZTtcclxuICAgIHByaXZhdGUgc3RhdGljIGJ5dGVfZGFuY2VfdHlwZTogTFFCeXRlRGFuY2VUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW5pdCgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHFxICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5xcTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2FuICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0dCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0dC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGluZm8uYXBwTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnVG91dGlhbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICduZXdzX2FydGljbGVfbGl0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUudHRfbGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvdXlpbic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZG91eWluO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZG91eWluX2xpdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnl0ZV9kYW5jZV90eXBlID0gTFFCeXRlRGFuY2VUeXBlLmRvdXlpbl9saXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnUFBYJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ5dGVfZGFuY2VfdHlwZSA9IExRQnl0ZURhbmNlVHlwZS5wcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZXZ0b29scyc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ieXRlX2RhbmNlX3R5cGUgPSBMUUJ5dGVEYW5jZVR5cGUuZGV2dG9vbHM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBxZyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgaWYgKCEhcWcuZ2V0QmF0dGxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5vcHBvO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS53eDtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc2IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmIChjYy5zeXMub3MgPT09IGNjLnN5cy5PU19BTkRST0lEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNjLnN5cy5vcyA9PT0gY2Muc3lzLk9TX0lPUykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybV90eXBlID0gTFFQbGF0Zm9ybVR5cGUudW5rbm93bjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtX3R5cGUgPSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9wbGF0Zm9ybSgpOiBMUVBsYXRmb3JtVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ieXRlX2RhbmNlKCk6IExRQnl0ZURhbmNlVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnl0ZV9kYW5jZV90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfd3goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUud3g7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc190dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS50dDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX29wcG8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUub3BwbztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX3Zpdm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUudml2bztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX292KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLm9wcG8gfHwgdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS52aXZvO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYnJvd3NlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5icm93c2VyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfYW5kcm9pZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfaW9zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmlvcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX25hdGl2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5hbmRyb2lkIHx8IHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUuaW9zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNfcXEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm1fdHlwZSA9PT0gTFFQbGF0Zm9ybVR5cGUucXE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc19iYWlkdSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybV90eXBlID09PSBMUVBsYXRmb3JtVHlwZS5iYWlkdTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzX2t3YWlnYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtX3R5cGUgPT09IExRUGxhdGZvcm1UeXBlLmt3YWlnYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5MUVBsYXRmb3JtVXRpbC5pbml0KCk7XHJcbmlmIChMUVBsYXRmb3JtVXRpbC5pc190dCgpKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnLS0tLS0tLS0t5b2T5YmN5bmz5Y+wOicgKyBMUVBsYXRmb3JtVXRpbC5nZXRfYnl0ZV9kYW5jZSgpKTtcclxufSBlbHNlIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCctLS0tLS0tLS3lvZPliY3lubPlj7A6JyArIExRUGxhdGZvcm1VdGlsLmdldF9wbGF0Zm9ybSgpKTtcclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_data.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'a54702UNV9NA7pYgQd6eA5/', 'lq_data');
+// Script/lq_base/data/lq_data.ts
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LQPlatformData = exports.LQShareData = exports.LQNativeComponent = exports.LQRect = void 0;
+var Vec2 = cc.Vec2;
+var Rect = cc.Rect;
+var LQRect = /** @class */ (function () {
+ function LQRect(x, y, width, height) {
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.height = height;
+ this.half_width = width * 0.5;
+ this.half_height = height * 0.5;
+ }
+ LQRect.prototype.top_left = function () {
+ return new Vec2(this.x - this.half_width, this.y + this.half_height);
+ };
+ LQRect.prototype.top_right = function () {
+ return new Vec2(this.x + this.half_width, this.y + this.half_height);
+ };
+ LQRect.prototype.bottom_left = function () {
+ return new Vec2(this.x - this.half_width, this.y - this.half_height);
+ };
+ LQRect.prototype.bottom_right = function () {
+ return new Vec2(this.x + this.half_width, this.y - this.half_height);
+ };
+ LQRect.prototype.pos = function () {
+ return new Vec2(this.x, this.y);
+ };
+ LQRect.prototype.sub = function (pos) {
+ return new Vec2(pos.x - this.x, pos.y - this.y);
+ };
+ LQRect.prototype.add = function (pos) {
+ return new Vec2(pos.x + this.x, pos.y + this.y);
+ };
+ LQRect.prototype.to_cocos_rect = function () {
+ return new Rect(this.x - this.half_width, this.y - this.half_height, this.width, this.height);
+ };
+ return LQRect;
+}());
+exports.LQRect = LQRect;
+var LQNativeComponent = /** @class */ (function () {
+ function LQNativeComponent() {
+ this.node_btn_arr = [];
+ }
+ return LQNativeComponent;
+}());
+exports.LQNativeComponent = LQNativeComponent;
+var LQShareData = /** @class */ (function () {
+ function LQShareData(obj) {
+ if (obj.title) {
+ this.title = obj.title;
+ }
+ if (obj.remote_url) {
+ this.remote_url = obj.remote_url;
+ }
+ if (obj.url_id) {
+ this.url_id = obj.url_id;
+ }
+ if (obj.query) {
+ this.query = obj.query;
+ }
+ if (obj.content) {
+ this.content = obj.content;
+ }
+ if (obj.extra) {
+ this.extra = obj.extra;
+ }
+ if (obj.type) {
+ this.type = obj.type;
+ }
+ }
+ return LQShareData;
+}());
+exports.LQShareData = LQShareData;
+var LQPlatformData = /** @class */ (function () {
+ function LQPlatformData() {
+ }
+ return LQPlatformData;
+}());
+exports.LQPlatformData = LQPlatformData;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdEIsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUt0QjtJQVFJLGdCQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDM0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVNLHlCQUFRLEdBQWY7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sMEJBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNEJBQVcsR0FBbEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sNkJBQVksR0FBbkI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sb0JBQUcsR0FBVjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLG9CQUFHLEdBQVYsVUFBVyxHQUFTO1FBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxvQkFBRyxHQUFWLFVBQVcsR0FBUztRQUNoQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sOEJBQWEsR0FBcEI7UUFDSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQWhEQSxBQWdEQyxJQUFBO0FBaERZLHdCQUFNO0FBa0RuQjtJQUFBO1FBQ1csaUJBQVksR0FBVyxFQUFFLENBQUM7SUFNckMsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FQQSxBQU9DLElBQUE7QUFQWSw4Q0FBaUI7QUFTOUI7SUFTSSxxQkFBWSxHQUE0SDtRQUNwSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDMUI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FoQ0EsQUFnQ0MsSUFBQTtBQWhDWSxrQ0FBVztBQWtDeEI7SUFBQTtJQWlCQSxDQUFDO0lBQUQscUJBQUM7QUFBRCxDQWpCQSxBQWlCQyxJQUFBO0FBakJZLHdDQUFjIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUG9zLCBJUmVjdH0gZnJvbSBcIi4vbHFfaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuaW1wb3J0IFJlY3QgPSBjYy5SZWN0O1xyXG5pbXBvcnQgU3ByaXRlID0gY2MuU3ByaXRlO1xyXG5pbXBvcnQgTGFiZWwgPSBjYy5MYWJlbDtcclxuaW1wb3J0IE5vZGUgPSBjYy5Ob2RlO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRUmVjdCBpbXBsZW1lbnRzIElSZWN0IHtcclxuICAgIHB1YmxpYyB4OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgeTogbnVtYmVyO1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhhbGZfaGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB0aGlzLmhhbGZfd2lkdGggPSB3aWR0aCAqIDAuNTtcclxuICAgICAgICB0aGlzLmhhbGZfaGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b3BfbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgKyB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9wX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSArIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBib3R0b21fbGVmdCgpOiBWZWMyIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlYzIodGhpcy54IC0gdGhpcy5oYWxmX3dpZHRoLCB0aGlzLnkgLSB0aGlzLmhhbGZfaGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYm90dG9tX3JpZ2h0KCk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMih0aGlzLnggKyB0aGlzLmhhbGZfd2lkdGgsIHRoaXMueSAtIHRoaXMuaGFsZl9oZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwb3MoKTogY2MuVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHRoaXMueCwgdGhpcy55KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3ViKHBvczogSVBvcyk6IFZlYzIge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmVjMihwb3MueCAtIHRoaXMueCwgcG9zLnkgLSB0aGlzLnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGQocG9zOiBJUG9zKTogVmVjMiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWZWMyKHBvcy54ICsgdGhpcy54LCBwb3MueSArIHRoaXMueSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvX2NvY29zX3JlY3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHRoaXMueCAtIHRoaXMuaGFsZl93aWR0aCwgdGhpcy55IC0gdGhpcy5oYWxmX2hlaWdodCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFOYXRpdmVDb21wb25lbnQge1xyXG4gICAgcHVibGljIG5vZGVfYnRuX2FycjogTm9kZVtdID0gW107XHJcbiAgICBwdWJsaWMgc3ByaXRlX2xvZ28hOiBTcHJpdGU7XHJcbiAgICBwdWJsaWMgc3ByaXRlX2ltZyE6IFNwcml0ZTtcclxuICAgIHB1YmxpYyBzcHJpdGVfYWRfdGlwITogU3ByaXRlO1xyXG4gICAgcHVibGljIGxhYmVsX3RpdGxlITogTGFiZWw7XHJcbiAgICBwdWJsaWMgbGFiZWxfZGVzYyE6IExhYmVsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTFFTaGFyZURhdGEge1xyXG4gICAgcHVibGljIHRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbW90ZV91cmwhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdXJsX2lkITogc3RyaW5nO1xyXG4gICAgcHVibGljIHF1ZXJ5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbnRlbnQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0cmEhOiBhbnk7XHJcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvYmo/OiB7IHRpdGxlPzogc3RyaW5nLCByZW1vdGVfdXJsPzogc3RyaW5nLCB1cmxfaWQ/OiBzdHJpbmcsIHF1ZXJ5Pzogc3RyaW5nLCBjb250ZW50Pzogc3RyaW5nLCBleHRyYT86IGFueSwgdHlwZT86IHN0cmluZyB9KSB7XHJcbiAgICAgICAgaWYgKG9iai50aXRsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb2JqLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLnJlbW90ZV91cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdGVfdXJsID0gb2JqLnJlbW90ZV91cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmoudXJsX2lkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsX2lkID0gb2JqLnVybF9pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai5xdWVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gb2JqLnF1ZXJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gb2JqLmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmouZXh0cmEpIHtcclxuICAgICAgICAgICAgdGhpcy5leHRyYSA9IG9iai5leHRyYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IG9iai50eXBlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExRUGxhdGZvcm1EYXRhIHtcclxuICAgIHB1YmxpYyBhcHBfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcHJpbnRfbG9nITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93X3NoYXJlX21lbnUhOiBib29sZWFuO1xyXG4gICAgcHVibGljIGtlZXBfc2NyZWVuX29uITogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBiYW5uZXJfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYmFubmVyX3dpZHRoITogbnVtYmVyO1xyXG4gICAgcHVibGljIGludGVyc3RpdGlhbF9pZCE6IHN0cmluZztcclxuICAgIHB1YmxpYyBuYXRpdmVfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdmlkZW9faWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNfdmlkZW9fZnJlZSE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNfY2FjaGVfdmlkZW8hOiBib29sZWFuO1xyXG4gICAgcHVibGljIGFkX3R5cGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfaWQhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRfa2V5ITogc3RyaW5nO1xyXG4gICAgcHVibGljIHN3aXRjaF9hZCE6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgc2hhcmVfZGF0YV9hcnIhOiBMUVNoYXJlRGF0YVtdO1xyXG59Il19
//------QC-SOURCE-SPLIT------
(function() {
@@ -15698,7 +15696,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/shop/script/shop.js';
+ var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -15706,92 +15704,211 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '48bfeZuYFZE2qmgxbW2IigB', 'shop');
-// shop/script/shop.ts
+cc._RF.push(module, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup');
+// Script/TmoObjectGroup.js
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
-var NewClass = /** @class */ (function (_super) {
- __extends(NewClass, _super);
- function NewClass() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- //商店界面
- _this.shop = null;
- //商品列表
- _this.itemList = null;
- return _this;
- // update (dt) {}
+
+exports.__esModule = true;
+exports["default"] = void 0;
+// Learn cc.Class:
+// - https://docs.cocos.com/creator/manual/en/scripting/class.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+
+var TmoSprite = require("./TmoSprite");
+var _default = cc.Class({
+ "extends": cc.TiledObjectGroup,
+ _init: function _init(groupInfo, mapInfo, texGrids, tiledMap) {
+ var TiledMap = cc.TiledMap;
+ var TMXObjectType = TiledMap.TMXObjectType;
+ var Orientation = TiledMap.Orientation;
+ var StaggerAxis = TiledMap.StaggerAxis;
+ var TileFlag = TiledMap.TileFlag;
+ var FLIPPED_MASK = TileFlag.FLIPPED_MASK;
+ var FLAG_HORIZONTAL = TileFlag.HORIZONTAL;
+ var FLAG_VERTICAL = TileFlag.VERTICAL;
+ this._groupName = groupInfo.name;
+ this._positionOffset = groupInfo.offset;
+ this._mapInfo = mapInfo;
+ this._properties = groupInfo.getProperties();
+ this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);
+ this._opacity = groupInfo._opacity;
+ var mapSize = mapInfo._mapSize;
+ var tileSize = mapInfo._tileSize;
+ var width = 0,
+ height = 0;
+ if (mapInfo.orientation === Orientation.HEX) {
+ if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {
+ height = tileSize.height * (mapSize.height + 0.5);
+ width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);
+ } else {
+ width = tileSize.width * (mapSize.width + 0.5);
+ height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);
+ }
+ } else if (mapInfo.orientation === Orientation.ISO) {
+ var wh = mapSize.width + mapSize.height;
+ width = tileSize.width * 0.5 * wh;
+ height = tileSize.height * 0.5 * wh;
+ } else {
+ width = mapSize.width * tileSize.width;
+ height = mapSize.height * tileSize.height;
}
- // onLoad () {}
- NewClass.prototype.start = function () {
- this.openShop();
- };
- //打开商店界面
- NewClass.prototype.openShop = function () {
- // 商品数据数组
- var products = [
- { product_id: "gold_pack_1", name: "金币包1", price: 600, title: "3x2六档金币" },
- { product_id: "gold_pack_2", name: "金币包2", price: 3600, title: "" },
- { product_id: "gold_pack_3", name: "金币包3", price: 6800, title: "" },
- { product_id: "gold_pack_4", name: "金币包4", price: 12800, title: "" },
- { product_id: "gold_pack_5", name: "金币包5", price: 32800, title: "" },
- { product_id: "gold_pack_6", name: "金币包6", price: 64800, title: "" },
- { product_id: "unlimited_health_bundle_1", name: "无限体力组合包1", price: 1800, title: "3个横版礼包" },
- { product_id: "unlimited_health_bundle_2", name: "无限体力组合包2", price: 6600, title: "" }
- ];
- for (var i = 1; i <= 8 && i < this.itemList.children.length; i++) {
- var spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);
- var price = this.itemList.children[i].children[1].getComponent(cc.Label);
- var title = this.itemList.children[i].children[2].getComponent(cc.Label);
- var product = products[i - 1];
- if (spriteComp && product) {
- // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame
- }
- if (price && product) {
- price.string = (product.price / 100).toString() + "元";
- }
- if (title && product) {
- title.string = product.name;
- }
+ this.node.setContentSize(width, height);
+ var leftTopX = width * this.node.anchorX;
+ var leftTopY = height * (1 - this.node.anchorY);
+ var objects = groupInfo._objects;
+ var aliveNodes = {};
+
+ // 生成映射Map { Texture2D: textureIndex }
+ var textureIndexMap = new Map();
+ var objectTextures = tiledMap.getObjectTextures();
+ objectTextures.forEach(function (texture, idx) {
+ return textureIndexMap.set(texture, idx);
+ });
+ for (var i = 0, l = objects.length; i < l; i++) {
+ var object = objects[i];
+ var objType = object.type;
+ object.offset = cc.v2(object.x, object.y);
+ var points = object.points || object.polylinePoints;
+ if (points) {
+ for (var pi = 0; pi < points.length; pi++) {
+ points[pi].y *= -1;
}
- };
- //关闭商店界面
- NewClass.prototype.closeShop = function () {
- //销毁预制体
- this.shop.destroy();
- };
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "shop", void 0);
- __decorate([
- property(cc.Node)
- ], NewClass.prototype, "itemList", void 0);
- NewClass = __decorate([
- ccclass
- ], NewClass);
- return NewClass;
-}(cc.Component));
-exports.default = NewClass;
+ }
+ if (Orientation.ISO !== mapInfo.orientation) {
+ object.y = height - object.y;
+ } else {
+ var posIdxX = object.x / tileSize.height;
+ var posIdxY = object.y / tileSize.height;
+ object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);
+ object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);
+ }
+ if (objType === TMXObjectType.TEXT) {
+ var textName = "text" + object.id;
+ aliveNodes[textName] = true;
+ var textNode = this.node.getChildByName(textName);
+ if (!textNode) {
+ textNode = new cc.Node();
+ }
+ textNode.active = object.visible;
+ textNode.anchorX = 0;
+ textNode.anchorY = 1;
+ textNode.angle = -object.rotation;
+ textNode.x = object.x - leftTopX;
+ textNode.y = object.y - leftTopY;
+ textNode.name = textName;
+ textNode.parent = this.node;
+ textNode.color = object.color;
+ textNode.opacity = this._opacity;
+ textNode.setSiblingIndex(i);
+ var label = textNode.getComponent(cc.Label);
+ if (!label) {
+ label = textNode.addComponent(cc.Label);
+ }
+ label.overflow = cc.Label.Overflow.SHRINK;
+ label.lineHeight = object.height;
+ label.string = object.text;
+ label.horizontalAlign = object.halign;
+ label.verticalAlign = object.valign;
+ label.fontSize = object.pixelsize;
+ textNode.width = object.width;
+ textNode.height = object.height;
+ }
+ if (objType === TMXObjectType.IMAGE) {
+ var gid = object.gid;
+ var grid = texGrids[(gid & FLIPPED_MASK) >>> 0];
+ if (!grid) continue;
+ var tileset = grid.tileset;
+ var imgName = "img" + object.id;
+ aliveNodes[imgName] = true;
+ var imgNode = this.node.getChildByName(imgName);
+ var imgWidth = object.width || grid.width;
+ var imgHeight = object.height || grid.height;
+ var tileOffsetX = tileset.tileOffset.x;
+ var tileOffsetY = tileset.tileOffset.y;
+
+ // Delete image nodes implemented as private nodes
+ // Use cc.Node to implement node-level requirements
+ if (imgNode instanceof cc.PrivateNode) {
+ imgNode.removeFromParent();
+ imgNode.destroy();
+ imgNode = null;
+ }
+ if (!imgNode) {
+ imgNode = new cc.Node();
+ }
+ if (Orientation.ISO == mapInfo.orientation) {
+ imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;
+ imgNode.anchorY = tileOffsetY / imgHeight;
+ } else {
+ imgNode.anchorX = tileOffsetX / imgWidth;
+ imgNode.anchorY = tileOffsetY / imgHeight;
+ }
+ imgNode.active = object.visible;
+ imgNode.angle = -object.rotation;
+ imgNode.x = object.x - leftTopX;
+ imgNode.y = object.y - leftTopY;
+ imgNode.name = imgName;
+ imgNode.parent = this.node;
+ imgNode.opacity = this._opacity;
+ imgNode.setSiblingIndex(i);
+ imgNode._tiledMap = tiledMap;
+ var sp = imgNode.getComponent(TmoSprite);
+ if (!sp) {
+ sp = imgNode.addComponent(TmoSprite);
+ }
+ var spf = sp.spriteFrame;
+ if (!spf) {
+ spf = new cc.SpriteFrame();
+ }
+ if ((gid & FLAG_HORIZONTAL) >>> 0) {
+ spf.setFlipX(true);
+ } else {
+ spf.setFlipX(false);
+ }
+ if ((gid & FLAG_VERTICAL) >>> 0) {
+ spf.setFlipY(true);
+ } else {
+ spf.setFlipY(false);
+ }
+ var sourceImage = grid.tileset.sourceImage;
+ spf.setTexture(sourceImage, cc.rect(grid));
+ sp.spriteFrame = spf;
+ sp.setVertsDirty();
+
+ // object group may has no width or height info
+ imgNode.width = imgWidth;
+ imgNode.height = imgHeight;
+
+ // 收集图集 更新textureIndexMap
+ if (!textureIndexMap.has(sourceImage)) {
+ textureIndexMap.set(sourceImage, objectTextures.length);
+ objectTextures.push(sourceImage);
+ }
+
+ // 设置textureIndex
+ var textureIndex = textureIndexMap.get(sourceImage);
+ sp.setTextureIdx(textureIndex + 1);
+ }
+ }
+ this._objects = objects;
+
+ // destroy useless node
+ var children = this.node.children;
+ var uselessExp = /^(?:img|text)\d+$/;
+ for (var _i = 0, n = children.length; _i < n; _i++) {
+ var c = children[_i];
+ var cName = c._name;
+ var isUseless = uselessExp.test(cName);
+ if (isUseless && !aliveNodes[cName]) c.destroy();
+ }
+ }
+});
+exports["default"] = _default;
+module.exports = exports["default"];
cc._RF.pop();
}
@@ -15804,7 +15921,7 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBa0RDO1FBakRHLE1BQU07UUFFTixVQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLE1BQU07UUFFTixjQUFRLEdBQVksSUFBSSxDQUFDOztRQTJDekIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQ0csZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7SUFDUiwyQkFBUSxHQUFSO1FBQ0ksU0FBUztRQUNULElBQU0sUUFBUSxHQUFHO1lBQ2IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNuRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDM0YsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDeEYsQ0FBQztRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDekQ7WUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzthQUMvQjtTQUNKO0lBQ0wsQ0FBQztJQUdELFFBQVE7SUFDUiw0QkFBUyxHQUFUO1FBQ0ksT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQTVDRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBR3JCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ087SUFOUixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBa0Q1QjtJQUFELGVBQUM7Q0FsREQsQUFrREMsQ0FsRHFDLEVBQUUsQ0FBQyxTQUFTLEdBa0RqRDtrQkFsRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/llYblupfnlYzpnaJcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2hvcDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvL+WVhuWTgeWIl+ihqFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBpdGVtTGlzdDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XHJcbiAgICB9XHJcbiAgICAvL+aJk+W8gOWVhuW6l+eVjOmdolxyXG4gICAgb3BlblNob3AoKSB7XHJcbiAgICAgICAgLy8g5ZWG5ZOB5pWw5o2u5pWw57uEXHJcbiAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18yXCIsIG5hbWU6IFwi6YeR5biB5YyFMlwiLCBwcmljZTogMzYwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja18zXCIsIG5hbWU6IFwi6YeR5biB5YyFM1wiLCBwcmljZTogNjgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXHJcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNVwiLCBuYW1lOiBcIumHkeW4geWMhTVcIiwgcHJpY2U6IDMyODAwLCB0aXRsZTogXCJcIiB9LFxyXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzZcIiwgbmFtZTogXCLph5HluIHljIU2XCIsIHByaWNlOiA2NDgwMCwgdGl0bGU6IFwiXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcclxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzJcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUyXCIsIHByaWNlOiA2NjAwLCB0aXRsZTogXCJcIiB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZUNvbXAgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzBdLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMuaXRlbUxpc3QuY2hpbGRyZW5baV0uY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb2R1Y3QgPSBwcm9kdWN0c1tpIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChzcHJpdGVDb21wICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHByaWNlICYmIHByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICAgIHByaWNlLnN0cmluZyA9IChwcm9kdWN0LnByaWNlIC8gMTAwKS50b1N0cmluZygpICsgXCLlhYNcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGl0bGUgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGl0bGUuc3RyaW5nID0gcHJvZHVjdC5uYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxyXG4gICAgY2xvc2VTaG9wKCkge1xyXG4gICAgICAgIC8v6ZSA5q+B6aKE5Yi25L2TXHJcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiY2MiLCJDbGFzcyIsIlRpbGVkT2JqZWN0R3JvdXAiLCJfaW5pdCIsImdyb3VwSW5mbyIsIm1hcEluZm8iLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiVGlsZWRNYXAiLCJUTVhPYmplY3RUeXBlIiwiT3JpZW50YXRpb24iLCJTdGFnZ2VyQXhpcyIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwiRkxBR19IT1JJWk9OVEFMIiwiSE9SSVpPTlRBTCIsIkZMQUdfVkVSVElDQUwiLCJWRVJUSUNBTCIsIl9ncm91cE5hbWUiLCJuYW1lIiwiX3Bvc2l0aW9uT2Zmc2V0Iiwib2Zmc2V0IiwiX21hcEluZm8iLCJfcHJvcGVydGllcyIsImdldFByb3BlcnRpZXMiLCJfb2Zmc2V0IiwidjIiLCJ4IiwieSIsIl9vcGFjaXR5IiwibWFwU2l6ZSIsIl9tYXBTaXplIiwidGlsZVNpemUiLCJfdGlsZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm9yaWVudGF0aW9uIiwiSEVYIiwiZ2V0U3RhZ2dlckF4aXMiLCJTVEFHR0VSQVhJU19YIiwiZ2V0SGV4U2lkZUxlbmd0aCIsIk1hdGgiLCJmbG9vciIsIklTTyIsIndoIiwibm9kZSIsInNldENvbnRlbnRTaXplIiwibGVmdFRvcFgiLCJhbmNob3JYIiwibGVmdFRvcFkiLCJhbmNob3JZIiwib2JqZWN0cyIsIl9vYmplY3RzIiwiYWxpdmVOb2RlcyIsInRleHR1cmVJbmRleE1hcCIsIk1hcCIsIm9iamVjdFRleHR1cmVzIiwiZ2V0T2JqZWN0VGV4dHVyZXMiLCJmb3JFYWNoIiwidGV4dHVyZSIsImlkeCIsInNldCIsImkiLCJsIiwibGVuZ3RoIiwib2JqZWN0Iiwib2JqVHlwZSIsInR5cGUiLCJwb2ludHMiLCJwb2x5bGluZVBvaW50cyIsInBpIiwicG9zSWR4WCIsInBvc0lkeFkiLCJURVhUIiwidGV4dE5hbWUiLCJpZCIsInRleHROb2RlIiwiZ2V0Q2hpbGRCeU5hbWUiLCJOb2RlIiwiYWN0aXZlIiwidmlzaWJsZSIsImFuZ2xlIiwicm90YXRpb24iLCJwYXJlbnQiLCJjb2xvciIsIm9wYWNpdHkiLCJzZXRTaWJsaW5nSW5kZXgiLCJsYWJlbCIsImdldENvbXBvbmVudCIsIkxhYmVsIiwiYWRkQ29tcG9uZW50Iiwib3ZlcmZsb3ciLCJPdmVyZmxvdyIsIlNIUklOSyIsImxpbmVIZWlnaHQiLCJzdHJpbmciLCJ0ZXh0IiwiaG9yaXpvbnRhbEFsaWduIiwiaGFsaWduIiwidmVydGljYWxBbGlnbiIsInZhbGlnbiIsImZvbnRTaXplIiwicGl4ZWxzaXplIiwiSU1BR0UiLCJnaWQiLCJncmlkIiwidGlsZXNldCIsImltZ05hbWUiLCJpbWdOb2RlIiwiaW1nV2lkdGgiLCJpbWdIZWlnaHQiLCJ0aWxlT2Zmc2V0WCIsInRpbGVPZmZzZXQiLCJ0aWxlT2Zmc2V0WSIsIlByaXZhdGVOb2RlIiwicmVtb3ZlRnJvbVBhcmVudCIsImRlc3Ryb3kiLCJfdGlsZWRNYXAiLCJzcCIsInNwZiIsInNwcml0ZUZyYW1lIiwiU3ByaXRlRnJhbWUiLCJzZXRGbGlwWCIsInNldEZsaXBZIiwic291cmNlSW1hZ2UiLCJzZXRUZXh0dXJlIiwicmVjdCIsInNldFZlcnRzRGlydHkiLCJoYXMiLCJwdXNoIiwidGV4dHVyZUluZGV4IiwiZ2V0Iiwic2V0VGV4dHVyZUlkeCIsImNoaWxkcmVuIiwidXNlbGVzc0V4cCIsIm4iLCJjIiwiY05hbWUiLCJfbmFtZSIsImlzVXNlbGVzcyIsInRlc3QiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFMUJDLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3BCLFdBQVNELEVBQUUsQ0FBQ0UsZ0JBQWdCO0VBRTVCQyxLQUFLLFdBQUFBLE1BQUNDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRTtJQUMxQyxJQUFNQyxRQUFRLEdBQUdSLEVBQUUsQ0FBQ1EsUUFBUTtJQUM1QixJQUFNQyxhQUFhLEdBQUdELFFBQVEsQ0FBQ0MsYUFBYTtJQUM1QyxJQUFNQyxXQUFXLEdBQUdGLFFBQVEsQ0FBQ0UsV0FBVztJQUN4QyxJQUFNQyxXQUFXLEdBQUdILFFBQVEsQ0FBQ0csV0FBVztJQUN4QyxJQUFNQyxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ksUUFBUTtJQUNsQyxJQUFNQyxZQUFZLEdBQUdELFFBQVEsQ0FBQ0MsWUFBWTtJQUMxQyxJQUFNQyxlQUFlLEdBQUdGLFFBQVEsQ0FBQ0csVUFBVTtJQUMzQyxJQUFNQyxhQUFhLEdBQUdKLFFBQVEsQ0FBQ0ssUUFBUTtJQUV2QyxJQUFJLENBQUNDLFVBQVUsR0FBR2QsU0FBUyxDQUFDZSxJQUFJO0lBQ2hDLElBQUksQ0FBQ0MsZUFBZSxHQUFHaEIsU0FBUyxDQUFDaUIsTUFBTTtJQUN2QyxJQUFJLENBQUNDLFFBQVEsR0FBR2pCLE9BQU87SUFDdkIsSUFBSSxDQUFDa0IsV0FBVyxHQUFHbkIsU0FBUyxDQUFDb0IsYUFBYSxFQUFFO0lBQzVDLElBQUksQ0FBQ0MsT0FBTyxHQUFHekIsRUFBRSxDQUFDMEIsRUFBRSxDQUFDdEIsU0FBUyxDQUFDaUIsTUFBTSxDQUFDTSxDQUFDLEVBQUUsQ0FBQ3ZCLFNBQVMsQ0FBQ2lCLE1BQU0sQ0FBQ08sQ0FBQyxDQUFDO0lBQzdELElBQUksQ0FBQ0MsUUFBUSxHQUFHekIsU0FBUyxDQUFDeUIsUUFBUTtJQUVsQyxJQUFJQyxPQUFPLEdBQUd6QixPQUFPLENBQUMwQixRQUFRO0lBQzlCLElBQUlDLFFBQVEsR0FBRzNCLE9BQU8sQ0FBQzRCLFNBQVM7SUFDaEMsSUFBSUMsS0FBSyxHQUFHLENBQUM7TUFBRUMsTUFBTSxHQUFHLENBQUM7SUFDekIsSUFBSTlCLE9BQU8sQ0FBQytCLFdBQVcsS0FBSzFCLFdBQVcsQ0FBQzJCLEdBQUcsRUFBRTtNQUN6QyxJQUFJaEMsT0FBTyxDQUFDaUMsY0FBYyxFQUFFLEtBQUszQixXQUFXLENBQUM0QixhQUFhLEVBQUU7UUFDeERKLE1BQU0sR0FBR0gsUUFBUSxDQUFDRyxNQUFNLElBQUlMLE9BQU8sQ0FBQ0ssTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNqREQsS0FBSyxHQUFHLENBQUNGLFFBQVEsQ0FBQ0UsS0FBSyxHQUFHN0IsT0FBTyxDQUFDbUMsZ0JBQWdCLEVBQUUsSUFBSUMsSUFBSSxDQUFDQyxLQUFLLENBQUNaLE9BQU8sQ0FBQ0ksS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHRixRQUFRLENBQUNFLEtBQUssSUFBSUosT0FBTyxDQUFDSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO01BQ2hJLENBQUMsTUFBTTtRQUNIQSxLQUFLLEdBQUdGLFFBQVEsQ0FBQ0UsS0FBSyxJQUFJSixPQUFPLENBQUNJLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDOUNDLE1BQU0sR0FBRyxDQUFDSCxRQUFRLENBQUNHLE1BQU0sR0FBRzlCLE9BQU8sQ0FBQ21DLGdCQUFnQixFQUFFLElBQUlDLElBQUksQ0FBQ0MsS0FBSyxDQUFDWixPQUFPLENBQUNLLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBR0gsUUFBUSxDQUFDRyxNQUFNLElBQUlMLE9BQU8sQ0FBQ0ssTUFBTSxHQUFHLENBQUMsQ0FBQztNQUNySTtJQUNKLENBQUMsTUFBTSxJQUFJOUIsT0FBTyxDQUFDK0IsV0FBVyxLQUFLMUIsV0FBVyxDQUFDaUMsR0FBRyxFQUFFO01BQ2hELElBQUlDLEVBQUUsR0FBR2QsT0FBTyxDQUFDSSxLQUFLLEdBQUdKLE9BQU8sQ0FBQ0ssTUFBTTtNQUN2Q0QsS0FBSyxHQUFHRixRQUFRLENBQUNFLEtBQUssR0FBRyxHQUFHLEdBQUdVLEVBQUU7TUFDakNULE1BQU0sR0FBR0gsUUFBUSxDQUFDRyxNQUFNLEdBQUcsR0FBRyxHQUFHUyxFQUFFO0lBQ3ZDLENBQUMsTUFBTTtNQUNIVixLQUFLLEdBQUdKLE9BQU8sQ0FBQ0ksS0FBSyxHQUFHRixRQUFRLENBQUNFLEtBQUs7TUFDdENDLE1BQU0sR0FBR0wsT0FBTyxDQUFDSyxNQUFNLEdBQUdILFFBQVEsQ0FBQ0csTUFBTTtJQUM3QztJQUNBLElBQUksQ0FBQ1UsSUFBSSxDQUFDQyxjQUFjLENBQUNaLEtBQUssRUFBRUMsTUFBTSxDQUFDO0lBRXZDLElBQUlZLFFBQVEsR0FBR2IsS0FBSyxHQUFHLElBQUksQ0FBQ1csSUFBSSxDQUFDRyxPQUFPO0lBQ3hDLElBQUlDLFFBQVEsR0FBR2QsTUFBTSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUNVLElBQUksQ0FBQ0ssT0FBTyxDQUFDO0lBRS9DLElBQUlDLE9BQU8sR0FBRy9DLFNBQVMsQ0FBQ2dELFFBQVE7SUFDaEMsSUFBSUMsVUFBVSxHQUFHLENBQUMsQ0FBQzs7SUFFbkI7SUFDQSxJQUFJQyxlQUFlLEdBQUcsSUFBSUMsR0FBRyxFQUFFO0lBQy9CLElBQUlDLGNBQWMsR0FBR2pELFFBQVEsQ0FBQ2tELGlCQUFpQixFQUFFO0lBQ2pERCxjQUFjLENBQUNFLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLEdBQUc7TUFBQSxPQUFLTixlQUFlLENBQUNPLEdBQUcsQ0FBQ0YsT0FBTyxFQUFFQyxHQUFHLENBQUM7SUFBQSxFQUFDO0lBRTNFLEtBQUssSUFBSUUsQ0FBQyxHQUFHLENBQUMsRUFBRUMsQ0FBQyxHQUFHWixPQUFPLENBQUNhLE1BQU0sRUFBRUYsQ0FBQyxHQUFHQyxDQUFDLEVBQUVELENBQUMsRUFBRSxFQUFFO01BQzVDLElBQUlHLE1BQU0sR0FBR2QsT0FBTyxDQUFDVyxDQUFDLENBQUM7TUFDdkIsSUFBSUksT0FBTyxHQUFHRCxNQUFNLENBQUNFLElBQUk7TUFDekJGLE1BQU0sQ0FBQzVDLE1BQU0sR0FBR3JCLEVBQUUsQ0FBQzBCLEVBQUUsQ0FBQ3VDLE1BQU0sQ0FBQ3RDLENBQUMsRUFBRXNDLE1BQU0sQ0FBQ3JDLENBQUMsQ0FBQztNQUV6QyxJQUFJd0MsTUFBTSxHQUFHSCxNQUFNLENBQUNHLE1BQU0sSUFBSUgsTUFBTSxDQUFDSSxjQUFjO01BQ25ELElBQUlELE1BQU0sRUFBRTtRQUNSLEtBQUssSUFBSUUsRUFBRSxHQUFHLENBQUMsRUFBRUEsRUFBRSxHQUFHRixNQUFNLENBQUNKLE1BQU0sRUFBRU0sRUFBRSxFQUFFLEVBQUU7VUFDdkNGLE1BQU0sQ0FBQ0UsRUFBRSxDQUFDLENBQUMxQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCO01BQ0o7TUFFQSxJQUFJbEIsV0FBVyxDQUFDaUMsR0FBRyxLQUFLdEMsT0FBTyxDQUFDK0IsV0FBVyxFQUFFO1FBQ3pDNkIsTUFBTSxDQUFDckMsQ0FBQyxHQUFHTyxNQUFNLEdBQUc4QixNQUFNLENBQUNyQyxDQUFDO01BQ2hDLENBQUMsTUFBTTtRQUNILElBQUkyQyxPQUFPLEdBQUdOLE1BQU0sQ0FBQ3RDLENBQUMsR0FBR0ssUUFBUSxDQUFDRyxNQUFNO1FBQ3hDLElBQUlxQyxPQUFPLEdBQUdQLE1BQU0sQ0FBQ3JDLENBQUMsR0FBR0ksUUFBUSxDQUFDRyxNQUFNO1FBQ3hDOEIsTUFBTSxDQUFDdEMsQ0FBQyxHQUFHSyxRQUFRLENBQUNFLEtBQUssR0FBRyxHQUFHLElBQUlKLE9BQU8sQ0FBQ0ssTUFBTSxHQUFHb0MsT0FBTyxHQUFHQyxPQUFPLENBQUM7UUFDdEVQLE1BQU0sQ0FBQ3JDLENBQUMsR0FBR0ksUUFBUSxDQUFDRyxNQUFNLEdBQUcsR0FBRyxJQUFJTCxPQUFPLENBQUNJLEtBQUssR0FBR0osT0FBTyxDQUFDSyxNQUFNLEdBQUdvQyxPQUFPLEdBQUdDLE9BQU8sQ0FBQztNQUMzRjtNQUVBLElBQUlOLE9BQU8sS0FBS3pELGFBQWEsQ0FBQ2dFLElBQUksRUFBRTtRQUNoQyxJQUFJQyxRQUFRLEdBQUcsTUFBTSxHQUFHVCxNQUFNLENBQUNVLEVBQUU7UUFDakN0QixVQUFVLENBQUNxQixRQUFRLENBQUMsR0FBRyxJQUFJO1FBRTNCLElBQUlFLFFBQVEsR0FBRyxJQUFJLENBQUMvQixJQUFJLENBQUNnQyxjQUFjLENBQUNILFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUNFLFFBQVEsRUFBRTtVQUNYQSxRQUFRLEdBQUcsSUFBSTVFLEVBQUUsQ0FBQzhFLElBQUksRUFBRTtRQUM1QjtRQUVBRixRQUFRLENBQUNHLE1BQU0sR0FBR2QsTUFBTSxDQUFDZSxPQUFPO1FBQ2hDSixRQUFRLENBQUM1QixPQUFPLEdBQUcsQ0FBQztRQUNwQjRCLFFBQVEsQ0FBQzFCLE9BQU8sR0FBRyxDQUFDO1FBQ3BCMEIsUUFBUSxDQUFDSyxLQUFLLEdBQUcsQ0FBQ2hCLE1BQU0sQ0FBQ2lCLFFBQVE7UUFDakNOLFFBQVEsQ0FBQ2pELENBQUMsR0FBR3NDLE1BQU0sQ0FBQ3RDLENBQUMsR0FBR29CLFFBQVE7UUFDaEM2QixRQUFRLENBQUNoRCxDQUFDLEdBQUdxQyxNQUFNLENBQUNyQyxDQUFDLEdBQUdxQixRQUFRO1FBQ2hDMkIsUUFBUSxDQUFDekQsSUFBSSxHQUFHdUQsUUFBUTtRQUN4QkUsUUFBUSxDQUFDTyxNQUFNLEdBQUcsSUFBSSxDQUFDdEMsSUFBSTtRQUMzQitCLFFBQVEsQ0FBQ1EsS0FBSyxHQUFHbkIsTUFBTSxDQUFDbUIsS0FBSztRQUM3QlIsUUFBUSxDQUFDUyxPQUFPLEdBQUcsSUFBSSxDQUFDeEQsUUFBUTtRQUNoQytDLFFBQVEsQ0FBQ1UsZUFBZSxDQUFDeEIsQ0FBQyxDQUFDO1FBRTNCLElBQUl5QixLQUFLLEdBQUdYLFFBQVEsQ0FBQ1ksWUFBWSxDQUFDeEYsRUFBRSxDQUFDeUYsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQ0YsS0FBSyxFQUFFO1VBQ1JBLEtBQUssR0FBR1gsUUFBUSxDQUFDYyxZQUFZLENBQUMxRixFQUFFLENBQUN5RixLQUFLLENBQUM7UUFDM0M7UUFFQUYsS0FBSyxDQUFDSSxRQUFRLEdBQUczRixFQUFFLENBQUN5RixLQUFLLENBQUNHLFFBQVEsQ0FBQ0MsTUFBTTtRQUN6Q04sS0FBSyxDQUFDTyxVQUFVLEdBQUc3QixNQUFNLENBQUM5QixNQUFNO1FBQ2hDb0QsS0FBSyxDQUFDUSxNQUFNLEdBQUc5QixNQUFNLENBQUMrQixJQUFJO1FBQzFCVCxLQUFLLENBQUNVLGVBQWUsR0FBR2hDLE1BQU0sQ0FBQ2lDLE1BQU07UUFDckNYLEtBQUssQ0FBQ1ksYUFBYSxHQUFHbEMsTUFBTSxDQUFDbUMsTUFBTTtRQUNuQ2IsS0FBSyxDQUFDYyxRQUFRLEdBQUdwQyxNQUFNLENBQUNxQyxTQUFTO1FBRWpDMUIsUUFBUSxDQUFDMUMsS0FBSyxHQUFHK0IsTUFBTSxDQUFDL0IsS0FBSztRQUM3QjBDLFFBQVEsQ0FBQ3pDLE1BQU0sR0FBRzhCLE1BQU0sQ0FBQzlCLE1BQU07TUFDbkM7TUFFQSxJQUFJK0IsT0FBTyxLQUFLekQsYUFBYSxDQUFDOEYsS0FBSyxFQUFFO1FBQ2pDLElBQUlDLEdBQUcsR0FBR3ZDLE1BQU0sQ0FBQ3VDLEdBQUc7UUFDcEIsSUFBSUMsSUFBSSxHQUFHbkcsUUFBUSxDQUFDLENBQUNrRyxHQUFHLEdBQUczRixZQUFZLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQzRGLElBQUksRUFBRTtRQUNYLElBQUlDLE9BQU8sR0FBR0QsSUFBSSxDQUFDQyxPQUFPO1FBQzFCLElBQUlDLE9BQU8sR0FBRyxLQUFLLEdBQUcxQyxNQUFNLENBQUNVLEVBQUU7UUFDL0J0QixVQUFVLENBQUNzRCxPQUFPLENBQUMsR0FBRyxJQUFJO1FBQzFCLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUMvRCxJQUFJLENBQUNnQyxjQUFjLENBQUM4QixPQUFPLENBQUM7UUFDL0MsSUFBSUUsUUFBUSxHQUFHNUMsTUFBTSxDQUFDL0IsS0FBSyxJQUFJdUUsSUFBSSxDQUFDdkUsS0FBSztRQUN6QyxJQUFJNEUsU0FBUyxHQUFHN0MsTUFBTSxDQUFDOUIsTUFBTSxJQUFJc0UsSUFBSSxDQUFDdEUsTUFBTTtRQUM1QyxJQUFJNEUsV0FBVyxHQUFHTCxPQUFPLENBQUNNLFVBQVUsQ0FBQ3JGLENBQUM7UUFDdEMsSUFBSXNGLFdBQVcsR0FBR1AsT0FBTyxDQUFDTSxVQUFVLENBQUNwRixDQUFDOztRQUV0QztRQUNBO1FBQ0EsSUFBSWdGLE9BQU8sWUFBWTVHLEVBQUUsQ0FBQ2tILFdBQVcsRUFBRTtVQUNuQ04sT0FBTyxDQUFDTyxnQkFBZ0IsRUFBRTtVQUMxQlAsT0FBTyxDQUFDUSxPQUFPLEVBQUU7VUFDakJSLE9BQU8sR0FBRyxJQUFJO1FBQ2xCO1FBRUEsSUFBSSxDQUFDQSxPQUFPLEVBQUU7VUFDVkEsT0FBTyxHQUFHLElBQUk1RyxFQUFFLENBQUM4RSxJQUFJLEVBQUU7UUFDM0I7UUFFQSxJQUFJcEUsV0FBVyxDQUFDaUMsR0FBRyxJQUFJdEMsT0FBTyxDQUFDK0IsV0FBVyxFQUFFO1VBQ3hDd0UsT0FBTyxDQUFDNUQsT0FBTyxHQUFHLEdBQUcsR0FBRytELFdBQVcsR0FBR0YsUUFBUTtVQUM5Q0QsT0FBTyxDQUFDMUQsT0FBTyxHQUFHK0QsV0FBVyxHQUFHSCxTQUFTO1FBQzdDLENBQUMsTUFBTTtVQUNIRixPQUFPLENBQUM1RCxPQUFPLEdBQUcrRCxXQUFXLEdBQUdGLFFBQVE7VUFDeENELE9BQU8sQ0FBQzFELE9BQU8sR0FBRytELFdBQVcsR0FBR0gsU0FBUztRQUM3QztRQUNBRixPQUFPLENBQUM3QixNQUFNLEdBQUdkLE1BQU0sQ0FBQ2UsT0FBTztRQUMvQjRCLE9BQU8sQ0FBQzNCLEtBQUssR0FBRyxDQUFDaEIsTUFBTSxDQUFDaUIsUUFBUTtRQUNoQzBCLE9BQU8sQ0FBQ2pGLENBQUMsR0FBR3NDLE1BQU0sQ0FBQ3RDLENBQUMsR0FBR29CLFFBQVE7UUFDL0I2RCxPQUFPLENBQUNoRixDQUFDLEdBQUdxQyxNQUFNLENBQUNyQyxDQUFDLEdBQUdxQixRQUFRO1FBQy9CMkQsT0FBTyxDQUFDekYsSUFBSSxHQUFHd0YsT0FBTztRQUN0QkMsT0FBTyxDQUFDekIsTUFBTSxHQUFHLElBQUksQ0FBQ3RDLElBQUk7UUFDMUIrRCxPQUFPLENBQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDeEQsUUFBUTtRQUMvQitFLE9BQU8sQ0FBQ3RCLGVBQWUsQ0FBQ3hCLENBQUMsQ0FBQztRQUMxQjhDLE9BQU8sQ0FBQ1MsU0FBUyxHQUFHOUcsUUFBUTtRQUc1QixJQUFJK0csRUFBRSxHQUFHVixPQUFPLENBQUNwQixZQUFZLENBQUMzRixTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDeUgsRUFBRSxFQUFFO1VBQ0xBLEVBQUUsR0FBR1YsT0FBTyxDQUFDbEIsWUFBWSxDQUFDN0YsU0FBUyxDQUFDO1FBQ3hDO1FBQ0EsSUFBSTBILEdBQUcsR0FBR0QsRUFBRSxDQUFDRSxXQUFXO1FBQ3hCLElBQUksQ0FBQ0QsR0FBRyxFQUFFO1VBQ05BLEdBQUcsR0FBRyxJQUFJdkgsRUFBRSxDQUFDeUgsV0FBVyxFQUFFO1FBQzlCO1FBRUEsSUFBSSxDQUFDakIsR0FBRyxHQUFHMUYsZUFBZSxNQUFNLENBQUMsRUFBRTtVQUMvQnlHLEdBQUcsQ0FBQ0csUUFBUSxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDLE1BQU07VUFDSEgsR0FBRyxDQUFDRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3ZCO1FBRUEsSUFBSSxDQUFDbEIsR0FBRyxHQUFHeEYsYUFBYSxNQUFNLENBQUMsRUFBRTtVQUM3QnVHLEdBQUcsQ0FBQ0ksUUFBUSxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDLE1BQU07VUFDSEosR0FBRyxDQUFDSSxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3ZCO1FBRUEsSUFBSUMsV0FBVyxHQUFHbkIsSUFBSSxDQUFDQyxPQUFPLENBQUNrQixXQUFXO1FBQzFDTCxHQUFHLENBQUNNLFVBQVUsQ0FBQ0QsV0FBVyxFQUFFNUgsRUFBRSxDQUFDOEgsSUFBSSxDQUFDckIsSUFBSSxDQUFDLENBQUM7UUFDMUNhLEVBQUUsQ0FBQ0UsV0FBVyxHQUFHRCxHQUFHO1FBQ3BCRCxFQUFFLENBQUNTLGFBQWEsRUFBRTs7UUFFbEI7UUFDQW5CLE9BQU8sQ0FBQzFFLEtBQUssR0FBRzJFLFFBQVE7UUFDeEJELE9BQU8sQ0FBQ3pFLE1BQU0sR0FBRzJFLFNBQVM7O1FBRTFCO1FBQ0EsSUFBSSxDQUFDeEQsZUFBZSxDQUFDMEUsR0FBRyxDQUFDSixXQUFXLENBQUMsRUFBRTtVQUNuQ3RFLGVBQWUsQ0FBQ08sR0FBRyxDQUFDK0QsV0FBVyxFQUFFcEUsY0FBYyxDQUFDUSxNQUFNLENBQUM7VUFDdkRSLGNBQWMsQ0FBQ3lFLElBQUksQ0FBQ0wsV0FBVyxDQUFDO1FBQ3BDOztRQUVBO1FBQ0EsSUFBSU0sWUFBWSxHQUFHNUUsZUFBZSxDQUFDNkUsR0FBRyxDQUFDUCxXQUFXLENBQUM7UUFDbkROLEVBQUUsQ0FBQ2MsYUFBYSxDQUFDRixZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ3RDO0lBQ0o7SUFDQSxJQUFJLENBQUM5RSxRQUFRLEdBQUdELE9BQU87O0lBR3ZCO0lBQ0EsSUFBSWtGLFFBQVEsR0FBRyxJQUFJLENBQUN4RixJQUFJLENBQUN3RixRQUFRO0lBQ2pDLElBQUlDLFVBQVUsR0FBRyxtQkFBbUI7SUFDcEMsS0FBSyxJQUFJeEUsRUFBQyxHQUFHLENBQUMsRUFBRXlFLENBQUMsR0FBR0YsUUFBUSxDQUFDckUsTUFBTSxFQUFFRixFQUFDLEdBQUd5RSxDQUFDLEVBQUV6RSxFQUFDLEVBQUUsRUFBRTtNQUM3QyxJQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFDLENBQUM7TUFDbkIsSUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFLO01BQ25CLElBQUlDLFNBQVMsR0FBR0wsVUFBVSxDQUFDTSxJQUFJLENBQUNILEtBQUssQ0FBQztNQUN0QyxJQUFJRSxTQUFTLElBQUksQ0FBQ3RGLFVBQVUsQ0FBQ29GLEtBQUssQ0FBQyxFQUFFRCxDQUFDLENBQUNwQixPQUFPLEVBQUU7SUFDcEQ7RUFFSjtBQUNKLENBQUMsQ0FBQztBQUFBeUIsT0FBQSxjQUFBOUksUUFBQTtBQUFBK0ksTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() {
@@ -17896,7 +18013,7 @@ cc._RF.pop();
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js';
+ var __filename = 'preview-scripts/assets/shop/script/item.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
@@ -17904,8 +18021,301 @@ cc._RF.pop();
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup');
-// Script/TmoObjectGroup.js
+cc._RF.push(module, 'de906iE/HVHpI6VO7IMvKaI', 'item');
+// shop/script/item.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var NewClass = /** @class */ (function (_super) {
+ __extends(NewClass, _super);
+ function NewClass() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.label = null;
+ _this.text = 'hello';
+ return _this;
+ // update (dt) {}
+ }
+ // LIFE-CYCLE CALLBACKS:
+ // onLoad () {}
+ NewClass.prototype.start = function () {
+ };
+ //购买商品道具
+ NewClass.prototype.buyProp = function (propName) {
+ // if(cc.fx.GameConfig.GM_INFO.coin < 1500){
+ // MiniGameSdk.API.showToast("金币不足,无法购买道具");
+ // return;
+ // }
+ // let propWindow = this.node.parent.parent.getChildByName("propWindow");
+ // propWindow.active = false;
+ // cc.fx.GameConfig.GM_INFO.coin -= 1500;
+ };
+ __decorate([
+ property(cc.Label)
+ ], NewClass.prototype, "label", void 0);
+ __decorate([
+ property
+ ], NewClass.prototype, "text", void 0);
+ NewClass = __decorate([
+ ccclass
+ ], NewClass);
+ return NewClass;
+}(cc.Component));
+exports.default = NewClass;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMkJDO1FBeEJHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQzs7UUFvQnZCLGlCQUFpQjtJQUNyQixDQUFDO0lBcEJHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCxRQUFRO0lBQ1IsMEJBQU8sR0FBUCxVQUFRLFFBQVE7UUFDWiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELGNBQWM7UUFDZCxJQUFJO1FBQ0oseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3Qix5Q0FBeUM7SUFDN0MsQ0FBQztJQXJCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyQjVCO0lBQUQsZUFBQztDQTNCRCxBQTJCQyxDQTNCcUMsRUFBRSxDQUFDLFNBQVMsR0EyQmpEO2tCQTNCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ld0NsYXNzIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+i0reS5sOWVhuWTgemBk+WFt1xyXG4gICAgYnV5UHJvcChwcm9wTmFtZSkge1xyXG4gICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgLy8gICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgLy8gcHJvcFdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiAtPSAxNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/module/RankList/ItemRender.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender');
+// Script/module/RankList/ItemRender.ts
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var ItemRender = /** @class */ (function (_super) {
+ __extends(ItemRender, _super);
+ function ItemRender() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ /**数据 */
+ _this.data = null;
+ /**索引 0表示第一项*/
+ _this.itemIndex = 0;
+ return _this;
+ }
+ /**数据改变时调用 */
+ ItemRender.prototype.dataChanged = function () {
+ this.data.name = cc.fx.GameTool.subName(this.data.name, 6);
+ this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + "";
+ this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + "";
+ this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total;
+ var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time);
+ // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + "";
+ this.node.getChildByName("rank").getChildByName("one").active = false;
+ this.node.getChildByName("rank").getChildByName("two").active = false;
+ this.node.getChildByName("rank").getChildByName("three").active = false;
+ if (this.data.rank == 1) {
+ this.node.getChildByName("rank").getChildByName("one").active = true;
+ this.node.getChildByName("rankLab").active = false;
+ }
+ else if (this.data.rank == 2) {
+ this.node.getChildByName("rank").getChildByName("two").active = true;
+ this.node.getChildByName("rankLab").active = false;
+ }
+ else if (this.data.rank == 3) {
+ this.node.getChildByName("rank").getChildByName("three").active = true;
+ this.node.getChildByName("rankLab").active = false;
+ }
+ else {
+ this.node.getChildByName("rankLab").active = true;
+ }
+ this.setPic();
+ };
+ ItemRender.prototype.setPic = function () {
+ var _this = this;
+ this.node.getChildByName("pic").getChildByName("icon").active = false;
+ this.node.getChildByName("pic").getChildByName("pic").active = false;
+ var self = this;
+ var url = this.data.pic;
+ fetch(url)
+ .then(function (response) {
+ return response.headers.get('Content-Length');
+ })
+ .then(function (errNo) {
+ // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值
+ if (errNo == "5093") {
+ // console.log(this.data.rank,"没头像");
+ _this.node.getChildByName("pic").getChildByName("icon").active = true;
+ }
+ })
+ .catch(function (error) {
+ // console.error('Error fetching X-Info:', error);
+ });
+ cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) {
+ if (texture) {
+ _this.node.getChildByName("pic").getChildByName("pic").active = true;
+ var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite);
+ sprite.spriteFrame = new cc.SpriteFrame(texture);
+ // console.log(this.data.rank,"设置头像成功",err);
+ }
+ else {
+ // console.log("设置头像失败",url);
+ console.log(err, texture);
+ }
+ });
+ };
+ ItemRender = __decorate([
+ ccclass
+ ], ItemRender);
+ return ItemRender;
+}(cc.Component));
+exports.default = ItemRender;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBc0VDO1FBckVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWtFaEMsQ0FBQztJQWhFRyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMs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QUEsS0FBSztZQUNSLGtEQUFrRDtRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQW5FZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXNFOUI7SUFBRCxpQkFBQztDQXRFRCxBQXNFQyxDQXRFdUMsRUFBRSxDQUFDLFNBQVMsR0FzRW5EO2tCQXRFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICB0aGlzLmRhdGEubmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGhpcy5kYXRhLm5hbWUsNik7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0=
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite');
+// Script/TmoSprite.js
+
+"use strict";
+
+exports.__esModule = true;
+exports["default"] = void 0;
+var _TmoAssembler = require("./TmoAssembler");
+var _default = cc.Class({
+ "extends": cc.Sprite,
+ /**
+ * 设置TextureIndex
+ */
+ setTextureIdx: function setTextureIdx(idx) {
+ this._textureIdx = idx;
+ this.setVertsDirty();
+ },
+ _getDefaultMaterial: function _getDefaultMaterial() {
+ // 从TiledMap取得默认的材质
+ return this._getTiledMap().getObjectMaterial();
+ },
+ _updateMaterial: function _updateMaterial() {
+ // make sure material is belong to self.
+ var material = this.getMaterial(0);
+ if (material) {
+ if (material.getDefine('USE_TEXTURE') !== undefined) {
+ material.define('USE_TEXTURE', true);
+ }
+ // 手动设置哈希值,避免无法合批
+ material.updateHash(999999);
+
+ // 增加WITH_COLOR宏定义
+ var noColor = this.isNoColor();
+ material.define('WITH_COLOR', !noColor);
+ }
+ cc.BlendFunc.prototype._updateMaterial.call(this);
+ },
+ _resetAssembler: function _resetAssembler() {
+ // 修改默认Assembler
+ var assembler = this._assembler = new _TmoAssembler.TmoAssembler();
+ assembler.init(this);
+ this._updateColor();
+ this.setVertsDirty();
+ },
+ _getTiledMap: function _getTiledMap() {
+ return this.node._tiledMap;
+ },
+ isNoColor: function isNoColor() {
+ return this._getTiledMap().isNoColor();
+ }
+});
+exports["default"] = _default;
+module.exports = exports["default"];
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbIl9UbW9Bc3NlbWJsZXIiLCJyZXF1aXJlIiwiX2RlZmF1bHQiLCJjYyIsIkNsYXNzIiwiU3ByaXRlIiwic2V0VGV4dHVyZUlkeCIsImlkeCIsIl90ZXh0dXJlSWR4Iiwic2V0VmVydHNEaXJ0eSIsIl9nZXREZWZhdWx0TWF0ZXJpYWwiLCJfZ2V0VGlsZWRNYXAiLCJnZXRPYmplY3RNYXRlcmlhbCIsIl91cGRhdGVNYXRlcmlhbCIsIm1hdGVyaWFsIiwiZ2V0TWF0ZXJpYWwiLCJnZXREZWZpbmUiLCJ1bmRlZmluZWQiLCJkZWZpbmUiLCJ1cGRhdGVIYXNoIiwibm9Db2xvciIsImlzTm9Db2xvciIsIkJsZW5kRnVuYyIsInByb3RvdHlwZSIsImNhbGwiLCJfcmVzZXRBc3NlbWJsZXIiLCJhc3NlbWJsZXIiLCJfYXNzZW1ibGVyIiwiVG1vQXNzZW1ibGVyIiwiaW5pdCIsIl91cGRhdGVDb2xvciIsIm5vZGUiLCJfdGlsZWRNYXAiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQThDLElBQUFDLFFBQUEsR0FFL0JDLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3BCLFdBQVNELEVBQUUsQ0FBQ0UsTUFBTTtFQUVsQjtBQUNKO0FBQ0E7RUFDSUMsYUFBYSxXQUFBQSxjQUFDQyxHQUFHLEVBQUU7SUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0QsR0FBRztJQUN0QixJQUFJLENBQUNFLGFBQWEsRUFBRTtFQUN4QixDQUFDO0VBRURDLG1CQUFtQixXQUFBQSxvQkFBQSxFQUFHO0lBQ2xCO0lBQ0EsT0FBTyxJQUFJLENBQUNDLFlBQVksRUFBRSxDQUFDQyxpQkFBaUIsRUFBRTtFQUNsRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJRCxRQUFRLEVBQUU7TUFDVixJQUFJQSxRQUFRLENBQUNFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBS0MsU0FBUyxFQUFFO1FBQ2pESCxRQUFRLENBQUNJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO01BQ3hDO01BQ0E7TUFDQUosUUFBUSxDQUFDSyxVQUFVLENBQUMsTUFBTSxDQUFDOztNQUUzQjtNQUNBLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUNDLFNBQVMsRUFBRTtNQUM5QlAsUUFBUSxDQUFDSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUNFLE9BQU8sQ0FBQztJQUMzQztJQUVBakIsRUFBRSxDQUFDbUIsU0FBUyxDQUFDQyxTQUFTLENBQUNWLGVBQWUsQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztFQUNyRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUlDLDBCQUFZLEVBQUU7SUFDcERGLFNBQVMsQ0FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQztJQUVwQixJQUFJLENBQUNDLFlBQVksRUFBRTtJQUNuQixJQUFJLENBQUNyQixhQUFhLEVBQUU7RUFDeEIsQ0FBQztFQUVERSxZQUFZLFdBQUFBLGFBQUEsRUFBRztJQUNYLE9BQU8sSUFBSSxDQUFDb0IsSUFBSSxDQUFDQyxTQUFTO0VBQzlCLENBQUM7RUFFRFgsU0FBUyxXQUFBQSxVQUFBLEVBQUc7SUFDUixPQUFPLElBQUksQ0FBQ1YsWUFBWSxFQUFFLENBQUNVLFNBQVMsRUFBRTtFQUMxQztBQUNKLENBQUMsQ0FBQztBQUFBWSxPQUFBLGNBQUEvQixRQUFBO0FBQUFnQyxNQUFBLENBQUFELE9BQUEsR0FBQUEsT0FBQSIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG1vQXNzZW1ibGVyIH0gZnJvbSBcIi4vVG1vQXNzZW1ibGVyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5TcHJpdGUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDorr7nva5UZXh0dXJlSW5kZXhcclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZUlkeChpZHgpIHtcclxuICAgICAgICB0aGlzLl90ZXh0dXJlSWR4ID0gaWR4XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXREZWZhdWx0TWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8g5LuOVGlsZWRNYXDlj5blvpfpu5jorqTnmoTmnZDotKhcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5nZXRPYmplY3RNYXRlcmlhbCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfdXBkYXRlTWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8gbWFrZSBzdXJlIG1hdGVyaWFsIGlzIGJlbG9uZyB0byBzZWxmLlxyXG4gICAgICAgIGxldCBtYXRlcmlhbCA9IHRoaXMuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICAgICAgaWYgKG1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXRlcmlhbC5nZXREZWZpbmUoJ1VTRV9URVhUVVJFJykgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdVU0VfVEVYVFVSRScsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOaJi+WKqOiuvue9ruWTiOW4jOWAvO+8jOmBv+WFjeaXoOazleWQiOaJuVxyXG4gICAgICAgICAgICBtYXRlcmlhbC51cGRhdGVIYXNoKDk5OTk5OSk7XHJcblxyXG4gICAgICAgICAgICAvLyDlop7liqBXSVRIX0NPTE9S5a6P5a6a5LmJXHJcbiAgICAgICAgICAgIGxldCBub0NvbG9yID0gdGhpcy5pc05vQ29sb3IoKTtcclxuICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdXSVRIX0NPTE9SJywgIW5vQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2MuQmxlbmRGdW5jLnByb3RvdHlwZS5fdXBkYXRlTWF0ZXJpYWwuY2FsbCh0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3Jlc2V0QXNzZW1ibGVyKCkge1xyXG4gICAgICAgIC8vIOS/ruaUuem7mOiupEFzc2VtYmxlclxyXG4gICAgICAgIGxldCBhc3NlbWJsZXIgPSB0aGlzLl9hc3NlbWJsZXIgPSBuZXcgVG1vQXNzZW1ibGVyKCk7XHJcbiAgICAgICAgYXNzZW1ibGVyLmluaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yKCk7XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXRUaWxlZE1hcCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLl90aWxlZE1hcDtcclxuICAgIH0sXHJcblxyXG4gICAgaXNOb0NvbG9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRUaWxlZE1hcCgpLmlzTm9Db2xvcigpO1xyXG4gICAgfVxyXG59KTtcclxuIl19
+//------QC-SOURCE-SPLIT------
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer');
+// Script/TmoTiledLayer.js
"use strict";
@@ -17918,192 +18328,152 @@ exports["default"] = void 0;
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var TmoSprite = require("./TmoSprite");
+var _mat4_temp = cc.mat4();
+var _vec2_temp = cc.v2();
+var _vec2_temp2 = cc.v2();
var _default = cc.Class({
- "extends": cc.TiledObjectGroup,
- _init: function _init(groupInfo, mapInfo, texGrids, tiledMap) {
+ "extends": cc.TiledLayer,
+ // 此处修改 增加firstTmxLayer参数
+ _init: function _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {
+ // 修改结束
+ this._cullingDirty = true;
+ this._layerInfo = layerInfo;
+ this._mapInfo = mapInfo;
+ // 此处修改 保存firstTmxLayer参数
+ this._firstTmxLayer = firstTmxLayer;
+ this._tiledMap = tiledMap;
+ // 修改结束
+
+ var size = layerInfo._layerSize;
+
+ // layerInfo
+ this._layerName = layerInfo.name;
+ this._tiles = layerInfo._tiles;
+ this._properties = layerInfo.properties;
+ this._layerSize = size;
+ this._minGID = layerInfo._minGID;
+ this._maxGID = layerInfo._maxGID;
+ this._opacity = layerInfo._opacity;
+ this._renderOrder = mapInfo.renderOrder;
+ this._staggerAxis = mapInfo.getStaggerAxis();
+ this._staggerIndex = mapInfo.getStaggerIndex();
+ this._hexSideLength = mapInfo.getHexSideLength();
+ this._animations = mapInfo.getTileAnimations();
+
+ // tilesets
+ this._tilesets = tilesets;
+ // textures
+ this._textures = textures;
+ // grid texture
+ this._texGrids = texGrids;
+
+ // mapInfo
+ this._layerOrientation = mapInfo.orientation;
+ this._mapTileSize = mapInfo.getTileSize();
+ var maptw = this._mapTileSize.width;
+ var mapth = this._mapTileSize.height;
+ var layerW = this._layerSize.width;
+ var layerH = this._layerSize.height;
+ if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {
+ // handle hex map
+ var TiledMap = cc.TiledMap;
+ var StaggerAxis = TiledMap.StaggerAxis;
+ var StaggerIndex = TiledMap.StaggerIndex;
+ var width = 0,
+ height = 0;
+ this._odd_even = this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD ? 1 : -1;
+ if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {
+ this._diffX1 = (maptw - this._hexSideLength) / 2;
+ this._diffY1 = 0;
+ height = mapth * (layerH + 0.5);
+ width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);
+ } else {
+ this._diffX1 = 0;
+ this._diffY1 = (mapth - this._hexSideLength) / 2;
+ width = maptw * (layerW + 0.5);
+ height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);
+ }
+ this.node.setContentSize(width, height);
+ } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {
+ var wh = layerW + layerH;
+ this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);
+ } else {
+ this.node.setContentSize(layerW * maptw, layerH * mapth);
+ }
+
+ // offset (after layer orientation is set);
+ this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);
+ this._useAutomaticVertexZ = false;
+ this._vertexZvalue = 0;
+ this._syncAnchorPoint();
+ this._prepareToRender();
+ },
+ _updateCulling: function _updateCulling() {
+ if (CC_EDITOR) {
+ this.enableCulling(false);
+ } else if (this._enableCulling) {
+ // 此处修改 若不为首个layer 直接复用firstLayer的结果
+ // this._firstTmxLayer不为空时 表示当前layer不是首个layer
+ var firstTmxLayer = this._firstTmxLayer;
+ if (!!firstTmxLayer) {
+ this._cullingRect = firstTmxLayer._cullingRect;
+ this._cullingDirty = firstTmxLayer._cacheCullingDirty;
+ return;
+ }
+ // 修改结束
+
+ this.node._updateWorldMatrix();
+ cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);
+ var rect = cc.visibleRect;
+ var camera = cc.Camera.findCamera(this.node);
+ if (camera) {
+ _vec2_temp.x = 0;
+ _vec2_temp.y = 0;
+ _vec2_temp2.x = _vec2_temp.x + rect.width;
+ _vec2_temp2.y = _vec2_temp.y + rect.height;
+ camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);
+ camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);
+ cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);
+ cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);
+ this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);
+ // 此处修改 若为首个layer 缓存_cullingDirty。
+ // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果
+ if (!firstTmxLayer) {
+ this._cacheCullingDirty = this._cullingDirty;
+ }
+ // 修改结束
+ }
+ }
+ },
+ _traverseAllGrid: function _traverseAllGrid() {
+ var tiles = this._tiles;
+ var texGrids = this._texGrids;
+ var tilesetIndexArr = this._tilesetIndexArr;
+ var tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};
var TiledMap = cc.TiledMap;
- var TMXObjectType = TiledMap.TMXObjectType;
- var Orientation = TiledMap.Orientation;
- var StaggerAxis = TiledMap.StaggerAxis;
var TileFlag = TiledMap.TileFlag;
var FLIPPED_MASK = TileFlag.FLIPPED_MASK;
- var FLAG_HORIZONTAL = TileFlag.HORIZONTAL;
- var FLAG_VERTICAL = TileFlag.VERTICAL;
- this._groupName = groupInfo.name;
- this._positionOffset = groupInfo.offset;
- this._mapInfo = mapInfo;
- this._properties = groupInfo.getProperties();
- this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);
- this._opacity = groupInfo._opacity;
- var mapSize = mapInfo._mapSize;
- var tileSize = mapInfo._tileSize;
- var width = 0,
- height = 0;
- if (mapInfo.orientation === Orientation.HEX) {
- if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {
- height = tileSize.height * (mapSize.height + 0.5);
- width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);
- } else {
- width = tileSize.width * (mapSize.width + 0.5);
- height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);
+ var singleTexture = this._tiledMap.isSingleTexture();
+ tilesetIndexArr.length = 0;
+ for (var i = 0; i < tiles.length; i++) {
+ var gid = tiles[i];
+ if (gid === 0) continue;
+ gid = (gid & FLIPPED_MASK) >>> 0;
+ var grid = texGrids[gid];
+ if (!grid) {
+ cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", gid);
+ continue;
}
- } else if (mapInfo.orientation === Orientation.ISO) {
- var wh = mapSize.width + mapSize.height;
- width = tileSize.width * 0.5 * wh;
- height = tileSize.height * 0.5 * wh;
- } else {
- width = mapSize.width * tileSize.width;
- height = mapSize.height * tileSize.height;
- }
- this.node.setContentSize(width, height);
- var leftTopX = width * this.node.anchorX;
- var leftTopY = height * (1 - this.node.anchorY);
- var objects = groupInfo._objects;
- var aliveNodes = {};
+ var tilesetIdx = grid.texId;
+ if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;
+ tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;
+ tilesetIndexArr.push(tilesetIdx);
- // 生成映射Map { Texture2D: textureIndex }
- var textureIndexMap = new Map();
- var objectTextures = tiledMap.getObjectTextures();
- objectTextures.forEach(function (texture, idx) {
- return textureIndexMap.set(texture, idx);
- });
- for (var i = 0, l = objects.length; i < l; i++) {
- var object = objects[i];
- var objType = object.type;
- object.offset = cc.v2(object.x, object.y);
- var points = object.points || object.polylinePoints;
- if (points) {
- for (var pi = 0; pi < points.length; pi++) {
- points[pi].y *= -1;
- }
+ // 此处修改 当只有一个图集时 可以直接停止遍历
+ if (singleTexture) {
+ break;
}
- if (Orientation.ISO !== mapInfo.orientation) {
- object.y = height - object.y;
- } else {
- var posIdxX = object.x / tileSize.height;
- var posIdxY = object.y / tileSize.height;
- object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);
- object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);
- }
- if (objType === TMXObjectType.TEXT) {
- var textName = "text" + object.id;
- aliveNodes[textName] = true;
- var textNode = this.node.getChildByName(textName);
- if (!textNode) {
- textNode = new cc.Node();
- }
- textNode.active = object.visible;
- textNode.anchorX = 0;
- textNode.anchorY = 1;
- textNode.angle = -object.rotation;
- textNode.x = object.x - leftTopX;
- textNode.y = object.y - leftTopY;
- textNode.name = textName;
- textNode.parent = this.node;
- textNode.color = object.color;
- textNode.opacity = this._opacity;
- textNode.setSiblingIndex(i);
- var label = textNode.getComponent(cc.Label);
- if (!label) {
- label = textNode.addComponent(cc.Label);
- }
- label.overflow = cc.Label.Overflow.SHRINK;
- label.lineHeight = object.height;
- label.string = object.text;
- label.horizontalAlign = object.halign;
- label.verticalAlign = object.valign;
- label.fontSize = object.pixelsize;
- textNode.width = object.width;
- textNode.height = object.height;
- }
- if (objType === TMXObjectType.IMAGE) {
- var gid = object.gid;
- var grid = texGrids[(gid & FLIPPED_MASK) >>> 0];
- if (!grid) continue;
- var tileset = grid.tileset;
- var imgName = "img" + object.id;
- aliveNodes[imgName] = true;
- var imgNode = this.node.getChildByName(imgName);
- var imgWidth = object.width || grid.width;
- var imgHeight = object.height || grid.height;
- var tileOffsetX = tileset.tileOffset.x;
- var tileOffsetY = tileset.tileOffset.y;
-
- // Delete image nodes implemented as private nodes
- // Use cc.Node to implement node-level requirements
- if (imgNode instanceof cc.PrivateNode) {
- imgNode.removeFromParent();
- imgNode.destroy();
- imgNode = null;
- }
- if (!imgNode) {
- imgNode = new cc.Node();
- }
- if (Orientation.ISO == mapInfo.orientation) {
- imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;
- imgNode.anchorY = tileOffsetY / imgHeight;
- } else {
- imgNode.anchorX = tileOffsetX / imgWidth;
- imgNode.anchorY = tileOffsetY / imgHeight;
- }
- imgNode.active = object.visible;
- imgNode.angle = -object.rotation;
- imgNode.x = object.x - leftTopX;
- imgNode.y = object.y - leftTopY;
- imgNode.name = imgName;
- imgNode.parent = this.node;
- imgNode.opacity = this._opacity;
- imgNode.setSiblingIndex(i);
- imgNode._tiledMap = tiledMap;
- var sp = imgNode.getComponent(TmoSprite);
- if (!sp) {
- sp = imgNode.addComponent(TmoSprite);
- }
- var spf = sp.spriteFrame;
- if (!spf) {
- spf = new cc.SpriteFrame();
- }
- if ((gid & FLAG_HORIZONTAL) >>> 0) {
- spf.setFlipX(true);
- } else {
- spf.setFlipX(false);
- }
- if ((gid & FLAG_VERTICAL) >>> 0) {
- spf.setFlipY(true);
- } else {
- spf.setFlipY(false);
- }
- var sourceImage = grid.tileset.sourceImage;
- spf.setTexture(sourceImage, cc.rect(grid));
- sp.spriteFrame = spf;
- sp.setVertsDirty();
-
- // object group may has no width or height info
- imgNode.width = imgWidth;
- imgNode.height = imgHeight;
-
- // 收集图集 更新textureIndexMap
- if (!textureIndexMap.has(sourceImage)) {
- textureIndexMap.set(sourceImage, objectTextures.length);
- objectTextures.push(sourceImage);
- }
-
- // 设置textureIndex
- var textureIndex = textureIndexMap.get(sourceImage);
- sp.setTextureIdx(textureIndex + 1);
- }
- }
- this._objects = objects;
-
- // destroy useless node
- var children = this.node.children;
- var uselessExp = /^(?:img|text)\d+$/;
- for (var _i = 0, n = children.length; _i < n; _i++) {
- var c = children[_i];
- var cName = c._name;
- var isUseless = uselessExp.test(cName);
- if (isUseless && !aliveNodes[cName]) c.destroy();
+ // 修改结束
}
}
});
@@ -18121,180 +18491,5 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiY2MiLCJDbGFzcyIsIlRpbGVkT2JqZWN0R3JvdXAiLCJfaW5pdCIsImdyb3VwSW5mbyIsIm1hcEluZm8iLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiVGlsZWRNYXAiLCJUTVhPYmplY3RUeXBlIiwiT3JpZW50YXRpb24iLCJTdGFnZ2VyQXhpcyIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwiRkxBR19IT1JJWk9OVEFMIiwiSE9SSVpPTlRBTCIsIkZMQUdfVkVSVElDQUwiLCJWRVJUSUNBTCIsIl9ncm91cE5hbWUiLCJuYW1lIiwiX3Bvc2l0aW9uT2Zmc2V0Iiwib2Zmc2V0IiwiX21hcEluZm8iLCJfcHJvcGVydGllcyIsImdldFByb3BlcnRpZXMiLCJfb2Zmc2V0IiwidjIiLCJ4IiwieSIsIl9vcGFjaXR5IiwibWFwU2l6ZSIsIl9tYXBTaXplIiwidGlsZVNpemUiLCJfdGlsZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm9yaWVudGF0aW9uIiwiSEVYIiwiZ2V0U3RhZ2dlckF4aXMiLCJTVEFHR0VSQVhJU19YIiwiZ2V0SGV4U2lkZUxlbmd0aCIsIk1hdGgiLCJmbG9vciIsIklTTyIsIndoIiwibm9kZSIsInNldENvbnRlbnRTaXplIiwibGVmdFRvcFgiLCJhbmNob3JYIiwibGVmdFRvcFkiLCJhbmNob3JZIiwib2JqZWN0cyIsIl9vYmplY3RzIiwiYWxpdmVOb2RlcyIsInRleHR1cmVJbmRleE1hcCIsIk1hcCIsIm9iamVjdFRleHR1cmVzIiwiZ2V0T2JqZWN0VGV4dHVyZXMiLCJmb3JFYWNoIiwidGV4dHVyZSIsImlkeCIsInNldCIsImkiLCJsIiwibGVuZ3RoIiwib2JqZWN0Iiwib2JqVHlwZSIsInR5cGUiLCJwb2ludHMiLCJwb2x5bGluZVBvaW50cyIsInBpIiwicG9zSWR4WCIsInBvc0lkeFkiLCJURVhUIiwidGV4dE5hbWUiLCJpZCIsInRleHROb2RlIiwiZ2V0Q2hpbGRCeU5hbWUiLCJOb2RlIiwiYWN0aXZlIiwidmlzaWJsZSIsImFuZ2xlIiwicm90YXRpb24iLCJwYXJlbnQiLCJjb2xvciIsIm9wYWNpdHkiLCJzZXRTaWJsaW5nSW5kZXgiLCJsYWJlbCIsImdldENvbXBvbmVudCIsIkxhYmVsIiwiYWRkQ29tcG9uZW50Iiwib3ZlcmZsb3ciLCJPdmVyZmxvdyIsIlNIUklOSyIsImxpbmVIZWlnaHQiLCJzdHJpbmciLCJ0ZXh0IiwiaG9yaXpvbnRhbEFsaWduIiwiaGFsaWduIiwidmVydGljYWxBbGlnbiIsInZhbGlnbiIsImZvbnRTaXplIiwicGl4ZWxzaXplIiwiSU1BR0UiLCJnaWQiLCJncmlkIiwidGlsZXNldCIsImltZ05hbWUiLCJpbWdOb2RlIiwiaW1nV2lkdGgiLCJpbWdIZWlnaHQiLCJ0aWxlT2Zmc2V0WCIsInRpbGVPZmZzZXQiLCJ0aWxlT2Zmc2V0WSIsIlByaXZhdGVOb2RlIiwicmVtb3ZlRnJvbVBhcmVudCIsImRlc3Ryb3kiLCJfdGlsZWRNYXAiLCJzcCIsInNwZiIsInNwcml0ZUZyYW1lIiwiU3ByaXRlRnJhbWUiLCJzZXRGbGlwWCIsInNldEZsaXBZIiwic291cmNlSW1hZ2UiLCJzZXRUZXh0dXJlIiwicmVjdCIsInNldFZlcnRzRGlydHkiLCJoYXMiLCJwdXNoIiwidGV4dHVyZUluZGV4IiwiZ2V0Iiwic2V0VGV4dHVyZUlkeCIsImNoaWxkcmVuIiwidXNlbGVzc0V4cCIsIm4iLCJjIiwiY05hbWUiLCJfbmFtZSIsImlzVXNlbGVzcyIsInRlc3QiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFMUJDLEVBQUUsQ0FB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RyxDQUFDSixXQUFXLENBQUMsRUFBRTtVQUNuQ3RFLGVBQWUsQ0FBQ08sR0FBRyxDQUFDK0QsV0FBVyxFQUFFcEUsY0FBYyxDQUFDUSxNQUFNLENBQUM7VUFDdkRSLGNBQWMsQ0FBQ3lFLElBQUksQ0FBQ0wsV0FBVyxDQUFDO1FBQ3BDOztRQUVBO1FBQ0EsSUFBSU0sWUFBWSxHQUFHNUUsZUFBZSxDQUFDNkUsR0FBRyxDQUFDUCxXQUFXLENBQUM7UUFDbkROLEVBQUUsQ0FBQ2MsYUFBYSxDQUFDRixZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ3RDO0lBQ0o7SUFDQSxJQUFJLENBQUM5RSxRQUFRLEdBQUdELE9BQU87O0lBR3ZCO0lBQ0EsSUFBSWtGLFFBQVEsR0FBRyxJQUFJLENBQUN4RixJQUFJLENBQUN3RixRQUFRO0lBQ2pDLElBQUlDLFVBQVUsR0FBRyxtQkFBbUI7SUFDcEMsS0FBSyxJQUFJeEUsRUFBQyxHQUFHLENBQUMsRUFBRXlFLENBQUMsR0FBR0YsUUFBUSxDQUFDckUsTUFBTSxFQUFFRixFQUFDLEdBQUd5RSxDQUFDLEVBQUV6RSxFQUFDLEVBQUUsRUFBRTtNQUM3QyxJQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFDLENBQUM7TUFDbkIsSUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFLO01BQ25CLElBQUlDLFNBQVMsR0FBR0wsVUFBVSxDQUFDTSxJQUFJLENBQUNILEtBQUssQ0FBQztNQUN0QyxJQUFJRSxTQUFTLElBQUksQ0FBQ3RGLFVBQVUsQ0FBQ29GLEtBQUssQ0FBQyxFQUFFRCxDQUFDLENBQUNwQixPQUFPLEVBQUU7SUFDcEQ7RUFFSjtBQUNKLENBQUMsQ0FBQztBQUFBeUIsT0FBQSxjQUFBOUksUUFBQTtBQUFBK0ksTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ==
-//------QC-SOURCE-SPLIT------
-
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
-cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap');
-// Script/TmoTiledMap.js
-
-"use strict";
-
-// Learn cc.Class:
-// - https://docs.cocos.com/creator/manual/en/scripting/class.html
-// Learn Attribute:
-// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
-// Learn life-cycle callbacks:
-// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
-var TmoTiledLayer = require("./TmoTiledLayer");
-var TmoObjectGroup = require("./TmoObjectGroup");
-cc.Class({
- "extends": cc.TiledMap,
- properties: {
- objectMaterial: cc.Material,
- noColor: true,
- singleTexture: true,
- _objectTextures: []
- },
- _applyFile: function _applyFile() {
- if (!this.objectMaterial) {
- cc.error("TiledmapOptimize: 未设置objectMaterial!");
- return;
- }
- this._super();
- },
- _buildLayerAndGroup: function _buildLayerAndGroup() {
- var tilesets = this._tilesets;
- var texGrids = this._texGrids;
- var animations = this._animations;
- texGrids.length = 0;
- for (var i = 0, l = tilesets.length; i < l; ++i) {
- var tilesetInfo = tilesets[i];
- if (!tilesetInfo) continue;
- cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);
- }
- this._fillAniGrids(texGrids, animations);
- var layers = this._layers;
- var groups = this._groups;
- var images = this._images;
- var oldNodeNames = {};
- for (var _i = 0, n = layers.length; _i < n; _i++) {
- oldNodeNames[layers[_i].node._name] = true;
- }
- for (var _i2 = 0, _n = groups.length; _i2 < _n; _i2++) {
- oldNodeNames[groups[_i2].node._name] = true;
- }
- for (var _i3 = 0, _n2 = images.length; _i3 < _n2; _i3++) {
- oldNodeNames[images[_i3]._name] = true;
- }
- layers = this._layers = [];
- groups = this._groups = [];
- images = this._images = [];
- var mapInfo = this._mapInfo;
- var node = this.node;
- var layerInfos = mapInfo.getAllChildren();
- var textures = this._textures;
- var maxWidth = 0;
- var maxHeight = 0;
- this._objectTextures = [];
- var firstTmxLayer = null;
- if (layerInfos && layerInfos.length > 0) {
- for (var _i4 = 0, len = layerInfos.length; _i4 < len; _i4++) {
- var layerInfo = layerInfos[_i4];
- var name = layerInfo.name;
- var child = this.node.getChildByName(name);
- oldNodeNames[name] = false;
- if (!child) {
- child = new cc.Node();
- child.name = name;
- node.addChild(child);
- }
- child.setSiblingIndex(_i4);
- child.active = layerInfo.visible;
- if (layerInfo instanceof cc.TMXLayerInfo) {
- // 此处修改 改为创建MyTiledLayer
- var layer = child.getComponent(TmoTiledLayer);
- if (!layer) {
- layer = child.addComponent(TmoTiledLayer);
- }
- // 修改结束
- // 此处修改 传递firstTmxLayer 记录firstTmxLayer
- layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);
- firstTmxLayer = firstTmxLayer || layer;
- // 修改结束
-
- // tell the layerinfo to release the ownership of the tiles map.
- layerInfo.ownTiles = false;
- layers.push(layer);
- } else if (layerInfo instanceof cc.TMXObjectGroupInfo) {
- var group = child.getComponent(TmoObjectGroup);
- if (!group) {
- group = child.addComponent(TmoObjectGroup);
- }
- group._init(layerInfo, mapInfo, texGrids, this);
- groups.push(group);
- } else if (layerInfo instanceof cc.TMXImageLayerInfo) {
- var texture = layerInfo.sourceImage;
- child.opacity = layerInfo.opacity;
- child.layerInfo = layerInfo;
- child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);
- var image = child.getComponent(cc.Sprite);
- if (!image) {
- image = child.addComponent(cc.Sprite);
- }
- var spf = image.spriteFrame || new cc.SpriteFrame();
- spf.setTexture(texture);
- image.spriteFrame = spf;
- child.width = texture.width;
- child.height = texture.height;
- images.push(child);
- }
- maxWidth = Math.max(maxWidth, child.width);
- maxHeight = Math.max(maxHeight, child.height);
- }
- }
-
- // 设置材质的texture属性
- var objectTextures = this._objectTextures;
- for (var _i5 = 0; _i5 < objectTextures.length; _i5++) {
- var idx = _i5 === 0 ? '' : _i5;
- this.objectMaterial.setProperty("texture" + idx, objectTextures[_i5], 0);
- }
- var children = node.children;
- for (var _i6 = 0, _n3 = children.length; _i6 < _n3; _i6++) {
- var c = children[_i6];
- if (oldNodeNames[c._name]) {
- c.destroy();
- }
- }
- this.node.width = maxWidth;
- this.node.height = maxHeight;
- this._syncAnchorPoint();
- },
- getObjectMaterial: function getObjectMaterial() {
- return this.objectMaterial;
- },
- isNoColor: function isNoColor() {
- return this.noColor;
- },
- isSingleTexture: function isSingleTexture() {
- return this.singleTexture;
- },
- getObjectTextures: function getObjectTextures() {
- return this._objectTextures;
- }
-});
-
-cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDaEQsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDbERFLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxRQUFRO0VBQ3BCQyxVQUFVLEVBQUU7SUFDUkMsY0FBYyxFQUFFSixFQUFFLENBQUNLLFFBQVE7SUFDM0JDLE9BQU8sRUFBRSxJQUFJO0lBQ2JDLGFBQWEsRUFBRSxJQUFJO0lBRW5CQyxlQUFlLEVBQUU7RUFDckIsQ0FBQztFQUdEQyxVQUFVLEVBQUUsU0FBQUEsV0FBQSxFQUFZO0lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUNMLGNBQWMsRUFBRTtNQUN0QkosRUFBRSxDQUFDVSxLQUFLLENBQUMsc0NBQXNDLENBQUM7TUFDaEQ7SUFDSjtJQUVBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO0VBQ2pCLENBQUM7RUFFREMsbUJBQW1CLEVBQUUsU0FBQUEsb0JBQUEsRUFBWTtJQUM3QixJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxJQUFJLENBQUNDLFNBQVM7SUFDN0IsSUFBSUMsVUFBVSxH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QUFDO0VBRURzRixTQUFTLEVBQUUsU0FBQUEsVUFBQSxFQUFZO0lBQ25CLE9BQU8sSUFBSSxDQUFDcEYsT0FBTztFQUN2QixDQUFDO0VBRURxRixlQUFlLEVBQUUsU0FBQUEsZ0JBQUEsRUFBWTtJQUN6QixPQUFPLElBQUksQ0FBQ3BGLGFBQWE7RUFDN0IsQ0FBQztFQUVEcUYsaUJBQWlCLEVBQUUsU0FBQUEsa0JBQUEsRUFBWTtJQUMzQixPQUFPLElBQUksQ0FBQ3BGLGVBQWU7RUFDL0I7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+572ub2JqZWN0TWF0ZXJpYWwhXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdXBlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfYnVpbGRMYXllckFuZEdyb3VwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRzID0gdGhpcy5fdGlsZXNldHM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSB0aGlzLl9hbmltYXRpb25zO1xyXG4gICAgICAgIHRleEdyaWRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aWxlc2V0cy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRpbGVzZXRJbmZvID0gdGlsZXNldHNbaV07XHJcbiAgICAgICAgICAgIGlmICghdGlsZXNldEluZm8pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjYy5UaWxlZE1hcC5maWxsVGV4dHVyZUdyaWRzKHRpbGVzZXRJbmZvLCB0ZXhHcmlkcywgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2ZpbGxBbmlHcmlkcyh0ZXhHcmlkcywgYW5pbWF0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBsYXllcnMgPSB0aGlzLl9sYXllcnM7XHJcbiAgICAgICAgbGV0IGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcclxuICAgICAgICBsZXQgaW1hZ2VzID0gdGhpcy5faW1hZ2VzO1xyXG4gICAgICAgIGxldCBvbGROb2RlTmFtZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheWVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgb2xkTm9kZU5hbWVzW2xheWVyc1tpXS5ub2RlLl9uYW1lXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBvbGROb2RlTmFtZXNbZ3JvdXBzW2ldLm5vZGUuX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBpbWFnZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tpbWFnZXNbaV0uX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxheWVycyA9IHRoaXMuX2xheWVycyA9IFtdO1xyXG4gICAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcyA9IFtdO1xyXG4gICAgICAgIGltYWdlcyA9IHRoaXMuX2ltYWdlcyA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbWFwSW5mbyA9IHRoaXMuX21hcEluZm87XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGxheWVySW5mb3MgPSBtYXBJbmZvLmdldEFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgbGV0IHRleHR1cmVzID0gdGhpcy5fdGV4dHVyZXM7XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb2JqZWN0VGV4dHVyZXMgPSBbXTtcclxuICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChsYXllckluZm9zICYmIGxheWVySW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5ZXJJbmZvcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxheWVySW5mbyA9IGxheWVySW5mb3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tuYW1lXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuYWN0aXZlID0gbGF5ZXJJbmZvLnZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxheWVySW5mbyBpbnN0YW5jZW9mIGNjLlRNWExheWVySW5mbykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDmlLnkuLrliJvlu7pNeVRpbGVkTGF5ZXJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXIgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vVGlsZWRMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllciA9IGNoaWxkLmFkZENvbXBvbmVudChUbW9UaWxlZExheWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS8oOmAkmZpcnN0VG14TGF5ZXIg6K6w5b2VZmlyc3RUbXhMYXllclxyXG4gICAgICAgICAgICAgICAgICAgIGxheWVyLl9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGhpcywgZmlyc3RUbXhMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RUbXhMYXllciA9IGZpcnN0VG14TGF5ZXIgfHwgbGF5ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgdGhlIGxheWVyaW5mbyB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgb2YgdGhlIHRpbGVzIG1hcC5cclxuICAgICAgICAgICAgICAgICAgICBsYXllckluZm8ub3duVGlsZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBsYXllcnMucHVzaChsYXllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllckluZm8gaW5zdGFuY2VvZiBjYy5UTVhPYmplY3RHcm91cEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBjaGlsZC5hZGRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuX2luaXQobGF5ZXJJbmZvLCBtYXBJbmZvLCB0ZXhHcmlkcywgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXJJbmZvIGluc3RhbmNlb2YgY2MuVE1YSW1hZ2VMYXllckluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGxheWVySW5mby5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5vcGFjaXR5ID0gbGF5ZXJJbmZvLm9wYWNpdHk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubGF5ZXJJbmZvID0gbGF5ZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBjaGlsZC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlID0gY2hpbGQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BmID0gaW1hZ2Uuc3ByaXRlRnJhbWUgfHwgbmV3IGNjLlNwcml0ZUZyYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldFRleHR1cmUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3ByaXRlRnJhbWUgPSBzcGY7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZHRoID0gdGV4dHVyZS53aWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5oZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgY2hpbGQud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZC5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7mnZDotKjnmoR0ZXh0dXJl5bGe5oCnXHJcbiAgICAgICAgbGV0IG9iamVjdFRleHR1cmVzID0gdGhpcy5fb2JqZWN0VGV4dHVyZXM7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RUZXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaWR4ID0gaSA9PT0gMCA/ICcnIDogaTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RNYXRlcmlhbC5zZXRQcm9wZXJ0eShgdGV4dHVyZSR7aWR4fWAsIG9iamVjdFRleHR1cmVzW2ldLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgaWYgKG9sZE5vZGVOYW1lc1tjLl9uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS53aWR0aCA9IG1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMubm9kZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5fc3luY0FuY2hvclBvaW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdE1hdGVyaWFsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0TWF0ZXJpYWw7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5vQ29sb3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzU2luZ2xlVGV4dHVyZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRleHR1cmU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdFRleHR1cmVzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFRleHR1cmVzO1xyXG4gICAgfVxyXG59KTsiXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJfZGVmYXVsdCIsIkNsYXNzIiwiVGlsZWRMYXllciIsIl9pbml0IiwibGF5ZXJJbmZvIiwibWFwSW5mbyIsInRpbGVzZXRzIiwidGV4dHVyZXMiLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiZmlyc3RUbXhMYXllciIsIl9jdWxsaW5nRGlydHkiLCJfbGF5ZXJJbmZvIiwiX21hcEluZm8iLCJfZmlyc3RUbXhMYXllciIsIl90aWxlZE1hcCIsInNpemUiLCJfbGF5ZXJTaXplIiwiX2xheWVyTmFtZSIsIm5hbWUiLCJfdGlsZXMiLCJfcHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJfbWluR0lEIiwiX21heEdJRCIsIl9vcGFjaXR5IiwiX3JlbmRlck9yZGVyIiwicmVuZGVyT3JkZXIiLCJfc3RhZ2dlckF4aXMiLCJnZXRTdGFnZ2VyQXhpcyIsIl9zdGFnZ2VySW5kZXgiLCJnZXRTdGFnZ2VySW5kZXgiLCJfaGV4U2lkZUxlbmd0aCIsImdldEhleFNpZGVMZW5ndGgiLCJfYW5pbWF0aW9ucyIsImdldFRpbGVBbmltYXRpb25zIiwiX3RpbGVzZXRzIiwiX3RleHR1cmVzIiwiX3RleEdyaWRzIiwiX2xheWVyT3JpZW50YXRpb24iLCJvcmllbnRhdGlvbiIsIl9tYXBUaWxlU2l6ZSIsImdldFRpbGVTaXplIiwibWFwdHciLCJ3aWR0aCIsIm1hcHRoIiwiaGVpZ2h0IiwibGF5ZXJXIiwibGF5ZXJIIiwiVGlsZWRNYXAiLCJPcmllbnRhdGlvbiIsIkhFWCIsIlN0YWdnZXJBeGlzIiwiU3RhZ2dlckluZGV4IiwiX29kZF9ldmVuIiwiU1RBR0dFUklOREVYX09ERCIsIlNUQUdHRVJBWElTX1giLCJfZGlmZlgxIiwiX2RpZmZZMSIsIk1hdGgiLCJmbG9vciIsIm5vZGUiLCJzZXRDb250ZW50U2l6ZSIsIklTTyIsIndoIiwiX29mZnNldCIsIm9mZnNldCIsIngiLCJ5IiwiX3VzZUF1dG9tYXRpY1ZlcnRleFoiLCJfdmVydGV4WnZhbHVlIiwiX3N5bmNBbmNob3JQb2ludCIsIl9wcmVwYXJlVG9SZW5kZXIiLCJfdXBkYXRlQ3VsbGluZyIsIkNDX0VESVRPUiIsImVuYWJsZUN1bGxpbmciLCJfZW5hYmxlQ3VsbGluZyIsIl9jdWxsaW5nUmVjdCIsIl9jYWNoZUN1bGxpbmdEaXJ0eSIsIl91cGRhdGVXb3JsZE1hdHJpeCIsIk1hdDQiLCJpbnZlcnQiLCJfd29ybGRNYXRyaXgiLCJyZWN0IiwidmlzaWJsZVJlY3QiLCJjYW1lcmEiLCJDYW1lcmEiLCJmaW5kQ2FtZXJhIiwiZ2V0U2NyZWVuVG9Xb3JsZFBvaW50IiwiVmVjMiIsInRyYW5zZm9ybU1hdDQiLCJfdXBkYXRlVmlld1BvcnQiLCJfdHJhdmVyc2VBbGxHcmlkIiwidGlsZXMiLCJ0aWxlc2V0SW5kZXhBcnIiLCJfdGlsZXNldEluZGV4QXJyIiwidGlsZXNldEluZGV4VG9BcnJJbmRleCIsIl90aWxlc2V0SW5kZXhUb0FyckluZGV4IiwiVGlsZUZsYWciLCJGTElQUEVEX01BU0siLCJzaW5nbGVUZXh0dXJlIiwiaXNTaW5nbGVUZXh0dXJlIiwibGVuZ3RoIiwiaSIsImdpZCIsImdyaWQiLCJlcnJvciIsInRpbGVzZXRJZHgiLCJ0ZXhJZCIsInVuZGVmaW5lZCIsInB1c2giLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFJLEVBQUU7QUFDMUIsSUFBSUMsVUFBVSxHQUFHRixFQUFFLENBQUNHLEVBQUUsRUFBRTtBQUN4QixJQUFJQyxXQUFXLEdBQUdKLEVBQUUsQ0FBQ0csRUFBRSxFQUFFO0FBQUMsSUFBQUUsUUFBQSxHQUVY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QUFBL0csUUFBQTtBQUFBZ0gsTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxubGV0IF9tYXQ0X3RlbXAgPSBjYy5tYXQ0KCk7XHJcbmxldCBfdmVjMl90ZW1wID0gY2MudjIoKTtcclxubGV0IF92ZWMyX3RlbXAyID0gY2MudjIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLlRpbGVkTGF5ZXIsXHJcblxyXG4gICAgLy8g5q2k5aSE5L+u5pS5IOWinuWKoGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgIF9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGlsZWRNYXAsIGZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2xheWVySW5mbyA9IGxheWVySW5mbztcclxuICAgICAgICB0aGlzLl9tYXBJbmZvID0gbWFwSW5mbztcclxuICAgICAgICAvLyDmraTlpITkv67mlLkg5L+d5a2YZmlyc3RUbXhMYXllcuWPguaVsFxyXG4gICAgICAgIHRoaXMuX2ZpcnN0VG14TGF5ZXIgPSBmaXJzdFRteExheWVyO1xyXG4gICAgICAgIHRoaXMuX3RpbGVkTWFwID0gdGlsZWRNYXA7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgIGxldCBzaXplID0gbGF5ZXJJbmZvLl9sYXllclNpemU7XHJcblxyXG4gICAgICAgIC8vIGxheWVySW5mb1xyXG4gICAgICAgIHRoaXMuX2xheWVyTmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG4gICAgICAgIHRoaXMuX3RpbGVzID0gbGF5ZXJJbmZvLl90aWxlcztcclxuICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gbGF5ZXJJbmZvLnByb3BlcnRpZXM7XHJcbiAgICAgICAgdGhpcy5fbGF5ZXJTaXplID0gc2l6ZTtcclxuICAgICAgICB0aGlzLl9taW5HSUQgPSBsYXllckluZm8uX21pbkdJRDtcclxuICAgICAgICB0aGlzLl9tYXhHSUQgPSBsYXllckluZm8uX21heEdJRDtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gbGF5ZXJJbmZvLl9vcGFjaXR5O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlck9yZGVyID0gbWFwSW5mby5yZW5kZXJPcmRlcjtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VyQXhpcyA9IG1hcEluZm8uZ2V0U3RhZ2dlckF4aXMoKTtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VySW5kZXggPSBtYXBJbmZvLmdldFN0YWdnZXJJbmRleCgpO1xyXG4gICAgICAgIHRoaXMuX2hleFNpZGVMZW5ndGggPSBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKTtcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zID0gbWFwSW5mby5nZXRUaWxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyB0aWxlc2V0c1xyXG4gICAgICAgIHRoaXMuX3RpbGVzZXRzID0gdGlsZXNldHM7XHJcbiAgICAgICAgLy8gdGV4dHVyZXNcclxuICAgICAgICB0aGlzLl90ZXh0dXJlcyA9IHRleHR1cmVzO1xyXG4gICAgICAgIC8vIGdyaWQgdGV4dHVyZVxyXG4gICAgICAgIHRoaXMuX3RleEdyaWRzID0gdGV4R3JpZHM7XHJcblxyXG4gICAgICAgIC8vIG1hcEluZm9cclxuICAgICAgICB0aGlzLl9sYXllck9yaWVudGF0aW9uID0gbWFwSW5mby5vcmllbnRhdGlvbjtcclxuICAgICAgICB0aGlzLl9tYXBUaWxlU2l6ZSA9IG1hcEluZm8uZ2V0VGlsZVNpemUoKTtcclxuXHJcbiAgICAgICAgbGV0IG1hcHR3ID0gdGhpcy5fbWFwVGlsZVNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IG1hcHRoID0gdGhpcy5fbWFwVGlsZVNpemUuaGVpZ2h0O1xyXG4gICAgICAgIGxldCBsYXllclcgPSB0aGlzLl9sYXllclNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IGxheWVySCA9IHRoaXMuX2xheWVyU2l6ZS5oZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5IRVgpIHtcclxuICAgICAgICAgICAgLy8gaGFuZGxlIGhleCBtYXBcclxuICAgICAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckF4aXMgPSBUaWxlZE1hcC5TdGFnZ2VyQXhpcztcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckluZGV4ID0gVGlsZWRNYXAuU3RhZ2dlckluZGV4O1xyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSAwLCBoZWlnaHQgPSAwO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb2RkX2V2ZW4gPSAodGhpcy5fc3RhZ2dlckluZGV4ID09PSBTdGFnZ2VySW5kZXguU1RBR0dFUklOREVYX09ERCkgPyAxIDogLTE7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGFnZ2VyQXhpcyA9PT0gU3RhZ2dlckF4aXMuU1RBR0dFUkFYSVNfWCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gKG1hcHR3IC0gdGhpcy5faGV4U2lkZUxlbmd0aCkgLyAyO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlkxID0gMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IG1hcHRoICogKGxheWVySCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IChtYXB0dyArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllclcgLyAyKSArIG1hcHR3ICogKGxheWVyVyAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IChtYXB0aCAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHdpZHRoID0gbWFwdHcgKiAobGF5ZXJXICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IChtYXB0aCArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllckggLyAyKSArIG1hcHRoICogKGxheWVySCAlIDIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xheWVyT3JpZW50YXRpb24gPT09IGNjLlRpbGVkTWFwLk9yaWVudGF0aW9uLklTTykge1xyXG4gICAgICAgICAgICBsZXQgd2ggPSBsYXllclcgKyBsYXllckg7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZShtYXB0dyAqIDAuNSAqIHdoLCBtYXB0aCAqIDAuNSAqIHdoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobGF5ZXJXICogbWFwdHcsIGxheWVySCAqIG1hcHRoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG9mZnNldCAoYWZ0ZXIgbGF5ZXIgb3JpZW50YXRpb24gaXMgc2V0KTtcclxuICAgICAgICB0aGlzLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG4gICAgICAgIHRoaXMuX3VzZUF1dG9tYXRpY1ZlcnRleFogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl92ZXJ0ZXhadmFsdWUgPSAwO1xyXG4gICAgICAgIHRoaXMuX3N5bmNBbmNob3JQb2ludCgpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVUb1JlbmRlcigpO1xyXG4gICAgfSxcclxuICAgIF91cGRhdGVDdWxsaW5nKCkge1xyXG4gICAgICAgIGlmIChDQ19FRElUT1IpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVDdWxsaW5nKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2VuYWJsZUN1bGxpbmcpIHtcclxuICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4jeS4uummluS4qmxheWVyIOebtOaOpeWkjeeUqGZpcnN0TGF5ZXLnmoTnu5PmnpxcclxuICAgICAgICAgICAgLy8gdGhpcy5fZmlyc3RUbXhMYXllcuS4jeS4uuepuuaXtiDooajnpLrlvZPliY1sYXllcuS4jeaYr+mmluS4qmxheWVyXHJcbiAgICAgICAgICAgIGxldCBmaXJzdFRteExheWVyID0gdGhpcy5fZmlyc3RUbXhMYXllcjtcclxuICAgICAgICAgICAgaWYgKCEhZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VsbGluZ1JlY3QgPSBmaXJzdFRteExheWVyLl9jdWxsaW5nUmVjdDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdEaXJ0eSA9IGZpcnN0VG14TGF5ZXIuX2NhY2hlQ3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ub2RlLl91cGRhdGVXb3JsZE1hdHJpeCgpO1xyXG4gICAgICAgICAgICBjYy5NYXQ0LmludmVydChfbWF0NF90ZW1wLCB0aGlzLm5vZGUuX3dvcmxkTWF0cml4KTtcclxuICAgICAgICAgICAgbGV0IHJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuICAgICAgICAgICAgbGV0IGNhbWVyYSA9IGNjLkNhbWVyYS5maW5kQ2FtZXJhKHRoaXMubm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChjYW1lcmEpIHtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAueCA9IDA7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnkgPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueCA9IF92ZWMyX3RlbXAueCArIHJlY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wMi55ID0gX3ZlYzJfdGVtcC55ICsgcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjYW1lcmEuZ2V0U2NyZWVuVG9Xb3JsZFBvaW50KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXAsIF9tYXQ0X3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAyLCBfdmVjMl90ZW1wMiwgX21hdDRfdGVtcCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmlld1BvcnQoX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wLnksIF92ZWMyX3RlbXAyLnggLSBfdmVjMl90ZW1wLngsIF92ZWMyX3RlbXAyLnkgLSBfdmVjMl90ZW1wLnkpO1xyXG4gICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4uummluS4qmxheWVyIOe8k+WtmF9jdWxsaW5nRGlydHnjgIJcclxuICAgICAgICAgICAgICAgIC8vIF9jdWxsaW5nRGlydHnkvJrlnKjloavlhYXmuLLmn5PmlbDmja7lkI7ooqvmlLnkuLpmYWxzZSDmiYDku6XpnIDopoHnvJPlrZjov5nph4znmoTnu5PmnpxcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlQ3VsbGluZ0RpcnR5ID0gdGhpcy5fY3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RyYXZlcnNlQWxsR3JpZCAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzID0gdGhpcy5fdGlsZXM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleEFyciA9IHRoaXMuX3RpbGVzZXRJbmRleEFycjtcclxuICAgICAgICBsZXQgdGlsZXNldEluZGV4VG9BcnJJbmRleCA9IHRoaXMuX3RpbGVzZXRJbmRleFRvQXJySW5kZXggPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICBjb25zdCBUaWxlRmxhZyA9IFRpbGVkTWFwLlRpbGVGbGFnO1xyXG4gICAgICAgIGNvbnN0IEZMSVBQRURfTUFTSyA9IFRpbGVGbGFnLkZMSVBQRURfTUFTSztcclxuXHJcbiAgICAgICAgbGV0IHNpbmdsZVRleHR1cmUgPSB0aGlzLl90aWxlZE1hcC5pc1NpbmdsZVRleHR1cmUoKTtcclxuXHJcbiAgICAgICAgdGlsZXNldEluZGV4QXJyLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZ2lkID0gdGlsZXNbaV07XHJcbiAgICAgICAgICAgIGlmIChnaWQgPT09IDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBnaWQgPSAoKGdpZCAmIEZMSVBQRURfTUFTSykgPj4+IDApO1xyXG4gICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzW2dpZF07XHJcbiAgICAgICAgICAgIGlmICghZ3JpZCkge1xyXG4gICAgICAgICAgICAgICAgY2MuZXJyb3IoXCJDQ1RpbGVkTGF5ZXI6X3RyYXZlcnNlQWxsR3JpZCBncmlkIGlzIG51bGwsIGdpZCBpczpcIiwgZ2lkKTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCB0aWxlc2V0SWR4ID0gZ3JpZC50ZXhJZDtcclxuICAgICAgICAgICAgaWYgKHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gIT09IHVuZGVmaW5lZCkgY29udGludWU7XHJcbiAgICAgICAgICAgIHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gPSB0aWxlc2V0SW5kZXhBcnIubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhBcnIucHVzaCh0aWxlc2V0SWR4KTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDlvZPlj6rmnInkuIDkuKrlm77pm4bml7Yg5Y+v5Lul55u05o6l5YGc5q2i6YGN5Y6GXHJcbiAgICAgICAgICAgIGlmIChzaW5nbGVUZXh0dXJlKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG59KTtcclxuIl19
//------QC-SOURCE-SPLIT------
diff --git a/temp/quick-scripts/dst/__qc_index__.js b/temp/quick-scripts/dst/__qc_index__.js
index 1f632ac..4158772 100644
--- a/temp/quick-scripts/dst/__qc_index__.js
+++ b/temp/quick-scripts/dst/__qc_index__.js
@@ -65,6 +65,7 @@ require('./assets/Script/prop/Freeze');
require('./assets/Script/prop/Key');
require('./assets/Script/prop/Lock');
require('./assets/Script/prop/Star');
+require('./assets/Script/setUi');
require('./assets/animation/NewScript');
require('./assets/effect/融化');
require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event');
diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js
index d8f7ba6..8187be5 100644
--- a/temp/quick-scripts/dst/__quick_compile__.js
+++ b/temp/quick-scripts/dst/__quick_compile__.js
@@ -1,6 +1,6 @@
(function () {
-var scripts = [{"deps":{"./assets/Script/lq_collide_system/lq_collide_base":1,"./assets/Script/lq_base/data/lq_interface":2,"./assets/Script/module/Crypto/HttpUtil":3,"./tiledmap-optimize-resource/Script/TmoSprite":4,"./assets/Script/DynamicAtlasManager":5,"./assets/shop/script/item":6,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":7,"./assets/Script/prop/Lock":8,"./assets/Script/Sdk/DouyinEntranceView":9,"./assets/effect/融化":10,"./assets/Script/lq_base/util/lq_game_util":11,"./assets/Script/module/GameStart/GameAppStart":12,"./assets/animation/NewScript":13,"./assets/Script/module/RankList/ItemRender":14,"./assets/Script/module/Notification/Notification":15,"./assets/Script/module/Music/AudioManager":16,"./assets/Script/module/Config/GameConfig":17,"./assets/Script/ControlManager":18,"./assets/Script/module/Share/share":19,"./assets/Script/GameManager":20,"./assets/Script/module/Tool/GameTool":21,"./assets/Script/JiaZai":22,"./assets/Script/GameScene":23,"./assets/Script/Reduce":24,"./assets/Script/CollisionDetection":25,"./assets/Script/GameOver":26,"./assets/Script/RankManager":27,"./assets/Script/NewMode":28,"./assets/Script/SceneManager":29,"./assets/Script/Map":30,"./assets/Script/Window":31,"./assets/Script/Wall":32,"./assets/Script/NumberToImage":33,"./assets/Script/Pause":34,"./assets/Script/Load":35,"./assets/Script/btnControl":36,"./assets/Script/position":37,"./assets/Script/peizhi":38,"./assets/Script/lq_collide_system/lq_collide_config":39,"./assets/Script/Sdk/MiniGameManager":40,"./assets/Script/prop/Freeze":41,"./assets/Script/lq_collide_system/lq_collide_system":42,"./assets/Script/Sdk/MiniGameSdk":43,"./assets/Script/prop/Boom":44,"./assets/Script/prop/Key":45,"./assets/Script/prop/Star":46,"./assets/Script/lq_collide_system/lq_collide":47,"./assets/Script/prop/Adhesive":48,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":49,"./assets/Script/Block":50,"./assets/Script/lq_base/data/lq_const":51,"./assets/Script/lq_base/util/lq_platform_util":52,"./assets/Script/MapBlock":53,"./assets/Script/lq_base/util/lq_math_util":54,"./assets/Script/Barrier":55,"./assets/Script/module/Storage/Storage":56,"./assets/Script/lq_base/data/lq_data":57,"./assets/Script/lq_base/util/lq_base_util":58,"./assets/Script/module/RankList/List":59,"./assets/Script/lq_base/util/lq_pool_util":60,"./tiledmap-optimize-resource/Script/TmoTiledLayer":61,"./tiledmap-optimize-resource/Script/TmoAssembler":62,"./assets/shop/script/shop":63,"./assets/Script/module/Crypto/crypto-js.min":64,"./tiledmap-optimize-resource/Script/TmoObjectGroup":65,"./tiledmap-optimize-resource/Script/TmoTiledMap":66},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./lq_collide":47,"../lq_base/data/lq_const":51},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{"./crypto-js.min.js":64},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{"./TmoAssembler":62},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/item.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js"},{"deps":{"../NumberToImage":33},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{"./MiniGameSdk":43},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{"../Storage/Storage":56,"../Config/GameConfig":17,"../Crypto/HttpUtil":3,"../Music/AudioManager":16,"../Notification/Notification":15,"../Tool/GameTool":21},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"../../Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{"./GameManager":20,"./NumberToImage":33,"./Sdk/MiniGameSdk":43,"./lq_collide_system/lq_collide_system":42},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{"./module/RankList/List":59},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{"./Map":30,"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{"./GameManager":20,"./NumberToImage":33,"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./Map":30},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{"./MiniGameSdk":43},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{"../NumberToImage":33},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{"../lq_base/data/lq_const":51,"../lq_base/util/lq_math_util":54,"./lq_collide_config":39,"../lq_base/data/lq_data":57},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../Map":30,"../NumberToImage":33},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{"../Map":30},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"../Map":30},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{"../lq_base/data/lq_const":51,"./lq_collide_config":39,"./lq_collide_system":42,"../lq_base/data/lq_data":57,"./lq_collide_base":1,"../lq_base/util/lq_game_util":11,"../Map":30},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide.js"},{"deps":{},"path":"preview-scripts/assets/Script/prop/Adhesive.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"./lq_collide_system/lq_collide_system":42,"./Map":30},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{"../data/lq_const":51},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{"./Map":30},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{"./lq_platform_util":52,"../data/lq_const":51},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{"./ItemRender":14},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/shop.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{"./TmoSprite":4},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"},{"deps":{"./TmoTiledLayer":61,"./TmoObjectGroup":65},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"}];
+var scripts = [{"deps":{"./assets/Script/CollisionDetection":26,"./assets/Script/ControlManager":22,"./assets/Script/DynamicAtlasManager":19,"./assets/Script/GameManager":6,"./assets/Script/GameOver":24,"./assets/Script/GameScene":23,"./assets/Script/JiaZai":25,"./assets/Script/Load":30,"./assets/Script/Map":31,"./assets/Script/MapBlock":27,"./assets/Script/NewMode":29,"./assets/Script/NumberToImage":28,"./assets/Script/Pause":34,"./assets/Script/RankManager":32,"./assets/Script/Reduce":33,"./assets/Script/SceneManager":42,"./assets/Script/Wall":35,"./assets/Script/Window":51,"./assets/Script/btnControl":38,"./assets/Script/peizhi":37,"./assets/Script/position":40,"./assets/Script/setUi":39,"./assets/Script/Barrier":41,"./assets/Script/Sdk/MiniGameManager":1,"./assets/Script/Sdk/MiniGameSdk":43,"./assets/Script/Sdk/DouyinEntranceView":36,"./assets/Script/lq_collide_system/lq_collide_base":7,"./assets/Script/lq_collide_system/lq_collide_config":58,"./assets/Script/lq_collide_system/lq_collide_system":47,"./assets/Script/lq_collide_system/lq_collide":48,"./assets/Script/prop/Boom":44,"./assets/Script/prop/Freeze":8,"./assets/Script/prop/Key":45,"./assets/Script/prop/Lock":46,"./assets/Script/prop/Star":50,"./assets/Script/prop/Adhesive":56,"./assets/animation/NewScript":10,"./assets/effect/融化":9,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":55,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":11,"./assets/Script/Block":49,"./assets/Script/lq_base/data/lq_interface":2,"./assets/Script/lq_base/data/lq_const":52,"./assets/Script/lq_base/util/lq_game_util":14,"./assets/Script/lq_base/util/lq_math_util":57,"./assets/Script/lq_base/util/lq_platform_util":59,"./assets/Script/lq_base/util/lq_pool_util":54,"./assets/Script/lq_base/util/lq_base_util":53,"./assets/Script/lq_base/data/lq_data":60,"./assets/Script/module/Crypto/crypto-js.min":63,"./assets/Script/module/Crypto/HttpUtil":3,"./assets/Script/module/GameStart/GameAppStart":12,"./assets/Script/module/Music/AudioManager":15,"./assets/Script/module/Notification/Notification":16,"./assets/Script/module/RankList/List":13,"./assets/Script/module/RankList/ItemRender":65,"./assets/Script/module/Share/share":21,"./assets/Script/module/Storage/Storage":17,"./assets/Script/module/Tool/GameTool":18,"./assets/Script/module/Config/GameConfig":20,"./assets/shop/script/item":64,"./assets/shop/script/shop":5,"./tiledmap-optimize-resource/Script/TmoSprite":66,"./tiledmap-optimize-resource/Script/TmoTiledLayer":67,"./tiledmap-optimize-resource/Script/TmoTiledMap":4,"./tiledmap-optimize-resource/Script/TmoAssembler":61,"./tiledmap-optimize-resource/Script/TmoObjectGroup":62},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./MiniGameSdk":43},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{"./crypto-js.min.js":63},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{"./TmoTiledLayer":67,"./TmoObjectGroup":62},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/shop.js"},{"deps":{"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./lq_collide":48,"../lq_base/data/lq_const":52},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{"../NumberToImage":28},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"../Storage/Storage":17,"../Config/GameConfig":20,"../Crypto/HttpUtil":3,"../Notification/Notification":16,"../Tool/GameTool":18},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{"./ItemRender":65},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{"../../Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{"./GameManager":6,"./NumberToImage":28,"./Sdk/MiniGameSdk":43,"./lq_collide_system/lq_collide_system":47},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{"./GameManager":6,"./NumberToImage":28,"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{"./module/RankList/List":13},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{"./Map":31},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{"./MiniGameSdk":43},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{},"path":"preview-scripts/assets/Script/setUi.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{"./Map":31},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{"./Map":31,"./Sdk/MiniGameSdk":43},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../Map":31,"../NumberToImage":28},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{"../Map":31},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"../NumberToImage":28},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{"../lq_base/data/lq_const":52,"../lq_base/util/lq_math_util":57,"./lq_collide_config":58,"../lq_base/data/lq_data":60},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{"../lq_base/data/lq_const":52,"./lq_collide_config":58,"./lq_collide_system":47,"../lq_base/data/lq_data":60,"./lq_collide_base":7,"../lq_base/util/lq_game_util":14,"../Map":31},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide.js"},{"deps":{"./lq_collide_system/lq_collide_system":47,"./Map":31},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{"../Map":31},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{"./lq_platform_util":59,"../data/lq_const":52},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js"},{"deps":{},"path":"preview-scripts/assets/Script/prop/Adhesive.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{"../data/lq_const":52},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{"./TmoSprite":66},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/item.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{"./TmoAssembler":61},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"}];
var entries = ["preview-scripts/__qc_index__.js"];
var bundleScript = 'preview-scripts/__qc_bundle__.js';
diff --git a/temp/quick-scripts/dst/assets/Script/JiaZai.js b/temp/quick-scripts/dst/assets/Script/JiaZai.js
index 305e692..c84a0bb 100644
--- a/temp/quick-scripts/dst/assets/Script/JiaZai.js
+++ b/temp/quick-scripts/dst/assets/Script/JiaZai.js
@@ -57,6 +57,8 @@ var NewClass = /** @class */ (function (_super) {
_this.level = null;
_this.coin = null;
_this.Stamina = null;
+ _this.lastPauseClickTime = 0; // 用于记录上次点击的时间戳
+ _this.setUi = null;
return _this;
// update (dt) {}
}
@@ -268,6 +270,27 @@ var NewClass = /** @class */ (function (_super) {
cc.fx.AudioManager._instance.playEffect("anniu_little", null);
this.node.getChildByName("Pause").active = false;
};
+ NewClass.prototype.openSet = function () {
+ var now = Date.now();
+ if (now - this.lastPauseClickTime < 300) {
+ // 0.3秒内禁止再次点击
+ return;
+ }
+ this.lastPauseClickTime = now;
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
+ cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ if (!this.setUi.active) {
+ // 第一次点击,打开并播放动画
+ this.setUi.active = true;
+ this.setUi.getComponent(cc.Animation).play();
+ }
+ else {
+ // 再次点击,关闭节点
+ this.setUi.active = false;
+ }
+ };
NewClass.prototype.closeReward = function () {
this.node.getChildByName("Reward").active = false;
};
@@ -301,6 +324,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "Stamina", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "setUi", void 0);
NewClass = __decorate([
ccclass
], NewClass);
@@ -319,4 +345,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXdFO0FBQ2xFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBaVJDO1FBOVFHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUd4QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQW9QeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUFsUEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFD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R0FBRyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELDhCQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCwrQkFBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBMVFEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBS3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztpREFDZDtJQUd4QztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDOzRDQUNLO0lBSzFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNNO0lBNUJQLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FpUjVCO0lBQUQsZUFBQztDQWpSRCxBQWlSQyxDQWpScUMsRUFBRSxDQUFDLFNBQVMsR0FpUmpEO2tCQWpSb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi9OdW1iZXJUb0ltYWdlXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZVN5c3RlbSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVfc3lzdGVtXCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkVkaXRCb3gpXHJcbiAgICBjdXN0b206IGNjLkVkaXRCb3ggPSBudWxsO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmlzX2VuYWJsZSA9IHRydWU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLliqDovb3lhbPljaHphY3nva4yXCIpO1xyXG4gICAgICAgIC8vIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yID0gdGhpcy5CbG9ja19Db2xvcjtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5YeG5aSH5rOo5YaM5LqL5Lu2XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWPkemAgeazqOWGjOS6i+S7tlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlZ2lzdGVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bey57uP6L+b5YWlSG9tZeeVjOmdolwiKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumHkeW4gVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWFs+WNoVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKTtcclxuXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDI1LCAxNSwgXCJiaWdfXCIsIHRoaXMubGV2ZWwsIGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEhlYWx0aEluZm8oKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIiAmJiAhY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIC09IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SGVhbHRoSW5mbygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID09IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcIm1hblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLCAyNSwgMTUsIFwiY29pbl9cIiwgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTG9hZFwiKS5nZXRDaGlsZEJ5TmFtZShcInN0YXJ0QnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5ZWG5bqXXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDliqDovb0gc2hvcCAgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ3Nob3AnLCAoZXJyOiBFcnJvciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGJ1bmRsZS5sb2FkKCdwcmVmYWIvc2hvcCcsIGNjLlByZWZhYiwgKGVycjogRXJyb3IsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcE5vZGUgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChzaG9wTm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzaG9wTm9kZSBwYXJlbnQ6XCIsIHNob3BOb2RlLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmFuaygpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrU2hvcCgpIHtcclxuICAgICAgICAvLyDlgYforr7lt7Lnu4/ojrflj5bliLDkuoYgdXNlcklkIOWSjCBwcm9kdWN0SWRcclxuICAgICAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgXCJ1c2VySWRcIjogdXNlcklkLFxyXG4gICAgICAgICAgICAgICAgXCJwcm9kdWN0SWRcIjogcHJvZHVjdElkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDlj5blvpfkupHlh73mlbDov5Tlm57nmoTorqLljZXkv6Hmga9cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIsIHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudCA9IHJlcy5yZXN1bHQucGF5bWVudFJlc3VsdC5wYXltZW50O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLCBwYXltZW50KTtcclxuICAgICAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOaXtumXtOaIs++8jOS7jiAxOTcwIOW5tCAxIOaciCAxIOaXpSAwMDowMDowMCDoh7Pku4rnmoTnp5LmlbDvvIzljbPlvZPliY3nmoTml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICB0aW1lU3RhbXA6IHBheW1lbnQudGltZVN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICAgICAgbm9uY2VTdHI6IHBheW1lbnQubm9uY2VTdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57uf5LiA5LiL5Y2V5o6l5Y+j6L+U5Zue55qEIHByZXBheV9pZCDlj4LmlbDlgLxcclxuICAgICAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g562+5ZCN566X5rOV77yM5pqC5pSv5oyBIE1ENeOAgUhNQUMtU0hBMjU2XHJcbiAgICAgICAgICAgICAgICAgICAgc2lnblR5cGU6IHBheW1lbnQuc2lnblR5cGUgfHwgJ01ENScsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5U2lnbjogcGF5bWVudC5wYXlTaWduLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOaIkOWKn1wiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyog5aSx6LSl5Zue6LCDICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlK/ku5jlrozmiJBcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvcGVuSURcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVJld2FyZCgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSZXdhcmRcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblN0YW1pbmEoKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlU3RhbWluYSgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXdFO0FBQ2xFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMFNDO1FBdlNHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUd4QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDO1FBRWhCLHdCQUFrQixHQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWU7UUFHdkQsV0FBSyxHQUFZLElBQUksQ0FBQzs7UUF3UXRCLGlCQUFpQjtJQUNyQixDQUFDO0lBdlFHLHdCQUF3QjtJQUV4Qix5QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsbUNBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIscUJBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FB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LFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQW5TRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUt0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7aURBQ2Q7SUFHeEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzs0Q0FDSztJQUsxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQUt4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBakNMLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EwUzVCO0lBQUQsZUFBQztDQTFTRCxBQTBTQyxDQTFTcUMsRUFBRSxDQUFDLFNBQVMsR0EwU2pEO2tCQTFTb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi9OdW1iZXJUb0ltYWdlXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZVN5c3RlbSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVfc3lzdGVtXCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+minOiJslwiIH0pXHJcbiAgICBCbG9ja19Db2xvcjogQXJyYXk8Y2MuU3ByaXRlQXRsYXM+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkVkaXRCb3gpXHJcbiAgICBjdXN0b206IGNjLkVkaXRCb3ggPSBudWxsO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG4gICAgcHJpdmF0ZSBsYXN0UGF1c2VDbGlja1RpbWU6IG51bWJlciA9IDA7IC8vIOeUqOS6juiusOW9leS4iuasoeeCueWHu+eahOaXtumXtOaIs1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2V0VWk6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7XHJcbiAgICAgICAgTFFDb2xsaWRlU3lzdGVtLmlzX2VuYWJsZSA9IHRydWU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLliqDovb3lhbPljaHphY3nva4yXCIpO1xyXG4gICAgICAgIC8vIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yID0gdGhpcy5CbG9ja19Db2xvcjtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5YeG5aSH5rOo5YaM5LqL5Lu2XCIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWPkemAgeazqOWGjOS6i+S7tlwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlZ2lzdGVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bey57uP6L+b5YWlSG9tZeeVjOmdolwiKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumHkeW4gVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWFs+WNoVwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKTtcclxuXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLDApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDI1LCAxNSwgXCJiaWdfXCIsIHRoaXMubGV2ZWwsIGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sIDMwLCAxNSwgXCJjb2luX1wiLCB0aGlzLmNvaW4sIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEhlYWx0aEluZm8oKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcImRvd25cIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcImRvd25cIiAmJiAhY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIC09IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SGVhbHRoSW5mbygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwID09IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcIm1hblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLCAyNSwgMTUsIFwiY29pbl9cIiwgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwiaGVhbHRoXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXJ0R2FtZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTG9hZFwiKS5nZXRDaGlsZEJ5TmFtZShcInN0YXJ0QnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5ZWG5bqXXHJcbiAgICBvcGVuU2hvcCgpIHtcclxuICAgICAgICAvLyDliqDovb0gc2hvcCAgYnVuZGxlXHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoJ3Nob3AnLCAoZXJyOiBFcnJvciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XHJcbiAgICAgICAgICAgIGJ1bmRsZS5sb2FkKCdwcmVmYWIvc2hvcCcsIGNjLlByZWZhYiwgKGVycjogRXJyb3IsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcE5vZGUgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRDaGlsZChzaG9wTm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzaG9wTm9kZSBwYXJlbnQ6XCIsIHNob3BOb2RlLnBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmFuaygpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrU2hvcCgpIHtcclxuICAgICAgICAvLyDlgYforr7lt7Lnu4/ojrflj5bliLDkuoYgdXNlcklkIOWSjCBwcm9kdWN0SWRcclxuICAgICAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgXCJ1c2VySWRcIjogdXNlcklkLFxyXG4gICAgICAgICAgICAgICAgXCJwcm9kdWN0SWRcIjogcHJvZHVjdElkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDlj5blvpfkupHlh73mlbDov5Tlm57nmoTorqLljZXkv6Hmga9cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIsIHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudCA9IHJlcy5yZXN1bHQucGF5bWVudFJlc3VsdC5wYXltZW50O1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLCBwYXltZW50KTtcclxuICAgICAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOaXtumXtOaIs++8jOS7jiAxOTcwIOW5tCAxIOaciCAxIOaXpSAwMDowMDowMCDoh7Pku4rnmoTnp5LmlbDvvIzljbPlvZPliY3nmoTml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICB0aW1lU3RhbXA6IHBheW1lbnQudGltZVN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICAgICAgbm9uY2VTdHI6IHBheW1lbnQubm9uY2VTdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57uf5LiA5LiL5Y2V5o6l5Y+j6L+U5Zue55qEIHByZXBheV9pZCDlj4LmlbDlgLxcclxuICAgICAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g562+5ZCN566X5rOV77yM5pqC5pSv5oyBIE1ENeOAgUhNQUMtU0hBMjU2XHJcbiAgICAgICAgICAgICAgICAgICAgc2lnblR5cGU6IHBheW1lbnQuc2lnblR5cGUgfHwgJ01ENScsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5U2lnbjogcGF5bWVudC5wYXlTaWduLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUr+S7mOaIkOWKn1wiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyog5aSx6LSl5Zue6LCDICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlK/ku5jlrozmiJBcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvcGVuSURcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfbGl0dGxlXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvcGVuU2V0KCkge1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKG5vdyAtIHRoaXMubGFzdFBhdXNlQ2xpY2tUaW1lIDwgMzAwKSB7XHJcbiAgICAgICAgICAgIC8vIDAuM+enkuWGheemgeatouWGjeasoeeCueWHu1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFBhdXNlQ2xpY2tUaW1lID0gbm93O1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zZXRVaS5hY3RpdmUpIHtcclxuICAgICAgICAgICAgLy8g56ys5LiA5qyh54K55Ye777yM5omT5byA5bm25pKt5pS+5Yqo55S7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VWkuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRVaS5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKS5wbGF5KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8g5YaN5qyh54K55Ye777yM5YWz6Zet6IqC54K5XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VWkuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUmV3YXJkKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuU3RhbWluYSgpIHtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTdGFtaW5hKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN0YW1pbmFcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/Script/Map.js b/temp/quick-scripts/dst/assets/Script/Map.js
index 636bb7d..4ece632 100644
--- a/temp/quick-scripts/dst/assets/Script/Map.js
+++ b/temp/quick-scripts/dst/assets/Script/Map.js
@@ -156,12 +156,14 @@ var MapConroler = /** @class */ (function (_super) {
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
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);
// 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);
+ console.log("当前关卡", cc.fx.GameConfig.GM_INFO.level + 1);
//this.startTimeCutDown();
this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];
this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];
@@ -1941,4 +1943,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFHbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FB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QUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBcStEL0I7SUFBRCxrQkFBQztDQXIrREQsQUFxK0RDLENBcitEd0MsRUFBRSxDQUFDLFNBQVMsR0FxK0RwRDtrQkFyK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+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+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcblxyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlciwgNTAsIFwidGltZV9cIiwgdGhpcy50aW1lTGFiZWwpXHJcbiAgICAgICAgLy8gdmFyIHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIpO1xyXG4gICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCA1MCwgMjAsIFwibGV2ZWxfXCIsIHRoaXMubGV2ZWxMYWJlbCwgZmFsc2UpXHJcblxyXG4gICAgICAgIC8vdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwV2lkdGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzBdO1xyXG4gICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLm1hcFsxXTtcclxuICAgICAgICBsZXQgZ2FwID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLmdhcDtcclxuICAgICAgICBsZXQgcmlzZWZhbGwgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ucmlzZWZhbGw7XHJcblxyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhhbW1lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FsbE51bSA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXRNYXBJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5ibG9ja3MgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLndhbGxJbmZvID0gW107XHJcbiAgICAgICAgdGhpcy5vcGVuV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVXYWxsID0gW107XHJcbiAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rID0gW107XHJcbiAgICAgICAgdGhpcy5tYXBCbG9ja0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5mcmVlemVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubG9hY2tBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY291bnRfVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSA9IDA7XHJcblxyXG5cclxuICAgICAgICBsZXQgc3RhcnRYID0gdGhpcy5tYXBXaWR0aCAlIDIgPT0gMCA/IC0odGhpcy5tYXBXaWR0aCAtIDEpICogNjAgOiAtKHRoaXMubWFwV2lkdGggLSAxKSAqIDYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSB0aGlzLm1hcEhlaWdodCAlIDIgPT0gMCA/IC0odGhpcy5tYXBIZWlnaHQgLSAxKSAqIDYwIDogLSh0aGlzLm1hcEhlaWdodCAtIDEpICogNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWFwV2lkdGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5tYXBIZWlnaHQ7IGorKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5NYXBCbG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJtYXBCbG9ja1wiKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmluaXQoaSwgaik7XHJcbiAgICAgICAgICAgICAgICAvLyBibG9jay5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGkgKyBcIjpcIiArIGo7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihzdGFydFggKyBpICogMTIwLCBzdGFydFkgKyBqICogMTIwKSlcclxuICAgICAgICAgICAgICAgIGlmIChyaXNlZmFsbCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwUmlzZUZhbGwoY2MudjIoaSwgaiksIHJpc2VmYWxsLCBibG9jaykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChnYXAgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYXBHYXAoY2MudjIoaSwgaiksIGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09IDAgfHwgaSA9PSB0aGlzLm1hcFdpZHRoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBqID09IDAgfHwgaiA9PSB0aGlzLm1hcEhlaWdodCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5tYXBJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbFtpXS5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy53YWxsSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuYmxvY2tJbml0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuICAgIGJsb2NrSW5pdCgpIHtcclxuICAgICAgICBsZXQgYmxvY2tBcnJheSA9IGNjLmZ4LkdhbWVDb25maWcuQkxPQ0tfSU5GT1swXTtcclxuICAgICAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLliJvlu7rmlrnlnZdcIiwgYmxvY2tBcnJheSk7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5pa55Z2X57Si5byVXHJcbiAgICAgICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGNvbnN0IE1JTl9QRVJfRlJBTUUgPSAxOyAvLyDmr4/luKfmnIDlsI/liJvlu7rmlbDph49cclxuXHJcbiAgICAgICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS1NfUEVSX0ZSQU1FICYmIGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2tQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2Jsb2NrSW5mby5ibG9ja107XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZShibG9ja1ByZWZhYik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihjYy52MihibG9ja0luZm8ucG9zaXRpb24ueCwgYmxvY2tJbmZvLnBvc2l0aW9uLnkpKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8uYmxvY2sgIT0gMjMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mby50eXBlID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYmxvY2tJbmZvLmlkICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja0luZm8uYmxvY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYmxvY2tJbmZvLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2spO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYmxvY2tJbmZvLnR5cGUgPT0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5zZXRQb3NpdGlvbihjYy52MihpbmZvLnBvc2l0aW9uLngsIGluZm8ucG9zaXRpb24ueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgICAgICBpZiAoZnJhbWVUaW1lID4gMTYpIHtcclxuICAgICAgICAgICAgICAgIEJMT0NLU19QRVJfRlJBTUUgPSBNYXRoLm1heChCTE9DS1NfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vIOS9v+eUqCBzY2hlZHVsZU9uY2Ug5Zyo5LiL5LiA5bin5omn6KGMIGNyZWF0ZUJsb2Nrc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin5Yib5bu65pa55Z2XXHJcbiAgICAgICAgY3JlYXRlQmxvY2tzKCk7XHJcbiAgICB9XHJcbiAgICAvL+e7meWIm+W7uuaWueWdl+aOkuW6j++8jOeUqOadpemZjeS9jmRyYXdjYWxsIOWQiOaJuVxyXG4gICAgc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICAgICAgcmV0dXJuIGFsbEJsb2Nrcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOWFiOWkhOeQhiB0eXBlIOS4uiAxIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWQjlxyXG4gICAgICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYS50eXBlIC0gYi50eXBlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhLnR5cGUgIT09IDAgJiYgYi50eXBlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS50eXBlID09PSAwICYmIGIudHlwZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlho3lpITnkIYgYmxvY2sg5Li6IDIzIOeahOaDheWGte+8jOWwhuWFtuaUvuWIsOacgOWJjemdolxyXG4gICAgICAgICAgICBpZiAoYS5ibG9jayA9PT0gMjMgJiYgYi5ibG9jayAhPT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYS5ibG9jayAhPT0gMjMgJiYgYi5ibG9jayA9PT0gMjMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDlhbbkvZnmjIkgY29sb3Ig5Y2H5bqP5o6S5YiXXHJcbiAgICAgICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/liJvlu7rlopnlo4FcclxuXHJcbiAgICB3YWxsSW5pdCgpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwOyAvLyDlvZPliY3opoHliJvlu7rnmoTlopnlo4HntKLlvJVcclxuICAgICAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICAgICAgY29uc3QgTUFYX1BFUl9GUkFNRSA9IDEwOyAvLyDmr4/luKfmnIDlpKfliJvlu7rmlbDph49cclxuICAgICAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXQUxMU19QRVJfRlJBTUUgJiYgaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGxldCBkaXIgPSB0aGlzLmdldFdsbERpcmFjdGlvbihcIndhbGxcIiwgY2MudjIoYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgICAgICBpZiAoZnJhbWVUaW1lID4gMTYpIHtcclxuICAgICAgICAgICAgICAgIFdBTExTX1BFUl9GUkFNRSA9IE1hdGgubWF4KFdBTExTX1BFUl9GUkFNRSAtIDEsIE1JTl9QRVJfRlJBTUUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieWimeWjgeacquWIm+W7uu+8jOS4i+S4gOW4p+e7p+e7reWIm+W7ulxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVdhbGxzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIOaJgOacieWimeWjgeWIm+W7uuWujOaIkOWQju+8jOWIm+W7uuaLkOinkuiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICAgICAgY3JlYXRlV2FsbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLCBwb2ludEEpIHtcclxuICAgICAgICBsZXQgZGlyID0gW107XHJcbiAgICAgICAgbGV0IHBvaW50QiA9IGNjLnYyKHBvaW50QS54ICsgMSwgcG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEsIHBvaW50QS55KTtcclxuICAgICAgICBsZXQgcG9pbnREID0gY2MudjIocG9pbnRBLngsIHBvaW50QS55ICsgMSk7XHJcbiAgICAgICAgbGV0IHBvaW50RSA9IGNjLnYyKHBvaW50QS54LCBwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIndhbGxcIikgb3BhY2l0eSA9IDI1NTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIikgb3BhY2l0eSA9IDI1MDtcclxuXHJcbiAgICAgICAgaWYgKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50Qi54XVtwb2ludEIueV0ub3BhY2l0eSA9PSBvcGFjaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEMueCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEMueF1bcG9pbnRDLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwb2ludEQueSA8IHRoaXMubWFwSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEQueF1bcG9pbnRELnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcInVwXCIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBvaW50RS55ID49IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXCJ0dXJuXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3BvaW50RS54XVtwb2ludEUueV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuZGlyZWN0aW9uID09IFwiZG93blwiKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcImRvd25cIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpci5sZW5ndGggPiAyKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXIubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRpclswXSArIGRpclsxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlQ29ybmVyTm9kZXMoKSB7XHJcbiAgICAgICAgLy8g5a6a5LmJ5ouQ6KeS5L2N572uXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBibG9jayA9IHRoaXMud2FsbEluZm9baV07XHJcbiAgICAgICAgICAgIGlmIChibG9jay5vcGFjaXR5ICE9IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVR1cm4oZGlyLCBibG9jaywgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVXYWxsKGRpcmVjdGlvbiwgbm9kZSkge1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzNdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHREb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbNV0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCI6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls3XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LCBub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCI6IGNhc2UgXCJsZWZ0dXBcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzZdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksIGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIjogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMl0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCI6IGNhc2UgXCJsZWZ0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCwgbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLCBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSwgZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsIG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLCBkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLy8gaWYod2FsbFR1cm4pe1xyXG4gICAgICAgIC8vICAgICB3YWxsVHVybi5nZXRDb21wb25lbnQoXCJ3YWxsVHVuclwiKS5pbml0KHdhbGwpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXREb29ySW5mbyh3YWxsKSB7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmIChkb29ySW5mbykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG9vckluZm9bal0ubnVtID09IHRoaXMud2FsbE51bSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLCBudWxsLCBudWxsLCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUdXJuKGRpcmVjdGlvbiwgbm9kZSwgcG9zWCwgcG9zWSkge1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsIG5vZGUueSkpO1xyXG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCI6IGNhc2UgXCJyaWdodHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC05MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggLT0gMS4zO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIjogY2FzZSBcInJpZ2h0ZG93blwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDI3MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFuZ2xlID0gLTI3MDtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnggKz0gMi41O1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueSArPSAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3dubGVmdFwiOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IGRpcmVjdGlvbiA9PSBcImxlZnR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwbGVmdFwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gMTAwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gXCJyaWdodHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXByaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwibGVmdFwiIHx8IGRpcmVjdGlvbiA9PSBcImxlZnRkb3duXCIpIHtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSA3MCArIHBvc1ggLSBwb3NZICogMztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kgKiAzO1xyXG5cclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsIGdhcCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2FwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQsIHJpc2VmYWxsLCBibG9jaykge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmlzZWZhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHBvaW50LnggPT0gcmlzZWZhbGxbaV0ucG9zLnggJiYgcG9pbnQueSA9PSByaXNlZmFsbFtpXS5wb3MueSkge1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHJpc2VmYWxsW2ldLmNvbG9yICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDaGlsZEJ5TmFtZSgncmlzZWZhbGwnKS5nZXRDb21wb25lbnQoY2MuQm94Q29sbGlkZXIpLnNpemUgPSBjYy5zaXplKDExMCwgMTEwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8v5Y2H6ZmN5Zyw5Z2XXHJcbiAgICBjaGFuZ2VSaXNlRmFsbChjb2xvciwgZG93bikge1xyXG4gICAgICAgIGNvbG9yID0gY29sb3IudG9TdHJpbmcoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY29sb3IgPT0gdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJjb2xvclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvd24pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJyaXNlZmFsbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2tbaV0uZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykucmVtb3ZlQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLCAxMTApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8v5p+l6K+i5Y+g5Yqg5b+raWRcclxuICAgIGZvdW5kRG93bkJsb2NrKGlkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yig6Zmk5Z2XXHJcbiAgICByZW1vdmVCbG9jayhpZCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2Nrc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNaW5BbmRNYXgoYmxvY2spIHtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG5cclxuICAgICAgICBsZXQgbWluWCA9IHdpZHRoO1xyXG4gICAgICAgIGxldCBtYXhYID0gdGhpcy5tYXBXaWR0aCAtIDI7XHJcbiAgICAgICAgbGV0IG1pblkgPSAxO1xyXG4gICAgICAgIGxldCBtYXhZID0gdGhpcy5tYXBIZWlnaHQgLSAyIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazEwXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazExXCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMjtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WCAtIDI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIikge1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGggLSAxO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WCAtIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpIHtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoIC0gMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFggLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChibG9jay5uYW1lID09IFwiYmxvY2syMVwiKSB7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aCAtIDE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYIC0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IG1pblg6IG1pblgsIG1heFg6IG1heFgsIG1pblk6IG1pblksIG1heFk6IG1heFkgfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsIGJsb2Nrcykge1xyXG4gICAgICAgIGxldCBtaW5BbmRNYXggPSB0aGlzLmdldE1pbkFuZE1heChub2RlKTtcclxuICAgICAgICBsZXQgbWluWCA9IG1pbkFuZE1heC5taW5YO1xyXG4gICAgICAgIGxldCBtYXhYID0gbWluQW5kTWF4Lm1heFg7XHJcbiAgICAgICAgbGV0IG1pblkgPSBtaW5BbmRNYXgubWluWTtcclxuICAgICAgICBsZXQgbWF4WSA9IG1pbkFuZE1heC5tYXhZO1xyXG5cclxuICAgICAgICBsZXQgbm9kZVBvcyA9IGNjLnYyKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZKTtcclxuXHJcbiAgICAgICAgLy8g6I635Y+W5Zyw5Zu+6L6555WM5L+h5oGvXHJcblxyXG4gICAgICAgIGxldCBhbGxCbG9ja3MgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcblxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLCBtYXhYLCBtYXhZKTtcclxuXHJcbiAgICAgICAgLy8g5Yik5pat5pa55Z2X5piv5ZCm5Zyo5Zyw5Zu+6L6557yYXHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA8PSBtaW5YIHx8IGRpcmVjdGlvblswXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5bem6L6557yYXCIsZGF0ZTIpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgbGVmdFdhbGxzID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsTGVmdCA9IHRoaXMubGVmdERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54ID4gd2FsbFBvcy54KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmIChsZWZ0V2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwibGVmdFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIGxlZnRXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueCA+PSBtYXhYIHx8IGRpcmVjdGlvblsxXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGUzID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5Y+z6L6557yYXCIsZGF0ZTMpO1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICBsZXQgcmlnaHRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxSaWdodCA9IHRoaXMucmlnaHREb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsIHdhbGxSaWdodC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnkgPT0gd2FsbFBvcy55ICYmIGFsbEJsb2Nrc1tpXS54IDwgd2FsbFBvcy54KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJpZ2h0V2FsbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwicmlnaHRcIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCwgcmlnaHRXYWxscywgbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsIGpnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9kZVBvcy55IDw9IG1pblkgfHwgZGlyZWN0aW9uWzJdID09IHRydWUpIHtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGF0ZTQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIvovrnnvJhcIixkYXRlNCk7XHJcbiAgICAgICAgICAgIGxldCBkb3duV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRvcERvb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCwgd2FsbEJvdHRvbS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA+IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJpZDpcIix3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG93bldhbGxzLnB1c2god2FsbEJvdHRvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZG93bldhbGxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImRvd25cIiwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksIGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHRydWUpIHJlc3VsdCA9IHRoaXMucGFzc1dhbGwocmVzdWx0LCBkb3duV2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIvovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtIC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsX1RyZWF0bWVudChub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQYXJ0aWNsZShub2RlLCBqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSA+PSBtYXhZIHx8IGRpcmVjdGlvblszXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHB6ICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRhdGU1ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yYXCIsZGF0ZTUpO1xyXG4gICAgICAgICAgICBsZXQgdXBXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsVG9wID0gdGhpcy5ib3R0b21Eb29yc1tpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFBvcyA9IGNjLnYyKHdhbGxUb3AuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NYLCB3YWxsVG9wLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBsdW9jaGEgPSBNYXRoLmFicyhhbGxCbG9ja3NbaV0ueSAtIHdhbGxQb3MueSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55IDwgd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodXBXYWxscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGV0ZWN0aW5nQmxvY2soXCJ1cFwiLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsIG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSwgYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsIHVwV2FsbHMsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDkuIrovrnnvJjnu5Pmnpw6XCIscmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSwgamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHB6ID09IDApIGpnID0gLTE7XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTEwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiYDmnInmo4DmtYvnu5PmnZ/ogJfml7ZcIixkYXRlMTAsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTdGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5vcGVuV2FsbC5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3BlbldhbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlTG9jaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5mcmVlemVXYWxsLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGxbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY2hhbmdlRnJlZXplKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvmmK/lkKblj6/ku6XpgJrov4fpl6hcclxuICAgIHBhc3NXYWxsKGpnLCB3YWxsQXJyYXksIG5vZGUpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWwneivlemAmui/h+W8gOWFs+mXqDpcIiwgd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMiAmJiB3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5vcGVuID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh3YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3Isbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvcilcclxuICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA1KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCAhPSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoamcgPT0gdHJ1ZSAmJiBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdhbGxBcnJheS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wbGF5U3RhckRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zdCBkYXRlOCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL6aKc6Imy5piv5ZCm6IO95aSf6YCa6L+H6ZeoXCIsZGF0ZTgpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aWueWdl+WSjOmXqOS4remXtOacieayoeacieWkueadguWFtuS7luWdl1xyXG4gICAgZGV0ZWN0aW5nQmxvY2soZGlyZWN0aW9uLCBwb3NYLCBwb3NZLCBibG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gICAgICAgIGxldCBpZCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGJsb2Nrcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9zID0gYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IHggPSBwb3MueDtcclxuICAgICAgICAgICAgICAgIGxldCB5ID0gcG9zLnk7XHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsIGRpcmVjdGlvbiwgeCwgeSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWpnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvmsqHov4dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU3ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlkJHmo4DmtYvpgJrov4dcIixkYXRlNyxqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2X77yM6Ziy5q2i56Kw5Yiw5aKZ5aOB5LqG5L2G5piv5piv5Ye55Ye45b2i54q277yM5aKZ5LiO5Z2X5LmL6Ze05pyJ6Zi75oyh54mp5Z2XXHJcbiAgICBjaGVja0FsbERpcmVjdGlvbnMoaWQsIGRpcmVjdGlvbiwgeCwgeSkge1xyXG4gICAgICAgIGxldCBqZyA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAxXVt5XS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHggLSAyKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggLSAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4IC0gMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCAtIDJdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwicmlnaHRcIikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDFdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoeCArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbC5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3ggKyAyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4ICsgMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj7PkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeCArIDJdW3ldLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAxXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHkgKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGxbeF0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5ICsgMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSArIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgKyAyXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAxXS5vcGFjaXR5ID09IDI0OSkge1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHkgLSAyKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3kgLSAyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5IC0gMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIvkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSAtIDJdLm9wYWNpdHkgPT0gMjQ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZdcIixqZyk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRGlyYWN0aW9uKGFsbEJsb2NrcywgbWF4WCwgbWF4WSkge1xyXG4gICAgICAgIGxldCBqZyA9IFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV07XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueCAtIDFdW2FsbEJsb2Nrc1tpXS55XS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzBdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamdbMV0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnggKyAxXVthbGxCbG9ja3NbaV0ueV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkgLSAxXS5vcGFjaXR5ID09IDI1MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzJdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoamdbM10gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55ICsgMV0ub3BhY2l0eSA9PSAyNTApIHtcclxuICAgICAgICAgICAgICAgICAgICBqZ1szXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3MpIHtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tSaWdodChhbGxCbG9ja3MsIG1heCkge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcykge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsIG1heCkge1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v54m55q6K5aSE55CG77yM5pa55Z2X5bim6YGT5YW35oiW6ICF6ZyA6KaB5raI6Zmk5Yaw5Z2XXHJcbiAgICBzcGVjaWFsX1RyZWF0bWVudChub2RlKSB7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmcmVlemVCbG9jay5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJlZXplQmxvY2subGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGZyZWV6ZUJsb2NrW2ldLmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmdldENvbXBvbmVudChcIkZyZWV6ZVwiKS5yZWR1Y2UoMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMiB8fCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNCkge1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChsb2NrQmxvY2subGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9ja0Jsb2NrLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9ja0Jsb2NrW2ldLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5nZXRDb21wb25lbnQoXCJMb2NrXCIpLnJlZHVjZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpIHtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vcGVuSWNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYmxvY2tOdW0gPSB0aGlzLmJsb2Nrcy5sZW5ndGg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJsb2NrTnVtID09IDAgJiYgIXRoaXMuZ2FtZVdpbiAmJiAhdGhpcy5nYW1lT3Zlcikge1xyXG4gICAgICAgICAgICAvLyBhbGVydChcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuYWRkTGV2ZWwodGhpcy5jb3VudF9UaW1lLCB0aGlzLmFkZF9UaW1lKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2FtZU92ZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICgoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSkgPT0gY2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUxbaV0ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3X21vZGUgPSAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHdpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID4gMTU2KSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAvLyDliqjnlLvmkq3mlL7nu5PmnZ/lkI7miafooYznmoTpgLvovpFcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5LiA5YWzXCIpO1xyXG4gICAgICAgICAgICAvLyBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSwgMCk7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzkuI3otrNcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmFnYWluQ2FuVG91Y2gpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGxldCBjb2luID0gOTAwO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMikgY29pbiA9IDI1MDA7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLoh6rouqvph5HluIE6XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCLmtojogJfph5HluIE6XCIsY29pbik7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgTWF0aC5hYnMoY29pbikpIHtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ydW5SZXdpdmUoLWNvaW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBydW5SZXdpdmUoZGF0YSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5aSN5rS75Zue6LCD5Ye95pWw5YaFXCIsIGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuXHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPCAyKVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ICs9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSAyMTtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lICs9IDIwO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBob21lQnRuKCkge1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoIXRoaXMuaG9tZUNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiTG9ja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJIZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgdGltZTogdGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICBhZGRfVGltZTogdGhpcy5hZGRfVGltZSxcclxuICAgICAgICAgICAgcmVzdWx0OiBcImZhaWxcIlxyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIiwgZGF0YSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IHRydWUpIHtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgLy8gTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgaWYgKHRoaXMubmV3X21vZGUgPT0gMykge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICBpZiAodGhpcy5nYW1lT3ZlciA9PSB0cnVlIHx8IHRoaXMuZ2FtZVdpbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gdHJ1ZTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcImJvb21cIikge1xyXG4gICAgICAgICAgICB0aW1lID0gMjAwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkJvb21cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMVwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luM1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgPT0gMCkgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBcImJvb21cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIlRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGltZSk7XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICBjb25zdCBCTE9DS1NfUEVSX0ZSQU1FID0gNTsgLy8g5q+P5bin6ZSA5q+B55qE5pa55Z2X5pWw6YePXHJcbiAgICAgICAgY29uc3QgZGVzdHJveUJsb2NrcyA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZW5kSW5kZXggPSBNYXRoLm1pbihpbmRleCArIEJMT0NLU19QRVJfRlJBTUUsIHRoaXMuYmxvY2tzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAoOyBpbmRleCA8IGVuZEluZGV4OyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaW5kZXhdLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlpoLmnpzov5jmnInmlrnlnZfmnKrplIDmr4HvvIzkuIvkuIDluKfnu6fnu61cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5ibG9ja3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmxvY2tzLCAwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8g5byA5aeL5YiG5bin6ZSA5q+B5pa55Z2XXHJcbiAgICAgICAgZGVzdHJveUJsb2NrcygpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTmV3TW9kZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTmV3TW9kZVwiKS5nZXRDb21wb25lbnQoXCJOZXdNb2RlXCIpLnNldE1vZGUodHlwZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRvd25Eb29yKGNvbG9yLCB0eXBlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuY29sb3IgPT0gY29sb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5kb3duRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndhbGxBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikudXBEb29yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/lvIDlp4vlgJLorqHml7ZcclxuICAgIHN0YXJ0VGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZUNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lTnVtYmVyIDw9IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucGF1c2UpIHRoaXMuZmFpbExldmVsKFwidGltZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGVDYWxsYmFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYgKGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAxLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjIwMDFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQnV5U3VjY2VzcyhkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYgKGRhdGEgPT0gXCJmcmVlemVBbW91bnRcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwibWFnaWNBbW91bnRcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOWGu+e7k+aXtumXtOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkYXRhID09IFwibWFnaWNBbW91bnRcIikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLm1hZ2ljQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6LSt5Lmw6ZSk5a2Q6YGT5YW35oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9LCAyMDApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgKz0gMztcclxuICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLmhhbW1lckFtb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLmNsb3NlUHJvcEJ1eSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmtlOazleajkumBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v5L2/55So6ZSk5a2Q6YGT5YW3XHJcbiAgICB1c2VIYW1tZXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBpZiAoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIGhhbW1lckJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFtbWVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA8IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLCBwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIiwgcHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDIsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiMjAwMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06IC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInJlc291cmNlX2Nvc3RcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBidXlNYWdpYygpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAzLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcIm1hZ2ljQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlIYW1tZXIoKSB7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMiwgdGhpcy5oYW5kbGVCdXlTdWNjZXNzLmJpbmQodGhpcywgXCJoYW1tZXJBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUZyZWV6ZSgpIHtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAxLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLCBcImZyZWV6ZUFtb3VudFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjprZTms5Xmo5Lpmo/mnLrmtojpmaTkuKTkuKrmlrnlnZdcclxuICAgIHVzZU1hZ2ljKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWVcclxuICAgICAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlID09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYgKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJtYWdpY1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLprZTms5Xmo5LmlbDph4/kuI3otrMs6Ieq5Yqo6LSt5Lmw6a2U5rOV5qOSXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMClcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWdpY0xhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby5tYWdpY0Ftb3VudCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIsIHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCIyMDAzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbnVtOiAtMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgIGxldCBub21hbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLm1hZ2ljQnRuLm5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrX0luZm8ubm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBub21hbEFycmF5LnB1c2godGhpcy5ibG9ja3NbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShub21hbEFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICBub21hbEFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IDIwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWUgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXlbMV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChub21hbEFycmF5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAxIHx8IG5vbWFsQXJyYXlbMF0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+q5Ymp5LiL5LiA5Liq5Z2X6YGT5YW35L2/55So5a6M5q+VXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5raI6Zmk5LiA5Liq5pmu6YCa5Z2X5ZCO77yM5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hY2tBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmZyZWV6ZUFycmF5Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrlhrvnu5PlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDAgKyB0aW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubG9hY2tBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInmma7pgJrlv6vvvIzprZTms5XmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuayoeacieaZrumAmuW/q++8jOmtlOazlea2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmZyZWV6ZUFycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+aMieS4i+aaguWBnOaMiemSrlxyXG4gICAgdXNlUGF1c2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGF1c2UpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKSB7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMDtcclxuICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA8IDEwKSB7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLm1hcFdpZHRoIDwgMTcpIHtcclxuICAgICAgICAgICAgd2lkdGggPSAwLjE1IC0gKHRoaXMubWFwV2lkdGggLSAxMSkgKiAwLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXBXaWR0aCA9PSA4ICYmIHRoaXMubWFwSGVpZ2h0ID4gMTMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjYWxlID0gdGhpcy5ub2RlLnNjYWxlO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDAuNTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm5vZGUuc2NhbGUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rpl6jnmoTnspLlrZDnibnmlYhcclxuICAgIGNyZWF0ZVBhcnRpY2xlKGJsb2NrLCBqZykge1xyXG4gICAgICAgIGxldCBwYXJ0aWNsZSA9IGNjLmluc3RhbnRpYXRlKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5CbG9ja19Qcm9wWzldKTtcclxuICAgICAgICBwYXJ0aWNsZS5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgcGFydGljbGUuekluZGV4ID0gMTAwMDtcclxuICAgICAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKGJsb2NrLndpZHRoIC8gMTIwKTtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5mbG9vcihibG9jay5oZWlnaHQgLyAxMjApO1xyXG4gICAgICAgIGxldCBuYW1lID0gXCJcIjtcclxuXHJcbiAgICAgICAgaWYgKGpnID09IDAgfHwgamcgPT0gMSkge1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgbmFtZSA9IFwidG9wX1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgaWYgKGpnID09IDEpIHtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcImJvdF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB5ID0gYmxvY2sueTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjUpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLmFuY2hvclggPT0gMC4zMykge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqICgwLjUgLSAwLjMzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAoMC41IC0gMC42Nik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGpnID09IDIgfHwgamcgPT0gMykge1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggLSBibG9jay53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoICogMC4zMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggKiAwLjY2O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqZyA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lID0gXCJyaWdodF9cIiArIGhlaWdodCArIFwiX1wiICsgd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueDtcclxuICAgICAgICAgICAgICAgIGlmIChibG9jay5hbmNob3JYID09IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2suYW5jaG9yWCA9PSAwLjMzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCAqIDAuNjY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChibG9jay5hbmNob3JYID09IDAuNjYpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoICogMC4zMztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcGFydGljbGVOb2RlID0gcGFydGljbGUuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgbGV0IGNvbG9yID0gYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IgLSAxO1xyXG5cclxuICAgICAgICBwYXJ0aWNsZU5vZGUuZ2V0Q29tcG9uZW50KGNjLlBhcnRpY2xlU3lzdGVtKS5zcHJpdGVGcmFtZSA9IHBhcnRpY2xlLmdldENvbXBvbmVudChcIlJlZHVjZVwiKS5CbG9ja19Db2xvcltjb2xvcl07XHJcbiAgICAgICAgcGFydGljbGVOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHBhcnRpY2xlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDIsIHsgb3BhY2l0eTogMCB9KVxyXG4gICAgICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVPbmVCbG9jaygpIHtcclxuICAgICAgICAvLyDnp7vpmaTmiYDmnInmlrnlnZdcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
\ No newline at end of file
+//# 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
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js
index 0ae4a74..67e7c9f 100644
--- a/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js
+++ b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js
@@ -1103,10 +1103,12 @@ var MiniGameSdk;
}
};
API.shushu_Login = function () {
- API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
- var result = "success";
- API.shushu_Track("login", result);
- API.shushu_SetSuperProperties();
+ if (typeof wx !== 'undefined' && wx !== null) {
+ API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
+ var result = "success";
+ API.shushu_Track("login", result);
+ API.shushu_SetSuperProperties();
+ }
};
API.shushu_userSet = function (time) {
if (typeof wx !== 'undefined' && wx !== null) {
@@ -1171,4 +1173,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQW9xQzNCO0FBcHFDRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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SSxDQUFDO1FBQ25DLCtCQUEyQixHQUFZLEtBQUssQ0FBQztRQUM3QyxhQUFTLEdBQVEsSUFBSSxDQUFDO1FBQ3RCLE9BQUcsR0FBUSxJQUFJLENBQUM7UUFvZW5DLFVBQUM7S0F6ZUQsQUF5ZUMsSUFBQTtJQXplWSxlQUFHLE1BeWVmLENBQUE7QUFFTCxDQUFDLEVBcHFDZ0IsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFvcUMzQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiDlsI/muLjmiI/lubPlj7BTREvlt6XlhbflsIHoo4XvvIznm67liY3lj6rmlK/mjIHlvq7kv6Hlkozmipbpn7PlubPlj7BcclxuICovXHJcbmV4cG9ydCBuYW1lc3BhY2UgTWluaUdhbWVTZGsge1xyXG5cclxuICAgIGludGVyZmFjZSBJU2l6ZSB7XHJcbiAgICAgICAgd2lkdGg6IG51bWJlcjtcclxuICAgICAgICBoZWlnaHQ6IG51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIElQb3NpdGlvbiB7XHJcbiAgICAgICAgdG9wOiBudW1iZXI7XHJcbiAgICAgICAgbGVmdDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1dlY2hhdCgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93Lnd4ICE9PSBudWxsICYmIHdpbmRvdy53eCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0J5dGVkYW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93LnR0ICE9PSBudWxsICYmIHdpbmRvdy50dCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRTeXNXaW5TaXplKCk6IElTaXplIHtcclxuICAgICAgICBsZXQgc3lzOiBhbnk7XHJcbiAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBzeXMgPSB3eC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHR0LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2l6ZTogSVNpemUgPSB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcclxuICAgICAgICBpZiAoc3lzKSB7XHJcbiAgICAgICAgICAgIHNpemUud2lkdGggPSBzeXMud2luZG93V2lkdGg7XHJcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gc3lzLndpbmRvd0hlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5o+S5bGP5bm/5ZGK44CC5b6u5L+h5oqW6Z+z6YO95pSv5oyB77yBXHJcbiAgICAgKi9cclxuICAgIGNsYXNzIEFESW50ZXJzdGl0aWFsIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2ludGVyc3RpdGlhbDogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkgJiYgIXd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ3dlY2hhdCB1bnN1cHBvcnQgaW50ZXJzdGl0aWFsIEFEIScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSAmJiAhdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignYnl0ZWRhbmNlIHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ludGVyc3RpdGlhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLmxvYWQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHR0LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZCBpbnRlcnN0aXRpYWwgYWQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYXRjaCBpbnRlcnN0aXRpYWwgYWQgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnaW50ZXJzdGl0aWFsIGFkIG9uIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURCYW5uZXIge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfYmFubmVyOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5oqW6Z+z5ZKM5b6u5L+h6YO95pSv5oyBXHJcbiAgICAgICAgICog5qiq5bmF5bm/5ZGK44CC6aKE5Lyw5a695bqm6buY6K6k5Li6MzAw77yM6aKE5Lyw6auY5bqm5Li6MTQw44CC5aaC5p6c5L2g5LiN56Gu5a6a5bCx5oyJ6buY6K6k5YC85p2l44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBpc1RvcCDmmK/lkKblnKjlsY/luZXpobbpg6jlsZXnpLrjgILlhoXpg6jkvJroh6rliqjlsYXkuK3orqHnrpfkvY3nva7jgIJcclxuICAgICAgICAgKiBAcGFyYW0gYmFubmVyV2lkdGgg5qiq5bmF5bm/5ZGK55qE6aKE5Lyw5a695bqm44CC6buY6K6kMzAwXHJcbiAgICAgICAgICogQHBhcmFtIGF1dG9TaG93IOW5v+WRiuWKoOi9veWujOaIkOWQjuaYr+WQpueri+WIu+aYvuekuu+8jOm7mOiupOS4uuS4jeaYvuekulxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uLCBiYW5uZXJXaWR0aDogbnVtYmVyID0gMzAwLCBhdXRvU2hvdzogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkVWlkID0gYWRVaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlKGF1dG9TaG93LCBiYW5uZXJXaWR0aCwgcGFyYW0pOyAvLyDpu5jorqQzMDDmr5TovoPlkIjpgIJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlKGF1dG9TaG93OiBib29sZWFuLCBiYW5uZXJXaWR0aDogbnVtYmVyLCBwYXJhbTogYm9vbGVhbiB8IElQb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgbGV0IHdpblNpemUgPSBnZXRTeXNXaW5TaXplKCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgaGVpZ2h0ID0gYmFubmVyV2lkdGggKiAwLjQ7XHJcbiAgICAgICAgICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW0gPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gKHdpblNpemUud2lkdGggLSBiYW5uZXJXaWR0aCkgLyAyXHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbSA/IDUgOiAod2luU2l6ZS5oZWlnaHQgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGVmdCA9IHBhcmFtLmxlZnQ7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbS50b3A7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICBhZEludGVydmFsczogMzAsLy8g6Ieq5Yqo5Yi35paw6aKR546H5LiN6IO95bCP5LqOMzDnp5JcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IGxlZnQ6IGxlZnQsIHRvcDogdG9wLCB3aWR0aDogYmFubmVyV2lkdGggfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gd3guY3JlYXRlQmFubmVyQWQocGFyYW1zKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB0dC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkIGJhbm5lciBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGF1dG9TaG93ICYmIHRoaXMuX2Jhbm5lci5zaG93KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREN1c3RvbSB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZEN1c3RvbTogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSB0b3Ag5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV6aG26YOo55qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIGxlZnQg5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV5pyA5bem6L6555qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOWOn+eUn+aooeadv+W5v+WRiueahOWwuuWvuO+8jOm7mOiupOS4ujHvvIzljbMxMDAl44CC5q2k5YC85Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5bm/5ZGK5Lit6I635b6X77yM6buY6K6k5Li6MTAwJe+8jOebruWJjeaciTEwMCXvvIw5MCXvvIw4MCXkuInnp43vvIzkuIDoiKzmg4XlhrXkuI3nlKjkv67mlLnjgILoi6XmnInkv67mlLnvvIzorrDlvpfkvKDlhaXlgLzvvIzkvovlpoI5MCXlsLHkvKDlhaUwLjnjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdHJ1Y3RvcihhZFVpZDogc3RyaW5nLCB0b3A6IG51bWJlciA9IDAsIGxlZnQ6IG51bWJlciA9IDAsIHNjYWxlOiBudW1iZXIgPSAxLjApIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDdXN0b21BZCh0b3AsIGxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlQ3VzdG9tQWQodG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciwgc2NhbGU6IG51bWJlcikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHsgLy8gb25seSB3ZWNoYXQgc3VwcG9ydCBjdXN0b20gYWRcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdPbmx5IHdlY2hhdCBzdXBwb3J0IEN1c3RvbSBBZCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgLy8g5Y6f55Sf5qih5p2/NeS4quW6lOeUqOWuveW6puS4ujM3Ne+8jOiLpeiuvue9ruS6hue8qeaUvuavlOS+i++8jOWImeWuveW6puS5n+mcgOimgeiuvue9rlxyXG4gICAgICAgICAgICAvLyBsZXQgd2lkdGggPSAzNzUgKiB0aGlzLl9zY2FsZTtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld0xlZnQgPSAoc3lzLndpbmRvd1dpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld1RvcCA9IHN5cy53aW5kb3dIZWlnaHQgLyAyOyAvLyAxMjDmmK/pooTkvLDpq5jluqZcclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSB3eC5jcmVhdGVDdXN0b21BZCh7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IGxlZnQ6IGxlZnQsIHRvcDogdG9wLCBmaXhlZDogdHJ1ZSB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/Lm9uRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWQgY3VzdG9tIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uc2hvdygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaGlkZSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIOinhumikeW5v+WRiueUqOaIt+eCueWHu+ihjOS4uue7k+aenFxyXG4gICAgICovXHJcbiAgICBleHBvcnQgZW51bSBFQWRWaWRlb1Jlc3VsdCB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55So5oi355yL5a6M5LqG5bm/5ZGK77yM5ri45oiP5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgQUNDRVBULFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlKjmiLfkuK3pgJTlhbPpl63kuoblub/lkYrvvIzljbPmnKrnnIvlroznirbmgIHjgILkuI3lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBSRUpFQ1QsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOW5v+WRiue7hOS7tuWGhemDqOWPkeeUn+S6humUmeivr+OAguS4jeWPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIEVSUk9SLFxyXG4gICAgfVxyXG5cclxuICAgIGNsYXNzIEFEVmlkZW8ge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRWaWRlbzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgZ2V0IGFkdWlkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcihhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkVWlkID0gYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7lvq7kv6Hlkozmipbpn7Pop4bpopHlub/lkYrmnLrliLbkuI3lkIzvvIzlvq7kv6Hlj6/ku6XnnIvnmoTop4bpopHlub/lkYrkuKrmlbDlj6rmnIkw5ZKMMeS4qu+8jOaKlumfs+W5s+WPsOWImeWPr+S7peecizB+bWF4VmlkZW9Db3VudFxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDkuKTkuKrlj4LmlbDvvJrnrKzkuIDkuKpyZXPmmK9FQWRWaWRlb1Jlc3VsdOWumuS5ie+8jOesrOS6jGNvdW505piv55So5oi355yL5LqG5aSa5bCR5Liq6KeG6aKR5bm/5ZGK44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBvblJlc3VsdOeahOaLpeacieiAhVxyXG4gICAgICAgICAqIEBwYXJhbSBtYXhWaWRlb0NvdW50IOWPr+S7pei/nue7reeci+acgOWkp+inhumikeS4quaVsO+8jOWPr+acgOWkp+WMluWVhuS4muaViOeOh+OAgum7mOiupOS4ujPkuKrjgIJcclxuICAgICAgICAgKiBAcmV0dXJucyBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzaG93KG9uUmVzdWx0OiAocmVzOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4gdm9pZCwgdGFyZ2V0PzogYW55LCBtYXhWaWRlb0NvdW50OiBudW1iZXIgPSAzKTogdm9pZCB7XHJcbiAgICAgICAgICAgIGxldCBjYWxsYmFjayA9IChzdGF0ZTogRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgc3RhdGUsIGNvdW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFpc1dlY2hhdCgpICYmICFpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBvbkFkVmlkZW9DbG9zZWQgPSAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9mZkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmlzRW5kZWQgfHwgcmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5SRUpFQ1QsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCByZXNDb252ZXJ0ZWQgPSByZXMgYXMgeyBpc0VuZGVkOiBib29sZWFuLCBjb3VudDogbnVtYmVyIH07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc0NvbnZlcnRlZCAmJiByZXNDb252ZXJ0ZWQuY291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgcmVzQ29udmVydGVkLmNvdW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5SRUpFQ1QsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub2ZmQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gd3guY3JlYXRlUmV3YXJkZWRWaWRlb0FkKHtcclxuICAgICAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWRcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSB0dC5jcmVhdGVSZXdhcmRlZFZpZGVvQWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aXRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aXRvblJld2FyZE1zZzogWyflpJox5qyh5aWW5YqxJywgJ+WGjeWkmuS4gOasoeWlluWKsScsICflho3lpJrkuIDmrKHlpZblirEnXSxcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aXRvblJld2FyZFRpbWVzOiBtYXhWaWRlb0NvdW50LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9uTG9hZCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWQgbG9hZCBzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25FcnJvcigoZXJyOiB7IGVyck1zZzogc3RyaW5nLCBlcnJDb2RlOiBudW1iZXIgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FkIHZpZGVvIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5FUlJPUiwgMCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25DbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uc2hvdygpLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LmxvYWQoKS50aGVuKCgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uc2hvdygpKS5jYXRjaCgoZXJyOiB7IGVyck1zZzogc3RyaW5nLCBlcnJDb2RlOiBudW1iZXIgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ2F0Y2ggdmlkZW8gYWQgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuRVJST1IsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGVudW0gRUFkQmFubmVyTG9jYXRpb24ge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWxj+W5lemhtumDqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFRPUCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bGP5bmV5bqV6YOoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgQk9UVE9NLFxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBjbGFzcyBBZHZlcnRNYW5hZ2VyIHtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBBZHZlcnRNYW5hZ2VyO1xyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IEFkdmVydE1hbmFnZXIge1xyXG4gICAgICAgICAgICBpZiAoIUFkdmVydE1hbmFnZXIuX2luc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICBBZHZlcnRNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBBZHZlcnRNYW5hZ2VyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIEFkdmVydE1hbmFnZXIuX2luc3RhbmNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBfdmlkZW86IEFEVmlkZW87XHJcbiAgICAgICAgcHJpdmF0ZSBfaW50ZXJzdGl0aWFsOiBBREludGVyc3RpdGlhbDtcclxuICAgICAgICBwcml2YXRlIF9iYW5uZXI6IEFEQmFubmVyO1xyXG4gICAgICAgIHByaXZhdGUgX2N1c3RvbXM6IFJlY29yZDxzdHJpbmcsIEFEQ3VzdG9tPiA9IHt9O1xyXG5cclxuICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmihOWKoOi9veaoquW5heW5v+WRiu+8jOS4jeS8muaYvuekuuOAguWPquacieS9oOWcqOiwg+eUqHNob3dCYW5uZXLml7bmiY3kvJrmmL7npLrjgIJcclxuICAgICAgICAgKiDlj6/ph43lpI3osIPnlKjvvIzkvYbmmK/kvJrplIDmr4HkuIrkuIDmrKHnmoTlrp7kvovjgILkuIDoiKzmg4XlhrXvvIzlhajlsYDmnInkuIDkuKrlsLHooYzkuobvvIzlpKrlpJrljaDnlKjlhoXlrZjvvIzogIzkuJTmsqHlv4XopoHjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlEXHJcbiAgICAgICAgICogQHBhcmFtIGxvY2F0aW9uIOS9jee9ruacieS4pOenjeaDheWGte+8mjHjgIHlj6/ku6XkvKDlhaXmnprkuL7lgLzvvIzpu5jorqTkuIrmlrk7IDLjgIHlj6/ku6Xoh6rlrprkuYnkvY3nva7kvKDlhaVJUG9zaXRpb27vvIzms6jmhI9JUG9zaXRpb27kuK3nmoR0b3DlkoxsZWZ06Lef5bmz5Y+w55qEdG9wLGxlZnTmmK/kuIDoh7TvvIjmsqHmnInkuZjku6Xorr7lpIflg4/ntKDmr5RyYXRpb++8ie+8jOmcgOimgeW8gOWPkeiAheiHquW3seiwg+ivleS9jee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBzY2FsZSDpu5jorqTkuLrot5/lsY/luZXkuIDmoLfnmoTlrr3luqbvvIzlj6/ku6XpgJrov4forr7nva7nvKnmlL7mr5TkvovmnaXosIPmlbTlpKflsI/jgILlvZPnhLbvvIzlubPlj7DmnInop4TlrprmnIDlpKfmiJbmnIDlsI/lrr3luqbvvIzlh73mlbDlhoXpg6jkvJroh6rliqjorqHnrpfjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgbG9hZEJhbm5lcihhZFVpZDogc3RyaW5nLCBsb2NhdGlvbjogRUFkQmFubmVyTG9jYXRpb24gfCBJUG9zaXRpb24gPSBFQWRCYW5uZXJMb2NhdGlvbi5UT1AsIHNjYWxlOiBudW1iZXIgPSAxLjApIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIGxldCBzaXplOiBJU2l6ZSA9IGdldFN5c1dpblNpemUoKTtcclxuICAgICAgICAgICAgLy8g5b2TIHN0eWxlLndpZHRoIOWwj+S6jiAzMDAg5pe277yM5Lya5Y+W5L2cIDMwMOOAgiDlvZMgc3R5bGUud2lkdGgg5aSn5LqO5bGP5bmV5a695bqm5pe277yM5Lya5Y+W5L2c5bGP5bmV5a695bqm44CCXHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IHNpemUud2lkdGggKiBzY2FsZTtcclxuICAgICAgICAgICAgd2lkdGggPSB3aWR0aCA8IDMwMCA/IDMwMCA6IHdpZHRoOyAvLyDmnIDlsI/lgLznn6vmraNcclxuICAgICAgICAgICAgd2lkdGggPSB3aWR0aCA+IHNpemUud2lkdGggPyBzaXplLndpZHRoIDogd2lkdGg7IC8v5pyA5aSn5YC855+r5q2jXHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IHR5cGVvZiBsb2NhdGlvbiA9PT0gJ251bWJlcicgPyBuZXcgQURCYW5uZXIoYWRVaWQsIGxvY2F0aW9uID09PSBFQWRCYW5uZXJMb2NhdGlvbi5UT1AsIHdpZHRoLCBmYWxzZSkgOiBuZXcgQURCYW5uZXIoYWRVaWQsIGxvY2F0aW9uLCB3aWR0aCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5pi+56S65qiq5bmF5bm/5ZGKXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dCYW5uZXIoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9iYW5uZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lci5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ01pbmlHYW1lU0RLOiBiYW5uZXIgaXMgbnVsbCwgeW91IG11c3QgY2FsbCBsb2FkQmFubmVyKC4uLikgZmlyc3QhJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmakOiXj+aoquW5heW5v+WRilxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBoaWRlQmFubmVyKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOW8ueWHuuaPkuWxj+W5v+WRilxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrljZXlhYNpZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93SW50ZXJzdGl0aWFsKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ludGVyc3RpdGlhbCAmJiB0aGlzLl9pbnRlcnN0aXRpYWwuYWR1aWQgPT09IGFkVWlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwuc2hvdygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBuZXcgQURJbnRlcnN0aXRpYWwoYWRVaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5Yqg6L295Y6f55Sf5qih5p2/5bm/5ZGK77yM5LiN5Lya5pi+56S644CC5Y+q5pyJ5L2g5Zyo6LCD55Soc2hvd0N1c3RvbeaXtuaJjeS8muaYvuekuuOAglxyXG4gICAgICAgICAqIOeUseS6juWOn+eUn+aooeadv+W5v+WRiuWcqOW+ruS/oeacjeWKoeWQjuerr+WPr+S7peWumuWItuWuveW6puWkp+Wwj++8jOS4quaVsO+8jOe8qeaUvuavlOS+i+etie+8jOaJgOS7peS9jee9ruiwg+aVtOimgeagueaNruiuvue9rueahOWuveW6puadpeWumuOAguaKlumfs+S4jeaUr+aMgeacrOWHveaVsO+8jOS8muiwg+eUqOaXoOaViO+8gVxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpJRFxyXG4gICAgICAgICAqIEBwYXJhbSBsb2NhdGlvbiDkvY3nva7mnInkuKTnp43mg4XlhrXvvJox44CB5Y+v5Lul5Lyg5YWl5p6a5Li+5YC877yM6buY6K6k5LiK5pa5OyAy44CB5Y+v5Lul6Ieq5a6a5LmJ5L2N572u5Lyg5YWlSVBvc2l0aW9u77yM5rOo5oSPSVBvc2l0aW9u5Lit55qEdG9w5ZKMbGVmdOi3n+W5s+WPsOeahHRvcCxsZWZ05piv5LiA6Ie077yI5rKh5pyJ5LmY5Lul6K6+5aSH5YOP57Sg5q+UcmF0aW/vvInvvIzpnIDopoHlvIDlj5HogIXoh6rlt7HosIPor5XkvY3nva5cclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg57yp5pS+5q+U5L6L77yM6buY6K6k5pivMe+8jOWNs+S4jee8qeaUvuOAgui/meS4que8qeaUvuW5tuS4jeaYr+iHquW3seWhq++8jOiAjOaYr+agueaNruW+ruS/oU1Q5ZCO5Y+w5L2g6YWN572u55qE5Y6f55Sf5qih5p2/5bm/5ZGK55qE57yp5pS+5q+U5L6L5aGr77yM55uu5YmN5pyJMTAwJe+8jDkwJe+8jDgwJeS4ieenje+8jOS4gOiIrOaDheWGteS4jeeUqOS/ruaUueOAguiLpeacieWQjuWPsOS/ruaUue+8jOiusOW+l+S8oOWFpeWAvO+8jOS+i+WmgjkwJeWwseS8oOWFpTAuOeOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBsb2FkQ3VzdG9tKGFkVWlkOiBzdHJpbmcsIGxvY2F0aW9uOiBJUG9zaXRpb24gPSB7IHRvcDogMCwgbGVmdDogMCB9LCBzY2FsZTogbnVtYmVyID0gMSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9jdXN0b20/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fY3VzdG9tID0gbmV3IEFEQ3VzdG9tKGFkVWlkLCBsb2NhdGlvbi50b3AsIGxvY2F0aW9uLmxlZnQsIHNjYWxlKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgJHthZFVpZH0gaGFzIGJlZW4gbG9hZGVkLmApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXSA9IG5ldyBBREN1c3RvbShhZFVpZCwgbG9jYXRpb24udG9wLCBsb2NhdGlvbi5sZWZ0LCBzY2FsZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLroh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGK55qE5ZSv5LiA5qCH6K+G56ym44CC5L2/55So5q2k5qCH6K+G56ym5p2l5p+l5om+5ZKM5pi+56S654m55a6a55qE6Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICog5q2k5pa55rOV5bCd6K+V5qC55o2u5o+Q5L6b55qEYWRVaWTmmL7npLrkuIDkuKroh6rlrprkuYnlub/lkYrjgILlpoLmnpznu5nlrprnmoRhZFVpZOWvueW6lOeahOiHquWumuS5ieW5v+WRiuW3suWKoOi9ve+8jFxyXG4gICAgICAgICAqIOWImeiwg+eUqOivpeW5v+WRiueahOaYvuekuuaWueazleOAguWmguaenOW5v+WRiuacquWKoOi9ve+8jOWImeWcqOaOp+WItuWPsOi+k+WHuuitpuWRiuS/oeaBr+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93Q3VzdG9tKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXS5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFlvdSBoYXZlIG5vdCBsb2FkICR7YWRVaWR9IG9mIEN1c3RvbSBBRCwgY2FuIG5vdCBzaG93IWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpmpDol4/mjIflrprnmoToh6rlrprkuYnlub/lkYrljZXlhYNcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiDmraTmlrnms5XnlKjkuo7pmpDol4/pgJrov4flub/lkYrljZXlhYPmoIfor4bnrKbvvIhhZFVpZO+8ieaMh+WumueahOiHquWumuS5ieW5v+WRiuOAguWmguaenOaMh+WumueahOW5v+WRiuWNleWFg+W3suWKoOi9veW5tuaYvuekuu+8jFxyXG4gICAgICAgICAqIOWImeWwhuWFtumakOiXj++8m+WmguaenOW5v+WRiuWNleWFg+acquWKoOi9ve+8jOWImeWcqOaOp+WItuWPsOi+k+WHuuitpuWRiuS/oeaBr+OAglxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrljZXlhYPmoIfor4bnrKbvvIznlKjkuo7llK/kuIDmoIfor4bkuIDkuKroh6rlrprkuYnlub/lkYrljZXlhYPjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgaGlkZUN1c3RvbShhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zW2FkVWlkXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1thZFVpZF0uaGlkZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBZb3UgaGF2ZSBub3QgbG9hZCAke2FkVWlkfSBvZiBDdXN0b20gQUQsIGNhbiBub3QgaGlkZSFgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5b6u5L+h5ZKM5oqW6Z+z6KeG6aKR5bm/5ZGK5py65Yi25LiN5ZCM77yM5b6u5L+h5Y+v5Lul55yL55qE6KeG6aKR5bm/5ZGK5Liq5pWw5Y+q5pyJMOWSjDHkuKrvvIzmipbpn7PlubPlj7DliJnlj6/ku6XnnIswfm1heFZpZGVvQ291bnRcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKSUTjgILlpoLmnpzkuI7kuIrkuIDmrKFVSUTkuI3lkIzvvIzliJnlhoXpg6jkvJrph43mlrDliJvlu7rlrp7kvovjgILlvIDlj5HogIXlrozlhajkuI3nlKjlhbPlv4Pov5nkuKrnu4boioLjgIJcclxuICAgICAgICAgKiBAcGFyYW0gb25WaWRlb1Jlc3VsdCDkuKTkuKrlj4LmlbDvvJrnrKzkuIDkuKpyZXPmmK9FQWRWaWRlb1Jlc3VsdOWumuS5ie+8jOesrOS6jGNvdW505piv55So5oi355yL5LqG5aSa5bCR5Liq6KeG6aKR5bm/5ZGK44CCIFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb25WaWRlb1Jlc3VsdOeahOaLpeacieiAhVxyXG4gICAgICAgICAqIEBwYXJhbSBtYXhWaWRlb0NvdW50IOacgOWkp+inhumikeS4quaVsOOAgum7mOiupOaYrzPvvIzku4Xlr7nmipbpn7PlubPlj7DnlJ/mlYjjgILlvq7kv6HlubPlj7DnnIvlrozop4bpopFjb3VudOeahOe7k+aenOawuOi/nOaYrzHmiJYwXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dWaWRlbyhhZFVpZDogc3RyaW5nLCBvblZpZGVvUmVzdWx0OiAocmVzOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4gdm9pZCwgdGFyZ2V0PzogYW55LCBtYXhWaWRlb0NvdW50OiBudW1iZXIgPSAzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl92aWRlbyAmJiB0aGlzLl92aWRlby5hZHVpZCA9PT0gYWRVaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvLnNob3cob25WaWRlb1Jlc3VsdCwgdGFyZ2V0LCBtYXhWaWRlb0NvdW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlbyA9IG5ldyBBRFZpZGVvKGFkVWlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvLnNob3cob25WaWRlb1Jlc3VsdCwgdGFyZ2V0LCBtYXhWaWRlb0NvdW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZSA5q+B5YaF6YOo5omA5pyJ5a6e5L6L77yM5riF56m65YaF5a2YXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGRlc3Ryb3lBbGwoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl92aWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICB0aGlzLl92aWRlbyA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tcykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdmFsIGluIHRoaXMuX2N1c3RvbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW3ZhbF0/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXMgPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZW51bSBFR2FtZUNsdWJJY29uIHtcclxuICAgICAgICAvKiog57u/6Imy5Zu+5qCHICovXHJcbiAgICAgICAgR1JFRU4gPSAnZ3JlZW4nLFxyXG5cclxuICAgICAgICAvKiog57qi6Imy5Zu+5qCHICovXHJcbiAgICAgICAgV0hJVEUgPSAnd2hpdGUnLFxyXG5cclxuICAgICAgICAvKiog5pyJ6buR6Imy5ZyG6KeS6IOM5pmv55qE55m96Imy5Zu+5qCHICovXHJcbiAgICAgICAgREFSSyA9ICdkYXJrJyxcclxuXHJcbiAgICAgICAgLyoqIOacieeZveiJsuWchuinkuiDjOaZr+eahOe7v+iJsuWbvuaghyAqL1xyXG4gICAgICAgIExJR0hUID0gJ2xpZ2h0J1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBjbGFzcyBHYW1lQ2x1YiB7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBHYW1lQ2x1YjtcclxuXHJcbiAgICAgICAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBHYW1lQ2x1YiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEdhbWVDbHViKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBfY2x1YjogYW55O1xyXG5cclxuICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWIm+W7uua4uOaIj+WciOaMiemSrlxyXG4gICAgICAgICAqIEBwYXJhbSBpY29uIFxyXG4gICAgICAgICAqIEBwYXJhbSBwb3NpdGlvbiBcclxuICAgICAgICAgKiBAcGFyYW0gc2l6ZSBcclxuICAgICAgICAgKiBAcGFyYW0gb3BlbkxpbmsgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY3JlYXRlKGljb246IEVHYW1lQ2x1Ykljb24gPSBFR2FtZUNsdWJJY29uLkdSRUVOLCBwb3NpdGlvbjogSVBvc2l0aW9uID0geyB0b3A6IDAsIGxlZnQ6IDAgfSwgc2l6ZTogSVNpemUgPSB7IHdpZHRoOiA0MCwgaGVpZ2h0OiA0MCB9LCBvcGVuTGluaz86IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2x1YiA9IHd4LmNyZWF0ZUdhbWVDbHViQnV0dG9uKHtcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiBpY29uLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogcG9zaXRpb24udG9wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb3Blbmxpbms6IG9wZW5MaW5rXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2x1Yj8uc2hvdygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaGlkZSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2x1Yj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdG9yeSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2x1Yj8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmjK/liqjnsbvlnotcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGVudW0gRVZpcmJyYXRlVHlwZSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55+t5oyv5YqoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU0hPUlQsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmVv+aMr+WKqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIExPTkdcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8qKlxyXG4gKiDmipbpn7PkvqfovrnmoI/kuJPlsZ7mjqXlj6NcclxuICovXHJcbiAgICBleHBvcnQgY2xhc3MgQnl0ZWRhbmNlU2lkZWJhciB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5pys5ri45oiP5Zyo5oqW6Z+z546v5aKD5LiL5ZCv5Yqo55uR5o6n77yM6ZyA6KaB5pS+5Zyo5YWo5bGA546v5aKD5Lit77yM5L+d6K+B6IO956ys5LiA5pe26Ze05ZCv5Yqo44CC5Zug5Li65Y+v6IO955uR5ZCs5oqW6Z+z5aSx6LSl77yI5oqW6Z+z5bCP5ri45oiP5a6Y5pa555qE6K+05piO77yJ77yBXHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOWMheWQq+S4gOS4qmJvb2xlYW7lj4LmlbDnmoTlh73mlbBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IOS4iui/sOWHveaVsOeahOaLpeacieiAhe+8jOWmguaenOaYr+exu+eahOaIkOWRmOWHveaVsO+8jOmcgOimgeS8oOWFpXRoaXPjgILmma7pgJrmiJbljL/lkI3lh73mlbDlv73nlaXljbPlj6/jgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbGlzdGVuRnJvbVNpZGViYXIob25SZXN1bHQ6IChzdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnkpIHtcclxuICAgICAgICAgICAgaWYgKCFpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0Lm9uU2hvdygocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvblNob3cgbGF1bmNoIHJlczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zY2VuZSA9PT0gJzAyMTAzNicpIHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsYXVuY2ggZnJvbSBzaWRlYmFyJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOT1QgbGF1bmNoIGZyb20gZG91eWluIHNpZGViYXIhJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHR0LmdldExhdW5jaE9wdGlvbnNTeW5jKCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2NlbmUgPT09ICcwMjEwMzYnKSB7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmo4DmtYvmipbpn7PkvqfovrnmoI/mmK/lkKblrZjlnKhcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBjaGVja1NpZGVCYXIob25SZXN1bHQ6IChzdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnkpIHtcclxuICAgICAgICAgICAgaWYgKCFpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0LmNoZWNrU2NlbmUoe1xyXG4gICAgICAgICAgICAgICAgc2NlbmU6IFwic2lkZWJhclwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGVjayBzY2VuZSBzdWNjZXNzOiBcIiwgcmVzLmlzRXhpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgPGJvb2xlYW4+cmVzLmlzRXhpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNrIHNjZW5lIGZhaWw6XCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6Lez6L2s5Yiw5oqW6Z+z5L6n6L655qCPXHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOWMheWQq+S4gOS4qmJvb2xlYW7lj4LmlbDnmoTlh73mlbBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IOS4iui/sOWHveaVsOeahOaLpeacieiAhe+8jOWmguaenOaYr+exu+eahOaIkOWRmOWHveaVsO+8jOmcgOimgeS8oOWFpXRoaXPjgILmma7pgJrmiJbljL/lkI3lh73mlbDlv73nlaXljbPlj6/jgIJcclxuICAgICAgICAgKiBAcmV0dXJucyBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbmF2aWdhdGVUb1NpZGViYXIob25SZXN1bHQ6IChzdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnkpIHtcclxuICAgICAgICAgICAgaWYgKCFpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5vdCBkb3V5aW4gcGxhdGZvcm0hXCIpO1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQubmF2aWdhdGVUb1NjZW5lKHtcclxuICAgICAgICAgICAgICAgIHNjZW5lOiBcInNpZGViYXJcIixcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hdmlnYXRlIHN1Y2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hdmlnYXRlIGZhaWxlZCByZWFzb246XCIsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlubPlj7DluLjnlKhBUEnlkIjpm4ZcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGNsYXNzIEFQSSB7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2xvZ2luQ29kZTogc3RyaW5nID0gbnVsbDtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Bbm9ueW1vdXNDb2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF91c2VySW5mbzogYW55ID0gbnVsbDtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfdGE6IGFueSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWIhuS6q2FwcOe7meaci+WPi++8jOW+ruS/oeWwj+a4uOaIj+WIhuS6q+aYr+ayoeaciW9uU3VjY2Vzc+Wbnuiwg+eahOOAglxyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g57uG6IqC5o+P6L+w5L+h5oGvIFxyXG4gICAgICAgICAqIEBwYXJhbSBpbWFnZVVybCDlm77niYflnLDlnYBcclxuICAgICAgICAgKiBAcGFyYW0gcXVlcnkg5p+l6K+i5L+h5oGvXHJcbiAgICAgICAgICogQHBhcmFtIG9uU3VjY2VzcyDmipbpn7PkvJrlm57osIPvvIzlvq7kv6HkuI3kvJrlm57osINcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgc2hhcmVBcHBUb0ZyaWVuZHModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnLCBpbWFnZVVybD86IHN0cmluZywgcXVlcnk/OiBzdHJpbmcsIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybDogaW1hZ2VVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzaGFyZSBmYWlsZDogJHtlcnJ9YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LnNoYXJlQXBwTWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IGRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnkgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2hhcmUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M/LigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2hhcmUgZmFpbDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrmj5DnpLrkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gdGl0bGUg5qCH6aKYXHJcbiAgICAgICAgICogQHBhcmFtIGR1cmF0aW9uIOaXtumVv++8iOWNleS9je+8muenku+8iVxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93VG9hc3QodGl0bGU6IHN0cmluZywgZHVyYXRpb246IG51bWJlciA9IDIpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24gKiA1MDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6K6+5aSH6ZyH5Yqo5pWI5p6c77yM6buY6K6k5Li655+t6ZyH5Yqo44CC5rOo5oSP77ya5Y+v6IO95LiA5Lqb5py65Z6L5LiN5Lya55Sf5pWI77yM5YW35L2T55yL5bmz5Y+w5pa555qE6K+05piOXHJcbiAgICAgICAgICogQHBhcmFtIHR5cGUgTWluaUdhbWVTZGsuQVBJLkVWaXJicmF0ZVR5cGVcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgdmlicmF0ZSh0eXBlOiBFVmlyYnJhdGVUeXBlID0gRVZpcmJyYXRlVHlwZS5TSE9SVCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLlNIT1JUOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZVNob3J0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlU2hvcnQgZmFpbGVkJywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuTE9ORzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHd4LnZpYnJhdGVMb25nKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZSBzdWNjZXNzJywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHZpYnJhdGVMb25nIGZhaWxlZGAsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHQudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6YeN5ZCv5bCP5ri45oiPXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHJlYm9vdCgpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gucmVzdGFydE1pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXN0YXJ0IHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXN0YXJ0IGZhaWxlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5yZXN0YXJ0TWluaVByb2dyYW1TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGByZXN0YXJ0TWluaVByb2dyYW1TeW5jYCwgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpgIDlh7rlsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgZXhpdCgpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guZXhpdE1pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdleGl0IHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IHN1Y2Nlc3M6XCIsIHJlcz8uZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXhpdCBmYWlsOlwiLCByZXM/LmVyck1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrovazlj5HmjInpkq7jgILpgJrluLjlnKjliJrov5vlhaXmuLjmiI/nmoTml7blgJnosIPnlKjjgIJcclxuICAgICAgICAgKiDkuLvopoHmmK/miZPlvIDlubPlj7DigJwuLi7igJ3ov5nkuKrmjInpkq7ph4zpnaLnmoTliIbkuqvoj5zljZXvvIzkuIDoiKzpu5jorqTmmK/lhbPpl63nmoTvvIzpnIDopoHosIPnlKjov5nkuKrlh73mlbDmiZPlvIDjgILlj6/ku6XorqnnlKjmiLfliIbkuqvkvaDnmoTmuLjmiI/lhaXlj6PjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgc2hvd1NoYXJlTWVudSgpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1NoYXJlTWVudSh7XHJcbiAgICAgICAgICAgICAgICAgICAgd2l0aFNoYXJlVGlja2V0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVzOiBbJ3NoYXJlQXBwTWVzc2FnZScsICdzaGFyZVRpbWVsaW5lJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHsgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOW+ruS/oeWwj+a4uOaIj++8mui3s+i9rOWIsOWPpuWkluS4gOasvuWwj+a4uOaIj1xyXG4gICAgICAgICAqIOaKlumfs+Wwj+a4uOaIj++8mui3s+i9rOWIsOaMh+WumueahOinhumikeeVjOmdolxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXRJZCDlvq7kv6HlsI/muLjmiI9hcHBpZOaIluiAheinhumikeeVjOmdolxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBuYXZpZ2F0ZVRvKHRhcmdldElkOiBzdHJpbmcsIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHd4Lm5hdmlnYXRlVG9NaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSWQ6IHRhcmdldElkLFxyXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhRGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb286ICdiYXInXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbnZWZXJzaW9uOiAnZGV2ZWxvcCcsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M/LigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQubmF2aWdhdGVUb1ZpZGVvVmlldyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9JZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJieXRlZGFuY2UgbmF2aWdhdGVUb1ZpZGVvVmlldyBmYWlsXCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bCP5ri45oiP5bmz5Y+w55m75b2V5Yqf6IO944CC5b6u5L+h6L+U5ZueY29kZe+8jOaKlumfs+i/lOWbnmNvZGXlkoxhbm9ueW1vdXNDb2Rl44CC55So5LqO55m75b2V55qE5Yet6K+B77yM6ZyA6KaB5oqK6L+Z5LiqY29kZeS8oOWbnuS9oOeahOacjeWKoeWZqOeoi+W6j+S4reWOu+iwg+eUqGNvZGUyU2Vzc2lvblxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayAoY29kZSwgYW5vbnltb3VzQ29kZSkg56ys5LiA5Liq5Y+C5pWw5Li6Y29kZe+8jOW+ruS/oeWSjOaKlumfs+mDveaUr+aMge+8m+esrOS6jOS4quWPguaVsOS4uuWMv+WQjeiuvuWkh0lE77yM5LuF5oqW6Z+z5pSv5oyB77yM5aSx6LSl6YO96L+U5ZuebnVsbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBsb2dpbihjYWxsYmFjazogKGNvZGU6IHN0cmluZywgYW5vbnltb3VzQ29kZTogc3RyaW5nKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIGxldCBsb2dpblBsYXRmb3JtID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5sb2dpbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IHsgY29kZTogYW55OyBlcnJNc2c6IGFueTsgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSByZXMuY29kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9naW4gZXJyb3I6JywgcmVzLmVyck1zZylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBmYWlsJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdHQubG9naW4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JjZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGxvZ2luICR7cmVzLmNvZGV9ICR7cmVzLmFub255bW91c0NvZGV9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IHJlcy5jb2RlPy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gcmVzLmFub255bW91c0NvZGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9naW4gZXJyb3I6JywgcmVzLmVyck1zZylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGxvZ2luIGZhaWxgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm90IG1pbmkgZ2FtZSBwbGF0Zm9ybSwgbG9naW4gY29kZXMgYXJlIGFsbCBudWxsJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKCFBUEkuX2xvZ2luQ29kZSkge1xyXG4gICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5jaGVja1Nlc3Npb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gaXMgdmFsaWQsIHVzZSBjdXJyZW50IGNvZGU6YCwgQVBJLl9sb2dpbkNvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gZXhwaXJlZGApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5jaGVja1Nlc3Npb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gaXMgdmFsaWQsIHVzZXIgY3VycmVudCBjb2RlOiAke0FQSS5fbG9naW5Db2RlfSwgJHtBUEkuX2xvZ2luQW5vbnltb3VzQ29kZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGV4cGlyZWRgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luUGxhdGZvcm0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdub3QgbWluaSBnYW1lIHBsYXRmb3JtLCBsb2dpbiBudWxsJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihudWxsLCBudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAqIOWwj+a4uOaIj+W5s+WPsOeZu+W9leWKn+iDveOAguW+ruS/oei/lOWbnmNvZGXvvIzmipbpn7Pov5Tlm55jb2Rl5ZKMYW5vbnltb3VzQ29kZeOAgueUqOS6jueZu+W9leeahOWHreivge+8jOmcgOimgeaKiui/meS4qmNvZGXkvKDlm57kvaDnmoTmnI3liqHlmajnqIvluo/kuK3ljrvosIPnlKhjb2RlMlNlc3Npb25cclxuICogQHBhcmFtIGNhbGxiYWNrIChjb2RlLCBhbm9ueW1vdXNDb2RlKSDnrKzkuIDkuKrlj4LmlbDkuLpjb2Rl77yM5b6u5L+h5ZKM5oqW6Z+z6YO95pSv5oyB77yb56ys5LqM5Liq5Y+C5pWw5Li65Yy/5ZCN6K6+5aSHSUTvvIzku4Xmipbpn7PmlK/mjIHvvIzlpLHotKXpg73ov5Tlm55udWxsXHJcbiAqL1xyXG4gICAgICAgIHN0YXRpYyBnZXRVc2VySW5mbyhjYWxsYmFjazogKHVzZXJJbmZvOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0LmdldFVzZXJJbmZvKHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdXNlckluZm8gPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soQVBJLl91c2VySW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDosIPnlKjlvq7kv6HkupHlh73mlbDjgILnlLHkuo7lj4LmlbDpnIDopoHoh6rlrprkuYnvvIzmiYDku6XkuLphbnnvvIzpnIDopoHoh6rooYzop6Pph4rjgILlh73mlbDlj6rlrozmiJDpgJrpgZPlkozlpITnkIbkuIDlnLrnmoTkvZznlKhcclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sg6L+U5Zue5LqR5Ye95pWw6LCD55So57uT5p6c44CC6ZyA6KaB5qOA5p+l6L+U5Zue5Y+C5pWw5piv5ZCm5Li656m677yM5aSx6LSl55qE5pe25YCZ5Li656m6XHJcbiAgICAgICAgICogQHBhcmFtIG5hbWUg5LqR5Ye95pWw55qE5ZCN5a2XXHJcbiAgICAgICAgICogQHBhcmFtIGRhdGEg5LqR5Ye95pWw55qE5YaF5a65XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNhbGxXZWNoYXRDbG91ZEZ1bmN0aW9uKGNhbGxiYWNrOiAocmVzOiBhbnkpID0+IHZvaWQsIG5hbWU6IHN0cmluZywgZGF0YToge30pIHtcclxuICAgICAgICAgICAgaWYgKCFpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTm90IHdlY2hhdCBwbGF0Zm9ybSwgbm90IHN1cHBvcnQgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2dpbigoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghQVBJLl9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNsb3VkLmluaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiBjYWxsYmFjaz8uKHJlcyksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZWNoYXQgY2xvdWQgZnVuY3Rpb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlrZjlgqjnlKjmiLfkv6Hmga/vvIzmlbDmja7ph4/kuI3og73lpKfjgILlj6/ku6XogIPomZHnlKjkuo7liIbmlbDmjpLooYzmppzjgILnlKjmiLfkuYvpl7Tlj6/lhbHkuqvmjpLooYzmlbDmja7jgIJcclxuICAgICAgICAgKiBAcGFyYW0ga2V5IFxyXG4gICAgICAgICAqIEBwYXJhbSB2YWx1ZSBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgc2V0VXNlckNsb3VkU3RvcmFnZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2V0VXNlckNsb3VkU3RvcmFnZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgS1ZEYXRhTGlzdDogW3sga2V5OiBrZXksIHZhbHVlOiB2YWx1ZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlLCB9XSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiBjb25zb2xlLmxvZyhgc2V0IGNsb3VkIHN0b3JhZ2Ugc3VjY2Vzczoke2tleX0sIHZhbHVlOiR7dmFsdWV9YCksXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiBjb25zb2xlLmxvZygnc2V0IGNsb3VkIHN0b3JhZ2UgZXJyb3I6JywgZXJyKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICog5pWw5pWw5bmz5Y+w5Yid5aeL5YyW5Lul5Y+K55m75b2VXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9Jbml0KCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlvIDlp4vmjqXlhaXmlbDmlbDlubPlj7BcIik7XHJcbiAgICAgICAgICAgICAgICAvL2dldFdlY2hhdEdhbWVWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICBsZXQgYXBwSWQgPSBcIjEyMTU5MTM3OGZjMTQyMzg5M2RlYjEyMDQxNDEzZWIzXCI7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IGNjLmZ4LkdhbWVUb29sLmdldFdlY2hhdEdhbWVWZXJzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGVzdCA9PSBcIuato+W8j+eJiFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSWQgPSBcIjg3ZDE4OTU4Y2VhMTQ1ZjI5ZDMyNjU0NzBlY2QzNDg2XCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGFwcElkOiBcIjczZTFlYzY1NGYxNWI0N2ExYTczNTRmYmFiZWMwNWFkXCIsIC8vIOmhueebriBBUFAgSURcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZDogYXBwSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyVXJsOiBcImh0dHBzOi8vZGF0YS5uaWthNGZ1bi5jb21cIiwgLy8g5LiK5oql5Zyw5Z2AXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1RyYWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFNob3c6IHRydWUsIC8vIOiHquWKqOmHh+mbhiB0YV9tZ19zaG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEhpZGU6IHRydWUgLy8g6Ieq5Yqo6YeH6ZuGIHRhX21nX2hpZGVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy8g5Yib5bu6IFRBIOWunuS+i1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YSA9IG5ldyBUaGlua2luZ0FuYWx5dGljc0FQSShjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgLy8g5Yid5aeL5YyWXHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLmluaXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9Mb2dpbigpIHtcclxuICAgICAgICAgICAgQVBJLl90YS5sb2dpbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gXCJzdWNjZXNzXCI7XHJcbiAgICAgICAgICAgIEFQSS5zaHVzaHVfVHJhY2soXCJsb2dpblwiLCByZXN1bHQpO1xyXG4gICAgICAgICAgICBBUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV91c2VyU2V0KHRpbWUpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6K6+572u55So5oi35rOo5YaM5bGe5oCnXCIpO1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YS51c2VyU2V0KHsgcmVnaXN0ZXJfdGltZTogdGltZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOiuvue9ruWKqOaAgeWFrOWFseWxnuaAp1xyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCAmJiBBUEkuX3RhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uRGF0YSA9IFwiMS4zXCI7XHJcbiAgICAgICAgICAgICAgICAvLyBBUEkuX3RhLnVzZXJTZXRPbmNlKHsgcmVnaXN0ZXJfdGltZTp0aW1lfSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3VwZXJQcm9wZXJ0aWVzID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfbGV2ZWw6IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKSwgLy/lvZPliY3lhbPljaHnrYnnuqcgIG51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfaGVhbHRoOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsICAgICAgICAvL+W9k+WJjeS9k+WKm+WAvFxyXG4gICAgICAgICAgICAgICAgICAgIHRtcF9jb2luOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiwvL+W9k+WJjemHkeW4gVxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IHZlcnNpb25EYXRhXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YS5zZXRTdXBlclByb3BlcnRpZXMoc3VwZXJQcm9wZXJ0aWVzKTsvL+iuvue9ruWFrOWFseS6i+S7tuWxnuaAp1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0V2VjaGF0R2FtZVZlcnNpb24oKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NvdW50SW5mbyA9IHd4LmdldEFjY291bnRJbmZvU3luYygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY291bnRJbmZvLm1pbmlQcm9ncmFtLnZlcnNpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgKiDmlbDmlbDlubPlj7DlhbfkvZPln4vngrlcclxuICAgICAgICAqL1xyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X1RyYWNrKG5hbWUsIGRhdGEsIGNhbGxiYWNrPzogKHN1Y2Nlc3M6IGJvb2xlYW4sIGVycm9yPzogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQVBJLl90YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWBh+iuviB0cmFjayDmlrnms5Xov5Tlm57kuIDkuKogUHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdGEudHJhY2soXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIC8vIOS6i+S7tuWQjeensFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhIC8vIOS6i+S7tuWxnuaApyBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXNxQzNCO0FBdHFDRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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Q0o7YUFDSjtRQUNMLENBQUM7UUF6ZWMsY0FBVSxHQUFXLElBQUksQ0FBQztRQUMxQix1QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFDbkMsK0JBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLGFBQVMsR0FBUSxJQUFJLENBQUM7UUFDdEIsT0FBRyxHQUFRLElBQUksQ0FBQztRQXNlbkMsVUFBQztLQTNlRCxBQTJlQyxJQUFBO0lBM2VZLGVBQUcsTUEyZWYsQ0FBQTtBQUVMLENBQUMsRUF0cUNnQixXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQXNxQzNCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOWwj+a4uOaIj+W5s+WPsFNES+W3peWFt+Wwgeijhe+8jOebruWJjeWPquaUr+aMgeW+ruS/oeWSjOaKlumfs+W5s+WPsFxyXG4gKi9cclxuZXhwb3J0IG5hbWVzcGFjZSBNaW5pR2FtZVNkayB7XHJcblxyXG4gICAgaW50ZXJmYWNlIElTaXplIHtcclxuICAgICAgICB3aWR0aDogbnVtYmVyO1xyXG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSVBvc2l0aW9uIHtcclxuICAgICAgICB0b3A6IG51bWJlcjtcclxuICAgICAgICBsZWZ0OiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzV2VjaGF0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cud3ggIT09IG51bGwgJiYgd2luZG93Lnd4ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQnl0ZWRhbmNlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiB3aW5kb3cudHQgIT09IG51bGwgJiYgd2luZG93LnR0ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFN5c1dpblNpemUoKTogSVNpemUge1xyXG4gICAgICAgIGxldCBzeXM6IGFueTtcclxuICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHd4LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgc3lzID0gdHQuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xyXG4gICAgICAgIGlmIChzeXMpIHtcclxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IHN5cy53aW5kb3dXaWR0aDtcclxuICAgICAgICAgICAgc2l6ZS5oZWlnaHQgPSBzeXMud2luZG93SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmj5LlsY/lub/lkYrjgILlvq7kv6Hmipbpn7Ppg73mlK/mjIHvvIFcclxuICAgICAqL1xyXG4gICAgY2xhc3MgQURJbnRlcnN0aXRpYWwge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfaW50ZXJzdGl0aWFsOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSAmJiAhd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignd2VjaGF0IHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpICYmICF0dC5jcmVhdGVJbnRlcnN0aXRpYWxBZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdieXRlZGFuY2UgdW5zdXBwb3J0IGludGVyc3RpdGlhbCBBRCEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwubG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gd3guY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQoeyBhZFVuaXRJZDogdGhpcy5fYWRVaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIGludGVyc3RpdGlhbCBhZCBzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGludGVyc3RpdGlhbCBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnRlcnN0aXRpYWwgYWQgb24gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREJhbm5lciB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9iYW5uZXI6IGFueTtcclxuXHJcbiAgICAgICAgZ2V0IGFkdWlkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRVaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmipbpn7Plkozlvq7kv6Hpg73mlK/mjIFcclxuICAgICAgICAgKiDmqKrluYXlub/lkYrjgILpooTkvLDlrr3luqbpu5jorqTkuLozMDDvvIzpooTkvLDpq5jluqbkuLoxNDDjgILlpoLmnpzkvaDkuI3noa7lrprlsLHmjInpu5jorqTlgLzmnaXjgIJcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIGlzVG9wIOaYr+WQpuWcqOWxj+W5lemhtumDqOWxleekuuOAguWGhemDqOS8muiHquWKqOWxheS4reiuoeeul+S9jee9ruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBiYW5uZXJXaWR0aCDmqKrluYXlub/lkYrnmoTpooTkvLDlrr3luqbjgILpu5jorqQzMDBcclxuICAgICAgICAgKiBAcGFyYW0gYXV0b1Nob3cg5bm/5ZGK5Yqg6L295a6M5oiQ5ZCO5piv5ZCm56uL5Yi75pi+56S677yM6buY6K6k5Li65LiN5pi+56S6XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZywgcGFyYW06IGJvb2xlYW4gfCBJUG9zaXRpb24sIGJhbm5lcldpZHRoOiBudW1iZXIgPSAzMDAsIGF1dG9TaG93OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGUoYXV0b1Nob3csIGJhbm5lcldpZHRoLCBwYXJhbSk7IC8vIOm7mOiupDMwMOavlOi+g+WQiOmAglxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGUoYXV0b1Nob3c6IGJvb2xlYW4sIGJhbm5lcldpZHRoOiBudW1iZXIsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgd2luU2l6ZSA9IGdldFN5c1dpblNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPSBiYW5uZXJXaWR0aCAqIDAuNDtcclxuICAgICAgICAgICAgbGV0IHRvcCA9IDAsIGxlZnQgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQgPSAod2luU2l6ZS53aWR0aCAtIGJhbm5lcldpZHRoKSAvIDJcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtID8gNSA6ICh3aW5TaXplLmhlaWdodCAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcGFyYW0ubGVmdDtcclxuICAgICAgICAgICAgICAgIHRvcCA9IHBhcmFtLnRvcDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIGFkSW50ZXJ2YWxzOiAzMCwvLyDoh6rliqjliLfmlrDpopHnjofkuI3og73lsI/kuo4zMOenklxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIHdpZHRoOiBiYW5uZXJXaWR0aCB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB3eC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IHR0LmNyZWF0ZUJhbm5lckFkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/Lm9uRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWQgYmFubmVyIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXV0b1Nob3cgJiYgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsYXNzIEFEQ3VzdG9tIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkQ3VzdG9tOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKVUlE77yM5ZCO56uv6YWN572uXHJcbiAgICAgICAgICogQHBhcmFtIHRvcCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXpobbpg6jnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gbGVmdCDku47lt6bkuIrop5LlvIDlp4vvvIzot53nprvlsY/luZXmnIDlt6bovrnnmoTot53nprvjgILms6jmhI/vvJrov5nkuKrmlbDmja7kuLrorr7lpIflsY/luZXlrr3luqZ3aWR0aOOAguWmguaenOmcgOimgeiOt+WPluWxj+W5leeahOWDj+e0oO+8jOmcgOimgeS5mOS7peiuvuWkh+WDj+e0oOavlFBpeGVsLVJhdGlv77yM5L6L5aaCaVBob25lIDEzIFByb+eahFBpeGVsLVJhdGlv5Li6M++8jOWDj+e0oOS4uldpZHRoKjPjgIJcclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg5Y6f55Sf5qih5p2/5bm/5ZGK55qE5bC65a+477yM6buY6K6k5Li6Me+8jOWNszEwMCXjgILmraTlgLzlnKjlvq7kv6HmnI3liqHlkI7nq6/lub/lkYrkuK3ojrflvpfvvIzpu5jorqTkuLoxMDAl77yM55uu5YmN5pyJMTAwJe+8jDkwJe+8jDgwJeS4ieenje+8jOS4gOiIrOaDheWGteS4jeeUqOS/ruaUueOAguiLpeacieS/ruaUue+8jOiusOW+l+S8oOWFpeWAvO+8jOS+i+WmgjkwJeWwseS8oOWFpTAuOeOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHRvcDogbnVtYmVyID0gMCwgbGVmdDogbnVtYmVyID0gMCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUFkKHRvcCwgbGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21BZCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyLCBzY2FsZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSkgeyAvLyBvbmx5IHdlY2hhdCBzdXBwb3J0IGN1c3RvbSBhZFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ09ubHkgd2VjaGF0IHN1cHBvcnQgQ3VzdG9tIEFkJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/mqKHmnb815Liq5bqU55So5a695bqm5Li6Mzc177yM6Iul6K6+572u5LqG57yp5pS+5q+U5L6L77yM5YiZ5a695bqm5Lmf6ZyA6KaB6K6+572uXHJcbiAgICAgICAgICAgIC8vIGxldCB3aWR0aCA9IDM3NSAqIHRoaXMuX3NjYWxlO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3TGVmdCA9IChzeXMud2luZG93V2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICAgICAgICAvLyBsZXQgbmV3VG9wID0gc3lzLndpbmRvd0hlaWdodCAvIDI7IC8vIDEyMOaYr+mihOS8sOmrmOW6plxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbSA9IHd4LmNyZWF0ZUN1c3RvbUFkKHtcclxuICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZCxcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgbGVmdDogbGVmdCwgdG9wOiB0b3AsIGZpeGVkOiB0cnVlIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZCBjdXN0b20gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdHJveSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6KeG6aKR5bm/5ZGK55So5oi354K55Ye76KGM5Li657uT5p6cXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVBZFZpZGVvUmVzdWx0IHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlKjmiLfnnIvlrozkuoblub/lkYrvvIzmuLjmiI/lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBBQ0NFUFQsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+S4remAlOWFs+mXreS6huW5v+WRiu+8jOWNs+acqueci+WujOeKtuaAgeOAguS4jeWPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFJFSkVDVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bm/5ZGK57uE5Lu25YaF6YOo5Y+R55Sf5LqG6ZSZ6K+v44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgRVJST1IsXHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURWaWRlbyB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZFZpZGVvOiBhbnkgPSBudWxsO1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5Y+v5Lul6L+e57ut55yL5pyA5aSn6KeG6aKR5Liq5pWw77yM5Y+v5pyA5aSn5YyW5ZWG5Lia5pWI546H44CC6buY6K6k5Li6M+S4quOAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHNob3cob25SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGNhbGxiYWNrID0gKHN0YXRlOiBFQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBzdGF0ZSwgY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9uQWRWaWRlb0Nsb3NlZCA9IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub2ZmQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuaXNFbmRlZCB8fCByZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc0NvbnZlcnRlZCA9IHJlcyBhcyB7IGlzRW5kZWQ6IGJvb2xlYW4sIGNvdW50OiBudW1iZXIgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzQ29udmVydGVkICYmIHJlc0NvbnZlcnRlZC5jb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCByZXNDb252ZXJ0ZWQuY291bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LlJFSkVDVCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSB3eC5jcmVhdGVSZXdhcmRlZFZpZGVvQWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGFkVW5pdElkOiB0aGlzLl9hZFVpZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHR0LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkTXNnOiBbJ+WkmjHmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJywgJ+WGjeWkmuS4gOasoeWlluWKsSddLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpdG9uUmV3YXJkVGltZXM6IG1heFZpZGVvQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCBsb2FkIHN1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkVycm9yKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWQgdmlkZW8gZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8ubG9hZCgpLnRoZW4oKCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5zaG93KCkpLmNhdGNoKChlcnI6IHsgZXJyTXNnOiBzdHJpbmcsIGVyckNvZGU6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDYXRjaCB2aWRlbyBhZCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5FUlJPUiwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVzdG9yeSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRWaWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZW51bSBFQWRCYW5uZXJMb2NhdGlvbiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bGP5bmV6aG26YOoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgVE9QLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXlupXpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBCT1RUT00sXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEFkdmVydE1hbmFnZXIge1xyXG5cclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEFkdmVydE1hbmFnZXI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogQWR2ZXJ0TWFuYWdlciB7XHJcbiAgICAgICAgICAgIGlmICghQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIEFkdmVydE1hbmFnZXIuX2luc3RhbmNlID0gbmV3IEFkdmVydE1hbmFnZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF92aWRlbzogQURWaWRlbztcclxuICAgICAgICBwcml2YXRlIF9pbnRlcnN0aXRpYWw6IEFESW50ZXJzdGl0aWFsO1xyXG4gICAgICAgIHByaXZhdGUgX2Jhbm5lcjogQURCYW5uZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBfY3VzdG9tczogUmVjb3JkPHN0cmluZywgQURDdXN0b20+ID0ge307XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6aKE5Yqg6L295qiq5bmF5bm/5ZGK77yM5LiN5Lya5pi+56S644CC5Y+q5pyJ5L2g5Zyo6LCD55Soc2hvd0Jhbm5lcuaXtuaJjeS8muaYvuekuuOAglxyXG4gICAgICAgICAqIOWPr+mHjeWkjeiwg+eUqO+8jOS9huaYr+S8mumUgOavgeS4iuS4gOasoeeahOWunuS+i+OAguS4gOiIrOaDheWGte+8jOWFqOWxgOacieS4gOS4quWwseihjOS6hu+8jOWkquWkmuWNoOeUqOWGheWtmO+8jOiAjOS4lOayoeW/heimgeOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpVSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOm7mOiupOS4uui3n+Wxj+W5leS4gOagt+eahOWuveW6pu+8jOWPr+S7pemAmui/h+iuvue9rue8qeaUvuavlOS+i+adpeiwg+aVtOWkp+Wwj+OAguW9k+eEtu+8jOW5s+WPsOacieinhOWumuacgOWkp+aIluacgOWwj+WuveW6pu+8jOWHveaVsOWGhemDqOS8muiHquWKqOiuoeeul+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBsb2FkQmFubmVyKGFkVWlkOiBzdHJpbmcsIGxvY2F0aW9uOiBFQWRCYW5uZXJMb2NhdGlvbiB8IElQb3NpdGlvbiA9IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgc2NhbGU6IG51bWJlciA9IDEuMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgbGV0IHNpemU6IElTaXplID0gZ2V0U3lzV2luU2l6ZSgpO1xyXG4gICAgICAgICAgICAvLyDlvZMgc3R5bGUud2lkdGgg5bCP5LqOIDMwMCDml7bvvIzkvJrlj5bkvZwgMzAw44CCIOW9kyBzdHlsZS53aWR0aCDlpKfkuo7lsY/luZXlrr3luqbml7bvvIzkvJrlj5bkvZzlsY/luZXlrr3luqbjgIJcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aCAqIHNjYWxlO1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIDwgMzAwID8gMzAwIDogd2lkdGg7IC8vIOacgOWwj+WAvOefq+ato1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoID4gc2l6ZS53aWR0aCA/IHNpemUud2lkdGggOiB3aWR0aDsgLy/mnIDlpKflgLznn6vmraNcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gdHlwZW9mIGxvY2F0aW9uID09PSAnbnVtYmVyJyA/IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24gPT09IEVBZEJhbm5lckxvY2F0aW9uLlRPUCwgd2lkdGgsIGZhbHNlKSA6IG5ldyBBREJhbm5lcihhZFVpZCwgbG9jYXRpb24sIHdpZHRoLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmmL7npLrmqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0Jhbm5lcigpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Jhbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWluaUdhbWVTREs6IGJhbm5lciBpcyBudWxsLCB5b3UgbXVzdCBjYWxsIGxvYWRCYW5uZXIoLi4uKSBmaXJzdCEnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5qiq5bmF5bm/5ZGKXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVCYW5uZXIoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uaGlkZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5by55Ye65o+S5bGP5bm/5ZGKXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg2lkXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dJbnRlcnN0aXRpYWwoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faW50ZXJzdGl0aWFsICYmIHRoaXMuX2ludGVyc3RpdGlhbC5hZHVpZCA9PT0gYWRVaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IG5ldyBBREludGVyc3RpdGlhbChhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwuc2hvdygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliqDovb3ljp/nlJ/mqKHmnb/lub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93Q3VzdG9t5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB5pys5Ye95pWw77yM5Lya6LCD55So5peg5pWI77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklEXHJcbiAgICAgICAgICogQHBhcmFtIGxvY2F0aW9uIOS9jee9ruacieS4pOenjeaDheWGte+8mjHjgIHlj6/ku6XkvKDlhaXmnprkuL7lgLzvvIzpu5jorqTkuIrmlrk7IDLjgIHlj6/ku6Xoh6rlrprkuYnkvY3nva7kvKDlhaVJUG9zaXRpb27vvIzms6jmhI9JUG9zaXRpb27kuK3nmoR0b3DlkoxsZWZ06Lef5bmz5Y+w55qEdG9wLGxlZnTmmK/kuIDoh7TvvIjmsqHmnInkuZjku6Xorr7lpIflg4/ntKDmr5RyYXRpb++8ie+8jOmcgOimgeW8gOWPkeiAheiHquW3seiwg+ivleS9jee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBzY2FsZSDnvKnmlL7mr5TkvovvvIzpu5jorqTmmK8x77yM5Y2z5LiN57yp5pS+44CC6L+Z5Liq57yp5pS+5bm25LiN5piv6Ieq5bex5aGr77yM6ICM5piv5qC55o2u5b6u5L+hTVDlkI7lj7DkvaDphY3nva7nmoTljp/nlJ/mqKHmnb/lub/lkYrnmoTnvKnmlL7mr5TkvovloavvvIznm67liY3mnIkxMDAl77yMOTAl77yMODAl5LiJ56eN77yM5LiA6Iis5oOF5Ya15LiN55So5L+u5pS544CC6Iul5pyJ5ZCO5Y+w5L+u5pS577yM6K6w5b6X5Lyg5YWl5YC877yM5L6L5aaCOTAl5bCx5Lyg5YWlMC4544CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRDdXN0b20oYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNjYWxlOiBudW1iZXIgPSAxKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9jdXN0b20gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke2FkVWlkfSBoYXMgYmVlbiBsb2FkZWQuYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdID0gbmV3IEFEQ3VzdG9tKGFkVWlkLCBsb2NhdGlvbi50b3AsIGxvY2F0aW9uLmxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYrnmoTllK/kuIDmoIfor4bnrKbjgILkvb/nlKjmraTmoIfor4bnrKbmnaXmn6Xmib7lkozmmL7npLrnibnlrprnmoToh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiDmraTmlrnms5XlsJ3or5XmoLnmja7mj5DkvpvnmoRhZFVpZOaYvuekuuS4gOS4quiHquWumuS5ieW5v+WRiuOAguWmguaenOe7meWumueahGFkVWlk5a+55bqU55qE6Ieq5a6a5LmJ5bm/5ZGK5bey5Yqg6L2977yMXHJcbiAgICAgICAgICog5YiZ6LCD55So6K+l5bm/5ZGK55qE5pi+56S65pa55rOV44CC5aaC5p6c5bm/5ZGK5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNob3dDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IHNob3chYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmakOiXj+aMh+WumueahOiHquWumuS5ieW5v+WRiuWNleWFg1xyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleeUqOS6jumakOiXj+mAmui/h+W5v+WRiuWNleWFg+agh+ivhuespu+8iGFkVWlk77yJ5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c5oyH5a6a55qE5bm/5ZGK5Y2V5YWD5bey5Yqg6L295bm25pi+56S677yMXHJcbiAgICAgICAgICog5YiZ5bCG5YW26ZqQ6JeP77yb5aaC5p6c5bm/5ZGK5Y2V5YWD5pyq5Yqg6L2977yM5YiZ5Zyo5o6n5Yi25Y+w6L6T5Ye66K2m5ZGK5L+h5oGv44CCXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiuWNleWFg+agh+ivhuespu+8jOeUqOS6juWUr+S4gOagh+ivhuS4gOS4quiHquWumuS5ieW5v+WRiuWNleWFg+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBoaWRlQ3VzdG9tKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXNbYWRVaWRdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zW2FkVWlkXS5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFlvdSBoYXZlIG5vdCBsb2FkICR7YWRVaWR9IG9mIEN1c3RvbSBBRCwgY2FuIG5vdCBoaWRlIWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnlLHkuo7lvq7kv6Hlkozmipbpn7Pop4bpopHlub/lkYrmnLrliLbkuI3lkIzvvIzlvq7kv6Hlj6/ku6XnnIvnmoTop4bpopHlub/lkYrkuKrmlbDlj6rmnIkw5ZKMMeS4qu+8jOaKlumfs+W5s+WPsOWImeWPr+S7peecizB+bWF4VmlkZW9Db3VudFxyXG4gICAgICAgICAqIEBwYXJhbSBhZFVpZCDlub/lkYpJROOAguWmguaenOS4juS4iuS4gOasoVVJROS4jeWQjO+8jOWImeWGhemDqOS8mumHjeaWsOWIm+W7uuWunuS+i+OAguW8gOWPkeiAheWujOWFqOS4jeeUqOWFs+W/g+i/meS4que7huiKguOAglxyXG4gICAgICAgICAqIEBwYXJhbSBvblZpZGVvUmVzdWx0IOS4pOS4quWPguaVsO+8muesrOS4gOS4qnJlc+aYr0VBZFZpZGVvUmVzdWx05a6a5LmJ77yM56ys5LqMY291bnTmmK/nlKjmiLfnnIvkuoblpJrlsJHkuKrop4bpopHlub/lkYrjgIIgXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBvblZpZGVvUmVzdWx055qE5oul5pyJ6ICFXHJcbiAgICAgICAgICogQHBhcmFtIG1heFZpZGVvQ291bnQg5pyA5aSn6KeG6aKR5Liq5pWw44CC6buY6K6k5pivM++8jOS7heWvueaKlumfs+W5s+WPsOeUn+aViOOAguW+ruS/oeW5s+WPsOeci+WujOinhumikWNvdW5055qE57uT5p6c5rC46L+c5pivMeaIljBcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd1ZpZGVvKGFkVWlkOiBzdHJpbmcsIG9uVmlkZW9SZXN1bHQ6IChyZXM6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLCB0YXJnZXQ/OiBhbnksIG1heFZpZGVvQ291bnQ6IG51bWJlciA9IDMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZGVvICYmIHRoaXMuX3ZpZGVvLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbmV3IEFEVmlkZW8oYWRVaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8uc2hvdyhvblZpZGVvUmVzdWx0LCB0YXJnZXQsIG1heFZpZGVvQ291bnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplIDmr4HlhoXpg6jmiYDmnInlrp7kvovvvIzmuIXnqbrlhoXlrZhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgZGVzdHJveUFsbCgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgaW4gdGhpcy5fY3VzdG9tcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbdmFsXT8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tcyA9IHt9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVHYW1lQ2x1Ykljb24ge1xyXG4gICAgICAgIC8qKiDnu7/oibLlm77moIcgKi9cclxuICAgICAgICBHUkVFTiA9ICdncmVlbicsXHJcblxyXG4gICAgICAgIC8qKiDnuqLoibLlm77moIcgKi9cclxuICAgICAgICBXSElURSA9ICd3aGl0ZScsXHJcblxyXG4gICAgICAgIC8qKiDmnInpu5HoibLlnIbop5Log4zmma/nmoTnmb3oibLlm77moIcgKi9cclxuICAgICAgICBEQVJLID0gJ2RhcmsnLFxyXG5cclxuICAgICAgICAvKiog5pyJ55m96Imy5ZyG6KeS6IOM5pmv55qE57u/6Imy5Zu+5qCHICovXHJcbiAgICAgICAgTElHSFQgPSAnbGlnaHQnXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIEdhbWVDbHViIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEdhbWVDbHViO1xyXG5cclxuICAgICAgICBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IEdhbWVDbHViIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgR2FtZUNsdWIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIF9jbHViOiBhbnk7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5Yib5bu65ri45oiP5ZyI5oyJ6ZKuXHJcbiAgICAgICAgICogQHBhcmFtIGljb24gXHJcbiAgICAgICAgICogQHBhcmFtIHBvc2l0aW9uIFxyXG4gICAgICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICAgICAqIEBwYXJhbSBvcGVuTGluayBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjcmVhdGUoaWNvbjogRUdhbWVDbHViSWNvbiA9IEVHYW1lQ2x1Ykljb24uR1JFRU4sIHBvc2l0aW9uOiBJUG9zaXRpb24gPSB7IHRvcDogMCwgbGVmdDogMCB9LCBzaXplOiBJU2l6ZSA9IHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwIH0sIG9wZW5MaW5rPzogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jbHViID0gd3guY3JlYXRlR2FtZUNsdWJCdXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zaXRpb24ubGVmdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBwb3NpdGlvbi50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVubGluazogb3BlbkxpbmtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzaG93KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbHViPy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMr+WKqOexu+Wei1xyXG4gICAgICovXHJcbiAgICBleHBvcnQgZW51bSBFVmlyYnJhdGVUeXBlIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDnn63mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBTSE9SVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZW/5oyv5YqoXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgTE9OR1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAqIOaKlumfs+S+p+i+ueagj+S4k+WxnuaOpeWPo1xyXG4gKi9cclxuICAgIGV4cG9ydCBjbGFzcyBCeXRlZGFuY2VTaWRlYmFyIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDmnKzmuLjmiI/lnKjmipbpn7Pnjq/looPkuIvlkK/liqjnm5HmjqfvvIzpnIDopoHmlL7lnKjlhajlsYDnjq/looPkuK3vvIzkv53or4Hog73nrKzkuIDml7bpl7TlkK/liqjjgILlm6DkuLrlj6/og73nm5HlkKzmipbpn7PlpLHotKXvvIjmipbpn7PlsI/muLjmiI/lrpjmlrnnmoTor7TmmI7vvInvvIFcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBsaXN0ZW5Gcm9tU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQub25TaG93KChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ29uU2hvdyBsYXVuY2ggcmVzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xhdW5jaCBmcm9tIHNpZGViYXInKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ05PVCBsYXVuY2ggZnJvbSBkb3V5aW4gc2lkZWJhciEnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gdHQuZ2V0TGF1bmNoT3B0aW9uc1N5bmMoKTtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zY2VuZSA9PT0gJzAyMTAzNicpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOajgOa1i+aKlumfs+S+p+i+ueagj+aYr+WQpuWtmOWcqFxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGNoZWNrU2lkZUJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuY2hlY2tTY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNrIHNjZW5lIHN1Y2Nlc3M6IFwiLCByZXMuaXNFeGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCA8Ym9vbGVhbj5yZXMuaXNFeGlzdCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgZmFpbDpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDot7PovazliLDmipbpn7PkvqfovrnmoI9cclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5YyF5ZCr5LiA5LiqYm9vbGVhbuWPguaVsOeahOWHveaVsFxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQg5LiK6L+w5Ye95pWw55qE5oul5pyJ6ICF77yM5aaC5p6c5piv57G755qE5oiQ5ZGY5Ye95pWw77yM6ZyA6KaB5Lyg5YWldGhpc+OAguaZrumAmuaIluWMv+WQjeWHveaVsOW/veeVpeWNs+WPr+OAglxyXG4gICAgICAgICAqIEByZXR1cm5zIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBuYXZpZ2F0ZVRvU2lkZWJhcihvblJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHZvaWQsIHRhcmdldD86IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90IGRvdXlpbiBwbGF0Zm9ybSFcIik7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvU2NlbmUoe1xyXG4gICAgICAgICAgICAgICAgc2NlbmU6IFwic2lkZWJhclwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmF2aWdhdGUgZmFpbGVkIHJlYXNvbjpcIiwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW5s+WPsOW4uOeUqEFQSeWQiOmbhlxyXG4gICAgICovXHJcbiAgICBleHBvcnQgY2xhc3MgQVBJIHtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Db2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9sb2dpbkFub255bW91c0NvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX3VzZXJJbmZvOiBhbnkgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF90YTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDUwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5b6u5L+h5bCP5ri45oiP77ya6Lez6L2s5Yiw5Y+m5aSW5LiA5qy+5bCP5ri45oiPXHJcbiAgICAgICAgICog5oqW6Z+z5bCP5ri45oiP77ya6Lez6L2s5Yiw5oyH5a6a55qE6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldElkIOW+ruS/oeWwj+a4uOaIj2FwcGlk5oiW6ICF6KeG6aKR55WM6Z2iXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG8odGFyZ2V0SWQ6IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3gubmF2aWdhdGVUb01pbmlQcm9ncmFtKHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFEYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbzogJ2JhcidcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVudlZlcnNpb246ICdkZXZlbG9wJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5uYXZpZ2F0ZVRvVmlkZW9WaWV3KHtcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImJ5dGVkYW5jZSBuYXZpZ2F0ZVRvVmlkZW9WaWV3IGZhaWxcIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsI/muLjmiI/lubPlj7DnmbvlvZXlip/og73jgILlvq7kv6Hov5Tlm55jb2Rl77yM5oqW6Z+z6L+U5ZueY29kZeWSjGFub255bW91c0NvZGXjgILnlKjkuo7nmbvlvZXnmoTlh63or4HvvIzpnIDopoHmiorov5nkuKpjb2Rl5Lyg5Zue5L2g55qE5pyN5Yqh5Zmo56iL5bqP5Lit5Y676LCD55SoY29kZTJTZXNzaW9uXHJcbiAgICAgICAgICogQHBhcmFtIGNhbGxiYWNrIChjb2RlLCBhbm9ueW1vdXNDb2RlKSDnrKzkuIDkuKrlj4LmlbDkuLpjb2Rl77yM5b6u5L+h5ZKM5oqW6Z+z6YO95pSv5oyB77yb56ys5LqM5Liq5Y+C5pWw5Li65Yy/5ZCN6K6+5aSHSUTvvIzku4Xmipbpn7PmlK/mjIHvvIzlpLHotKXpg73ov5Tlm55udWxsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxvZ2luKGNhbGxiYWNrOiAoY29kZTogc3RyaW5nLCBhbm9ueW1vdXNDb2RlOiBzdHJpbmcpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgbGV0IGxvZ2luUGxhdGZvcm0gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogeyBjb2RlOiBhbnk7IGVyck1zZzogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IHJlcy5jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGZhaWwnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB0dC5sb2dpbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gJHtyZXMuY29kZX0gJHtyZXMuYW5vbnltb3VzQ29kZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSByZXMuYW5vbnltb3VzQ29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbiBlcnJvcjonLCByZXMuZXJyTXNnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbG9naW4gZmFpbGAsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdub3QgbWluaSBnYW1lIHBsYXRmb3JtLCBsb2dpbiBjb2RlcyBhcmUgYWxsIG51bGwnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBpZiAoIUFQSS5fbG9naW5Db2RlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHd4LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlIGN1cnJlbnQgY29kZTpgLCBBUEkuX2xvZ2luQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmNoZWNrU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBpcyB2YWxpZCwgdXNlciBjdXJyZW50IGNvZGU6ICR7QVBJLl9sb2dpbkNvZGV9LCAke0FQSS5fbG9naW5Bbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/LihBUEkuX2xvZ2luQ29kZSwgQVBJLl9sb2dpbkFub255bW91c0NvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNlc3Npb24gZXhwaXJlZGApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5QbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIG51bGwnKTtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICog5bCP5ri45oiP5bmz5Y+w55m75b2V5Yqf6IO944CC5b6u5L+h6L+U5ZueY29kZe+8jOaKlumfs+i/lOWbnmNvZGXlkoxhbm9ueW1vdXNDb2Rl44CC55So5LqO55m75b2V55qE5Yet6K+B77yM6ZyA6KaB5oqK6L+Z5LiqY29kZeS8oOWbnuS9oOeahOacjeWKoeWZqOeoi+W6j+S4reWOu+iwg+eUqGNvZGUyU2Vzc2lvblxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICovXHJcbiAgICAgICAgc3RhdGljIGdldFVzZXJJbmZvKGNhbGxiYWNrOiAodXNlckluZm86IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgdHQuZ2V0VXNlckluZm8oe1xyXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl91c2VySW5mbyA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhBUEkuX3VzZXJJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOiwg+eUqOW+ruS/oeS6keWHveaVsOOAgueUseS6juWPguaVsOmcgOimgeiHquWumuS5ie+8jOaJgOS7peS4umFuee+8jOmcgOimgeiHquihjOino+mHiuOAguWHveaVsOWPquWujOaIkOmAmumBk+WSjOWkhOeQhuS4gOWcuueahOS9nOeUqFxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayDov5Tlm57kupHlh73mlbDosIPnlKjnu5PmnpzjgILpnIDopoHmo4Dmn6Xov5Tlm57lj4LmlbDmmK/lkKbkuLrnqbrvvIzlpLHotKXnmoTml7blgJnkuLrnqbpcclxuICAgICAgICAgKiBAcGFyYW0gbmFtZSDkupHlh73mlbDnmoTlkI3lrZdcclxuICAgICAgICAgKiBAcGFyYW0gZGF0YSDkupHlh73mlbDnmoTlhoXlrrlcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24oY2FsbGJhY2s6IChyZXM6IGFueSkgPT4gdm9pZCwgbmFtZTogc3RyaW5nLCBkYXRhOiB7fSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOb3Qgd2VjaGF0IHBsYXRmb3JtLCBub3Qgc3VwcG9ydCBjYWxsV2VjaGF0Q2xvdWRGdW5jdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5faGFzSW5pdFdlY2hhdENsb3VkRnVuY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IGNhbGxiYWNrPy4ocmVzKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlY2hhdCBjbG91ZCBmdW5jdGlvbiBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWtmOWCqOeUqOaIt+S/oeaBr++8jOaVsOaNrumHj+S4jeiDveWkp+OAguWPr+S7peiAg+iZkeeUqOS6juWIhuaVsOaOkuihjOamnOOAgueUqOaIt+S5i+mXtOWPr+WFseS6q+aOkuihjOaVsOaNruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBrZXkgXHJcbiAgICAgICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzZXRVc2VyQ2xvdWRTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LnNldFVzZXJDbG91ZFN0b3JhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIEtWRGF0YUxpc3Q6IFt7IGtleToga2V5LCB2YWx1ZTogdmFsdWUsIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgKiDmlbDmlbDlubPlj7DliJ3lp4vljJbku6Xlj4rnmbvlvZVcclxuICAgICAgICAqL1xyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X0luaXQoKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuW8gOWni+aOpeWFpeaVsOaVsOW5s+WPsFwiKTtcclxuICAgICAgICAgICAgICAgIC8vZ2V0V2VjaGF0R2FtZVZlcnNpb25cclxuICAgICAgICAgICAgICAgIGxldCBhcHBJZCA9IFwiMTIxNTkxMzc4ZmMxNDIzODkzZGViMTIwNDE0MTNlYjNcIjtcclxuICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gY2MuZnguR2FtZVRvb2wuZ2V0V2VjaGF0R2FtZVZlcnNpb24oKTtcclxuICAgICAgICAgICAgICAgIGlmICh0ZXN0ID09IFwi5q2j5byP54mIXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcHBJZCA9IFwiODdkMTg5NThjZWExNDVmMjlkMzI2NTQ3MGVjZDM0ODZcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBjb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYXBwSWQ6IFwiNzNlMWVjNjU0ZjE1YjQ3YTFhNzM1NGZiYWJlYzA1YWRcIiwgLy8g6aG555uuIEFQUCBJRFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkOiBhcHBJZCxcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVcmw6IFwiaHR0cHM6Ly9kYXRhLm5pa2E0ZnVuLmNvbVwiLCAvLyDkuIrmiqXlnLDlnYBcclxuICAgICAgICAgICAgICAgICAgICBhdXRvVHJhY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwU2hvdzogdHJ1ZSwgLy8g6Ieq5Yqo6YeH6ZuGIHRhX21nX3Nob3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSGlkZTogdHJ1ZSAvLyDoh6rliqjph4fpm4YgdGFfbWdfaGlkZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvLyDliJvlu7ogVEEg5a6e5L6LXHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhID0gbmV3IFRoaW5raW5nQW5hbHl0aWNzQVBJKGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAvLyDliJ3lp4vljJZcclxuICAgICAgICAgICAgICAgIEFQSS5fdGEuaW5pdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X0xvZ2luKCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgQVBJLl90YS5sb2dpbihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgICAgICAgQVBJLnNodXNodV9UcmFjayhcImxvZ2luXCIsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBBUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdGF0aWMgc2h1c2h1X3VzZXJTZXQodGltZSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLorr7nva7nlKjmiLfms6jlhozlsZ7mgKdcIik7XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnVzZXJTZXQoeyByZWdpc3Rlcl90aW1lOiB0aW1lIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICog5pWw5pWw5bmz5Y+w6K6+572u5Yqo5oCB5YWs5YWx5bGe5oCnXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgc3RhdGljIHNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3ggIT09ICd1bmRlZmluZWQnICYmIHd4ICE9PSBudWxsICYmIEFQSS5fdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcnNpb25EYXRhID0gXCIxLjNcIjtcclxuICAgICAgICAgICAgICAgIC8vIEFQSS5fdGEudXNlclNldE9uY2UoeyByZWdpc3Rlcl90aW1lOnRpbWV9KTtcclxuICAgICAgICAgICAgICAgIHZhciBzdXBlclByb3BlcnRpZXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbDogKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpLCAvL+W9k+WJjeWFs+WNoeetiee6pyAgbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9oZWFsdGg6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCwgICAgICAgIC8v5b2T5YmN5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wX2NvaW46IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLC8v5b2T5YmN6YeR5biBXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogdmVyc2lvbkRhdGFcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBBUEkuX3RhLnNldFN1cGVyUHJvcGVydGllcyhzdXBlclByb3BlcnRpZXMpOy8v6K6+572u5YWs5YWx5LqL5Lu25bGe5oCnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXRXZWNoYXRHYW1lVmVyc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjb3VudEluZm8ubWluaVByb2dyYW0udmVyc2lvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAqIOaVsOaVsOW5s+WPsOWFt+S9k+Wfi+eCuVxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIHN0YXRpYyBzaHVzaHVfVHJhY2sobmFtZSwgZGF0YSwgY2FsbGJhY2s/OiAoc3VjY2VzczogYm9vbGVhbiwgZXJyb3I/OiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmIChBUEkuX3RhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YGH6K6+IHRyYWNrIOaWueazlei/lOWbnuS4gOS4qiBQcm9taXNlXHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl90YS50cmFjayhcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgLy8g5LqL5Lu25ZCN56ewXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgLy8g5LqL5Lu25bGe5oCnIFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js b/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js
index 5d4715e..2fb49e3 100644
--- a/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js
+++ b/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js
@@ -293,4 +293,4 @@ cc._RF.pop();
});
}
})();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUFpUEM7UUEvT0csTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBc05oQyxDQUFDO3FCQWpQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsY0FBWSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO2FBQ0k7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztR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SUFDTiwyQ0FBb0IsR0FBcEI7SUFFQSxDQUFDO0lBQ0Q7O01BRUU7SUFDRiw0Q0FBcUIsR0FBckI7SUFFQSxDQUFDO0lBQ0Q7O09BRUc7SUFFSDs7T0FFRztJQUNILHNDQUFlLEdBQWY7UUFDSSwwRUFBMEU7SUFDOUUsQ0FBQzs7SUE1T0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQWlQaEM7SUFBRCxtQkFBQztDQWpQRCxBQWlQQyxDQWpQeUMsRUFBRSxDQUFDLFNBQVMsR0FpUHJEO2tCQWpQb0IsWUFBWTtBQWlQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xuQGNjY2xhc3NcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZGlvTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xuICAgIC8v6IOM5pmv6Z+z5LmQXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0dhbWVCZ20wOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB4aWFvY2h1OiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgaGl0OiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgZG93bjogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGZhbmd4aWFuZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGJ1aWxkOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgd2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgbG9zZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGFubml1X0JpZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGFubml1X2xpdHRsZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHpodWFuMTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHpodWFuMjogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuICAgIG1BdWRpb01hcDoge307XG4gICAgYmdNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIGVmZmVjdE11c2ljVm9sdW1lOiBudW1iZXI7XG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XG4gICAgbUVmZmVjdFN3aXRjaDogbnVtYmVyO1xuICAgIGJyaWNrU291bmQ6IGFueTtcbiAgICByZXdhcmQ6IGJvb2xlYW47XG4gICAgZmluaXNoOiBib29sZWFuO1xuICAgIHJld2FyZENvdW50OiBudW1iZXI7XG4gICAgbU11c2ljS2V5OiBhbnk7XG5cbiAgICBvbkxvYWQoKSB7XG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyID0gQXVkaW9NYW5hZ2VyO1xuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5jdG9yKCk7XG5cbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY3RvcigpIHtcbiAgICAgICAgdGhpcy5tQXVkaW9NYXAgPSB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIOm7mOiupOmfs+mHj+Wkp+Wwj1xuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5iZ011c2ljVm9sdW1lID0gMC4xO1xuICAgICAgICB0aGlzLmVmZmVjdE11c2ljVm9sdW1lID0gMTtcblxuICAgICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IDE7XG4gICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDE7XG4gICAgfVxuICAgIHBsYXkoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcbiAgICAgICAgLy8gaWYgKGlzQmdNdXNpYyAmJiAhdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcblxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAvLyBpZihhdWRpb1NvdXJjZSA9PSB0aGlzLmJyaWNrU291bmQpe1xuICAgICAgICAvLyAgICAgdm9sdW1lID0gMC4xO1xuICAgICAgICAvLyB9IFxuICAgICAgICB2b2x1bWUgPSAxO1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcbiAgICAgICAgaWYgKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpIHtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMC41KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbnRleHQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvU291cmNlLCBsb29wKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3BsYXkgYXVkaW8gZWZmZWN0IGlzQnJvd3NlcjogJyArIGNvbnRleHQuc3JjKTtcblxuICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xuICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgdGhpcy5tTXVzaWNTd2l0Y2gpO1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX0VmZmVjdF9Wb2x1bWUsIHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIGdldCBJbnN0YW5jZSgpXG4gICAgLy8ge1xuICAgIC8vICAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbClcbiAgICAvLyAgICAge1xuICAgIC8vICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgQXVkaW9NYW5hZ2VyKCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICAgIC8vIH1cblxuICAgIHByZWxvYWQoKSB7XG4gICAgICAgIGlmICghKGNjLnN5cy5wbGF0Zm9ybSA9PT0gY2Muc3lzLldFQ0hBVF9HQU1FKSkgeyByZXR1cm47IH1cblxuICAgICAgICB2YXIgbXVzaWNzID0gW1xuICAgICAgICAgICAgdGhpcy5hdWRpb0dhbWVCZ20wLFxuICAgICAgICBdO1xuICAgICAgICBtdXNpY3MuZm9yRWFjaChmdW5jdGlvbiAocGF0aCkge1xuICAgICAgICB9KVxuICAgICAgICBjb25zb2xlLmxvZyhcIumfs+S5kOW8gOWFs1wiLCBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuKTtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgfVxuXG4gICAgZ2V0QXVkaW9NdXNpY1N3aXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfVxuICAgIGdldEF1ZGlvRWZmZWN0U3dpdGNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH1cbiAgICB0cnVuQXVkaW9Tb3VuZChvbikge1xuICAgICAgICB0aGlzLnN3aXRjaE11c2ljKG9uKTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXG4gICAgfVxuICAgIHN3aXRjaE11c2ljKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24gPyAxIDogMCkpIHtcbiAgICAgICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMSAtIHRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uKSB7XG4gICAgICAgICAgICB0aGlzLnBsYXlNdXNpY0dhbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3dpdGNoRWZmZWN0KG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uID8gMSA6IDApKSB7XG4gICAgICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxIC0gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG5cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkhpZGUoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnBhdXNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25TaG93KCkge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVBbGwoKTtcbiAgICB9XG5cbiAgICAvL+aSreaUvumfs+aViFxuICAgIHBsYXlFZmZlY3QobmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzW25hbWVdKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzW25hbWVdLCBmYWxzZSwgY2FsbGJhY2ssIHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyhrZXksIGNhbGxiYWNrLCBsb29wKSB7XG4gICAgICAgIGlmICghY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyB8fCBsb29wID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lKCkge1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTAsIHt9LCB0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICog5YGc5q2i6IOM5pmv6Z+z5LmQ5pKt5pS+XG4gICAgICovXG4gICAgc3RvcE11c2ljKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcEFsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaBouWkjeiiq+aaguWBnOeahOiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHJlc3VtZU11c2ljKCkge1xuICAgICAgICAvLyDosIPnlKggY2MuYXVkaW9FbmdpbmUg55qEIHJlc3VtZU11c2ljIOaWueazleaBouWkjemfs+S5kOaSreaUvlxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVNdXNpYygpO1xuICAgIH1cblxuICAgIC8qXG4gICAgKiDmuLjmiI/lvIDlp4vpn7PmlYhcbiAgICAqXG4gICAgKi9cbiAgICBwbGF5R2FtZVN0YXJ0KCkge1xuXG4gICAgfVxuICAgIC8qXG4gICAgKiDlpLHotKXnmoTmuLjmiI/nu5PmnZ9cbiAgICAqL1xuICAgIHBsYXlHYW1lT3ZlcigpIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKCkge1xuXG4gICAgfVxuICAgIC8qXG4gICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cbiAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0U3VjY2VzcygpIHtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmiqXorabnmoTpn7PmlYhcbiAgICAgKi9cblxuICAgIC8qKlxuICAgICAqIOaMiemSrlxuICAgICAqL1xuICAgIHBsYXlBdWRpb0J1dHRvbigpIHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvQnV0dG9uQ2xpY2ssIGZhbHNlLG51bGwsdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG59O1xuXG4vLyBleHBvcnQgeyBBdWRpb01hbmFnZXIgfTtcbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUFpUEM7UUEvT0csTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBc05oQyxDQUFDO3FCQWpQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsY0FBWSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO2FBQ0k7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztR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SUFDTiwyQ0FBb0IsR0FBcEI7SUFFQSxDQUFDO0lBQ0Q7O01BRUU7SUFDRiw0Q0FBcUIsR0FBckI7SUFFQSxDQUFDO0lBQ0Q7O09BRUc7SUFFSDs7T0FFRztJQUNILHNDQUFlLEdBQWY7UUFDSSwwRUFBMEU7SUFDOUUsQ0FBQzs7SUE1T0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQWlQaEM7SUFBRCxtQkFBQztDQWpQRCxBQWlQQyxDQWpQeUMsRUFBRSxDQUFDLFNBQVMsR0FpUHJEO2tCQWpQb0IsWUFBWTtBQWlQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXVkaW9NYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIC8v6IOM5pmv6Z+z5LmQXHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBoaXQ6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgZG93bjogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYnVpbGQ6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgd2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgYW5uaXVfQmlnOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcclxuICAgIGFubml1X2xpdHRsZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXHJcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxyXG4gICAgemh1YW4yOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xyXG5cclxuICAgIG1BdWRpb01hcDoge307XHJcbiAgICBiZ011c2ljVm9sdW1lOiBudW1iZXI7XHJcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xyXG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XHJcbiAgICBtRWZmZWN0U3dpdGNoOiBudW1iZXI7XHJcbiAgICBicmlja1NvdW5kOiBhbnk7XHJcbiAgICByZXdhcmQ6IGJvb2xlYW47XHJcbiAgICBmaW5pc2g6IGJvb2xlYW47XHJcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xyXG4gICAgbU11c2ljS2V5OiBhbnk7XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgICAgICAgQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlciA9IEF1ZGlvTWFuYWdlcjtcclxuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmV3YXJkQ291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMuY3RvcigpO1xyXG5cclxuICAgICAgICB0aGlzLnByZWxvYWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcclxuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xyXG4gICAgfVxyXG4gICAgcGxheShhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xyXG4gICAgICAgIC8vIGlmIChpc0JnTXVzaWMgJiYgIXRoaXMubU11c2ljU3dpdGNoKSByZXR1cm47XHJcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xyXG5cclxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgIC8vIGlmKGF1ZGlvU291cmNlID09IHRoaXMuYnJpY2tTb3VuZCl7XHJcbiAgICAgICAgLy8gICAgIHZvbHVtZSA9IDAuMTtcclxuICAgICAgICAvLyB9IFxyXG4gICAgICAgIHZvbHVtZSA9IDE7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcclxuICAgICAgICBpZiAoYXVkaW9Tb3VyY2UubmFtZSA9PSBcImxvc2VcIikge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udGV4dCA9IGNjLmF1ZGlvRW5naW5lLnBsYXlFZmZlY3QoYXVkaW9Tb3VyY2UsIGxvb3ApO1xyXG4gICAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXMpO1xyXG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygncGxheSBhdWRpbyBlZmZlY3QgaXNCcm93c2VyOiAnICsgY29udGV4dC5zcmMpO1xyXG5cclxuICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xyXG4gICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKSB7XHJcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcclxuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX0VmZmVjdF9Wb2x1bWUsIHRoaXMubUVmZmVjdFN3aXRjaCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICAvLyB7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAvLyAgICAge1xyXG4gICAgLy8gICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBBdWRpb01hbmFnZXIoKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB2YXIgbXVzaWNzID0gW1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBtdXNpY3MuZm9yRWFjaChmdW5jdGlvbiAocGF0aCkge1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLpn7PkuZDlvIDlhbNcIiwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXVkaW9NdXNpY1N3aXRjaCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tTXVzaWNTd2l0Y2g7XHJcblxyXG4gICAgfVxyXG4gICAgZ2V0QXVkaW9FZmZlY3RTd2l0Y2goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubUVmZmVjdFN3aXRjaDtcclxuICAgIH1cclxuICAgIHRydW5BdWRpb1NvdW5kKG9uKSB7XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hNdXNpYyhvbik7XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXHJcbiAgICB9XHJcbiAgICBzd2l0Y2hNdXNpYyhvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24gPyAxIDogMCkpIHtcclxuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxIC0gdGhpcy5tTXVzaWNTd2l0Y2g7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob24pIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHN3aXRjaEVmZmVjdChvbikge1xyXG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uID8gMSA6IDApKSB7XHJcbiAgICAgICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDEgLSB0aGlzLm1FZmZlY3RTd2l0Y2g7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkhpZGUoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3coKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mkq3mlL7pn7PmlYhcclxuICAgIHBsYXlFZmZlY3QobmFtZSwgY2FsbGJhY2spIHtcclxuICAgICAgICBpZiAoIWNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5lZmZlY3RPcGVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNbbmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpc1tuYW1lXSwgZmFsc2UsIGNhbGxiYWNrLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xyXG4gICAgfVxyXG4gICAgcGxheU11c2ljKGtleSwgY2FsbGJhY2ssIGxvb3ApIHtcclxuICAgICAgICBpZiAoIWNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsb29wID0gdHlwZW9mIGxvb3AgPT0gJ3VuZGVmaW5lZCcgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIHRoaXMubU11c2ljS2V5ID0gdGhpcy5wbGF5KGtleSwgbG9vcCwgY2FsbGJhY2ssIHRydWUpO1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5ri45oiP6IOM5pmv6Z+z5LmQXHJcbiAgICAgKi9cclxuICAgIHBsYXlNdXNpY0dhbWUoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcclxuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTAsIHt9LCB0cnVlKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5YGc5q2i6IOM5pmv6Z+z5LmQ5pKt5pS+XHJcbiAgICAgKi9cclxuICAgIHN0b3BNdXNpYygpIHtcclxuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmgaLlpI3ooqvmmoLlgZznmoTog4zmma/pn7PkuZDmkq3mlL5cclxuICAgICAqL1xyXG4gICAgcmVzdW1lTXVzaWMoKSB7XHJcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cclxuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVNdXNpYygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxyXG4gICAgKlxyXG4gICAgKi9cclxuICAgIHBsYXlHYW1lU3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgLypcclxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXHJcbiAgICAqL1xyXG4gICAgcGxheUdhbWVPdmVyKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8qXHJcbiAgICAgICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cclxuICAgICAgICAqL1xyXG4gICAgcGxheUdhbWVSZXN1bHRGYWlsZWQoKSB7XHJcblxyXG4gICAgfVxyXG4gICAgLypcclxuICAgICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXHJcbiAgICAqL1xyXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog5oql6K2m55qE6Z+z5pWIXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaMiemSrlxyXG4gICAgICovXHJcbiAgICBwbGF5QXVkaW9CdXR0b24oKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvQnV0dG9uQ2xpY2ssIGZhbHNlLG51bGwsdGhpcy5tRWZmZWN0U3dpdGNoKTtcclxuICAgIH1cclxufTtcclxuXHJcbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xyXG4iXX0=
\ No newline at end of file
diff --git a/temp/quick-scripts/dst/assets/Script/setUi.js b/temp/quick-scripts/dst/assets/Script/setUi.js
new file mode 100644
index 0000000..f81b2c5
--- /dev/null
+++ b/temp/quick-scripts/dst/assets/Script/setUi.js
@@ -0,0 +1,154 @@
+
+ (function() {
+ var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
+ var __module = nodeEnv ? module : {exports:{}};
+ var __filename = 'preview-scripts/assets/Script/setUi.js';
+ var __require = nodeEnv ? function (request) {
+ return cc.require(request);
+ } : function (request) {
+ return __quick_compile_project__.require(request, __filename);
+ };
+ function __define (exports, require, module) {
+ if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
+cc._RF.push(module, '19d952d5kVBrLSzAIGeElFK', 'setUi');
+// Script/setUi.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var setUi = /** @class */ (function (_super) {
+ __extends(setUi, _super);
+ function setUi() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 0;
+ _this.music = null;
+ _this.effect = null;
+ _this.vibrate = null;
+ // mapInfo: number[][] = [];
+ _this.musicState = true;
+ _this.effectState = true;
+ _this.vibrateState = true;
+ return _this;
+ // update (dt) {}
+ }
+ setUi.prototype.onLoad = function () {
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ console.log("音乐状态", this.musicState);
+ console.log("音效状态", this.effectState);
+ console.log("震动状态", this.vibrateState);
+ this.syncToggleState();
+ };
+ setUi.prototype.start = function () {
+ };
+ setUi.prototype.init = function (time) {
+ };
+ setUi.prototype.clickMusic = function () {
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.playMusicGame();
+ }
+ };
+ setUi.prototype.setMusicConfig = function () {
+ var audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
+ };
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ };
+ setUi.prototype.clickEffect = function () {
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.clickVibrate = function () {
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.syncToggleState = function () {
+ this.music.getComponent(cc.Toggle).isChecked = !this.musicState;
+ this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;
+ this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;
+ };
+ //关闭ui
+ setUi.prototype.closeUi = function () {
+ this.node.active = false;
+ };
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "music", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "effect", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "vibrate", void 0);
+ setUi = __decorate([
+ ccclass
+ ], setUi);
+ return setUi;
+}(cc.Component));
+exports.default = setUi;
+
+cc._RF.pop();
+ }
+ if (nodeEnv) {
+ __define(__module.exports, __require, __module);
+ }
+ else {
+ __quick_compile_project__.registerModuleFunc(__filename, function () {
+ __define(__module.exports, __require, __module);
+ });
+ }
+ })();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxzZXRVaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUc1RSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUk1QztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXVHQztRQXJHRyxVQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBR3hCLDRCQUE0QjtRQUU1QixnQkFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixpQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixrQkFBWSxHQUFZLElBQUksQ0FBQzs7UUFvRjdCLGlCQUFpQjtJQUNyQixDQUFDO0lBbkZHLHNCQUFNLEdBQU47UUFFSSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxH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LEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxNQUFNO0lBQ04sdUJBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBL0ZEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0NBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNNO0lBWFAsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQXVHekI7SUFBRCxZQUFDO0NBdkdELEFBdUdDLENBdkdrQyxFQUFFLENBQUMsU0FBUyxHQXVHOUM7a0JBdkdvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxuLy8gTGVhcm4gQXR0cmlidXRlOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXG5cblxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcblxuXG5AY2NjbGFzc1xuZXhwb3J0IGRlZmF1bHQgY2xhc3Mgc2V0VWkgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICB0aW1lOiBudW1iZXIgPSAwO1xuXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXG4gICAgbXVzaWM6IGNjLk5vZGUgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXG4gICAgZWZmZWN0OiBjYy5Ob2RlID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxuICAgIHZpYnJhdGU6IGNjLk5vZGUgPSBudWxsO1xuXG5cbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XG5cbiAgICBtdXNpY1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBlZmZlY3RTdGF0ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgdmlicmF0ZVN0YXRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIG9uTG9hZCgpIHtcblxuICAgICAgICB0aGlzLm11c2ljU3RhdGUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuO1xuICAgICAgICB0aGlzLmVmZmVjdFN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW47XG4gICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuO1xuICAgICAgICBjb25zb2xlLmxvZyhcIumfs+S5kOeKtuaAgVwiLCB0aGlzLm11c2ljU3RhdGUpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIumfs+aViOeKtuaAgVwiLCB0aGlzLmVmZmVjdFN0YXRlKTtcbiAgICAgICAgY29uc29sZS5sb2coXCLpnIfliqjnirbmgIFcIiwgdGhpcy52aWJyYXRlU3RhdGUpO1xuICAgICAgICB0aGlzLnN5bmNUb2dnbGVTdGF0ZSgpO1xuICAgIH1cblxuICAgIHN0YXJ0KCkge1xuICAgIH1cblxuICAgIGluaXQodGltZSkge1xuXG4gICAgfVxuXG4gICAgY2xpY2tNdXNpYygpIHtcbiAgICAgICAgaWYgKHRoaXMubXVzaWNTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubXVzaWNPcGVuID0gdGhpcy5tdXNpY1N0YXRlO1xuXG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tdXNpY1N0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSB0aGlzLm11c2ljU3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlNdXNpY0dhbWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE11c2ljQ29uZmlnKCkge1xuICAgICAgICBsZXQgYXVkaW9JbmZvID0ge1xuICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbiwgICAgICAgICAgICAgLy/pn7PkuZBcbiAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiwgICAgICAgICAgICAvL+mfs+aViFxuICAgICAgICAgICAgXCJ2aWJyYXRlT3BlblwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4sICAgICAgICAgICAvL+mch+WKqFxuICAgICAgICB9XG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLCBhdWRpb0luZm8pO1xuICAgIH1cblxuICAgIGNsaWNrRWZmZWN0KCkge1xuICAgICAgICBpZiAodGhpcy5lZmZlY3RTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4gPSB0aGlzLmVmZmVjdFN0YXRlO1xuICAgICAgICAgICAgdGhpcy5zZXRNdXNpY0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZmZlY3RTdGF0ZSA9IHRydWU7XG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IHRoaXMuZWZmZWN0U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrVmlicmF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmlicmF0ZVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnZpYnJhdGVTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnZpYnJhdGVPcGVuID0gdGhpcy52aWJyYXRlU3RhdGU7XG4gICAgICAgICAgICB0aGlzLnNldE11c2ljQ29uZmlnKCk7XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZVN0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiA9IHRoaXMudmlicmF0ZVN0YXRlO1xuICAgICAgICAgICAgdGhpcy5zZXRNdXNpY0NvbmZpZygpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgc3luY1RvZ2dsZVN0YXRlKCkge1xuICAgICAgICB0aGlzLm11c2ljLmdldENvbXBvbmVudChjYy5Ub2dnbGUpLmlzQ2hlY2tlZCA9ICF0aGlzLm11c2ljU3RhdGU7XG4gICAgICAgIHRoaXMuZWZmZWN0LmdldENvbXBvbmVudChjYy5Ub2dnbGUpLmlzQ2hlY2tlZCA9ICF0aGlzLmVmZmVjdFN0YXRlO1xuICAgICAgICB0aGlzLnZpYnJhdGUuZ2V0Q29tcG9uZW50KGNjLlRvZ2dsZSkuaXNDaGVja2VkID0gIXRoaXMudmlicmF0ZVN0YXRlO1xuICAgIH1cblxuICAgIC8v5YWz6ZetdWlcbiAgICBjbG9zZVVpKCkge1xuICAgICAgICB0aGlzLm5vZGUuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIChkdCkge31cbn1cbiJdfQ==
\ No newline at end of file
diff --git a/temp/quick-scripts/src/__qc_index__.js b/temp/quick-scripts/src/__qc_index__.js
index d4b62d0..4615d0d 100644
--- a/temp/quick-scripts/src/__qc_index__.js
+++ b/temp/quick-scripts/src/__qc_index__.js
@@ -54,6 +54,7 @@ require('./assets/Script/prop/Freeze');
require('./assets/Script/prop/Key');
require('./assets/Script/prop/Lock');
require('./assets/Script/prop/Star');
+require('./assets/Script/setUi');
require('./assets/animation/NewScript');
require('./assets/effect/融化');
require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event');
diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js.map b/temp/quick-scripts/src/assets/Script/GameManager.js.map
index 14edc38..77874d8 100644
--- a/temp/quick-scripts/src/assets/Script/GameManager.js.map
+++ b/temp/quick-scripts/src/assets/Script/GameManager.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\GameManager.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 { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance: GameManager = null;\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 Wall_Prefab: Array = [];\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1: boolean = false;\r\n load2: boolean = false;\r\n load3: boolean = false;\r\n load4: boolean = false;\r\n load5: boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n\r\n window.initMgr();\r\n this.timeNumber = 3;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n console.log(\"音乐开关\", cc.fx.GameConfig.GM_INFO.musicOpen);\r\n cc.fx.AudioManager._instance.playMusicGame();\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 = false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n\r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.log('动态加载 block 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n console.log('方块加载成功,共加载了', this.Block_Array.length, '个方块');\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.log('动态加载 wall 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n console.log('墙加载成功,共加载了', this.Wall_Prefab.length, '个墙');\r\n this.setWallPrefabSort();\r\n });\r\n\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide() {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow() {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n\r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0, 3));\r\n const indexB = order.indexOf(b.name.substr(0, 3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort() {\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start() {\r\n\r\n }\r\n\r\n startGame() {\r\n console.log(\"进入场景之前_____________\", cc.fx.GameConfig.GM_INFO.first);\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n\r\n returnHome() {\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, { opacity: 100 })\r\n .call(() => {\r\n\r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5, { opacity: 255 })\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n\r\n }\r\n\r\n\r\n readUserData(retryCount = 0) {\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if (levelInfo == undefined || levelInfo == \"\" || levelInfo == null) {\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else {\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data) => {\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else {\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig() {\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if (audioInfo == undefined || audioInfo == \"\" || audioInfo == null) {\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\", audioInfo);\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n\r\n //新用户,有本地缓存读取配置\r\n newReadData() {\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if (openid == null || openid == \"\" || openid == undefined) {\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if (res.result.code == 404 && res.result.message == \"未找到用户数据\") {\r\n }\r\n else if (res.result.code == 200) {\r\n if (res.result.data) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\", cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else {\r\n if (openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n\r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) => {\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if (data.result.code == 404 && data.result.message == \"未找到关卡数据\") {\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if (levelInfo.level) {\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\", temp);\r\n if ((data.result.timestamp - levelInfo.timestamp) < 10000) {\r\n if (levelInfo.level) {\r\n console.log(\"以游戏前端等级为准\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else {\r\n console.log(\"以服务器等级为准\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data;\r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) => {\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if (data.result.code == 404 && data.result.message == \"未找到金币数据\") {\r\n if (coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\", cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\", temp);\r\n if ((data.result.timestamp - coinInfo.timestamp) < 10000) {\r\n console.log(\"以前端金幣为准:\", coinInfo);\r\n if (coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else {\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n }\r\n console.log(\"改变后金币:\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else {\r\n console.log(\"以服务器金幣为准:\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n }\r\n this.load3 = true;\r\n }\r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) => {\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if (data.result.code == 404 && data.result.message == \"未找到道具数据\") {\r\n console.log(\"没有道具信息,从用户接口拿到数据\", propInfo);\r\n if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) {\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\", propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n else {\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n }\r\n\r\n\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if ((data.result.timestamp - propInfo.timestamp) < 10000) {\r\n console.log(\"以前端道具为主:\", propInfo);\r\n if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) {\r\n console.log(\"111111道具数据异常\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"333333上传道具信息:\", propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n else {\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\", propInfoNew, data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n }\r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount: number) {\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if (res.result.code == 404 && res.result.message == \"未找到用户数据\") {\r\n if (res.result.openid) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = { \"level\": 0, \"timestamp\": timestamp };\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n let coinInfo = { \"coin\": 0, \"timestamp\": timestamp };\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\": 0,\r\n \"hammerAmount\": 0,\r\n \"magicAmount\": 0,\r\n \"timestamp\": timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data) => {\r\n if (data.result.code == 200) {\r\n console.log(\"上传用户信息成功\", data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if (res.result.code == 200) {\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin, (data) => {\r\n\r\n });\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n if (data.result.code == 200) {\r\n console.log(\"上传道具信息成功\", data);\r\n }\r\n else {\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if (res.result.code == 200) {\r\n if (res.result.data) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\", cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到金币数据\") {\r\n\r\n let coinInfo = { \"coin\": 0, \"timestamp\": timestamp };\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = { \"coin\": cc.fx.GameConfig.GM_INFO.coin, \"timestamp\": timestamp };\r\n console.log(\"存储金币信息:\", cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到关卡数据\") {\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = { \"level\": 0, \"timestamp\": timestamp };\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n console.log(\"拿到的数据\", data);\r\n this.load4 = true;\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n console.log(\"有等级信息,从关卡接口拿到数据\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data;\r\n let levelInfo = { \"level\": cc.fx.GameConfig.GM_INFO.level, \"timestamp\": timestamp };\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到道具数据\") {\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\": 0,\r\n \"hammerAmount\": 0,\r\n \"magicAmount\": 0,\r\n \"timestamp\": timestamp,\r\n }\r\n console.log(\"上传道具信息:\", propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n console.log(\"有道具信息,从道具接口拿到数据\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp,\r\n }\r\n console.log(\"上传道具信息:\", propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n\r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData() {\r\n cc.fx.GameConfig.GameTool((data) => {\r\n console.log(\"上传\", data);\r\n })\r\n }\r\n\r\n startTimeCutDown() {\r\n this.scheduleCallback = function () {\r\n if (this.timeNumber <= 0) {\r\n this.stopTimeCutDown();\r\n }\r\n else {\r\n this.timeNumber -= 1;\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 update(dt) {\r\n if (this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0) {\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Init();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\GameManager.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 { MiniGameManager } from \"./Sdk/MiniGameManager\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance: GameManager = null;\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 Wall_Prefab: Array = [];\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1: boolean = false;\r\n load2: boolean = false;\r\n load3: boolean = false;\r\n load4: boolean = false;\r\n load5: boolean = false;\r\n scheduleCallback: any;\r\n timeNumber: number;\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n\r\n window.initMgr();\r\n this.timeNumber = 1;\r\n this.startTimeCutDown();\r\n cc.fx.GameConfig.init(true);\r\n cc.fx.GameConfig.GM_INFO.gameState = false;\r\n this.readMusicConfig();\r\n\r\n\r\n this.load1 = this.load2 = this.load3 = this.load4 = this.load5 = false;\r\n setTimeout(() => {\r\n this.readUserData();\r\n }, 200);\r\n\r\n\r\n if (GameManager._instance == null) {\r\n GameManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n const path = 'prefab/block';\r\n const path2 = 'prefab/wall';\r\n cc.resources.loadDir(path, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.log('动态加载 block 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Block_Array = assets;\r\n console.log('方块加载成功,共加载了', this.Block_Array.length, '个方块');\r\n this.setSort();\r\n this.load1 = true;\r\n });\r\n\r\n cc.resources.loadDir(path2, cc.Prefab, (err, assets: cc.Prefab[]) => {\r\n if (err) {\r\n console.log('动态加载 wall 失败:', err);\r\n cc.director.loadScene(\"LoadScene\");\r\n return;\r\n }\r\n // 将加载的 Prefab 赋值给 Block_Array\r\n this.Wall_Prefab = assets;\r\n this.load2 = true;\r\n console.log('墙加载成功,共加载了', this.Wall_Prefab.length, '个墙');\r\n this.setWallPrefabSort();\r\n });\r\n\r\n\r\n // 检测微信小游戏切到后台\r\n if (cc.sys.platform === cc.sys.WECHAT_GAME) {\r\n //@ts-ignore\r\n wx.onHide(() => {\r\n this.onHide();\r\n });\r\n // 检测微信小游戏回到前台\r\n //@ts-ignore\r\n wx.onShow(() => {\r\n this.onShow();\r\n });\r\n }\r\n\r\n }\r\n\r\n onHide() {\r\n cc.audioEngine.stopMusic();\r\n cc.game.pause();\r\n }\r\n\r\n onShow() {\r\n cc.audioEngine.resumeMusic();\r\n cc.game.resume();\r\n }\r\n\r\n loadParticleEffects() {\r\n }\r\n\r\n\r\n\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n\r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n const indexA = order.indexOf(a.name.substr(0, 3));\r\n const indexB = order.indexOf(b.name.substr(0, 3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort() {\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start() {\r\n\r\n }\r\n\r\n startGame() {\r\n console.log(\"进入场景之前_____________\", cc.fx.GameConfig.GM_INFO.first);\r\n // 加载 music bundle\r\n cc.assetManager.loadBundle('music', (err, bundle) => {\r\n if (err) {\r\n console.error('加载 music bundle 失败:', err);\r\n // 加载失败时仍尝试进入 HomeScene\r\n cc.director.loadScene(\"HomeScene\");\r\n } else {\r\n console.log('music bundle 加载成功');\r\n // 加载成功后进入 HomeScene\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n }\r\n\r\n returnHome() {\r\n cc.tween(this.node.getChildByName(\"Game\"))\r\n .to(0.5, { opacity: 100 })\r\n .call(() => {\r\n\r\n // 预加载成功后加载场景\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n })\r\n .start();\r\n\r\n cc.tween(this.node.getChildByName(\"mask\"))\r\n .to(0.5, { opacity: 255 })\r\n .start();\r\n\r\n // cc.loader.releaseAll();\r\n // 预加载 HomeScene 场景\r\n\r\n\r\n }\r\n\r\n\r\n readUserData(retryCount = 0) {\r\n //@ts-ignore\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n MiniGameSdk.API.shushu_Init();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n //旧的读取数据设置数据方法,以强联网为主\r\n if (levelInfo == undefined || levelInfo == \"\" || levelInfo == null) {\r\n this.oldReadData(retryCount);\r\n }\r\n //新的读取数据设置方法,以本地为主\r\n else {\r\n this.newReadData();\r\n }\r\n console.log(\"即将读取体力值\");\r\n cc.fx.GameTool.getHealth((data) => {\r\n console.log(\"体力值完成进入游戏\");\r\n this.load5 = true;\r\n });\r\n\r\n }\r\n else {\r\n this.load3 = true;\r\n this.load4 = true;\r\n this.load5 = true;\r\n cc.fx.GameTool.getHealth(null);\r\n }\r\n // 存储用户数据\r\n }\r\n\r\n readMusicConfig() {\r\n let audioInfo = cc.fx.StorageMessage.getStorage(\"music\");\r\n if (audioInfo == undefined || audioInfo == \"\" || audioInfo == null) {\r\n audioInfo = {\r\n \"musicOpen\": true, //音乐\r\n \"effectOpen\": true, //音效\r\n \"vibrateOpen\": true, //震动\r\n }\r\n cc.fx.StorageMessage.setStorage(\"music\", audioInfo);\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen;\r\n cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen;\r\n cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen;\r\n }\r\n }\r\n\r\n //新用户,有本地缓存读取配置\r\n newReadData() {\r\n console.log(\"读取新信息\");\r\n let openid = cc.fx.StorageMessage.getStorage(\"openid\");\r\n if (openid == null || openid == \"\" || openid == undefined) {\r\n console.log(\"没有openid\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if (res.result.code == 404 && res.result.message == \"未找到用户数据\") {\r\n }\r\n else if (res.result.code == 200) {\r\n if (res.result.data) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n cc.fx.StorageMessage.setStorage(\"openid\", cc.fx.GameConfig.GM_INFO.openid);\r\n }\r\n }\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n }\r\n })\r\n }\r\n else {\r\n if (openid)\r\n cc.fx.GameConfig.GM_INFO.openid = openid;\r\n }\r\n\r\n\r\n\r\n //等级信息\r\n cc.fx.GameTool.getUserLevel((data) => {\r\n const timestamp = Date.now();\r\n let levelInfo = cc.fx.StorageMessage.getStorage(\"level\");\r\n if (data.result.code == 404 && data.result.message == \"未找到关卡数据\") {\r\n // console.log(\"没有等级信息,从用户接口拿到数据\");\r\n if (levelInfo.level) {\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n }\r\n this.load4 = true;\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有等级信息,从关卡接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - levelInfo.timestamp;\r\n console.log(\"等级时间差:\", temp);\r\n if ((data.result.timestamp - levelInfo.timestamp) < 10000) {\r\n if (levelInfo.level) {\r\n console.log(\"以游戏前端等级为准\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = levelInfo.level;\r\n // console.log(\"等级为:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n }\r\n\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else {\r\n console.log(\"以服务器等级为准\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data;\r\n levelInfo.level = cc.fx.GameConfig.GM_INFO.level;\r\n levelInfo.timestamp = timestamp;\r\n // console.log(\"1111111存储关卡数据:\",cc.fx.GameConfig.GM_INFO.level);\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n }\r\n this.load4 = true;\r\n }\r\n });\r\n //金币信息\r\n cc.fx.GameTool.getUserCoin((data) => {\r\n const timestamp = Date.now();\r\n let coinInfo = cc.fx.StorageMessage.getStorage(\"coin\");\r\n if (data.result.code == 404 && data.result.message == \"未找到金币数据\") {\r\n if (coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n console.log(\"没有金币信息,从用户接口拿到数据\", cc.fx.GameConfig.GM_INFO.coin);\r\n this.load3 = true;\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储\r\n let temp = data.result.timestamp - coinInfo.timestamp;\r\n console.log(\"金币时间差:\", temp);\r\n if ((data.result.timestamp - coinInfo.timestamp) < 10000) {\r\n console.log(\"以前端金幣为准:\", coinInfo);\r\n if (coinInfo.coin)\r\n cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin;\r\n else {\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"11111111111\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n }\r\n console.log(\"改变后金币:\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n });\r\n }\r\n //服务器端存储时间新于游戏端,以服务器端为主,往前端存储\r\n else {\r\n console.log(\"以服务器金幣为准:\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin;\r\n coinInfo.timestamp = timestamp;\r\n console.log(\"2222222222\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n }\r\n this.load3 = true;\r\n }\r\n });\r\n //道具信息\r\n cc.fx.GameTool.getUserProp((data) => {\r\n const timestamp = Date.now();\r\n let propInfo = cc.fx.StorageMessage.getStorage(\"prop\");\r\n if (data.result.code == 404 && data.result.message == \"未找到道具数据\") {\r\n console.log(\"没有道具信息,从用户接口拿到数据\", propInfo);\r\n if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) {\r\n console.log(\"2222222道具数据异常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmoun = 0;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmoun,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"1111111上传道具信息:\", propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n else {\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n }\r\n\r\n\r\n // cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n // cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n // cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"本地时间戳\",propInfo.timestamp,\"服务器时间戳\",data.result.timestamp);\r\n if ((data.result.timestamp - propInfo.timestamp) < 10000) {\r\n console.log(\"以前端道具为主:\", propInfo);\r\n if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) {\r\n console.log(\"111111道具数据异常\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"333333上传道具信息:\", propInfoNew);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n else {\r\n console.log(\"道具数据正常\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand;\r\n let propInfoNew = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp\r\n }\r\n console.log(\"22222222上传道具信息:\", propInfoNew, data.result);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfoNew);\r\n }\r\n }\r\n });\r\n }\r\n //旧用户,无本地缓存读取配置\r\n oldReadData(retryCount: number) {\r\n console.log(\"读取旧信息\");\r\n const MAX_RETRIES = 15;\r\n const timestamp = Date.now();\r\n // 读取用户数据\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log('读取用户数据成功', res.result)\r\n if (res.result.code == 404 && res.result.message == \"未找到用户数据\") {\r\n if (res.result.openid) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid\r\n }\r\n cc.fx.GameConfig.GM_INFO.first = true;\r\n this.load3 = true;\r\n this.load4 = true;\r\n let levelInfo = { \"level\": 0, \"timestamp\": timestamp };\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n let coinInfo = { \"coin\": 0, \"timestamp\": timestamp };\r\n console.log(\"33333333333\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n let propInfo = {\r\n \"freezeAmount\": 0,\r\n \"hammerAmount\": 0,\r\n \"magicAmount\": 0,\r\n \"timestamp\": timestamp,\r\n }\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n\r\n\r\n cc.fx.GameTool.setUserInfo((data) => {\r\n if (data.result.code == 200) {\r\n console.log(\"上传用户信息成功\", data);\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: 'userData',\r\n data: {\r\n action: 'read'\r\n },\r\n success: res => {\r\n console.log(\"上传后,读取用户信息,为上报注册时间\")\r\n if (res.result.code == 200) {\r\n const time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(time);\r\n }\r\n }\r\n })\r\n }\r\n });\r\n console.log(\"服务器也没有金币信息\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin, (data) => {\r\n\r\n });\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n });\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n if (data.result.code == 200) {\r\n console.log(\"上传道具信息成功\", data);\r\n }\r\n else {\r\n MiniGameSdk.API.showToast(\"网络异常,正在努力加载\");\r\n setTimeout(() => {\r\n this.oldReadData(0);\r\n }, 1000);\r\n }\r\n });\r\n }, 0);\r\n }\r\n else if (res.result.code == 200) {\r\n if (res.result.data) {\r\n cc.fx.GameConfig.GM_INFO.openid = res.result.openid;\r\n cc.fx.GameConfig.GM_INFO.level = res.result.data.level;\r\n cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount;\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount;\r\n cc.fx.GameConfig.GM_INFO.username = res.result.data.username;\r\n cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar;\r\n cc.fx.StorageMessage.setStorage(\"openid\", cc.fx.GameConfig.GM_INFO.openid);\r\n const register_time = res.result.data.register_time;\r\n MiniGameSdk.API.shushu_userSet(register_time);\r\n }\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserCoin((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到金币数据\") {\r\n\r\n let coinInfo = { \"coin\": 0, \"timestamp\": timestamp };\r\n cc.fx.GameConfig.GM_INFO.coin = 0;\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n console.log(\"没有金币信息,从用户接口拿到数据\", cc.fx.GameConfig.GM_INFO.coin);\r\n cc.fx.GameTool.setUserCoin((data) => {\r\n // console.log(\"上传\",data);\r\n this.load3 = true;\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n // console.log(\"有金币信息,从金币接口拿到数据\",data.result.data);\r\n cc.fx.GameConfig.GM_INFO.coin = data.result.data;\r\n let coinInfo = { \"coin\": cc.fx.GameConfig.GM_INFO.coin, \"timestamp\": timestamp };\r\n console.log(\"存储金币信息:\", cc.fx.GameConfig.GM_INFO.coin);\r\n console.log(\"4444444444\");\r\n cc.fx.StorageMessage.setStorage(\"coin\", coinInfo);\r\n this.load3 = true;\r\n }\r\n })\r\n }, 500);\r\n\r\n cc.fx.GameTool.getUserLevel((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到关卡数据\") {\r\n console.log(\"没有等级信息,从用户接口拿到数据\");\r\n let levelInfo = { \"level\": 0, \"timestamp\": timestamp };\r\n // console.log(\"333333存储关卡数据:\",levelInfo);\r\n cc.fx.GameConfig.GM_INFO.level = 0;\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n cc.fx.GameTool.setUserLevel((data) => {\r\n console.log(\"拿到的数据\", data);\r\n this.load4 = true;\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n console.log(\"有等级信息,从关卡接口拿到数据\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.level = data.result.data;\r\n let levelInfo = { \"level\": cc.fx.GameConfig.GM_INFO.level, \"timestamp\": timestamp };\r\n // console.log(\"444444存储关卡信息:\",levelInfo);\r\n cc.fx.StorageMessage.setStorage(\"level\", levelInfo);\r\n this.load4 = true;\r\n }\r\n })\r\n setTimeout(() => {\r\n cc.fx.GameTool.getUserProp((data) => {\r\n if (data.result.code == 404 && data.result.message == \"未找到道具数据\") {\r\n console.log(\"没有道具信息,从用户接口拿到数据\");\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = 0;\r\n let propInfo = {\r\n \"freezeAmount\": 0,\r\n \"hammerAmount\": 0,\r\n \"magicAmount\": 0,\r\n \"timestamp\": timestamp,\r\n }\r\n console.log(\"上传道具信息:\", propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n cc.fx.GameTool.setUserProp(0, 0, (data) => {\r\n });\r\n }\r\n else if (data.result.code == 200) {\r\n console.log(\"有道具信息,从道具接口拿到数据\", data.result.data);\r\n cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0;\r\n cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0;\r\n cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0;\r\n let propInfo = {\r\n \"freezeAmount\": cc.fx.GameConfig.GM_INFO.freezeAmount,\r\n \"hammerAmount\": cc.fx.GameConfig.GM_INFO.hammerAmount,\r\n \"magicAmount\": cc.fx.GameConfig.GM_INFO.magicAmount,\r\n \"timestamp\": timestamp,\r\n }\r\n console.log(\"上传道具信息:\", propInfo);\r\n cc.fx.StorageMessage.setStorage(\"prop\", propInfo);\r\n\r\n }\r\n })\r\n }, 0);\r\n\r\n }\r\n\r\n },\r\n fail: err => {\r\n console.error('读取用户数据失败', err)\r\n if (retryCount < MAX_RETRIES) {\r\n console.error(`读取用户数据失败,第 ${retryCount + 1} 次重试,错误信息:`, err);\r\n // 延迟 2 秒后重试\r\n setTimeout(() => {\r\n this.readUserData(retryCount + 1);\r\n }, 2000);\r\n } else {\r\n console.error('读取用户数据失败,达到最大重试次数,退出游戏', err);\r\n // 退出游戏\r\n cc.game.end();\r\n }\r\n }\r\n })\r\n }\r\n\r\n setUserData() {\r\n cc.fx.GameConfig.GameTool((data) => {\r\n console.log(\"上传\", data);\r\n })\r\n }\r\n\r\n startTimeCutDown() {\r\n this.scheduleCallback = function () {\r\n if (this.timeNumber <= 0) {\r\n this.stopTimeCutDown();\r\n }\r\n else {\r\n this.timeNumber -= 1;\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 update(dt) {\r\n if (this.load1 && this.load2 && this.load3 && this.load4 && this.load5 && this.timeNumber <= 0) {\r\n this.load1 = this.load2 = false;\r\n MiniGameSdk.API.shushu_Login();\r\n this.startGame();\r\n }\r\n }\r\n}\r\n"]}
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/JiaZai.js b/temp/quick-scripts/src/assets/Script/JiaZai.js
index 7a1b8cc..33eaba2 100644
--- a/temp/quick-scripts/src/assets/Script/JiaZai.js
+++ b/temp/quick-scripts/src/assets/Script/JiaZai.js
@@ -46,6 +46,8 @@ var NewClass = /** @class */ (function (_super) {
_this.level = null;
_this.coin = null;
_this.Stamina = null;
+ _this.lastPauseClickTime = 0; // 用于记录上次点击的时间戳
+ _this.setUi = null;
return _this;
// update (dt) {}
}
@@ -257,6 +259,27 @@ var NewClass = /** @class */ (function (_super) {
cc.fx.AudioManager._instance.playEffect("anniu_little", null);
this.node.getChildByName("Pause").active = false;
};
+ NewClass.prototype.openSet = function () {
+ var now = Date.now();
+ if (now - this.lastPauseClickTime < 300) {
+ // 0.3秒内禁止再次点击
+ return;
+ }
+ this.lastPauseClickTime = now;
+ cc.fx.AudioManager._instance.playEffect("anniu_little", null);
+ if (cc.fx.GameConfig.GM_INFO.openid == undefined) {
+ cc.fx.GameConfig.GM_INFO.openid = "";
+ }
+ if (!this.setUi.active) {
+ // 第一次点击,打开并播放动画
+ this.setUi.active = true;
+ this.setUi.getComponent(cc.Animation).play();
+ }
+ else {
+ // 再次点击,关闭节点
+ this.setUi.active = false;
+ }
+ };
NewClass.prototype.closeReward = function () {
this.node.getChildByName("Reward").active = false;
};
@@ -290,6 +313,9 @@ var NewClass = /** @class */ (function (_super) {
__decorate([
property(cc.Node)
], NewClass.prototype, "Stamina", void 0);
+ __decorate([
+ property(cc.Node)
+ ], NewClass.prototype, "setUi", void 0);
NewClass = __decorate([
ccclass
], NewClass);
diff --git a/temp/quick-scripts/src/assets/Script/JiaZai.js.map b/temp/quick-scripts/src/assets/Script/JiaZai.js.map
index 7acb276..66bad52 100644
--- a/temp/quick-scripts/src/assets/Script/JiaZai.js.map
+++ b/temp/quick-scripts/src/assets/Script/JiaZai.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\JiaZai.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 NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\nimport { LQCollideSystem } from \"./lq_collide_system/lq_collide_system\";\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 node1: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node2: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node3: cc.Node = null;\r\n\r\n\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n @property(cc.EditBox)\r\n custom: cc.EditBox = null;\r\n\r\n\r\n\r\n @property(cc.Node)\r\n level: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n coin: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n Stamina: cc.Node = null;\r\n scheduleCallback: any;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n LQCollideSystem.is_enable = true;\r\n // console.log(\"加载关卡配置2\");\r\n // window.initMgr();\r\n GameManager._instance.Block_Color = this.Block_Color;\r\n if (cc.fx.GameConfig.GM_INFO.first) {\r\n console.log(\"————————准备注册事件\", cc.fx.GameConfig.GM_INFO.openid);\r\n if (cc.fx.GameConfig.GM_INFO.openid != \"\") {\r\n console.log(\"————————发送注册事件\");\r\n cc.fx.GameTool.shushu_Track(\"register\");\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.first = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }, 1000);\r\n\r\n }\r\n }\r\n\r\n start() {\r\n // console.log(\"已经进入Home界面\");\r\n // console.log(\"金币\",cc.fx.GameConfig.GM_INFO.coin);\r\n // console.log(\"关卡\",cc.fx.GameConfig.GM_INFO.level+1);\r\n\r\n cc.fx.GameTool.getHealth(null);\r\n // cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n setTimeout(() => {\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, \"big_\", this.level, false);\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n this.setHealthInfo();\r\n }, 0);\r\n if (cc.fx.GameConfig.GM_INFO.gameState) {\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n setTimeout(() => {\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\" && !cc.fx.GameConfig.GM_INFO.first) {\r\n // 动画播放结束后执行的逻辑\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n }, 500);\r\n }\r\n else {\r\n if (!cc.fx.GameConfig.GM_INFO.first)\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n\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 (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\r\n cc.fx.GameTool.setUserHealth(1, (data) => {\r\n cc.fx.GameTool.getHealth(null);\r\n this.setHealthInfo();\r\n })\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.min_Time -= 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\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 setHealthInfo() {\r\n if (cc.fx.GameConfig.GM_INFO.hp == 5) {\r\n this.Stamina.getChildByName(\"man\").active = true;\r\n this.Stamina.getChildByName(\"health\").active = false;\r\n this.Stamina.getChildByName(\"time\").active = false;\r\n }\r\n else {\r\n this.Stamina.getChildByName(\"man\").active = false;\r\n this.Stamina.getChildByName(\"health\").active = true;\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, \"coin_\", this.Stamina.getChildByName(\"health\"), false);\r\n this.Stamina.getChildByName(\"time\").active = true;\r\n if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {\r\n let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = time;\r\n this.startTimeCutDown();\r\n }\r\n }\r\n }\r\n\r\n\r\n startGame() {\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.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\")._touch) {\r\n this.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\").setTouch(false);\r\n // if(this.custom.string != \"\"){\r\n // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;\r\n // // cc.fx.StorageMessage.setStorage(\"level\",cc.fx.GameConfig.GM_INFO.level.toString()); \r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n // }\r\n // else{\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);\r\n // }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeRank() {\r\n this.node.getChildByName(\"Rank\").active = false;\r\n }\r\n\r\n openRank() {\r\n this.node.getChildByName(\"Rank\").active = true;\r\n }\r\n\r\n openReward() {\r\n this.node.getChildByName(\"Reward\").active = true;\r\n }\r\n\r\n clickShop() {\r\n // 假设已经获取到了 userId 和 productId\r\n const userId = cc.fx.GameConfig.GM_INFO.openid;\r\n const productId = '1';\r\n console.log(\"即将创建createorder\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: \"createOrder\",\r\n data: {\r\n \"userId\": userId,\r\n \"productId\": productId,\r\n },\r\n success: (res) => {\r\n // 取得云函数返回的订单信息\r\n console.log(\"createOrder结果:\", res.result);\r\n const payment = res.result.paymentResult.payment;\r\n console.log(\"payment:\", payment);\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n wx.requestPayment({\r\n // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间\r\n timeStamp: payment.timeStamp,\r\n // 随机字符串,长度为32个字符以下\r\n nonceStr: payment.nonceStr,\r\n // 统一下单接口返回的 prepay_id 参数值\r\n package: payment.package,\r\n // 签名算法,暂支持 MD5、HMAC-SHA256\r\n signType: payment.signType || 'MD5',\r\n // 支付签名\r\n paySign: payment.paySign,\r\n success(res) {\r\n /* 成功回调 */\r\n console.log(\"支付成功\", res);\r\n },\r\n fail(res) {\r\n /* 失败回调 */\r\n console.log(\"支付失败\", res);\r\n },\r\n complete(res) {\r\n console.log(\"支付完成\", res);\r\n }\r\n });\r\n },\r\n });\r\n }\r\n\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n console.log(cc.fx.GameConfig.GM_INFO);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n console.log(cc.fx.GameConfig.GM_INFO.openid);\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n this.node.getChildByName(\"Pause\").active = true;\r\n this.node.getChildByName(\"Pause\").getChildByName(\"openID\").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n\r\n }\r\n\r\n closeReward() {\r\n this.node.getChildByName(\"Reward\").active = false;\r\n }\r\n\r\n openStamina() {\r\n this.node.getChildByName(\"Stamina\").active = true;\r\n }\r\n\r\n closeStamina() {\r\n this.node.getChildByName(\"Stamina\").active = false;\r\n }\r\n\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\JiaZai.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 NumberToImage from \"./NumberToImage\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\nimport { LQCollideSystem } from \"./lq_collide_system/lq_collide_system\";\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 node1: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node2: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n node3: cc.Node = null;\r\n\r\n\r\n\r\n @property({ type: [cc.SpriteAtlas], tooltip: \"方块颜色\" })\r\n Block_Color: Array = [];\r\n\r\n @property(cc.EditBox)\r\n custom: cc.EditBox = null;\r\n\r\n\r\n\r\n @property(cc.Node)\r\n level: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n coin: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n Stamina: cc.Node = null;\r\n scheduleCallback: any;\r\n private lastPauseClickTime: number = 0; // 用于记录上次点击的时间戳\r\n\r\n @property(cc.Node)\r\n setUi: cc.Node = null;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n LQCollideSystem.is_enable = true;\r\n // console.log(\"加载关卡配置2\");\r\n // window.initMgr();\r\n GameManager._instance.Block_Color = this.Block_Color;\r\n if (cc.fx.GameConfig.GM_INFO.first) {\r\n console.log(\"————————准备注册事件\", cc.fx.GameConfig.GM_INFO.openid);\r\n if (cc.fx.GameConfig.GM_INFO.openid != \"\") {\r\n console.log(\"————————发送注册事件\");\r\n cc.fx.GameTool.shushu_Track(\"register\");\r\n }\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n setTimeout(() => {\r\n cc.fx.GameConfig.GM_INFO.first = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }, 1000);\r\n\r\n }\r\n }\r\n\r\n start() {\r\n // console.log(\"已经进入Home界面\");\r\n // console.log(\"金币\",cc.fx.GameConfig.GM_INFO.coin);\r\n // console.log(\"关卡\",cc.fx.GameConfig.GM_INFO.level+1);\r\n\r\n cc.fx.GameTool.getHealth(null);\r\n // cc.fx.GameConfig.LEVEL_INFO_init(false,0);\r\n setTimeout(() => {\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, \"big_\", this.level, false);\r\n NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, \"coin_\", this.coin, true);\r\n this.setHealthInfo();\r\n }, 0);\r\n if (cc.fx.GameConfig.GM_INFO.gameState) {\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n setTimeout(() => {\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan2\", null);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"down\", false);\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setCompleteListener((entry) => {\r\n if (entry.animation.name === \"down\" && !cc.fx.GameConfig.GM_INFO.first) {\r\n // 动画播放结束后执行的逻辑\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n });\r\n }, 500);\r\n }\r\n else {\r\n if (!cc.fx.GameConfig.GM_INFO.first)\r\n this.node.getChildByName(\"zhuanchang\").active = false;\r\n }\r\n\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 (cc.fx.GameConfig.GM_INFO.min_Time <= 0) {\r\n this.stopTimeCutDown();\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\r\n cc.fx.GameTool.setUserHealth(1, (data) => {\r\n cc.fx.GameTool.getHealth(null);\r\n this.setHealthInfo();\r\n })\r\n }\r\n else {\r\n cc.fx.GameConfig.GM_INFO.min_Time -= 1;\r\n var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = timeTemp;\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 setHealthInfo() {\r\n if (cc.fx.GameConfig.GM_INFO.hp == 5) {\r\n this.Stamina.getChildByName(\"man\").active = true;\r\n this.Stamina.getChildByName(\"health\").active = false;\r\n this.Stamina.getChildByName(\"time\").active = false;\r\n }\r\n else {\r\n this.Stamina.getChildByName(\"man\").active = false;\r\n this.Stamina.getChildByName(\"health\").active = true;\r\n NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.hp), 25, 15, \"coin_\", this.Stamina.getChildByName(\"health\"), false);\r\n this.Stamina.getChildByName(\"time\").active = true;\r\n if (cc.fx.GameConfig.GM_INFO.min_Time != 0) {\r\n let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time);\r\n this.Stamina.getChildByName(\"time\").getComponent(cc.Label).string = time;\r\n this.startTimeCutDown();\r\n }\r\n }\r\n }\r\n\r\n\r\n startGame() {\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.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\")._touch) {\r\n this.node.getChildByName(\"Load\").getChildByName(\"startBtn\").getComponent(\"btnControl\").setTouch(false);\r\n // if(this.custom.string != \"\"){\r\n // cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1;\r\n // // cc.fx.StorageMessage.setStorage(\"level\",cc.fx.GameConfig.GM_INFO.level.toString()); \r\n // cc.fx.GameConfig.LEVEL_INFO_init(true);\r\n // }\r\n // else{\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.getChildByName(\"zhuanchang\").getComponent(sp.Skeleton).setAnimation(1, \"up\", false);\r\n cc.fx.GameConfig.LEVEL_INFO_init(true, 1000);\r\n // }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeRank() {\r\n this.node.getChildByName(\"Rank\").active = false;\r\n }\r\n\r\n openRank() {\r\n this.node.getChildByName(\"Rank\").active = true;\r\n }\r\n\r\n openReward() {\r\n this.node.getChildByName(\"Reward\").active = true;\r\n }\r\n\r\n clickShop() {\r\n // 假设已经获取到了 userId 和 productId\r\n const userId = cc.fx.GameConfig.GM_INFO.openid;\r\n const productId = '1';\r\n console.log(\"即将创建createorder\");\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: \"createOrder\",\r\n data: {\r\n \"userId\": userId,\r\n \"productId\": productId,\r\n },\r\n success: (res) => {\r\n // 取得云函数返回的订单信息\r\n console.log(\"createOrder结果:\", res.result);\r\n const payment = res.result.paymentResult.payment;\r\n console.log(\"payment:\", payment);\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n // 调起微信客户端支付\r\n //@ts-ignore\r\n wx.requestPayment({\r\n // 时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间\r\n timeStamp: payment.timeStamp,\r\n // 随机字符串,长度为32个字符以下\r\n nonceStr: payment.nonceStr,\r\n // 统一下单接口返回的 prepay_id 参数值\r\n package: payment.package,\r\n // 签名算法,暂支持 MD5、HMAC-SHA256\r\n signType: payment.signType || 'MD5',\r\n // 支付签名\r\n paySign: payment.paySign,\r\n success(res) {\r\n /* 成功回调 */\r\n console.log(\"支付成功\", res);\r\n },\r\n fail(res) {\r\n /* 失败回调 */\r\n console.log(\"支付失败\", res);\r\n },\r\n complete(res) {\r\n console.log(\"支付完成\", res);\r\n }\r\n });\r\n },\r\n });\r\n }\r\n\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n console.log(cc.fx.GameConfig.GM_INFO);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n console.log(cc.fx.GameConfig.GM_INFO.openid);\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n this.node.getChildByName(\"Pause\").active = true;\r\n this.node.getChildByName(\"Pause\").getChildByName(\"openID\").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid;\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n\r\n }\r\n\r\n openSet() {\r\n const now = Date.now();\r\n if (now - this.lastPauseClickTime < 300) {\r\n // 0.3秒内禁止再次点击\r\n return;\r\n }\r\n this.lastPauseClickTime = now;\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n if (cc.fx.GameConfig.GM_INFO.openid == undefined) {\r\n cc.fx.GameConfig.GM_INFO.openid = \"\";\r\n }\r\n if (!this.setUi.active) {\r\n // 第一次点击,打开并播放动画\r\n this.setUi.active = true;\r\n this.setUi.getComponent(cc.Animation).play();\r\n } else {\r\n // 再次点击,关闭节点\r\n this.setUi.active = false;\r\n }\r\n }\r\n\r\n closeReward() {\r\n this.node.getChildByName(\"Reward\").active = false;\r\n }\r\n\r\n openStamina() {\r\n this.node.getChildByName(\"Stamina\").active = true;\r\n }\r\n\r\n closeStamina() {\r\n this.node.getChildByName(\"Stamina\").active = false;\r\n }\r\n\r\n\r\n // update (dt) {}\r\n}\r\n"]}
\ 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 bc7e672..daccad8 100644
--- a/temp/quick-scripts/src/assets/Script/Map.js
+++ b/temp/quick-scripts/src/assets/Script/Map.js
@@ -145,12 +145,14 @@ var MapConroler = /** @class */ (function (_super) {
this.timeLabel = this.node.parent.getChildByName("Top").getChildByName("time");
this.levelLabel = this.node.parent.getChildByName("Top").getChildByName("level");
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);
// 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);
+ console.log("当前关卡", cc.fx.GameConfig.GM_INFO.level + 1);
//this.startTimeCutDown();
this.mapWidth = cc.fx.GameConfig.LEVEL_INFO[0].map[0];
this.mapHeight = cc.fx.GameConfig.LEVEL_INFO[0].map[1];
diff --git a/temp/quick-scripts/src/assets/Script/SceneManager.js.map b/temp/quick-scripts/src/assets/Script/SceneManager.js.map
index bce9e8f..d8231fb 100644
--- a/temp/quick-scripts/src/assets/Script/SceneManager.js.map
+++ b/temp/quick-scripts/src/assets/Script/SceneManager.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\SceneManager.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 MapConroler from \"./Map\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class SceneManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n @property(cc.Node)\r\n freeze: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammer: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n magic_wand: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n pause: cc.Node = null;\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 Wall_Prefab: Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1: boolean = false;\r\n load2: boolean = false;\r\n load3: boolean = false;\r\n btnName: string = '';\r\n callBack: any;\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n this.changeBg();\r\n\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n return;\r\n }\r\n // console.log('成功预加载 HomeScene 场景');\r\n });\r\n }, 1000);\r\n\r\n }\r\n\r\n changeBg() {\r\n let number = Math.floor(Math.random() * 8) + 1;\r\n const path = 'bg/bg' + number;\r\n cc.resources.load(path, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {\r\n if (err) {\r\n console.error('动态加载背景图失败:', err);\r\n return;\r\n }\r\n this.node.getChildByName(\"Game\").getChildByName(\"bg\").getComponent(cc.Sprite).spriteFrame = spriteFrame;\r\n })\r\n }\r\n\r\n loadParticleEffects() {\r\n const path = 'Particle';\r\n cc.resources.loadDir(path, cc.ParticleAsset, (err, assets: cc.ParticleAsset[]) => {\r\n if (err) {\r\n console.error('动态加载粒子特效失败:', err);\r\n return;\r\n }\r\n\r\n this.particleEffects = assets;\r\n this.setParticleSort();\r\n this.load3 = true;\r\n //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');\r\n });\r\n }\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n\r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n // console.log(a.name.substr(0,3),b.name.substr(0,3));\r\n const indexA = order.indexOf(a.name.substr(0, 3));\r\n const indexB = order.indexOf(b.name.substr(0, 3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort() {\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start() {\r\n\r\n }\r\n\r\n startGame() {\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n // console.log('成功切换到 HomeScene 场景');\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n\r\n }\r\n\r\n returnHome() {\r\n if (this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\")._touch) {\r\n if (MapConroler._instance.gameStart == true) {\r\n MiniGameSdk.API.showToast(\"体力值减少\");\r\n cc.fx.GameTool.setUserHealth(-1, (data) => {\r\n })\r\n<<<<<<< HEAD\r\n if(MapConroler._instance.count_Time){\r\n let count_Time = MapConroler._instance.count_Time;\r\n let add_Time = MapConroler._instance.add_Time;\r\n let data = {\r\n time:count_Time, \r\n add_Time:add_Time,\r\n result:\"give_up\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\",data);\r\n }\r\n=======\r\n let data = {\r\n time: MapConroler._instance.count_Time,\r\n add_Time: MapConroler._instance.add_Time,\r\n result: \"give_up\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\", data);\r\n>>>>>>> 0a31a7a5abc2c505bf743aa596e1c765a0405152\r\n }\r\n this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\").setTouch(false);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.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 setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n }\r\n\r\n\r\n destroyNodesInFrames(nodes: cc.Node[], callback: () => void) {\r\n const BATCH_SIZE = 10; // 每帧销毁的节点数量\r\n let index = 0;\r\n\r\n const destroyBatch = () => {\r\n let count = 0;\r\n while (index < nodes.length && count < BATCH_SIZE) {\r\n const node = nodes[index];\r\n if (node) {\r\n\r\n node.active = false;\r\n }\r\n index++;\r\n count++;\r\n }\r\n\r\n if (index < nodes.length) {\r\n this.scheduleOnce(destroyBatch, 6);\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n destroyBatch();\r\n }\r\n\r\n // 改进后的切换场景方法\r\n switchToEmptyScene() {\r\n const allNodes = cc.director.getScene().children;\r\n this.destroyNodesInFrames(allNodes, () => {\r\n cc.director.loadScene(\"HomeScene\");\r\n });\r\n }\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n if (this.pause.getComponent(\"btnControl\")._touch) {\r\n this.pause.getComponent(\"btnControl\").setTouch(false);\r\n this.node.getChildByName(\"Pause\").active = true;\r\n MapConroler._instance.pause = true;\r\n }\r\n\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.pause.getComponent(\"btnControl\").setTouch(true);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n if (MapConroler._instance.node.parent.getChildByName(\"Ice\").active == false) {\r\n MapConroler._instance.pause = false;\r\n }\r\n }\r\n\r\n openPropBuy(name) {\r\n MapConroler._instance.pause = true;\r\n this.btnName = name;\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n propWindow.active = true;\r\n propWindow.getChildByName(\"freeze\").active = false;\r\n propWindow.getChildByName(\"hammer\").active = false;\r\n propWindow.getChildByName(\"magic\").active = false;\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(true);\r\n propWindow.getChildByName(name).active = true;\r\n }\r\n\r\n clickBtn() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n if (propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\")._touch) {\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(false);\r\n if (this.btnName == \"freeze\")\r\n MapConroler._instance.buyFreeze();\r\n else if (this.btnName == \"hammer\")\r\n MapConroler._instance.buyHammer();\r\n else if (this.btnName == \"magic\")\r\n MapConroler._instance.buyMagic();\r\n }\r\n }\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n closePropBuy() {\r\n MapConroler._instance.pause = false;\r\n let freezeBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (this.btnName == \"freeze\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (this.btnName == \"hammer\") hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (this.btnName == \"magic\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n\r\n this.node.getChildByName(\"Game\").getChildByName(\"propWindow\").active = false;\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\\SceneManager.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 MapConroler from \"./Map\";\r\nimport { MiniGameSdk } from \"./Sdk/MiniGameSdk\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class SceneManager extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n @property(cc.Node)\r\n freeze: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n hammer: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n magic_wand: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n pause: cc.Node = null;\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 Wall_Prefab: Array = [];\r\n\r\n particleEffects: cc.ParticleAsset[];\r\n // @property({type: [cc.ParticleSystem], tooltip:\"粒子数组\"})\r\n // particleEffects : Array = [];\r\n\r\n load1: boolean = false;\r\n load2: boolean = false;\r\n load3: boolean = false;\r\n btnName: string = '';\r\n callBack: any;\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad() {\r\n cc.game.setFrameRate(63);\r\n this.changeBg();\r\n\r\n setTimeout(() => {\r\n cc.director.preloadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n // console.error('预加载 HomeScene 场景失败:', err);\r\n return;\r\n }\r\n // console.log('成功预加载 HomeScene 场景');\r\n });\r\n }, 1000);\r\n\r\n }\r\n\r\n changeBg() {\r\n let number = Math.floor(Math.random() * 8) + 1;\r\n const path = 'bg/bg' + number;\r\n cc.resources.load(path, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {\r\n if (err) {\r\n console.error('动态加载背景图失败:', err);\r\n return;\r\n }\r\n this.node.getChildByName(\"Game\").getChildByName(\"bg\").getComponent(cc.Sprite).spriteFrame = spriteFrame;\r\n })\r\n }\r\n\r\n loadParticleEffects() {\r\n const path = 'Particle';\r\n cc.resources.loadDir(path, cc.ParticleAsset, (err, assets: cc.ParticleAsset[]) => {\r\n if (err) {\r\n console.error('动态加载粒子特效失败:', err);\r\n return;\r\n }\r\n\r\n this.particleEffects = assets;\r\n this.setParticleSort();\r\n this.load3 = true;\r\n //console.log('粒子特效加载成功,共加载了', this.particleEffects.length, '个粒子特效');\r\n });\r\n }\r\n\r\n setWallPrefabSort() {\r\n const order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight'];\r\n this.Wall_Prefab.sort((a, b) => {\r\n const indexA = order.indexOf(a.name);\r\n const indexB = order.indexOf(b.name);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n\r\n }\r\n\r\n setParticleSort() {\r\n const order = ['top', 'bot', 'rig', 'lef'];\r\n this.particleEffects.sort((a, b) => {\r\n // console.log(a.name.substr(0,3),b.name.substr(0,3));\r\n const indexA = order.indexOf(a.name.substr(0, 3));\r\n const indexB = order.indexOf(b.name.substr(0, 3));\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n return indexA - indexB;\r\n });\r\n }\r\n\r\n setSort() {\r\n this.Block_Array.sort((a, b) => {\r\n // 从名称中提取数字部分\r\n const numberA = parseInt(a.name.match(/\\d+/)?.[0] || '0', 10);\r\n const numberB = parseInt(b.name.match(/\\d+/)?.[0] || '0', 10);\r\n return numberA - numberB;\r\n });\r\n }\r\n\r\n start() {\r\n\r\n }\r\n\r\n startGame() {\r\n cc.director.loadScene(\"HomeScene\", (err) => {\r\n if (err) {\r\n console.error('加载 HomeScene 场景失败:', err);\r\n } else {\r\n // console.log('成功切换到 HomeScene 场景');\r\n cc.director.loadScene(\"HomeScene\");\r\n }\r\n });\r\n\r\n }\r\n\r\n returnHome() {\r\n if (this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\")._touch) {\r\n if (MapConroler._instance.gameStart == true) {\r\n MiniGameSdk.API.showToast(\"体力值减少\");\r\n cc.fx.GameTool.setUserHealth(-1, (data) => {\r\n })\r\n if (MapConroler._instance.count_Time) {\r\n let count_Time = MapConroler._instance.count_Time;\r\n let add_Time = MapConroler._instance.add_Time;\r\n let data = {\r\n time: count_Time,\r\n add_Time: add_Time,\r\n result: \"give_up\"\r\n }\r\n cc.fx.GameTool.shushu_Track(\"finish_stage\", data);\r\n }\r\n }\r\n this.node.getChildByName(\"Pause\").getChildByName(\"btn\").getComponent(\"btnControl\").setTouch(false);\r\n cc.fx.AudioManager._instance.playEffect(\"zhuan1\", null);\r\n this.node.getChildByName(\"zhuanchang\").active = true;\r\n this.node.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 setTimeout(() => {\r\n cc.director.loadScene(\"HomeScene\");\r\n }, 1200);\r\n }\r\n }\r\n\r\n\r\n destroyNodesInFrames(nodes: cc.Node[], callback: () => void) {\r\n const BATCH_SIZE = 10; // 每帧销毁的节点数量\r\n let index = 0;\r\n\r\n const destroyBatch = () => {\r\n let count = 0;\r\n while (index < nodes.length && count < BATCH_SIZE) {\r\n const node = nodes[index];\r\n if (node) {\r\n\r\n node.active = false;\r\n }\r\n index++;\r\n count++;\r\n }\r\n\r\n if (index < nodes.length) {\r\n this.scheduleOnce(destroyBatch, 6);\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n destroyBatch();\r\n }\r\n\r\n // 改进后的切换场景方法\r\n switchToEmptyScene() {\r\n const allNodes = cc.director.getScene().children;\r\n this.destroyNodesInFrames(allNodes, () => {\r\n cc.director.loadScene(\"HomeScene\");\r\n });\r\n }\r\n\r\n openPause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n if (this.pause.getComponent(\"btnControl\")._touch) {\r\n this.pause.getComponent(\"btnControl\").setTouch(false);\r\n this.node.getChildByName(\"Pause\").active = true;\r\n MapConroler._instance.pause = true;\r\n }\r\n\r\n }\r\n\r\n closePause() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_little\", null);\r\n this.pause.getComponent(\"btnControl\").setTouch(true);\r\n this.node.getChildByName(\"Pause\").active = false;\r\n if (MapConroler._instance.node.parent.getChildByName(\"Ice\").active == false) {\r\n MapConroler._instance.pause = false;\r\n }\r\n }\r\n\r\n openPropBuy(name) {\r\n MapConroler._instance.pause = true;\r\n this.btnName = name;\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n propWindow.active = true;\r\n propWindow.getChildByName(\"freeze\").active = false;\r\n propWindow.getChildByName(\"hammer\").active = false;\r\n propWindow.getChildByName(\"magic\").active = false;\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(true);\r\n propWindow.getChildByName(name).active = true;\r\n }\r\n\r\n clickBtn() {\r\n cc.fx.AudioManager._instance.playEffect(\"anniu_Big\", null);\r\n let propWindow = this.node.getChildByName(\"Game\").getChildByName(\"propWindow\");\r\n if (propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\")._touch) {\r\n propWindow.getChildByName(\"buy_Btn\").getComponent(\"btnControl\").setTouch(false);\r\n if (this.btnName == \"freeze\")\r\n MapConroler._instance.buyFreeze();\r\n else if (this.btnName == \"hammer\")\r\n MapConroler._instance.buyHammer();\r\n else if (this.btnName == \"magic\")\r\n MapConroler._instance.buyMagic();\r\n }\r\n }\r\n //打开商店\r\n openShop() {\r\n // 加载 shop bundle\r\n cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => {\r\n bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => {\r\n if (err) {\r\n cc.error(err.message || err);\r\n return;\r\n }\r\n if (prefab) {\r\n const shopNode = cc.instantiate(prefab);\r\n this.node.addChild(shopNode);\r\n console.log(\"shopNode parent:\", shopNode.parent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n closePropBuy() {\r\n MapConroler._instance.pause = false;\r\n let freezeBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"timeBtn\");\r\n let hammerBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"destroyBtn\");\r\n let magicBtn = MapConroler._instance.node.parent.getChildByName(\"Bottom\").getChildByName(\"magicBtn\");\r\n if (this.btnName == \"freeze\") freezeBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (this.btnName == \"hammer\") hammerBtn.getComponent(\"btnControl\").setTouch(true);\r\n else if (this.btnName == \"magic\") magicBtn.getComponent(\"btnControl\").setTouch(true);\r\n\r\n this.node.getChildByName(\"Game\").getChildByName(\"propWindow\").active = false;\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/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js
index 8204177..670406a 100644
--- a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js
+++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js
@@ -1092,10 +1092,12 @@ var MiniGameSdk;
}
};
API.shushu_Login = function () {
- API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
- var result = "success";
- API.shushu_Track("login", result);
- API.shushu_SetSuperProperties();
+ if (typeof wx !== 'undefined' && wx !== null) {
+ API._ta.login(cc.fx.GameConfig.GM_INFO.openid);
+ var result = "success";
+ API.shushu_Track("login", result);
+ API.shushu_SetSuperProperties();
+ }
};
API.shushu_userSet = function (time) {
if (typeof wx !== 'undefined' && wx !== null) {
diff --git a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map
index 25284a4..3e06bb2 100644
--- a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map
+++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n //@ts-ignore\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n private static _ta: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'none',\r\n duration: duration * 500\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) =>{\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n\r\n\r\n /*\r\n * 数数平台初始化以及登录\r\n */\r\n\r\n static shushu_Init(){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"开始接入数数平台\");\r\n //getWechatGameVersion\r\n let appId = \"121591378fc1423893deb12041413eb3\";\r\n let test = cc.fx.GameTool.getWechatGameVersion();\r\n if(test == \"正式版\"){\r\n appId = \"87d18958cea145f29d3265470ecd3486\";\r\n }\r\n var config = {\r\n // appId: \"73e1ec654f15b47a1a7354fbabec05ad\", // 项目 APP ID\r\n appId:appId,\r\n serverUrl: \"https://data.nika4fun.com\", // 上报地址\r\n autoTrack: {\r\n appShow: true, // 自动采集 ta_mg_show\r\n appHide: true // 自动采集 ta_mg_hide\r\n }\r\n };\r\n // 创建 TA 实例\r\n API._ta = new ThinkingAnalyticsAPI(config);\r\n //var deviceId = API._ta.getDeviceId();\r\n\r\n API._ta.login(cc.fx.GameConfig.GM_INFO.openid);\r\n const result = \"success\";\r\n API.shushu_Track(\"login\",result);\r\n\r\n // 初始化\r\n API._ta .init(); \r\n\r\n API.shushu_SetSuperProperties();\r\n //console.log(\"数数平台初始化成功!\");\r\n // this.TA.clearSuperProperties();\r\n //设置用户属性\r\n // this.TA.userSet({ username: \"大核桃\" });\r\n }\r\n }\r\n\r\n static shushu_userSet(time){\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n console.log(\"设置用户注册属性\");\r\n API._ta.userSet({ register_time:time});\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台设置动态公共属性\r\n */\r\n\r\n static shushu_SetSuperProperties(){\r\n if (typeof wx!== 'undefined' && wx!== null && API._ta) {\r\n const versionData = \"1.3\";\r\n // API._ta.userSetOnce({ register_time:time});\r\n var superProperties = {\r\n current_level : (cc.fx.GameConfig.GM_INFO.level+1), //当前关卡等级 number\r\n current_health: cc.fx.GameConfig.GM_INFO.hp, //当前体力值\r\n tmp_coin : cc.fx.GameConfig.GM_INFO.coin,//当前金币\r\n version: versionData\r\n };\r\n API._ta.setSuperProperties(superProperties);//设置公共事件属性\r\n }\r\n }\r\n\r\n static getWechatGameVersion(): string | null {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n // @ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n return accountInfo.miniProgram.version;\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台具体埋点\r\n */\r\n\r\n static shushu_Track(name, data, callback?: (success: boolean, error?: any) => void) {\r\n if (typeof wx!== 'undefined' && wx!== null) {\r\n if (API._ta) {\r\n // 假设 track 方法返回一个 Promise\r\n API._ta.track(\r\n name, // 事件名称\r\n data // 事件属性 \r\n )\r\n } \r\n }\r\n }\r\n }\r\n\r\n}"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n //@ts-ignore\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n private static _ta: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'none',\r\n duration: duration * 500\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) => {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n\r\n\r\n /*\r\n * 数数平台初始化以及登录\r\n */\r\n\r\n static shushu_Init() {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"开始接入数数平台\");\r\n //getWechatGameVersion\r\n let appId = \"121591378fc1423893deb12041413eb3\";\r\n let test = cc.fx.GameTool.getWechatGameVersion();\r\n if (test == \"正式版\") {\r\n appId = \"87d18958cea145f29d3265470ecd3486\";\r\n }\r\n var config = {\r\n // appId: \"73e1ec654f15b47a1a7354fbabec05ad\", // 项目 APP ID\r\n appId: appId,\r\n serverUrl: \"https://data.nika4fun.com\", // 上报地址\r\n autoTrack: {\r\n appShow: true, // 自动采集 ta_mg_show\r\n appHide: true // 自动采集 ta_mg_hide\r\n }\r\n };\r\n // 创建 TA 实例\r\n API._ta = new ThinkingAnalyticsAPI(config);\r\n // 初始化\r\n API._ta.init();\r\n }\r\n }\r\n\r\n static shushu_Login() {\r\n API._ta.login(cc.fx.GameConfig.GM_INFO.openid);\r\n const result = \"success\";\r\n API.shushu_Track(\"login\", result);\r\n API.shushu_SetSuperProperties();\r\n }\r\n\r\n static shushu_userSet(time) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n console.log(\"设置用户注册属性\");\r\n API._ta.userSet({ register_time: time });\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台设置动态公共属性\r\n */\r\n\r\n static shushu_SetSuperProperties() {\r\n if (typeof wx !== 'undefined' && wx !== null && API._ta) {\r\n const versionData = \"1.3\";\r\n // API._ta.userSetOnce({ register_time:time});\r\n var superProperties = {\r\n current_level: (cc.fx.GameConfig.GM_INFO.level + 1), //当前关卡等级 number\r\n current_health: cc.fx.GameConfig.GM_INFO.hp, //当前体力值\r\n tmp_coin: cc.fx.GameConfig.GM_INFO.coin,//当前金币\r\n version: versionData\r\n };\r\n API._ta.setSuperProperties(superProperties);//设置公共事件属性\r\n }\r\n }\r\n\r\n static getWechatGameVersion(): string | null {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n // @ts-ignore\r\n const accountInfo = wx.getAccountInfoSync();\r\n return accountInfo.miniProgram.version;\r\n }\r\n }\r\n\r\n /*\r\n * 数数平台具体埋点\r\n */\r\n\r\n static shushu_Track(name, data, callback?: (success: boolean, error?: any) => void) {\r\n if (typeof wx !== 'undefined' && wx !== null) {\r\n if (API._ta) {\r\n // 假设 track 方法返回一个 Promise\r\n API._ta.track(\r\n name, // 事件名称\r\n data // 事件属性 \r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n}"]}
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map
index 6da2526..f25cac1 100644
--- a/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map
+++ b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\module\\GameStart\\GameAppStart.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { StorageMessage } from \"../Storage/Storage\";\r\nimport { GameConfig } from \"../Config/GameConfig\";\r\nimport HttpUtil from \"../Crypto/HttpUtil\";\r\nimport AudioManager from \"../Music/AudioManager\";\r\nimport { Notifications } from \"../Notification/Notification\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\n\r\n\r\nwindow.initMgr = function() {\r\n if(cc.fx)\r\n {\r\n return;\r\n }\r\n cc.fx = {};\r\n // console.log(\"1初始化\");\r\n\r\n //基础状态信息\r\n cc.fx.StateInfo = {\r\n debugMode: true,\r\n networkConnected: true, //网络状态\r\n networkType: 'none', //网络类型\r\n isOnForeground: true //当前是否是在前台\r\n };\r\n\r\n //应用系统信息\r\n //配置文件\r\n cc.fx.StorageMessage = StorageMessage;\r\n cc.fx.AudioManager = AudioManager;\r\n cc.fx.GameConfig = GameConfig;\r\n cc.fx.HttpUtil = HttpUtil;\r\n cc.fx.GameTool = GameTool;\r\n cc.fx.Notifications = Notifications;\r\n \r\n\r\n cc.fx.ShareInfo = {\r\n queryId : -1 //分享id\r\n };\r\n\r\n cc.fx.Message = {\r\n control: \"10001\", //传递操作控制\r\n startGame:\"10002\", //传递开始建筑\r\n next: \"10003\" , //传递执行下一个格子洪水流过\r\n changePath: \"10004\", //传递操作控制\r\n changeMap: \"10005\", //改变那地图\r\n nextWater: \"10006\" , //传递执行下一个格子洪水流过\r\n addEnd: \"10007\" , //添加结束点\r\n setData: \"10008\" , //上传分数\r\n guideNext: \"10009\" , //引导进入下一步\r\n showResult: \"10010\", //展示治水结果\r\n removeTip: \"10011\" //执行撤回或者后退动作,移除提示\r\n }\r\n\r\n /*\r\n * 客户端埋点分享类型\r\n */\r\n cc.fx.BurialShareType = {\r\n Default : \"default\", //默认分享类型,分享到群\r\n Invite : \"invite\", // 邀请好友\r\n\r\n DailyInviteRoomJoin:'invite_join_room', //邀请好友加入\r\n DailyInviteFriend : 'invite_friend', // 日常邀请好友\r\n DailyInviteGroup : 'invate_group', // 日常分享群\r\n DailyInviteGroupAlive: 'invate_alive', //日常分享群复活\r\n DailyInviteGroupReward: 'invate_rewared',//分享奖励翻倍\r\n DailyInviteGroupBox: 'invate_box', //宝箱分享奖励\r\n DailyInviteGroupBall: 'invate_ball', //分享领取球球\r\n\r\n MatchResult : 'matchResult', // 比赛结算分享\r\n MatchFix5: 'MatchFix5', // 5元红包赛\r\n MatchFix20: 'MatchFix20', // 20元红包赛\r\n MatchFix100: 'MatchFix100', // 100元红包赛\r\n MatchFix500: 'MatchFix500', // 500元红包赛\r\n NewerRedEnvelope: 'newerRedEnvelope', // 新手红包\r\n CoinRoomResult: 'coinRoomResult', // 金币桌结算\r\n HighRate : \"highRate\",//高倍分享\r\n CoinRoomWinStreak: 'coinRoomWinStreak', // 连胜\r\n CoinRoomBankruptcy1: 'coinRoomBankruptcy1', // 金币桌破产\r\n CoinRoomBankruptcy2: 'coinRoomBankruptcy2', // 金币桌破产\r\n CoinRoomBankruptcy3: 'coinRoomBankruptcy3', // 金币桌破产\r\n };\r\n\r\n /*\r\n * 分享到哪儿给奖励 group frined all\r\n */\r\n cc.fx.ShareWhereReward = {\r\n Group :\"group\", //微信群\r\n Friend : \"friend\",//好友\r\n All : \"all\", //不区分\r\n };\r\n\r\n //用于存储消息的ID\r\n cc.fx.storageType = cc.Enum({\r\n\t storageTypeCustom: 1000101, //用于存储关卡等级\r\n\t});\r\n\r\n //用于存储提示语 按照步骤提示\r\n cc.fx.tipType = cc.Enum({\r\n tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',\r\n tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', //用于存储关卡等级\r\n tipErrNew: '这是这局游戏第一次出现{植物}',\r\n tipErrOld: '{植物}刚才出现过呢',\r\n tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',\r\n tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',\r\n tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',\r\n\r\n });\r\n\r\n};"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\module\\GameStart\\GameAppStart.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoD;AACpD,mDAAkD;AAClD,+CAA0C;AAC1C,6DAA6D;AAC7D,6CAA4C;AAG5C,MAAM,CAAC,OAAO,GAAG;IACb,IAAI,EAAE,CAAC,EAAE,EAAE;QACP,OAAO;KACV;IACD,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACX,uBAAuB;IAEvB,QAAQ;IACR,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG;QACd,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,IAAI,CAAM,UAAU;KACvC,CAAC;IAEF,QAAQ;IACR,MAAM;IACN,EAAE,CAAC,EAAE,CAAC,cAAc,GAAG,wBAAc,CAAC;IAEtC,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,uBAAU,CAAC;IAC9B,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,kBAAQ,CAAC;IAC1B,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,mBAAQ,CAAC;IAC1B,EAAE,CAAC,EAAE,CAAC,aAAa,GAAG,4BAAa,CAAC;IAGpC,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG;QACd,OAAO,EAAE,CAAC,CAAC,CAAc,MAAM;KAClC,CAAC;IAEF,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG;QACZ,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,OAAO,CAAU,iBAAiB;KAChD,CAAA;IAED;;MAEE;IACF,EAAE,CAAC,EAAE,CAAC,eAAe,GAAG;QACpB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAEhB,mBAAmB,EAAE,kBAAkB;QACvC,iBAAiB,EAAE,eAAe;QAClC,gBAAgB,EAAE,cAAc;QAChC,qBAAqB,EAAE,cAAc;QACrC,sBAAsB,EAAE,gBAAgB;QACxC,mBAAmB,EAAE,YAAY;QACjC,oBAAoB,EAAE,aAAa;QAEnC,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,aAAa;QAC1B,gBAAgB,EAAE,kBAAkB;QACpC,cAAc,EAAE,gBAAgB;QAChC,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,mBAAmB;QACtC,mBAAmB,EAAE,qBAAqB;QAC1C,mBAAmB,EAAE,qBAAqB;QAC1C,mBAAmB,EAAE,qBAAqB;KAC7C,CAAC;IAEF;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,gBAAgB,GAAG;QACrB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,KAAK;KACb,CAAC;IAEF,WAAW;IACX,EAAE,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC;QACxB,iBAAiB,EAAE,OAAO;KAC7B,CAAC,CAAC;IAEH,iBAAiB;IACjB,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,iDAAiD;QACzD,MAAM,EAAE,mDAAmD;QAC3D,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,oBAAoB;QAC/B,UAAU,EAAE,2BAA2B;KAE1C,CAAC,CAAC;AAEP,CAAC,CAAC","file":"","sourceRoot":"/","sourcesContent":["import { StorageMessage } from \"../Storage/Storage\";\r\nimport { GameConfig } from \"../Config/GameConfig\";\r\nimport HttpUtil from \"../Crypto/HttpUtil\";\r\nimport { Notifications } from \"../Notification/Notification\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\nimport AudioManager from \"../Music/AudioManager\";\r\n\r\nwindow.initMgr = function () {\r\n if (cc.fx) {\r\n return;\r\n }\r\n cc.fx = {};\r\n // console.log(\"1初始化\");\r\n\r\n //基础状态信息\r\n cc.fx.StateInfo = {\r\n debugMode: true,\r\n networkConnected: true, //网络状态\r\n networkType: 'none', //网络类型\r\n isOnForeground: true //当前是否是在前台\r\n };\r\n\r\n //应用系统信息\r\n //配置文件\r\n cc.fx.StorageMessage = StorageMessage;\r\n\r\n cc.fx.GameConfig = GameConfig;\r\n cc.fx.HttpUtil = HttpUtil;\r\n cc.fx.GameTool = GameTool;\r\n cc.fx.Notifications = Notifications;\r\n\r\n\r\n cc.fx.ShareInfo = {\r\n queryId: -1 //分享id\r\n };\r\n\r\n cc.fx.Message = {\r\n control: \"10001\", //传递操作控制\r\n startGame: \"10002\", //传递开始建筑\r\n next: \"10003\", //传递执行下一个格子洪水流过\r\n changePath: \"10004\", //传递操作控制\r\n changeMap: \"10005\", //改变那地图\r\n nextWater: \"10006\", //传递执行下一个格子洪水流过\r\n addEnd: \"10007\", //添加结束点\r\n setData: \"10008\", //上传分数\r\n guideNext: \"10009\", //引导进入下一步\r\n showResult: \"10010\", //展示治水结果\r\n removeTip: \"10011\" //执行撤回或者后退动作,移除提示\r\n }\r\n\r\n /*\r\n * 客户端埋点分享类型\r\n */\r\n cc.fx.BurialShareType = {\r\n Default: \"default\", //默认分享类型,分享到群\r\n Invite: \"invite\", // 邀请好友\r\n\r\n DailyInviteRoomJoin: 'invite_join_room', //邀请好友加入\r\n DailyInviteFriend: 'invite_friend', // 日常邀请好友\r\n DailyInviteGroup: 'invate_group', // 日常分享群\r\n DailyInviteGroupAlive: 'invate_alive', //日常分享群复活\r\n DailyInviteGroupReward: 'invate_rewared',//分享奖励翻倍\r\n DailyInviteGroupBox: 'invate_box', //宝箱分享奖励\r\n DailyInviteGroupBall: 'invate_ball', //分享领取球球\r\n\r\n MatchResult: 'matchResult', // 比赛结算分享\r\n MatchFix5: 'MatchFix5', // 5元红包赛\r\n MatchFix20: 'MatchFix20', // 20元红包赛\r\n MatchFix100: 'MatchFix100', // 100元红包赛\r\n MatchFix500: 'MatchFix500', // 500元红包赛\r\n NewerRedEnvelope: 'newerRedEnvelope', // 新手红包\r\n CoinRoomResult: 'coinRoomResult', // 金币桌结算\r\n HighRate: \"highRate\",//高倍分享\r\n CoinRoomWinStreak: 'coinRoomWinStreak', // 连胜\r\n CoinRoomBankruptcy1: 'coinRoomBankruptcy1', // 金币桌破产\r\n CoinRoomBankruptcy2: 'coinRoomBankruptcy2', // 金币桌破产\r\n CoinRoomBankruptcy3: 'coinRoomBankruptcy3', // 金币桌破产\r\n };\r\n\r\n /*\r\n * 分享到哪儿给奖励 group frined all\r\n */\r\n cc.fx.ShareWhereReward = {\r\n Group: \"group\", //微信群\r\n Friend: \"friend\",//好友\r\n All: \"all\", //不区分\r\n };\r\n\r\n //用于存储消息的ID\r\n cc.fx.storageType = cc.Enum({\r\n storageTypeCustom: 1000101, //用于存储关卡等级\r\n });\r\n\r\n //用于存储提示语 按照步骤提示\r\n cc.fx.tipType = cc.Enum({\r\n tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',\r\n tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', //用于存储关卡等级\r\n tipErrNew: '这是这局游戏第一次出现{植物}',\r\n tipErrOld: '{植物}刚才出现过呢',\r\n tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',\r\n tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',\r\n tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',\r\n\r\n });\r\n\r\n};"]}
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map
index 91c4590..729a646 100644
--- a/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map
+++ b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map
@@ -1 +1 @@
-{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n@ccclass\r\nexport default class AudioManager extends cc.Component {\r\n static _instance: any;\r\n //背景音乐\r\n @property(cc.AudioClip)\r\n audioGameBgm0: cc.AudioClip = null;\r\n\r\n @property(cc.AudioClip)\r\n xiaochu: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n hit: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n down: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n fangxiang: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n build: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n win: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n lose: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_Big: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_little: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan1: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan2: cc.AudioClip = null;\r\n\r\n mAudioMap: {};\r\n bgMusicVolume: number;\r\n effectMusicVolume: number;\r\n mMusicSwitch: number;\r\n mEffectSwitch: number;\r\n brickSound: any;\r\n reward: boolean;\r\n finish: boolean;\r\n rewardCount: number;\r\n mMusicKey: any;\r\n\r\n onLoad() {\r\n if (AudioManager._instance == null) {\r\n AudioManager._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n this.reward = false;\r\n this.finish = false;\r\n this.rewardCount = 0;\r\n this.ctor();\r\n\r\n this.preload();\r\n }\r\n\r\n ctor () {\r\n this.mAudioMap = {};\r\n /**\r\n * 默认音量大小\r\n * @type {number}\r\n */\r\n this.bgMusicVolume = 0.1;\r\n this.effectMusicVolume = 1;\r\n\r\n this.mMusicSwitch = 1;\r\n this.mEffectSwitch = 1;\r\n }\r\n play (audioSource, loop, callback, isBgMusic) {\r\n // if (isBgMusic && !this.mMusicSwitch) return;\r\n // if (!isBgMusic && !this.mEffectSwitch) return;\r\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\r\n\r\n // if (cc.sys.isBrowser) {\r\n // if(audioSource == this.brickSound){\r\n // volume = 0.1;\r\n // } \r\n volume = 1;\r\n cc.audioEngine.setEffectsVolume(1);\r\n cc.audioEngine.setMusicVolume(1);\r\n if(audioSource.name == \"lose\"){\r\n cc.audioEngine.setEffectsVolume(0.5);\r\n }\r\n else{\r\n cc.audioEngine.setEffectsVolume(1);\r\n }\r\n var context = cc.audioEngine.playEffect(audioSource, loop);\r\n if (callback){\r\n cc.audioEngine.setFinishCallback(context, function(){\r\n callback.call(this);\r\n }.bind(this));\r\n }\r\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\r\n\r\n this.mAudioMap[audioSource] = context;\r\n return audioSource;\r\n // } else {\r\n // return audioSource;\r\n // }\r\n }\r\n\r\n save () {\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\r\n }\r\n\r\n // static get Instance()\r\n // {\r\n // if (this._instance == null)\r\n // {\r\n // this._instance = new AudioManager();\r\n // }\r\n // return this._instance;\r\n // }\r\n\r\n preload () {\r\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\r\n\r\n var musics = [\r\n this.audioGameBgm0,\r\n ];\r\n musics.forEach(function(path) {\r\n })\r\n }\r\n\r\n getAudioMusicSwitch()\r\n {\r\n return this.mMusicSwitch;\r\n\r\n }\r\n getAudioEffectSwitch()\r\n {\r\n return this.mEffectSwitch;\r\n }\r\n trunAudioSound(on)\r\n {\r\n this.switchMusic(on);\r\n this.switchEffect(on)\r\n }\r\n switchMusic (on) {\r\n if (this.mMusicSwitch != (on?1:0))\r\n {\r\n this.mMusicSwitch = 1-this.mMusicSwitch;\r\n // this.save();\r\n }\r\n if(on)\r\n {\r\n this.playMusicGame();\r\n }\r\n else\r\n {\r\n this.stopMusic();\r\n }\r\n }\r\n switchEffect (on) {\r\n if (this.mEffectSwitch != (on?1:0)){\r\n this.mEffectSwitch = 1-this.mEffectSwitch;\r\n // this.save();\r\n\r\n }\r\n }\r\n onHide () {\r\n cc.audioEngine.pauseAll();\r\n }\r\n\r\n onShow () {\r\n cc.audioEngine.resumeAll();\r\n }\r\n\r\n //播放音效\r\n playEffect(name,callback){\r\n if(!cc.fx.GameConfig.GM_INFO.effectOpen){\r\n return;\r\n }\r\n if(this[name])\r\n return this.play(this[name], false,callback,this.mEffectSwitch);\r\n }\r\n playMusic (key, callback, loop) {\r\n if(!cc.fx.GameConfig.GM_INFO.musicOpen){\r\n return;\r\n }\r\n loop = typeof loop == 'undefined' || loop ? true : false;\r\n this.stopMusic();\r\n this.mMusicKey = this.play(key, loop, callback, true);\r\n\r\n }\r\n /**\r\n * 游戏背景音乐\r\n */\r\n playMusicGame () {\r\n this.stopMusic();\r\n this.playMusic(this.audioGameBgm0,{},true);\r\n }\r\n /**\r\n * 停止背景音乐播放\r\n */\r\n stopMusic () {\r\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\r\n cc.audioEngine.stopAll();\r\n }\r\n\r\n /**\r\n * 恢复被暂停的背景音乐播放\r\n */\r\n resumeMusic () {\r\n // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放\r\n cc.audioEngine.resumeMusic();\r\n }\r\n\r\n /*\r\n * 游戏开始音效\r\n *\r\n */\r\n playGameStart()\r\n {\r\n \r\n }\r\n /*\r\n * 失败的游戏结束\r\n */\r\n playGameOver()\r\n {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultFailed()\r\n {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultSuccess()\r\n {\r\n\r\n }\r\n /**\r\n * 报警的音效\r\n */\r\n\r\n /**\r\n * 按钮\r\n */\r\n playAudioButton () {\r\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\r\n }\r\n};\r\n\r\n// export { AudioManager };\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n@ccclass\r\nexport default class AudioManager extends cc.Component {\r\n static _instance: any;\r\n //背景音乐\r\n @property(cc.AudioClip)\r\n audioGameBgm0: cc.AudioClip = null;\r\n\r\n @property(cc.AudioClip)\r\n xiaochu: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n hit: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n down: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n fangxiang: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n build: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n win: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n lose: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_Big: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n anniu_little: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan1: cc.AudioClip = null;\r\n @property(cc.AudioClip)\r\n zhuan2: cc.AudioClip = null;\r\n\r\n mAudioMap: {};\r\n bgMusicVolume: number;\r\n effectMusicVolume: number;\r\n mMusicSwitch: number;\r\n mEffectSwitch: number;\r\n brickSound: any;\r\n reward: boolean;\r\n finish: boolean;\r\n rewardCount: number;\r\n mMusicKey: any;\r\n\r\n onLoad() {\r\n if (AudioManager._instance == null) {\r\n AudioManager._instance = this;\r\n cc.fx.AudioManager = AudioManager;\r\n cc.game.addPersistRootNode(this.node);\r\n }\r\n else {\r\n return;\r\n }\r\n this.reward = false;\r\n this.finish = false;\r\n this.rewardCount = 0;\r\n this.ctor();\r\n\r\n this.preload();\r\n }\r\n\r\n ctor() {\r\n this.mAudioMap = {};\r\n /**\r\n * 默认音量大小\r\n * @type {number}\r\n */\r\n this.bgMusicVolume = 0.1;\r\n this.effectMusicVolume = 1;\r\n\r\n this.mMusicSwitch = 1;\r\n this.mEffectSwitch = 1;\r\n }\r\n play(audioSource, loop, callback, isBgMusic) {\r\n // if (isBgMusic && !this.mMusicSwitch) return;\r\n // if (!isBgMusic && !this.mEffectSwitch) return;\r\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\r\n\r\n // if (cc.sys.isBrowser) {\r\n // if(audioSource == this.brickSound){\r\n // volume = 0.1;\r\n // } \r\n volume = 1;\r\n cc.audioEngine.setEffectsVolume(1);\r\n cc.audioEngine.setMusicVolume(1);\r\n if (audioSource.name == \"lose\") {\r\n cc.audioEngine.setEffectsVolume(0.5);\r\n }\r\n else {\r\n cc.audioEngine.setEffectsVolume(1);\r\n }\r\n var context = cc.audioEngine.playEffect(audioSource, loop);\r\n if (callback) {\r\n cc.audioEngine.setFinishCallback(context, function () {\r\n callback.call(this);\r\n }.bind(this));\r\n }\r\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\r\n\r\n this.mAudioMap[audioSource] = context;\r\n return audioSource;\r\n // } else {\r\n // return audioSource;\r\n // }\r\n }\r\n\r\n save() {\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\r\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\r\n }\r\n\r\n // static get Instance()\r\n // {\r\n // if (this._instance == null)\r\n // {\r\n // this._instance = new AudioManager();\r\n // }\r\n // return this._instance;\r\n // }\r\n\r\n preload() {\r\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\r\n\r\n var musics = [\r\n this.audioGameBgm0,\r\n ];\r\n musics.forEach(function (path) {\r\n })\r\n console.log(\"音乐开关\", cc.fx.GameConfig.GM_INFO.musicOpen);\r\n this.playMusicGame();\r\n }\r\n\r\n getAudioMusicSwitch() {\r\n return this.mMusicSwitch;\r\n\r\n }\r\n getAudioEffectSwitch() {\r\n return this.mEffectSwitch;\r\n }\r\n trunAudioSound(on) {\r\n this.switchMusic(on);\r\n this.switchEffect(on)\r\n }\r\n switchMusic(on) {\r\n if (this.mMusicSwitch != (on ? 1 : 0)) {\r\n this.mMusicSwitch = 1 - this.mMusicSwitch;\r\n // this.save();\r\n }\r\n if (on) {\r\n this.playMusicGame();\r\n }\r\n else {\r\n this.stopMusic();\r\n }\r\n }\r\n switchEffect(on) {\r\n if (this.mEffectSwitch != (on ? 1 : 0)) {\r\n this.mEffectSwitch = 1 - this.mEffectSwitch;\r\n // this.save();\r\n\r\n }\r\n }\r\n onHide() {\r\n cc.audioEngine.pauseAll();\r\n }\r\n\r\n onShow() {\r\n cc.audioEngine.resumeAll();\r\n }\r\n\r\n //播放音效\r\n playEffect(name, callback) {\r\n if (!cc.fx.GameConfig.GM_INFO.effectOpen) {\r\n return;\r\n }\r\n if (this[name])\r\n return this.play(this[name], false, callback, this.mEffectSwitch);\r\n }\r\n playMusic(key, callback, loop) {\r\n if (!cc.fx.GameConfig.GM_INFO.musicOpen) {\r\n return;\r\n }\r\n loop = typeof loop == 'undefined' || loop ? true : false;\r\n this.stopMusic();\r\n this.mMusicKey = this.play(key, loop, callback, true);\r\n\r\n }\r\n /**\r\n * 游戏背景音乐\r\n */\r\n playMusicGame() {\r\n this.stopMusic();\r\n this.playMusic(this.audioGameBgm0, {}, true);\r\n }\r\n /**\r\n * 停止背景音乐播放\r\n */\r\n stopMusic() {\r\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\r\n cc.audioEngine.stopAll();\r\n }\r\n\r\n /**\r\n * 恢复被暂停的背景音乐播放\r\n */\r\n resumeMusic() {\r\n // 调用 cc.audioEngine 的 resumeMusic 方法恢复音乐播放\r\n cc.audioEngine.resumeMusic();\r\n }\r\n\r\n /*\r\n * 游戏开始音效\r\n *\r\n */\r\n playGameStart() {\r\n\r\n }\r\n /*\r\n * 失败的游戏结束\r\n */\r\n playGameOver() {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultFailed() {\r\n\r\n }\r\n /*\r\n * 成功的游戏结束\r\n */\r\n playGameResultSuccess() {\r\n\r\n }\r\n /**\r\n * 报警的音效\r\n */\r\n\r\n /**\r\n * 按钮\r\n */\r\n playAudioButton() {\r\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\r\n }\r\n};\r\n\r\n// export { AudioManager };\r\n"]}
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/setUi.js b/temp/quick-scripts/src/assets/Script/setUi.js
new file mode 100644
index 0000000..79ae736
--- /dev/null
+++ b/temp/quick-scripts/src/assets/Script/setUi.js
@@ -0,0 +1,132 @@
+"use strict";
+cc._RF.push(module, '19d952d5kVBrLSzAIGeElFK', 'setUi');
+// Script/setUi.ts
+
+"use strict";
+// Learn TypeScript:
+// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
+// Learn Attribute:
+// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
+var setUi = /** @class */ (function (_super) {
+ __extends(setUi, _super);
+ function setUi() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.time = 0;
+ _this.music = null;
+ _this.effect = null;
+ _this.vibrate = null;
+ // mapInfo: number[][] = [];
+ _this.musicState = true;
+ _this.effectState = true;
+ _this.vibrateState = true;
+ return _this;
+ // update (dt) {}
+ }
+ setUi.prototype.onLoad = function () {
+ this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;
+ this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;
+ this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;
+ console.log("音乐状态", this.musicState);
+ console.log("音效状态", this.effectState);
+ console.log("震动状态", this.vibrateState);
+ this.syncToggleState();
+ };
+ setUi.prototype.start = function () {
+ };
+ setUi.prototype.init = function (time) {
+ };
+ setUi.prototype.clickMusic = function () {
+ if (this.musicState) {
+ this.musicState = false;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.stopMusic();
+ }
+ else {
+ this.musicState = true;
+ cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;
+ this.setMusicConfig();
+ cc.fx.AudioManager._instance.playMusicGame();
+ }
+ };
+ setUi.prototype.setMusicConfig = function () {
+ var audioInfo = {
+ "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen,
+ "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen,
+ "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen,
+ };
+ cc.fx.StorageMessage.setStorage("music", audioInfo);
+ };
+ setUi.prototype.clickEffect = function () {
+ if (this.effectState) {
+ this.effectState = false;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ else {
+ this.effectState = true;
+ cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.clickVibrate = function () {
+ if (this.vibrateState) {
+ this.vibrateState = false;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ else {
+ this.vibrateState = true;
+ cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;
+ this.setMusicConfig();
+ }
+ };
+ setUi.prototype.syncToggleState = function () {
+ this.music.getComponent(cc.Toggle).isChecked = !this.musicState;
+ this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;
+ this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;
+ };
+ //关闭ui
+ setUi.prototype.closeUi = function () {
+ this.node.active = false;
+ };
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "music", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "effect", void 0);
+ __decorate([
+ property(cc.Node)
+ ], setUi.prototype, "vibrate", void 0);
+ setUi = __decorate([
+ ccclass
+ ], setUi);
+ return setUi;
+}(cc.Component));
+exports.default = setUi;
+
+cc._RF.pop();
\ No newline at end of file
diff --git a/temp/quick-scripts/src/assets/Script/setUi.js.map b/temp/quick-scripts/src/assets/Script/setUi.js.map
new file mode 100644
index 0000000..ff137f5
--- /dev/null
+++ b/temp/quick-scripts/src/assets/Script/setUi.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["assets\\Script\\setUi.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAG5E,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAI5C;IAAmC,yBAAY;IAA/C;QAAA,qEAuGC;QArGG,UAAI,GAAW,CAAC,CAAC;QAGjB,WAAK,GAAY,IAAI,CAAC;QAGtB,YAAM,GAAY,IAAI,CAAC;QAGvB,aAAO,GAAY,IAAI,CAAC;QAGxB,4BAA4B;QAE5B,gBAAU,GAAY,IAAI,CAAC;QAC3B,iBAAW,GAAY,IAAI,CAAC;QAC5B,kBAAY,GAAY,IAAI,CAAC;;QAoF7B,iBAAiB;IACrB,CAAC;IAnFG,sBAAM,GAAN;QAEI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,qBAAK,GAAL;IACA,CAAC;IAED,oBAAI,GAAJ,UAAK,IAAI;IAET,CAAC;IAED,0BAAU,GAAV;QACI,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAErD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SAC5C;aACI;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChD;IACL,CAAC;IAED,8BAAc,GAAd;QACI,IAAI,SAAS,GAAG;YACZ,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS;YAC/C,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU;YACjD,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW;SACtD,CAAA;QACD,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,2BAAW,GAAX;QACI,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;aACI;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;SAEzB;IACL,CAAC;IAED,4BAAY,GAAZ;QACI,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;SAEzB;aACI;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;SAEzB;IACL,CAAC;IACD,+BAAe,GAAf;QACI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IACxE,CAAC;IAED,MAAM;IACN,uBAAO,GAAP;QACI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IA/FD;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;wCACI;IAGtB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;yCACK;IAGvB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;0CACM;IAXP,KAAK;QADzB,OAAO;OACa,KAAK,CAuGzB;IAAD,YAAC;CAvGD,AAuGC,CAvGkC,EAAE,CAAC,SAAS,GAuG9C;kBAvGoB,KAAK","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\n\nconst { ccclass, property } = cc._decorator;\n\n\n@ccclass\nexport default class setUi extends cc.Component {\n static _instance: any;\n time: number = 0;\n\n @property(cc.Node)\n music: cc.Node = null;\n\n @property(cc.Node)\n effect: cc.Node = null;\n\n @property(cc.Node)\n vibrate: cc.Node = null;\n\n\n // mapInfo: number[][] = [];\n\n musicState: boolean = true;\n effectState: boolean = true;\n vibrateState: boolean = true;\n\n onLoad() {\n\n this.musicState = cc.fx.GameConfig.GM_INFO.musicOpen;\n this.effectState = cc.fx.GameConfig.GM_INFO.effectOpen;\n this.vibrateState = cc.fx.GameConfig.GM_INFO.vibrateOpen;\n console.log(\"音乐状态\", this.musicState);\n console.log(\"音效状态\", this.effectState);\n console.log(\"震动状态\", this.vibrateState);\n this.syncToggleState();\n }\n\n start() {\n }\n\n init(time) {\n\n }\n\n clickMusic() {\n if (this.musicState) {\n this.musicState = false;\n cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;\n\n this.setMusicConfig();\n cc.fx.AudioManager._instance.stopMusic();\n }\n else {\n this.musicState = true;\n cc.fx.GameConfig.GM_INFO.musicOpen = this.musicState;\n this.setMusicConfig();\n cc.fx.AudioManager._instance.playMusicGame();\n }\n }\n\n setMusicConfig() {\n let audioInfo = {\n \"musicOpen\": cc.fx.GameConfig.GM_INFO.musicOpen, //音乐\n \"effectOpen\": cc.fx.GameConfig.GM_INFO.effectOpen, //音效\n \"vibrateOpen\": cc.fx.GameConfig.GM_INFO.vibrateOpen, //震动\n }\n cc.fx.StorageMessage.setStorage(\"music\", audioInfo);\n }\n\n clickEffect() {\n if (this.effectState) {\n this.effectState = false;\n cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;\n this.setMusicConfig();\n }\n else {\n this.effectState = true;\n cc.fx.GameConfig.GM_INFO.effectOpen = this.effectState;\n this.setMusicConfig();\n\n }\n }\n\n clickVibrate() {\n if (this.vibrateState) {\n this.vibrateState = false;\n cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;\n this.setMusicConfig();\n\n }\n else {\n this.vibrateState = true;\n cc.fx.GameConfig.GM_INFO.vibrateOpen = this.vibrateState;\n this.setMusicConfig();\n\n }\n }\n syncToggleState() {\n this.music.getComponent(cc.Toggle).isChecked = !this.musicState;\n this.effect.getComponent(cc.Toggle).isChecked = !this.effectState;\n this.vibrate.getComponent(cc.Toggle).isChecked = !this.vibrateState;\n }\n\n //关闭ui\n closeUi() {\n this.node.active = false;\n }\n\n // update (dt) {}\n}\n"]}
\ No newline at end of file
diff --git a/temp/startup.json b/temp/startup.json
index 15d7d11..24e399f 100644
--- a/temp/startup.json
+++ b/temp/startup.json
@@ -1 +1 @@
-{"pid":14632}
+{"pid":70624}
diff --git a/assets/UI/UI/set/闊虫晥00.png b/图片资源/UI/musicr (1).png
similarity index 100%
rename from assets/UI/UI/set/闊虫晥00.png
rename to 图片资源/UI/musicr (1).png
diff --git a/assets/UI/UI/set/闊虫晥01.png b/图片资源/UI/musicr (2).png
similarity index 100%
rename from assets/UI/UI/set/闊虫晥01.png
rename to 图片资源/UI/musicr (2).png
diff --git a/assets/UI/UI/set/闇囧姩00.png b/图片资源/UI/musicr (3).png
similarity index 100%
rename from assets/UI/UI/set/闇囧姩00.png
rename to 图片资源/UI/musicr (3).png
diff --git a/assets/UI/UI/set/闇囧姩01.png b/图片资源/UI/musicr (4).png
similarity index 100%
rename from assets/UI/UI/set/闇囧姩01.png
rename to 图片资源/UI/musicr (4).png
diff --git a/assets/UI/UI/set/闊充箰00.png b/图片资源/UI/musicr (5).png
similarity index 100%
rename from assets/UI/UI/set/闊充箰00.png
rename to 图片资源/UI/musicr (5).png
diff --git a/assets/UI/UI/set/闊充箰01.png b/图片资源/UI/musicr (6).png
similarity index 100%
rename from assets/UI/UI/set/闊充箰01.png
rename to 图片资源/UI/musicr (6).png
diff --git a/assets/UI/UI/set/tiaodik.png b/图片资源/UI/tiaodik.png
similarity index 100%
rename from assets/UI/UI/set/tiaodik.png
rename to 图片资源/UI/tiaodik.png
diff --git a/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.png b/图片资源/font/商店数字/coins_sz0.png
similarity index 100%
rename from library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.png
rename to 图片资源/font/商店数字/coins_sz0.png
diff --git a/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.png b/图片资源/font/商店数字/coins_sz1.png
similarity index 100%
rename from library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.png
rename to 图片资源/font/商店数字/coins_sz1.png
diff --git a/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.png b/图片资源/font/商店数字/coins_sz10.png
similarity index 100%
rename from library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.png
rename to 图片资源/font/商店数字/coins_sz10.png
diff --git a/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.png b/图片资源/font/商店数字/coins_sz11.png
similarity index 100%
rename from library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.png
rename to 图片资源/font/商店数字/coins_sz11.png
diff --git a/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.png b/图片资源/font/商店数字/coins_sz12.png
similarity index 100%
rename from library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.png
rename to 图片资源/font/商店数字/coins_sz12.png
diff --git a/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.png b/图片资源/font/商店数字/coins_sz13.png
similarity index 100%
rename from library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.png
rename to 图片资源/font/商店数字/coins_sz13.png
diff --git a/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.png b/图片资源/font/商店数字/coins_sz2.png
similarity index 100%
rename from library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.png
rename to 图片资源/font/商店数字/coins_sz2.png
diff --git a/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.png b/图片资源/font/商店数字/coins_sz3.png
similarity index 100%
rename from library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.png
rename to 图片资源/font/商店数字/coins_sz3.png
diff --git a/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.png b/图片资源/font/商店数字/coins_sz4.png
similarity index 100%
rename from library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.png
rename to 图片资源/font/商店数字/coins_sz4.png
diff --git a/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.png b/图片资源/font/商店数字/coins_sz5.png
similarity index 100%
rename from library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.png
rename to 图片资源/font/商店数字/coins_sz5.png
diff --git a/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.png b/图片资源/font/商店数字/coins_sz6.png
similarity index 100%
rename from library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.png
rename to 图片资源/font/商店数字/coins_sz6.png
diff --git a/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.png b/图片资源/font/商店数字/coins_sz7.png
similarity index 100%
rename from library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.png
rename to 图片资源/font/商店数字/coins_sz7.png
diff --git a/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.png b/图片资源/font/商店数字/coins_sz8.png
similarity index 100%
rename from library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.png
rename to 图片资源/font/商店数字/coins_sz8.png
diff --git a/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.png b/图片资源/font/商店数字/coins_sz9.png
similarity index 100%
rename from library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.png
rename to 图片资源/font/商店数字/coins_sz9.png
diff --git a/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.png b/图片资源/font/商店数字/cost_0.png
similarity index 100%
rename from library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.png
rename to 图片资源/font/商店数字/cost_0.png
diff --git a/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.png b/图片资源/font/商店数字/cost_1.png
similarity index 100%
rename from library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.png
rename to 图片资源/font/商店数字/cost_1.png
diff --git a/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.png b/图片资源/font/商店数字/cost_10.png
similarity index 100%
rename from library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.png
rename to 图片资源/font/商店数字/cost_10.png
diff --git a/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.png b/图片资源/font/商店数字/cost_11.png
similarity index 100%
rename from library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.png
rename to 图片资源/font/商店数字/cost_11.png
diff --git a/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.png b/图片资源/font/商店数字/cost_2.png
similarity index 100%
rename from library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.png
rename to 图片资源/font/商店数字/cost_2.png
diff --git a/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.png b/图片资源/font/商店数字/cost_3.png
similarity index 100%
rename from library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.png
rename to 图片资源/font/商店数字/cost_3.png
diff --git a/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.png b/图片资源/font/商店数字/cost_4.png
similarity index 100%
rename from library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.png
rename to 图片资源/font/商店数字/cost_4.png
diff --git a/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.png b/图片资源/font/商店数字/cost_5.png
similarity index 100%
rename from library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.png
rename to 图片资源/font/商店数字/cost_5.png
diff --git a/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.png b/图片资源/font/商店数字/cost_6.png
similarity index 100%
rename from library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.png
rename to 图片资源/font/商店数字/cost_6.png
diff --git a/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.png b/图片资源/font/商店数字/cost_7.png
similarity index 100%
rename from library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.png
rename to 图片资源/font/商店数字/cost_7.png
diff --git a/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.png b/图片资源/font/商店数字/cost_8.png
similarity index 100%
rename from library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.png
rename to 图片资源/font/商店数字/cost_8.png
diff --git a/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.png b/图片资源/font/商店数字/cost_9.png
similarity index 100%
rename from library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.png
rename to 图片资源/font/商店数字/cost_9.png
diff --git a/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.png b/图片资源/font/商店数字/cost_yuan.png
similarity index 100%
rename from library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.png
rename to 图片资源/font/商店数字/cost_yuan.png